/* Product-wide finishing layer. Page structure stays in layout/discovery/profiles. */
:root{--ink:#292327;--muted:#6e6469;--accent:#801c35;--line:#e9e3e5;--wash:#f8f5f6;--section-gap:32px;--page-inset:24px;--app-width:960px}
body{font-size:16px;line-height:1.85;background:#fff}h1,h2,h3{letter-spacing:0;font-weight:700;text-wrap:pretty}p{overflow-wrap:anywhere}button,input,textarea,select{font-family:var(--font)}input,textarea,select,.sort-label select{font-size:16px!important}button,a{-webkit-tap-highlight-color:transparent}button:disabled{cursor:wait}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #aa5067;outline-offset:4px}
.btn{min-height:48px;border-radius:12px;font-size:14px;font-weight:600;padding:11px 18px}.btn.text{font-size:13px;font-weight:500;min-height:44px}.small,.meta{font-size:13px;line-height:1.9}.notice{font-size:13px!important;color:var(--ink);border:1px solid var(--line);padding:14px 16px}.error{font-size:14px}.overline{font-size:13px;font-weight:500;color:var(--muted);margin:0 0 6px}.loading-state{padding:20px 0;color:var(--muted);font-size:14px}.action-hint{font-size:12px;text-align:center;margin:8px 0 0}
body>header{height:76px}body>header .brand{font-size:36px}body>header .city{font-size:13px}.site-menu>summary{width:44px;height:44px}.home-intro{margin:8px 0 24px}.home-intro h1{font-size:36px;line-height:1.6;margin:0}.search-bar{border:1px solid var(--line);background:#faf9f9;min-height:52px;border-radius:12px}.search-bar input::placeholder{color:var(--muted)}.quick-links{gap:8px;padding:14px 0 2px}.quick-links a{min-height:44px;font-size:13px;font-weight:500;background:white;color:var(--ink);border:1px solid var(--line);padding:8px 14px}.quick-links a:hover{border-color:#c8a5b0;background:var(--wash)}.quick-links .icon{color:var(--accent);width:19px;height:19px}
.section-top{align-items:center;gap:12px;margin-bottom:18px}.section-top h2,.home-section .section-top h2{font-size:22px;line-height:1.7}.section-top a,.home-section .section-top a{font-size:13px;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}.home-section{margin-top:32px}
.featured-rail{gap:16px;align-items:stretch;padding:0 0 10px}.featured-guide{flex:0 0 31%;aspect-ratio:auto;border-radius:14px;background:white;border:1px solid var(--line);overflow:hidden;box-shadow:none}.featured-guide::after{display:none}.featured-guide .guide-visual{position:relative;height:158px;overflow:hidden;background:#f3eeea}.featured-guide img{display:block;width:100%;height:100%;object-fit:cover}.featured-guide.illustrated img{object-fit:contain;padding:8px;filter:saturate(.65)}.featured-guide .guide-copy{position:static;padding:14px 16px;background:#fff}.featured-guide h3{color:var(--ink);font-size:17px;line-height:1.75;font-weight:700;margin:0 0 4px}.featured-guide p{color:var(--muted);font-size:12px;margin:0}.image-type{position:absolute;bottom:8px;left:8px;font-size:12px;padding:1px 7px;background:#fffffff0;color:#64575d;border-radius:5px}.featured-guide:hover{border-color:#c8a5b0}.featured-grid{gap:18px}
.restaurant-grid{gap:24px}.restaurant-card{border-radius:0}.restaurant-card .art{border-radius:14px;aspect-ratio:1.65;background:#f5f0ec}.restaurant-card .art img{object-fit:cover}.restaurant-card h3{font-size:21px;line-height:1.75}.restaurant-card p{font-size:14px;line-height:1.9}.restaurant-card .meta{font-size:13px}.restaurant-card .more{font-size:13px;min-height:36px}.card-body{padding:16px 0}.art-label{font-size:12px;padding:4px 8px}.art-caption{font-size:12px;line-height:1.6;background:#fff;color:var(--ink)}.price-scale{font-size:16px;gap:2px}
body>.demo{font-size:12px;line-height:1.9;margin:0 auto 104px;color:var(--muted);padding:16px var(--page-inset);border-top:1px solid var(--line)}body[data-page=login]>.demo,body[data-page=profile]>.demo,body[data-page=onboarding]>.demo{display:none}
body>nav,body.restaurant-view>nav{min-height:76px;padding:6px 20px max(6px,env(safe-area-inset-bottom));z-index:20}body>nav a,body.restaurant-view>nav a{min-height:54px;font-size:12px;gap:5px}body>nav a .icon{width:22px;height:22px}body>nav a[aria-current=page]{color:var(--accent);font-weight:700}body>nav a[aria-current=page] .icon{background:#f4e8ed;padding:4px 17px;box-sizing:content-box;border-radius:20px}
/* Lists: image, title and explanatory copy have separate jobs. */
.collection-toolbar{padding:10px var(--page-inset);min-height:64px}.collection-toolbar strong{font-size:15px}.collection-toolbar .icon{width:22px;height:22px}.collection-switch{position:relative;top:auto;z-index:1;margin:16px var(--page-inset);width:210px;background:var(--wash);border:1px solid var(--line);box-shadow:none;border-radius:12px}.collection-switch button{min-height:44px;font-size:14px;color:var(--muted)}.collection-switch button[aria-pressed=true]{background:#fff;color:var(--accent);box-shadow:0 1px 5px #29192412}.collection-cover{height:auto;display:flex;flex-direction:column;background:white;overflow:visible}.collection-cover::after{display:none}.collection-cover h1{position:static;order:2;color:var(--ink);font-size:30px;line-height:1.7;margin:0;padding:12px var(--page-inset) 0}.collection-image-label{position:static;order:1;color:var(--muted);font-size:11px;padding:6px var(--page-inset) 0}.collection-intro{background:white;color:var(--ink);padding:8px var(--page-inset) 16px;border-bottom:1px solid var(--line)}.collection-intro>p{color:var(--muted);font-size:15px;line-height:2;max-width:680px}.collection-progress{font-size:13px;color:var(--accent);gap:16px}.collection-progress progress{accent-color:var(--accent);height:5px}.collection-restaurants{max-width:none;padding:24px var(--page-inset)}.collection-place{display:grid;grid-template-columns:144px minmax(0,1fr);gap:20px;padding-bottom:20px;margin-bottom:20px}.collection-place-visual>a{display:block}.collection-place-visual img{display:block;width:100%;height:112px;object-fit:cover;border-radius:12px;background:var(--wash)}.image-credit{display:block;font-size:12px;line-height:1.7;color:var(--muted);margin:6px 0 0}.collection-place-row h2{font-size:21px}.collection-place-row p{font-size:14px}.collection-place-row>div:first-child{min-width:0}.collection-place-actions{gap:6px;flex-shrink:0}.collection-place-actions button{display:flex;flex-direction:column;gap:4px;min-width:52px;height:62px;border:1px solid var(--line);border-radius:12px}.collection-place-actions button span{font-size:12px}.collection-place-actions .icon{width:22px;height:22px}.collection-place-actions button[aria-pressed=true]{border-radius:12px}.is-map>.roko-map{height:calc(100dvh - 240px)}.map-selection{padding-bottom:24px}.map-status{font-size:14px}
/* Restaurant: full branch identity and a deliberate contribution hierarchy. */
.restaurant-hero.photo-only{display:block;height:340px;margin:0;overflow:hidden}.restaurant-hero.photo-only .place-cover{height:100%;min-height:0;width:100%}.restaurant-hero.photo-only .hero-place-name{font-size:32px!important;line-height:1.6!important;font-weight:750;right:var(--page-inset);left:var(--page-inset);bottom:44px;margin:0;text-wrap:balance}.restaurant-hero.photo-only:after{inset:38% 0 0;background:linear-gradient(transparent,#241a20bd)}.cover-control{width:44px;height:44px;min-width:44px;min-height:44px;background:#fffffff2}.restaurant-hero.photo-only .photo-counter{font-size:12px;bottom:10px;left:var(--page-inset);max-width:calc(100% - 48px);line-height:1.8}.restaurant-hero.photo-only .pick-badge{top:70px;font-size:12px;padding:5px 10px}.gallery-dots button{height:44px;min-width:32px}.place-body{padding-top:24px}.place-identity .place-title-row{gap:16px;margin:0 0 16px!important}.place-identity .place-meta{font-size:14px;line-height:2}.place-identity .icon-action{min-width:78px;min-height:60px;border:1px solid var(--line);border-radius:12px;padding:8px;color:var(--accent)}.icon-action span{font-size:12px}.icon-action>.icon{width:23px;height:23px}.place-identity .btn.primary{margin:0;min-height:50px}.place-section{padding:28px 0}.place-section h2{font-size:21px}.place-section>p{font-size:15px}.feature-columns{gap:20px}.feature-columns>div{padding:16px;background:var(--wash);border-radius:12px}.feature-columns h3{font-size:14px;margin:0 0 12px}.feature-columns p{font-size:14px;margin:0 0 12px}.feature-columns p:last-child{margin:0}
.recommend-card{border:1px solid var(--line);border-radius:16px;padding:22px;background:#fff}.vote-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin:0 0 18px}.vote-heading .eyebrow{display:block;font-size:12px;color:var(--muted);font-weight:400;margin:0 0 4px}.vote-heading .eyebrow:before{display:none}.vote-heading h2{font-size:21px;margin:0 0 5px}.vote-context{font-size:12px;margin:0}.vote-saved{font-size:12px;color:var(--accent);white-space:nowrap}.binary-votes{gap:10px}.vote-choice{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:58px;border:1px solid #cfc2c8;border-radius:12px;padding:12px 8px;background:#fff;color:var(--ink);font-size:14px;font-weight:600}.vote-choice:hover{border-color:var(--accent);background:var(--wash)}.vote-choice.selected{border:2px solid var(--accent);padding:11px 7px;color:var(--accent);background:#f7edf1}.vote-symbol svg{display:block;width:22px;height:22px}.thumb-down{transform:rotate(180deg)}.vote-check{width:10px;font-size:12px}.vote-result{padding-top:20px;margin-top:20px;border-top:1px solid var(--line)}.vote-result-line{display:flex;align-items:center;gap:12px}.vote-result-line>.score-ring{width:58px;height:58px;flex-shrink:0;font-size:20px;color:var(--accent);border-color:#dac5cd;background:#faf6f8}.vote-result-line>div{flex:1}.vote-result-line strong{font-size:13px}.vote-result-line p{font-size:12px;line-height:1.9;margin:3px 0 0}.vote-result-line .btn{font-size:12px;padding:4px}.vote-meter{height:5px;overflow:hidden;border-radius:8px;background:#eee6e9;margin-top:16px}.vote-meter span{display:block;width:var(--vote-percent);height:100%;background:var(--accent)}.vote-reveal .vote-result{animation:result-appear .25s ease both}@keyframes result-appear{from{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:none}}
.popular-food-rail{gap:16px}.popular-food{flex-basis:160px}.popular-food img,.food-photo-empty{width:160px;height:140px;border-radius:12px}.popular-food h3{font-size:16px}.popular-food p{font-size:12px}.food-photo-empty{font-size:12px;background:var(--wash)}.food-empty{border:1px dashed #d9ccd2;border-radius:12px;background:#fcfafb;padding:16px;margin-bottom:14px}.food-empty .popular-food{flex:1;display:grid;grid-template-columns:48px 1fr;column-gap:14px;align-items:center}.food-empty .food-photo-empty{grid-row:1/3;width:48px;height:48px;border-radius:50%;background:#f2e8ed;color:var(--accent)}.food-empty .food-photo-empty span{display:none}.food-empty h3{margin:0}.food-empty p{margin:0}.food-actions{gap:10px;margin:20px 0 0}.food-actions .btn{font-size:14px;min-height:48px}.uploaded-photos summary{font-size:14px;min-height:44px}.uploaded-grid p{font-size:13px}.uploaded-grid .btn{font-size:12px;min-height:44px}.upload-confirmation a{color:var(--accent);text-decoration:underline;display:block;min-height:44px;padding-top:8px}
.experience-dialog{padding:24px;border:1px solid var(--line);border-radius:18px;max-height:calc(100dvh - 32px)}.experience-dialog h2{font-size:22px;clear:both}.experience-dialog label{font-size:14px}.experience-dialog .btn.primary{width:100%}.experience-dialog input,.experience-dialog select{min-height:48px}.dialog-close{margin:-10px 0 8px -10px}.experience-dialog::backdrop{background:#24171e80;backdrop-filter:blur(3px)}
/* Comments, forms and feedback use the same readable text scale. */
.community-comments{padding-top:24px}.my-note{padding-bottom:16px}.my-note>.btn{font-size:14px;margin:0 0 12px}.comment-form label{font-size:14px}.comment-form textarea{line-height:2;min-height:140px}.comment-form>p{font-size:12px}.comment-form-actions .btn{font-size:14px}.comment{padding:22px 0}.comment-head{align-items:flex-start;flex-wrap:wrap;gap:12px}.comment-head time,.restaurant-view .comment-head time{font-size:12px}.comment-person>.avatar{display:none}.comment-person strong{font-size:15px}.comment-person .rank-badge{display:flex;margin-top:4px}.comment p{font-size:15px!important;line-height:2;color:var(--ink)}.comment-actions .btn{font-size:13px;min-height:44px}.sort-label{font-size:13px}.restaurant-view .sort-label select{min-height:48px}.auth,.profile-edit{max-width:440px;margin:32px auto;padding:28px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:none}.auth-symbol{width:56px;height:56px;display:grid;place-items:center;background:#f5e9ee;color:var(--accent);border-radius:16px;margin-bottom:22px}.auth-symbol .icon{width:27px;height:27px}.auth h1,.profile-edit h1{font-size:28px;line-height:1.6}.auth>p,.profile-edit>p{font-size:14px;line-height:2}.auth label,.profile-edit label{font-size:14px}.auth input,.profile-edit input{min-height:52px}.auth .back{margin:0 0 20px}.auth .primary{min-height:52px}.auth .small{font-size:13px}.profile-benefits{list-style:none;padding:0;margin:24px 0;color:var(--ink)}.profile-benefits li{display:flex;gap:12px;align-items:center;font-size:14px;padding:12px 0;border-bottom:1px solid var(--line)}.profile-benefits .icon{color:var(--accent);flex-shrink:0}.guest-profile .small{text-align:center}.empty{border:1px dashed #d9ccd2;background:#fcfafb;border-radius:14px;padding:28px 20px}.empty p{font-size:15px;line-height:2}
/* Profiles: identity, contribution and personal collections are distinct. */
.social-profile{max-width:720px;margin:auto}.social-header{padding:12px 0 24px;margin:0;gap:22px;align-items:flex-start}.profile-avatar{width:88px;height:88px;border:3px solid #fff;box-shadow:0 0 0 1px var(--line)}.social-header h1{font-size:25px;font-weight:700;line-height:1.7;margin:0 0 6px}.social-counts{gap:16px;justify-content:flex-start;margin-top:20px}.social-counts>div{align-items:flex-start;min-width:64px}.social-counts strong{font-size:20px}.social-counts span{font-size:12px}.profile-buttons{gap:10px}.profile-buttons>.btn{font-size:13px;min-height:46px;background:white}.profile-buttons>.primary{background:var(--accent);color:white}.profile-tabs{display:flex;flex-wrap:nowrap;gap:0;max-width:none;border-radius:0;background:white;border-bottom:1px solid var(--line);padding:0;margin:28px 0 20px;overflow:auto}.profile-tabs a{font-size:14px;min-height:48px;border-radius:0;padding:12px 10px}.profile-tabs a.active{color:var(--accent);background:white;box-shadow:none;border-bottom:2px solid var(--accent)}.profile-tabs a:focus-visible{outline-offset:-3px}.profile-photo-grid{gap:7px}.profile-photo-grid img,.pending-photo{border-radius:8px}.profile-photo-grid article .btn{font-size:12px;min-height:44px}.pending-photo span{font-size:12px;padding:3px 7px;border-radius:5px}.experience-card{padding:22px;border-radius:14px}.experience-card h3{font-size:19px}.experience-text{font-size:15px}.level-card{border:1px solid #e7d8df;background:#faf5f7;border-radius:16px;padding:20px;gap:12px;margin:24px 0}.level-card .xp-total{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.xp-total small{font-size:12px}.level-card>small{font-size:13px;color:var(--muted)}.level-card progress{appearance:none;height:7px;border:0;border-radius:7px;overflow:hidden;background:#e8dfe3}.level-card progress::-webkit-progress-bar{background:#e8dfe3}.level-card progress::-webkit-progress-value{background:var(--accent);border-radius:7px}.level-card progress::-moz-progress-bar{background:var(--accent)}
.rank-badge{--badge:#73686e;display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:14px;font-weight:600}.rank-badge svg{width:30px;height:34px;fill:color-mix(in srgb,var(--badge) 8%,white);stroke:var(--badge);stroke-width:1.6;flex-shrink:0}.rank-detail{fill:none;stroke-width:2}.rank-badge small{display:block;font-size:11px;color:var(--muted);font-weight:400}.rank-2{--badge:#506c5b}.rank-3{--badge:#855f40}.rank-4{--badge:#801c35}.rank-5{--badge:#895d18}.rank-4 svg,.rank-5 svg{stroke-width:2}.rank-badge.compact{font-size:12px;gap:6px;color:var(--muted)}.rank-badge.compact svg{width:18px;height:21px}
.points-help{font-size:14px;color:var(--muted);padding:18px 0;margin:18px 0;border-top:1px solid var(--line)}.points-help summary{font-size:15px;color:var(--ink);font-weight:600;min-height:44px;cursor:pointer}.points-help h2{font-size:21px;margin-top:18px}.points-help h3{font-size:18px}.level-ladder,.xp-history{padding:0;list-style:none}.level-ladder li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 8px;border-bottom:1px solid var(--line)}.level-ladder li.current{background:var(--wash);border-radius:10px}.level-ladder li>span:last-child{font-size:13px;white-space:nowrap}.xp-rules>div,.xp-history>li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.xp-rules dt{color:var(--ink)}.xp-rules small,.xp-history small{display:block;color:var(--muted);font-size:12px}.xp-rules dd{margin:0;white-space:nowrap;color:var(--accent);font-weight:700}.xp-history b{font-size:13px;white-space:nowrap}.level-celebration{position:fixed;z-index:100;bottom:96px;left:50%;transform:translateX(-50%);width:min(340px,calc(100% - 32px));background:white;border:1px solid #ddc7d0;border-radius:18px;padding:22px;box-shadow:0 12px 55px #33182030;text-align:center;animation:result-appear .25s ease-out}.level-celebration>.rank-badge{justify-content:center;margin-bottom:12px}.level-celebration>strong{display:block}.level-celebration p{font-size:14px;margin:4px 0 12px}.level-celebration .btn{width:100%}#toast{bottom:96px;max-width:calc(100vw - 32px);width:max-content;font-size:14px;line-height:1.8;border-radius:12px;padding:12px 18px}
@media(max-width:760px){:root{--page-inset:20px}body>header{height:68px}body>header .brand{font-size:34px}body>header .city{font-size:12px}.home-intro{margin:10px 0 22px}.home-intro h1{font-size:30px}.home-intro .overline{font-size:12px}.home-section{margin-top:28px}.section-top h2,.home-section .section-top h2{font-size:20px}.featured-guide{flex-basis:66%}.featured-guide .guide-visual{height:140px}.featured-guide h3{font-size:17px}.featured-rail{gap:12px}.featured-grid .guide-visual{height:112px}.featured-grid .guide-copy{padding:12px}.featured-grid h3{font-size:15px}.restaurant-card{grid-template-columns:100px minmax(0,1fr);gap:14px;padding-bottom:20px}.restaurant-card .art{height:128px;aspect-ratio:auto}.restaurant-card h3{font-size:18px;line-height:1.8}.restaurant-card p{font-size:13px}.restaurant-card .meta{font-size:12px}.restaurant-card .more{font-size:12px}.card-body{padding:0}.art-label{font-size:12px;right:6px;top:7px}.art-caption{font-size:12px;left:5px;right:5px;bottom:6px;text-align:center}.collection-cover h1{font-size:26px}.collection-intro>p{font-size:14px}.collection-place{grid-template-columns:96px minmax(0,1fr);gap:14px}.collection-place-visual img{height:96px}.collection-place-row{flex-direction:column;gap:8px}.collection-place-row h2{font-size:18px}.collection-place-actions{margin-top:8px}.restaurant-hero.photo-only{height:270px}.restaurant-hero.photo-only .hero-place-name{font-size:27px!important;line-height:1.65!important;bottom:46px}.restaurant-hero.photo-only .photo-counter{font-size:12px}.place-body{padding-top:22px}.recommend-card{padding:18px}.vote-heading h2{font-size:20px}.vote-choice{font-size:13px;gap:5px;padding-inline:6px}.vote-choice.selected{padding-inline:5px}.vote-context{font-size:12px}.vote-symbol svg{width:20px;height:20px}.vote-result-line{gap:10px}.vote-result-line>.score-ring{width:54px;height:54px;font-size:19px}.vote-result-line strong{font-size:13px}.vote-result-line .btn{font-size:11px}.feature-columns{grid-template-columns:1fr;gap:12px}.food-actions .btn{font-size:13px}.auth,.profile-edit{padding:24px 0;margin:12px auto;border:0;border-radius:0}.auth h1,.profile-edit h1{font-size:27px}.social-header{gap:16px}.profile-avatar{width:74px;height:74px}.social-header h1{font-size:23px}.social-counts{gap:12px}.social-counts>div{min-width:0}.social-counts span{font-size:12px}.social-counts strong{font-size:18px}.profile-tabs a{font-size:13px;padding-inline:7px}.level-card{padding:16px}.level-card .xp-total{font-size:18px}.profile-buttons{flex-wrap:wrap}.profile-buttons>.btn{font-size:13px}.experience-dialog{padding:20px}.comment-head{gap:8px}.comment-head time{font-size:11px}.place-section h2{font-size:20px}}
@media(max-width:370px){:root{--page-inset:16px}.vote-choice{font-size:12px}.vote-check{width:7px}.social-header{gap:12px}.social-counts{gap:8px}.profile-avatar{width:66px;height:66px}.profile-tabs a{font-size:12px;padding-inline:5px}.food-actions{flex-direction:column}.restaurant-card{grid-template-columns:88px minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.profile-more{position:relative;flex:0 0 48px}.profile-more summary{display:grid;place-items:center;list-style:none;border:1px solid var(--line);border-radius:12px;min-height:48px;cursor:pointer;font-size:17px}.profile-more summary::-webkit-details-marker{display:none}.profile-more>div{position:absolute;left:0;top:54px;z-index:8;width:180px;background:white;border:1px solid var(--line);padding:8px;border-radius:12px;box-shadow:0 6px 22px #30252b12}.profile-more .btn{width:100%;justify-content:flex-start}.section-top h2{min-width:0}body[data-page=u]>.demo{display:none}

.field-title{font-size:14px;color:var(--ink);margin:18px 0 8px}.profile-edit .file-picker,.experience-dialog .file-picker{position:relative;display:flex;align-items:center;justify-content:center;min-height:56px;margin:0;border:1px dashed #bea8b2;border-radius:12px;background:var(--wash);padding:12px 16px;cursor:pointer;color:var(--accent);font-size:14px;font-weight:500}.file-picker input[type=file]{position:absolute;inset:0;margin:0;padding:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-picker [data-file-name]{overflow-wrap:anywhere;pointer-events:none;max-width:100%}.file-picker:focus-within{outline:3px solid #aa5067;outline-offset:3px}

/* Sprint 04: reuse existing cards; keep access beside the branch identity. */
.home-selections .restaurant-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.home-selections .restaurant-card{max-width:440px}.place-access{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.place-access h2{font-size:16px;margin:0 0 8px}.place-access p{font-size:14px;line-height:1.9;margin:0 0 12px}.place-access .btn{display:inline-flex;align-items:center;gap:8px;min-height:48px;color:var(--accent)}
@media(max-width:760px){.home-selections .restaurant-grid{grid-template-columns:1fr}.home-selections .restaurant-card{max-width:none}}

@media(min-width:761px){.home-selections .restaurant-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-selections .restaurant-card{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;max-width:none;align-items:start}.home-selections .restaurant-card .art{height:140px;aspect-ratio:auto}.home-selections .card-body{padding:0}.home-selections .restaurant-card h3{font-size:20px}}

/* Two-choice voting: quiet circles and one compact score, matching the supplied reference. */
.roko-vote-panel.recommend-card{padding:0;background:transparent;border:0;box-shadow:none}
.roko-vote-panel h2{font-size:20px;margin:0 0 20px;text-align:center}
.roko-vote-panel .binary-votes{display:flex;justify-content:center;gap:32px;margin:0}
.roko-vote-panel .vote-choice{display:flex;flex-direction:column;align-items:center;gap:10px;padding:4px;border:0;background:transparent;color:#515656;box-shadow:none;min-width:120px;font-size:14px}
.vote-orb{display:grid;place-items:center;width:76px;height:76px;border-radius:50%;background:#9acbb6;color:#174f40;font-size:28px;border:3px solid transparent}
.negative .vote-orb{background:#edb0b3;color:#7c2833}
.roko-vote-panel .vote-choice.selected{background:transparent;color:var(--ink,#252525)}
.roko-vote-panel .selected .vote-orb{border-color:currentColor}
.roko-vote-panel .vote-choice:focus-visible{outline:2px solid #14535a;outline-offset:5px;border-radius:12px}
.recommendation-score{display:flex;align-items:center;gap:18px;margin:24px 0 12px;min-height:90px}
.recommendation-circle{position:relative;flex:0 0 80px;width:80px;height:80px;border:2px solid #dfe3e1;border-radius:50%;display:grid;place-items:center;color:#34866a;background:#fff}
.recommendation-circle>strong{font-size:23px;white-space:nowrap}
.recommendation-count{position:absolute;bottom:-5px;right:-4px;min-width:30px;height:30px;padding:0 5px;border-radius:50%;display:grid;place-items:center;background:#18565b;color:white;font-size:12px;border:2px solid white}
.recommendation-score>[data-remove-vote]{margin-inline-start:auto;font-size:13px;padding:8px}
.restaurant-primary-actions{display:grid;gap:12px;margin:0 0 24px}
.restaurant-primary-actions .icon-action{justify-self:start}
.directions-options{display:grid;gap:12px;margin-top:20px}

.featured-guide .guide-visual{aspect-ratio:16/9;height:auto;min-height:0}.featured-guide .guide-visual img{width:100%;height:100%;object-fit:cover}

/* Score sits with the photo controls; only confirmed votes animate the result. */
.restaurant-hero.photo-only .photo-counter{left:auto;right:20px;bottom:20px;max-width:calc(100% - 235px);font-size:11px}
.recommendation-progress{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}
.recommendation-progress circle{fill:none;stroke:#34866a;stroke-width:3;stroke-linecap:round}
.vote-orb{position:relative}
.vote-orb svg{width:30px;height:30px;display:block}
.roko-vote-panel .remove-recommendation{display:block;margin:6px auto 0;padding:4px 12px;font-size:12px;min-height:32px}
.vote-reveal .selected .vote-orb{animation:vote-confirmed .3s ease-out}
.vote-choice:active .vote-orb{transform:scale(.94)}
@keyframes vote-confirmed{0%{transform:scale(.9)}60%{transform:scale(1.08)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.vote-reveal .selected .vote-orb{animation:none}.vote-choice:active .vote-orb{transform:none}}

/* Owner-approved social and mobile refinements. */
.restaurant-hero.photo-only .hero-place-name{bottom:24px}.place-identity{padding-top:10px}.place-meta{font-size:12px;margin:0 0 12px}.place-identity #restaurant-score{position:static;color:inherit;background:none;box-shadow:none;padding:0;margin:12px 0 6px;width:auto}.place-identity .recommendation-score{justify-content:flex-start;background:none;padding:0}.place-identity .hero-score-label{color:var(--ink,#262129)}
.social-header{gap:14px;margin:8px 0 12px}.social-counts{margin-top:8px}.level-card{margin:12px 0;padding:12px}.points-help{margin:14px 0}.profile-tabs{margin:12px 0}.profile-photo-grid{gap:3px}.profile-photo-grid article{position:relative;aspect-ratio:1;overflow:hidden}.profile-photo-grid article>a{display:block;height:100%}.profile-photo-grid article img{width:100%;height:100%;object-fit:cover}.profile-photo-grid article .btn{position:absolute;bottom:3px;left:3px;background:#fff;font-size:11px;min-height:32px}.upload-preview{display:block;width:120px;height:120px;object-fit:cover;border-radius:10px;margin:10px 0}.experience-dialog [role=alert]{color:#a62438;white-space:pre-line}.experience-dialog{max-height:85dvh;overflow:auto}
.community-comments .comment{padding:12px 0;margin:0}.comment-head{gap:8px}.community-comments .comment p{margin:7px 0;white-space:pre-wrap;overflow-wrap:anywhere}.comment-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.comment-actions .btn{padding:5px 10px;font-size:12px;min-height:36px}.recommendation-tag{display:inline-block;font-size:12px;border-radius:12px;padding:2px 8px;margin:4px 0;background:#e5f2eb;color:#216348}.recommendation-tag.negative{background:#fbe8e8;color:#983b45}.comment-replies{margin:8px 22px 0 0;border-right:2px solid #eee;padding-right:12px}.comment-reply{padding:8px 0}.comment-reply p{font-size:13px}.reply-form{margin:8px 0}.reply-form textarea{width:100%;font:inherit;padding:10px;border:1px solid #ddd;border-radius:10px}.compose-prompt{width:100%;padding:13px;text-align:right;border:1px solid #ddd;border-radius:14px;background:#faf8f9;color:#77666d;font:inherit;min-height:48px}.comment-form{margin:10px 0}.comment-form-actions{gap:8px}.community-comments .section-top{margin:14px 0 8px}

.place-identity .place-meta{font-size:12px;line-height:1.8;margin:0 0 8px}.place-body{padding-top:12px}.place-identity .recommendation-score{margin:0;min-height:90px}.place-identity .hero-score-label{font-size:14px}
.restaurant-hero.photo-only .hero-place-name{bottom:66px!important}.restaurant-hero.photo-only .photo-counter{left:20px;right:auto;bottom:12px;max-width:calc(100% - 40px)}
