:root {
  --green: #284832;
  --deep: #183323;
  --olive: #78934e;
  --orange: #e76f45;
  --cream: #f8f5eb;
  --paper: #fffdf8;
  --muted: #6f796f;
  --line: #dde1d5;
}
* {
  box-sizing: border-box;
}
[hidden] {
  display: none !important;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  color: var(--deep);
  background: var(--cream);
  font-family: Inter, system-ui, sans-serif;
}
button,
input {
  font: inherit;
}
button {
  cursor: pointer;
}
a {
  color: inherit;
}
header {
  height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 18px;
  border-bottom: 1px solid var(--line);
  background: rgba(248, 245, 235, 0.94);
  position: sticky;
  top: 0;
  z-index: 30;
  backdrop-filter: blur(14px);
}
.brand {
  display: flex;
  align-items: center;
  gap: 7px;
  text-decoration: none;
}
.brand .brand-symbol {
  width: 87px;
  height: 87px;
  margin: -13px -7px;
  border-radius: 18px;
  object-fit: cover;
}
.brand .brand-wordmark {
  width: 148px;
  height: 50px;
  margin: -5px 0;
  border-radius: 0;
  object-fit: cover;
  mix-blend-mode: multiply;
}
header nav {
  display: flex;
  gap: 30px;
}
header nav a {
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
}
.account {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ghost,
.outline {
  padding: 10px 17px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--deep);
  background: transparent;
  font-weight: 700;
}
#mobile-menu {
  display: none;
  border: 0;
  background: none;
  font-size: 23px;
}
.user-menu {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
}
.user-trigger {
  display: grid;
  place-items: center;
  padding: 2px;
  border: 2px solid #d9e0d2;
  border-radius: 50%;
  background: white;
}
.user-trigger #avatar,
.dash-user > span {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  color: var(--deep);
  background: #dfe7d7;
  font-weight: 800;
}
.user-trigger:hover {
  border-color: var(--olive);
}
.user-trigger #avatar.has-image {
  color: transparent;
  background-position: center;
  background-size: cover;
}
.header-account-badge {
  position: relative;
  display: flex;
  align-items: center;
}
.header-account-badge::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 40;
  top: calc(100% + 10px);
  left: 50%;
  width: max-content;
  max-width: 260px;
  padding: 9px 12px;
  border-radius: 9px;
  color: white;
  background: var(--deep);
  box-shadow: 0 10px 30px #18332330;
  font-size: 11px;
  font-weight: 750;
  line-height: 1.35;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -4px);
  transition: opacity .16s ease, transform .16s ease;
}
.header-account-badge:hover::after,
.header-account-badge:focus-within::after {
  opacity: 1;
  transform: translate(-50%, 0);
}
.dropdown {
  position: absolute;
  right: 0;
  top: 48px;
  width: 250px;
  padding: 10px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 15px;
  box-shadow: 0 18px 50px #18332320;
}
.dropdown:not([hidden]) {
  transform-origin: top right;
  animation: user-dropdown-open .18s cubic-bezier(.2,.75,.3,1) both;
}
@keyframes user-dropdown-open {
  from { opacity: 0; transform: translateY(-9px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.account-shortcuts > div {
  margin-top: 4px;
  padding-top: 4px;
  border-top: 1px solid var(--line);
}
.dropdown button {
  width: 100%;
  padding: 13px 14px;
  border: 0;
  border-radius: 8px;
  background: none;
  text-align: left;
  color: var(--deep);
  font-weight: 800;
}
.dropdown button:hover {
  background: var(--cream);
}
.dropdown hr {
  border: 0;
  border-top: 1px solid var(--line);
}
main {
  overflow: hidden;
}
.hero {
  min-height: 660px;
  padding: 70px 6vw 90px;
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  align-items: center;
  gap: 5vw;
}
.kicker {
  color: var(--orange);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.17em;
}
.hero h1 {
  margin: 15px 0 25px;
  font: 600 clamp(58px, 7vw, 104px) / 0.88 Georgia;
  letter-spacing: -0.055em;
}
.hero h1 em {
  color: var(--orange);
  font-weight: 400;
}
.hero-copy > p:not(.kicker) {
  max-width: 670px;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.65;
}
.search-box {
  display: grid;
  grid-template-columns: 1fr 0.7fr auto;
  max-width: 780px;
  margin-top: 35px;
  padding: 8px;
  background: var(--paper);
  border-radius: 16px;
  box-shadow: 0 22px 70px #14392f20;
}
.search-box label {
  padding: 8px 15px;
}
.search-box label + label {
  border-left: 1px solid var(--line);
}
.search-box span {
  display: block;
  font-size: 10px;
  font-weight: 800;
}
.search-box input {
  width: 100%;
  padding: 7px 0;
  border: 0;
  outline: 0;
  background: none;
}
.search-box button,
.solid {
  padding: 13px 25px;
  border: 0;
  border-radius: 11px;
  color: white;
  background: var(--green);
  font-weight: 800;
}
.trust-line {
  margin-top: 22px;
  color: var(--muted);
  font-size: 12px;
}
.hero-art {
  position: relative;
  min-height: 500px;
  display: grid;
  place-items: center;
}
.hero-logo {
  width: min(385px, 75vw);
  border-radius: 24%;
  box-shadow: 0 35px 90px #18332330;
  transform: rotate(-5deg);
}
.orbit {
  position: absolute;
  padding: 12px 18px;
  border-radius: 999px;
  background: white;
  box-shadow: 0 12px 35px #15392f20;
  font-size: 12px;
  font-weight: 800;
}
.orbit-one {
  top: 12%;
  left: 0;
}
.orbit-two {
  right: 0;
  top: 30%;
  background: #d9ed9b;
}
.orbit-three {
  bottom: 10%;
  left: 5%;
  background: var(--orange);
  color: white;
}
.discover,
.plans-section {
  padding: 100px 6vw;
  background: var(--paper);
}
.section-title {
  display: flex;
  justify-content: space-between;
  align-items: end;
}
.section-title h2,
.community h2,
.plans-section > h2,
.modal-card h2,
.panel h2 {
  margin: 5px 0;
  font: 500 clamp(38px, 5vw, 64px) Georgia;
  letter-spacing: -0.04em;
}
.filters {
  display: flex;
  gap: 9px;
  margin: 35px 0 20px;
  overflow: auto;
}
.filters button {
  white-space: nowrap;
  padding: 10px 16px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: none;
  color: var(--deep);
  font-weight: 700;
}
.filters button.active {
  background: var(--green);
  color: white;
}
.results-bar {
  margin-bottom: 24px;
  color: var(--muted);
  font-size: 13px;
}
.restaurant-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.restaurant-card {
  border: 1px solid var(--line);
  border-radius: 20px;
  background: white;
  overflow: hidden;
  transition: 0.2s;
}
.restaurant-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 50px #15392f18;
}
.card-image {
  height: 185px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #dbe9c5, #f3d4c6);
  font: italic 42px Georgia;
}
.card-body {
  padding: 20px;
}
.card-top,
.card-actions,
.panel-head {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  align-items: center;
}
.card-body h3 {
  margin: 0;
  font: 500 25px Georgia;
}
.rating,
.details {
  color: var(--orange);
  font-weight: 800;
}
.address,
.muted {
  color: var(--muted);
}
.address {
  font-size: 13px;
}
.tags {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin: 17px 0;
}
.tag {
  padding: 6px 9px;
  border-radius: 8px;
  background: #eef2e5;
  font-size: 10px;
  font-weight: 800;
}
.tag.owner {
  background: #f8dfd5;
}
.tag.community {
  background: #e1efd9;
}
.tag.both {
  background: #d9ed9b;
}
.details {
  border: 0;
  background: none;
}
.empty-state {
  text-align: center;
  padding: 70px;
}
.community {
  padding: 110px 6vw;
  display: grid;
  grid-template-columns: 0.7fr 1.3fr;
  gap: 8vw;
}
.community > div > p:not(.kicker) {
  color: var(--muted);
  line-height: 1.7;
}
.steps,
.plan-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.steps article,
.plan-grid article {
  padding: 25px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--paper);
}
.steps span,
.plan-grid span {
  color: var(--orange);
  font-size: 11px;
  font-weight: 900;
}
.steps strong {
  display: block;
  margin: 30px 0 12px;
  font: 500 22px Georgia;
}
.steps p,
.plan-grid p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}
.plans-section {
  text-align: center;
  background: #eef1e5;
}
.plan-grid {
  margin: 40px auto 20px;
  max-width: 1000px;
  text-align: left;
}
.plan-grid h3 {
  font: 500 28px Georgia;
}
.plan-grid strong {
  display: block;
  margin: 14px 0;
  font-size: 20px;
}
.plan-grid button {
  padding: 11px 15px;
  border: 0;
  border-radius: 9px;
  background: var(--green);
  color: white;
  font-weight: 800;
}
.plan-grid .featured {
  background: var(--green);
  color: white;
  transform: translateY(-10px);
}
.plan-grid .featured p {
  color: #dbe5db;
}
.plans-section > small {
  color: var(--muted);
}
.modal {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: grid;
  place-items: center;
  padding: 20px;
}
.modal[hidden] {
  display: none;
}
.modal-backdrop {
  position: absolute;
  inset: 0;
  background: #081c17aa;
  backdrop-filter: blur(6px);
}
.modal-card {
  position: relative;
  z-index: 1;
  width: min(720px, 100%);
  max-height: 90vh;
  overflow: auto;
  padding: 35px;
  border-radius: 24px;
  background: var(--paper);
  box-shadow: 0 35px 90px #0004;
}
.detail-card {
  width: min(1180px, 96vw);
  max-height: 96vh;
  padding: clamp(38px, 5vw, 76px);
  border-radius: 30px;
  background: #fffdf8;
}
.detail-card .close {
  z-index: 3;
  right: 24px;
  top: 20px;
}
#detail-content {
  max-width: 1040px;
  margin: 0 auto;
}
.restaurant-detail-name {
  position: static;
  display: block;
  margin: 0 0 14px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  font: 500 clamp(42px, 5vw, 68px) / 1 Georgia, serif;
  letter-spacing: -0.04em;
}
.restaurant-detail-address {
  position: static;
  display: flex;
  gap: 10px;
  align-items: center;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  color: #39443f;
  font-size: 18px;
}
.restaurant-detail-address span {
  color: #6f806c;
  font-size: 28px;
}
.restaurant-detail-services {
  margin: 18px 0 0;
}
.restaurant-gallery {
  position: relative;
  clear: both;
  margin: 24px 0 30px;
}
.restaurant-gallery-thumbs {
  display: flex;
  gap: 14px;
  padding: 2px 2px 12px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  cursor: grab;
}
.restaurant-gallery-thumbs:active {
  cursor: grabbing;
}
.restaurant-gallery-thumbs button {
  flex: 0 0 230px;
  overflow: hidden;
  height: 170px;
  padding: 0;
  border: 0;
  border-radius: 20px;
  background: #e9ece3;
  scroll-snap-align: start;
}
.restaurant-gallery-thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.restaurant-gallery-lightbox {
  position: fixed;
  inset: 4vh 4vw;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 56px;
  border-radius: 26px;
  background: rgba(8, 28, 23, 0.94);
  box-shadow: 0 35px 100px #0008;
}
.restaurant-gallery-lightbox[hidden] {
  display: none;
}
.restaurant-gallery-lightbox img {
  max-width: 100%;
  max-height: 100%;
  border-radius: 18px;
  object-fit: contain;
}
.restaurant-gallery-lightbox button {
  position: absolute;
  right: 22px;
  top: 14px;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: white;
  color: var(--deep);
  font-size: 30px;
}
.restaurant-gallery-empty {
  display: grid;
  min-height: 220px;
  margin: 28px 0;
  place-items: center;
  border: 1px dashed var(--line);
  border-radius: 22px;
  color: var(--muted);
  background: #f7f7f1;
}
.auth-card {
  width: min(460px, 100%);
}
.close {
  position: absolute;
  right: 18px;
  top: 12px;
  border: 0;
  background: none;
  font-size: 30px;
}
.auth-tabs {
  display: flex;
  gap: 5px;
  margin-bottom: 28px;
  padding: 5px;
  border-radius: 12px;
  background: #edf0e5;
}
.auth-tabs button {
  flex: 1;
  padding: 10px;
  border: 0;
  border-radius: 9px;
  background: none;
}
.auth-tabs .active {
  background: white;
  box-shadow: 0 3px 10px #0001;
}
.auth-links{display:flex;justify-content:space-between;gap:12px;margin-top:14px}.auth-links button,.auth-back{padding:7px 0;border:0;background:transparent;color:var(--green);font-size:12px;text-decoration:underline}.auth-back{display:block;margin:14px auto 0}.auth-action-result{margin-top:18px;padding:14px;border-radius:10px;background:#eef1e5;color:var(--deep);font-size:13px;overflow-wrap:anywhere}.auth-action-result a{color:var(--green);font-weight:800}
.modal-card label,
.form-grid label {
  display: block;
  margin: 16px 0;
  font-size: 12px;
  font-weight: 800;
}
.modal-card input,
.form-grid input {
  width: 100%;
  margin-top: 7px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: white;
}
.modal-card .solid {
  width: 100%;
}
.form-note {
  color: var(--muted);
  font-size: 12px;
}
.detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin: 26px 0;
}
.detail-grid > div {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 28px;
  background: linear-gradient(135deg, #faf9f3, #f1f2e9);
  border-radius: 22px;
}
.detail-grid > div > div {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.detail-icon {
  display: grid;
  flex: 0 0 54px;
  width: 54px;
  height: 54px;
  place-items: center;
  border-radius: 50%;
  background: #dce4d3;
  color: var(--green);
  font: 700 27px Georgia, serif;
}
.owner-note {
  margin: 20px 0 34px;
  padding: 22px 26px;
  border-radius: 18px;
  background: linear-gradient(110deg, #eff2e8, #e5eadc);
  font-size: 15px;
  line-height: 1.55;
}
.restaurant-reviews-section {
  margin-top: 38px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.restaurant-reviews-section > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.restaurant-reviews-section > header h3 {
  margin: 0;
  font: 500 36px Georgia, serif;
}
.restaurant-reviews-section > header span {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 50%;
  background: #eff1e8;
}
.restaurant-reviews-section .reviews > p {
  margin: 40px 0;
  padding: 70px 20px;
  border-radius: 18px;
  background: radial-gradient(circle at center, #f0f2e8, transparent 55%);
  color: var(--muted);
  text-align: center;
  font-size: 18px;
}
.account-view {
  height: calc(100vh - 76px);
  overflow: hidden;
  background: #f6f3eb;
}
.dashboard {
  position: relative;
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  background: white;
}
.dashboard aside {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  padding: 28px 20px;
  overflow-y: auto;
  overscroll-behavior: contain;
  border-right: 1px solid #e5e3da;
  background: #fbfaf5;
  color: var(--deep);
}
.dash-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font: 700 20px Georgia;
}
.build-version {
  padding: 4px 7px;
  border-radius: 999px;
  background: #e8eddd;
  color: #536548;
  font: 800 10px/1 system-ui, sans-serif;
  letter-spacing: .04em;
}
.dash-brand img {
  width: 38px;
  border-radius: 10px;
}
.dash-user {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 4px 0 25px;
  padding: 10px 8px 18px;
  border-bottom: 1px solid #e8e6dd;
}
.dash-user .account-avatar {
  width: 56px;
  height: 56px;
  flex: 0 0 56px;
  border: 1px solid #dddcd3;
  border-radius: 13px;
  color: var(--deep);
  background-color: #dfe7d7;
  background-position: center;
  background-size: cover;
  font-size: 18px;
}
.dash-user b { display: block; font-size: 15px; }
.dash-user small {
  display: block;
  margin-top: 3px;
  color: #6c766d;
}
.dashboard aside nav {
  display: grid;
  gap: 4px;
  padding-bottom: 18px;
}
.dashboard aside nav > span {
  margin: 18px 12px 5px;
  color: #858a85;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.dashboard aside nav button,
#dash-logout {
  padding: 12px;
  border: 0;
  border-radius: 9px;
  background: none;
  color: #253c2d;
  text-align: left;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.dashboard aside nav button.active {
  background: #e9eedf;
  color: var(--deep);
  box-shadow: none;
  transform: none;
}
.dashboard aside nav button:hover:not(.active) {
  background: #f0f1ea;
  color: var(--deep);
}
#dash-logout {
  margin-top: auto;
  flex: 0 0 auto;
  border-top: 1px solid #e4e3da;
  border-radius: 0;
}
.dash-content {
  position: relative;
  width: 100%;
  max-width: none;
  height: 100%;
  padding: 38px clamp(30px, 4vw, 66px) 80px;
  background: #fffefa;
  overflow-y: auto;
  overscroll-behavior: contain;
  scroll-behavior: auto;
}
.compact-action {
  width: auto;
  margin-top: 20px;
}
.my-reviews {
  display: grid;
  gap: 16px;
  margin-top: 26px;
}
.dashboard-review-card {
  position: relative;
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 20px;
  padding: 28px 18px 18px;
  border: 1px solid #e0e2d9;
  border-radius: 14px;
  background: #fff;
}
.dashboard-review-restaurant {
  display: grid;
  width: 150px;
  min-height: 150px;
  place-items: center;
  overflow: hidden;
  border-radius: 10px;
  color: var(--deep);
  background: #e6ebdf;
  font: 700 28px Georgia, serif;
}
.dashboard-review-restaurant img { width: 100%; height: 100%; object-fit: cover; }
.dashboard-review-content { display: grid; align-content: start; gap: 10px; }
.dashboard-review-title { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.dashboard-review-title h3 { margin: 0; font: 600 22px Georgia, serif; }
.dashboard-review-title > span { padding: 5px 9px; border-radius: 999px; color: #4f7647; background: #e9f1e3; font-size: 9px; }
.dashboard-review-content time { margin-left: 6px; color: var(--muted); font-size: 10px; }
.dashboard-review-content > small { color: var(--muted); }
.dashboard-review-editor {
  grid-column: 1 / -1;
  display: grid;
  gap: 14px;
  padding: 18px;
  border-top: 1px solid var(--line);
  background: #fbfcf8;
}
.dashboard-review-editor[hidden] { display: none; }
.dashboard-review-editor textarea {
  width: 100%;
  min-height: 120px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  resize: vertical;
}
.dashboard-review-edit-rating { display: flex; align-items: center; gap: 4px; }
.dashboard-review-edit-rating button {
  padding: 0;
  border: 0;
  color: #d7dbd0;
  background: transparent;
  font-size: 25px;
}
.dashboard-review-edit-rating button.active { color: #76945e; }
.edit-review-photo-manager {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.edit-review-photo-manager figure,
.edit-review-photo-manager .add-review-photo {
  position: relative;
  display: grid;
  width: 118px;
  height: 88px;
  margin: 0;
  place-items: center;
  overflow: hidden;
  border: 1px dashed #bec8b8;
  border-radius: 10px;
  color: var(--deep);
  background: white;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}
.edit-review-photo-manager figure img { width: 100%; height: 100%; object-fit: cover; }
.edit-review-photo-manager figure button {
  position: absolute;
  right: 5px;
  top: 5px;
  display: grid;
  width: 25px;
  height: 25px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: #b33d32;
  background: white;
}
.edit-review-photo-manager .add-review-photo span { font-size: 23px; font-weight: 400; }
.review-photo-limit { align-self: center; margin: 0; padding: 12px; border-radius: 9px; color: #6d704f; background: #f1f3e9; font-size: 10px; }
.dashboard .dash-content > .panel {
  display: none;
  position: relative;
  width: 100%;
  min-height: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
}
.dashboard .dash-content > .panel.active {
  display: block;
}
.restaurant-editor-page {
  transform-origin: center;
}
.restaurant-editor-page.slide-in {
  animation: restaurant-editor-slide .22s cubic-bezier(.2,.7,.3,1) both;
}
.editor-back {
  display: inline-flex;
  align-items: center;
  width: auto;
  margin: 0 0 24px;
  padding: 10px 15px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: white;
  color: var(--deep);
  text-decoration: none;
}
@keyframes restaurant-editor-slide {
  from {
    opacity: 0;
    transform: translateX(22px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
#restaurant-page-host #restaurant-form-wrap {
  display: block;
  max-width: 1100px;
}
.account-avatar {
  display: grid;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  place-items: center;
  overflow: hidden;
  border-radius: 50%;
  background: #dfe7d7;
  background-position: center;
  background-size: cover;
  color: var(--deep);
  font-weight: 900;
}
.account-avatar.has-image {
  color: transparent;
}
.account-avatar.large {
  width: 82px;
  height: 82px;
  flex-basis: 82px;
  font: 600 30px Georgia, serif;
}
.profile-identity {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 20px 0;
}
.profile-identity strong,
.profile-identity span {
  display: block;
}
.profile-identity strong {
  font-size: 20px;
}
.profile-identity span {
  margin-top: 5px;
  color: var(--muted);
  font-size: 13px;
}
.profile-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}
.profile-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 26px;
}
.profile-heading .kicker { margin: 0; color: var(--orange); }
.profile-heading h2 { margin: 8px 0 10px; color: var(--deep); font: 500 clamp(44px, 4vw, 62px) Georgia, serif; }
.profile-heading > div > p:last-child { margin: 0; color: var(--muted); font-size: 12px; }
.profile-security-note {
  display: flex !important;
  width: min(310px, 32%);
  height: auto !important;
  min-height: 94px !important;
  flex-direction: row !important;
  align-items: flex-start;
  gap: 13px;
  padding: 20px !important;
  overflow: visible !important;
  border: 1px solid #e2e2da !important;
  border-radius: 13px;
  background: #fff !important;
  color: var(--deep) !important;
  box-shadow: 0 4px 16px #17332408;
}
.profile-security-note i {
  display: grid;
  width: 35px;
  height: 35px;
  flex: 0 0 35px;
  place-items: center;
  border: 1px solid #9eb892;
  border-radius: 50%;
  color: #4c7b42;
  background: #f1f6eb;
  font-style: normal;
}
.profile-security-note b,
.profile-security-note span { display: block; }
.profile-security-note b { font-size: 12px; }
.profile-security-note span { margin-top: 8px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.profile-plan-card {
  display: grid;
  grid-template-columns: 180px 1fr auto;
  align-items: center;
  gap: 24px;
  margin-bottom: 24px;
  padding: 22px 26px;
  border: 1px solid #e1e0d8;
  border-radius: 14px;
  background: #fff;
}
.profile-plan-card > div:first-child span,
.profile-plan-card > div:first-child strong { display: block; }
.profile-plan-card > div:first-child span { margin-bottom: 6px; color: #627066; font-size: 12px; }
.profile-plan-card > div:first-child strong { color: var(--deep); font-size: 17px; }
.profile-plan-card .subscription-summary {
  justify-content: flex-end;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.profile-plan-card .subscription-summary strong { display: none; }
.profile-plan-card .subscription-summary span { font-size: 11px; }
.profile-information-card {
  padding: 26px;
  border: 1px solid #e1e0d8;
  border-radius: 14px;
  background: transparent;
  box-shadow: none;
}
.profile-information-card > header {
  position: static;
  display: flex;
  width: 100%;
  height: auto;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 25px;
  padding: 0;
  border: 0;
  background: transparent;
  backdrop-filter: none;
}
.profile-information-card h3 { margin: 0; color: var(--deep); font: 600 18px Georgia, serif; }
.profile-information-card header p { margin: 6px 0 0; color: var(--muted); font-size: 11px; }
.profile-information-layout { display: grid; grid-template-columns: 190px minmax(0, 650px); gap: 36px; align-items: start; }
.profile-photo-column { display: grid; justify-items: center; gap: 11px; }
.profile-photo-column .account-avatar.large { width: 132px; height: 132px; flex-basis: 132px; font-size: 40px; }
.profile-photo-column button { width: 100%; }
.profile-photo-column small { color: var(--muted); font-size: 9px; }
.profile-fields { display: grid; gap: 18px; }
.profile-fields > label { display: grid; gap: 7px; color: #304236; font-size: 11px; font-weight: 750; }
.profile-edit-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 78px;
  overflow: hidden;
  border: 1px solid #dcddd6;
  border-radius: 9px;
  background: #fff;
}
.profile-edit-field input {
  min-height: 43px;
  padding: 9px 13px;
  border: 0;
  border-radius: 0;
  background: white;
  font-size: 12px;
}
.profile-edit-field input[readonly] { color: #5d665f; background: #fafaf7; cursor: default; }
.profile-edit-field button {
  border: 0;
  border-left: 1px solid #dcddd6;
  color: var(--deep);
  background: #f3f5ee;
  font-size: 10px;
  font-weight: 850;
}
.profile-edit-field button.editing { color: #9e3f34; background: #fff1ee; }
.profile-verified { margin: -8px 0 0; color: #4e7a42; font-size: 10px; }
.profile-verified.pending { color: #a06b2d; }
.profile-information-card .profile-actions { justify-content: flex-end; margin-top: 24px; }
.profile-information-card .profile-actions button { width: auto; min-width: 150px; }
.profile-information-card .profile-actions button:disabled { cursor: not-allowed; opacity: .45; }
.profile-actions .outline {
  margin: 0;
}
.form-grid {
  max-width: 650px;
}
.form-grid.two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 16px;
}
.form-grid .wide {
  grid-column: 1/-1;
}
.coordinates {
  display: flex;
  gap: 12px;
  align-items: end;
  padding-bottom: 16px;
  font-size: 11px;
  color: var(--muted);
}
.owned-list {
  display: grid;
  gap: 14px;
  margin: 18px 0;
}
.owned-list article {
  display: flex;
  justify-content: space-between;
  min-height: 180px;
  align-items: stretch;
  gap: 24px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 3px 14px #17332408;
}
.owned-main {
  display: flex;
  flex: 1;
  min-width: 0;
  align-items: stretch;
  gap: 22px;
}
.owned-thumb {
  display: grid;
  width: 184px;
  height: 160px;
  flex: 0 0 184px;
  place-items: center;
  border-radius: 15px;
  object-fit: cover;
  background: #f1eee6;
}
.owned-thumb.placeholder {
  background: #e7ebdf;
  color: var(--deep);
  font: 600 19px Georgia, serif;
}
.owned-list small {
  display: block;
  margin-top: 5px;
  color: var(--muted);
}
.owned-list span {
  font-size: 11px;
  color: var(--olive);
}
.owned-copy {
  display: grid;
  flex: 1;
  min-width: 0;
  align-content: start;
  gap: 12px;
}
.owned-title {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}
.owned-title b {
  display: inline-block;
  margin-right: 10px;
  font: 600 25px Georgia, serif;
}
.owned-title small { margin-top: 9px; font-size: 11px; }
.publication-badge,
.owned-amenity {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  background: #eee9df;
}
.publication-badge.published {
  background: #e5efdc;
  color: #426329;
}
.owned-amenities,
.owned-stats,
.amenity-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.owned-amenity {
  color: var(--deep) !important;
  font-weight: 700;
}
.owned-stats {
  gap: 24px;
  padding-top: 7px;
  border-top: 0;
}
.owned-stats span {
  color: var(--muted);
  font-size: 11px;
}
.owned-stats b {
  color: var(--deep);
  font-size: 11px;
}
.amenity-stat {
  display: inline-flex;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--deep) !important;
}
.amenity-stat i {
  color: var(--muted);
  font-style: normal;
}
.owned-actions {
  display: flex;
  min-width: 190px;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
}
.owned-edit-link,
.owned-public-link,
#new-restaurant {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}
.owned-public-link,
.owned-edit-link,
.owned-actions .danger {
  width: 100%;
  min-height: 42px;
  justify-content: center;
  border: 1px solid #dbddd5;
  border-radius: 9px;
  background: white;
  color: var(--deep);
  font-size: 11px;
  font-weight: 800;
}
.owned-actions .danger {
  color: #e44936;
  border-color: #f09b8e;
}
.panel-intro { margin: 8px 0 0; color: var(--muted); font-size: 12px; }
#panel-restaurants .panel-head { align-items: center; margin-bottom: 24px; }
#panel-restaurants .panel-head h2 { margin: 4px 0 0; font: 500 clamp(42px, 4vw, 62px) Georgia, serif; color: var(--deep); }
#panel-restaurants .kicker { color: var(--orange); }
#panel-restaurants #new-restaurant { min-width: 205px; min-height: 50px; justify-content: center; border-radius: 10px; }
.owned-summary {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 0 0 22px;
  padding: 18px 8px;
  border: 1px solid #e2e1d9;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 3px 14px #17332408;
}
.owned-summary article {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 62px;
  padding: 5px 22px;
  border-right: 1px solid #e5e4dc;
}
.owned-summary article:last-child { border-right: 0; }
.owned-summary i {
  display: grid;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  place-items: center;
  border-radius: 50%;
  color: var(--deep);
  background: #eaf0df;
  font-size: 24px;
  font-style: normal;
}
.owned-summary article:nth-child(even) i { background: #fff0e2; }
.owned-summary b { display: block; margin-bottom: 3px; color: var(--deep); font-size: 20px; }
.owned-summary span { color: #4f5951; font-size: 11px; line-height: 1.35; }
.empty-mini {
  padding: 35px;
  text-align: center;
  border: 1px dashed var(--line);
  border-radius: 15px;
  color: var(--muted);
}
#restaurant-form-wrap {
  padding: 0;
}
#panel-restaurants > #restaurant-form-wrap {
  display: none !important;
}
.restaurant-editor-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
}
.restaurant-editor-card {
  width: min(1100px, 96vw);
  max-height: 96vh;
  padding: 44px 50px;
  background: white;
}
@media (max-width: 760px) {
  .owned-list article,
  .owned-main {
    flex-direction: column;
  }
  .owned-thumb {
    width: 100%;
    height: 180px;
    flex-basis: 180px;
  }
  .owned-actions {
    flex-direction: row;
  }
}
.plan-gate {
  margin: 24px 0;
  padding: 28px;
  border: 1px solid #dce3d3;
  border-radius: 16px;
  background: #f3f6ec;
}
.plan-gate strong {
  font: 500 25px Georgia, serif;
}
.plan-gate p {
  max-width: 620px;
  color: var(--muted);
  line-height: 1.55;
}
.plan-gate .solid {
  width: auto;
}
#restaurant-map {
  width: 100%;
  height: 360px;
  min-height: 360px;
  margin: 12px 0 28px;
  border-radius: 16px;
  overflow: hidden;
  z-index: 1;
}
.map-help {
  margin: 10px 0;
  color: var(--muted);
  font-size: 12px;
}
.plan-grid.compact {
  grid-template-columns: repeat(3, 1fr);
}
.plan-grid.compact article {
  padding: 18px;
}
.mobile-close {
  display: none;
}
footer {
  padding: 30px 6vw;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  color: var(--muted);
  border-top: 1px solid var(--line);
  font-size: 12px;
}
#toast {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 100;
  padding: 14px 18px;
  border-radius: 12px;
  background: var(--deep);
  color: white;
  opacity: 0;
  transform: translateY(10px);
  transition: 0.2s;
}
#toast.show {
  opacity: 1;
  transform: none;
}
@media (max-width: 900px) {
  header nav {
    display: none;
  }
  #mobile-menu {
    display: block;
  }
  .hero {
    grid-template-columns: 1fr;
  }
  .hero-art {
    min-height: 390px;
  }
  .restaurant-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .community {
    grid-template-columns: 1fr;
  }
  .search-box {
    grid-template-columns: 1fr;
  }
  .search-box label + label {
    border-left: 0;
    border-top: 1px solid var(--line);
  }
  .steps {
    grid-template-columns: 1fr;
  }
  .dashboard {
    grid-template-columns: 220px 1fr;
  }
  .dash-content {
    padding: 45px 28px;
  }
  .plan-grid.compact {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 600px) {
  header {
    height: 66px;
    padding: 0 17px;
  }
  .brand img {
    width: 38px;
    height: 38px;
  }
  .user-trigger b {
    display: none;
  }
  .hero {
    padding: 40px 20px 65px;
  }
  .hero h1 {
    font-size: 54px;
  }
  .hero-copy > p:not(.kicker) {
    font-size: 15px;
  }
  .hero-art {
    min-height: 310px;
  }
  .hero-logo {
    width: 255px;
  }
  .orbit {
    font-size: 10px;
  }
  .discover,
  .community,
  .plans-section {
    padding: 70px 20px;
  }
  .section-title {
    display: block;
  }
  .outline {
    margin-top: 15px;
  }
  .restaurant-grid,
  .plan-grid {
    grid-template-columns: 1fr;
  }
  .plan-grid .featured {
    transform: none;
  }
  .dashboard {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 0;
  }
  .dashboard aside {
    position: static;
    height: auto;
    overflow: visible;
    padding: 16px 20px;
  }
  .dash-brand,
  .dash-user {
    display: none;
  }
  .dashboard aside nav {
    display: flex;
    overflow: auto;
  }
  .dashboard aside nav button {
    white-space: nowrap;
  }
  #dash-logout {
    display: none;
  }
  .dash-content {
    height: calc(100% - 65px);
    padding: 45px 20px 30px;
  }
  .form-grid.two {
    display: block;
  }
  .panel-head {
    align-items: start;
  }
  .panel-head .solid {
    width: auto;
  }
  .owned-list article {
    align-items: start;
    gap: 10px;
  }
  .modal {
    padding: 10px;
  }
  .modal-card {
    padding: 28px 20px;
  }
  .detail-grid {
    grid-template-columns: 1fr;
  }
  footer {
    flex-direction: column;
    padding: 28px 20px;
  }
}

/* Full restaurant detail */
#detail-modal {
  inset: 76px 0 0;
  display: block;
  padding: 0;
  overflow-y: auto;
  background: #fbfaf6;
}
#detail-modal .modal-backdrop { display: none; }
#detail-modal .detail-card {
  width: 100%;
  max-height: none;
  min-height: 100%;
  margin: 0;
  padding: 0;
  overflow: visible;
  border-radius: 0;
  background: #fbfaf6;
  box-shadow: none;
}
#detail-content {
  max-width: none;
  margin: 0;
}
.detail-close {
  position: fixed !important;
  z-index: 12 !important;
  top: 92px !important;
  right: 24px !important;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px solid var(--line) !important;
  border-radius: 50%;
  background: white !important;
  box-shadow: 0 8px 25px #1833231c;
  font-size: 23px !important;
}
.restaurant-page {
  width: min(1440px, calc(100% - 64px));
  margin: 0 auto;
  padding: 34px 0 70px;
}
.restaurant-breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 28px;
  color: var(--muted);
  font-size: 12px;
}
.restaurant-breadcrumb button {
  padding: 0;
  border: 0;
  color: inherit;
  background: none;
}
.restaurant-breadcrumb strong { color: var(--deep); }
.restaurant-overview {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(380px, .92fr);
  gap: 38px;
  align-items: start;
}
.restaurant-hero-gallery {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 9px;
}
.restaurant-hero-main {
  overflow: hidden;
  width: 100%;
  height: 420px;
  padding: 0;
  border: 0;
  border-radius: 18px;
  background: #e9ece3;
}
.restaurant-hero-main img,
.restaurant-hero-thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.restaurant-hero-thumbs {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 9px;
}
.restaurant-hero-thumbs button {
  overflow: hidden;
  height: 78px;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: #e9ece3;
}
.restaurant-photo-count {
  position: absolute;
  right: 14px;
  top: 375px;
  padding: 7px 11px;
  border-radius: 999px;
  color: white;
  background: #173324d9;
  font-size: 11px;
  font-weight: 800;
}
.restaurant-hero-empty {
  display: grid;
  min-height: 420px;
  place-items: center;
  border: 1px dashed var(--line);
  border-radius: 18px;
  color: var(--muted);
  background: #f0f1e9;
}
.restaurant-summary { padding: 7px 0; }
.verified-line span {
  display: inline-flex;
  padding: 8px 12px;
  border-radius: 999px;
  color: #496341;
  background: #edf2e5;
  font-size: 11px;
  font-weight: 800;
}
.summary-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin: 18px 0 12px;
}
.summary-title-row h1 {
  margin: 0;
  font: 600 clamp(42px, 4vw, 65px)/.95 Georgia, serif;
  letter-spacing: -.04em;
}
.summary-title-row .entity-badge b { display: none; }
.summary-title-row .entity-badge {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.summary-title-row .entity-badge img { width: 54px; height: 54px; }
.summary-rating {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 18px 0;
}
.summary-rating strong { color: #d98b22; font-size: 22px; }
.summary-rating span { color: var(--muted); font-size: 12px; }
.summary-rating i { width: 1px; height: 34px; background: var(--line); }
.summary-rating b { font-size: 13px; }
.restaurant-contact {
  display: grid;
  gap: 14px;
  margin: 24px 0;
  padding: 0;
  list-style: none;
  font-size: 13px;
}
.restaurant-contact li { display: flex; gap: 10px; }
.summary-actions { display: flex; justify-content: flex-end; gap: 10px; }
.restaurant-tabs {
  position: sticky;
  z-index: 8;
  top: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 34px 0 24px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}
.restaurant-tabs a {
  padding: 18px;
  text-align: center;
  text-decoration: none;
  font-size: 12px;
  font-weight: 800;
}
.restaurant-tabs a:hover { background: #f1f4eb; }
.restaurant-detail-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.restaurant-detail-column { display: grid; align-content: start; gap: 18px; }
.detail-panel {
  padding: 24px;
  border: 1px solid #e0e2d8;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 7px 26px #18332308;
}
.detail-panel h2 {
  margin: 0 0 8px;
  font: 600 23px Georgia, serif;
}
.detail-panel > p { color: var(--muted); font-size: 12px; line-height: 1.5; }
.offer-list { display: grid; gap: 17px; margin-top: 22px; }
.offer-list > div { display: flex; gap: 12px; }
.offer-list i {
  display: grid;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 50%;
  color: #4f743e;
  background: #edf3e5;
  font-style: normal;
}
.offer-list span { display: grid; gap: 3px; }
.offer-list small { color: var(--muted); }
.practical-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 20px 0;
  font-size: 12px;
}
#restaurant-detail-map {
  height: 280px;
  margin-top: 22px;
  overflow: hidden;
  border-radius: 14px;
  background: #e7ecdf;
}
.confidence-panel {
  background: linear-gradient(135deg, #fbfcf4, #edf2df);
}
.confidence-panel > div { display: flex; align-items: center; gap: 16px; margin: 20px 0; }
.confidence-panel > div > span {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border: 2px solid #75985f;
  border-radius: 50%;
  color: #52753f;
  font-size: 34px;
}
.confidence-panel strong { color: #547c3e; font: 600 28px Georgia, serif; }
.confidence-panel strong small { display: block; color: var(--deep); font: 700 14px Inter, sans-serif; }
.community-panel > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 22px 0; }
.community-panel span { padding: 13px; border-radius: 12px; background: #f5f6ef; font-size: 11px; }
.community-panel span b { display: block; margin-bottom: 4px; font-size: 17px; }
.community-panel a { display: block; text-align: right; font-size: 12px; font-weight: 800; }
.hours-panel > div { display: flex; justify-content: space-between; padding: 8px 0; font-size: 12px; }
.hours-panel > div + div { border-top: 1px solid #eef0e9; }
.customer-photos { margin-top: 18px; }
.customer-photos > div:first-child { display: flex; justify-content: space-between; align-items: end; }
.customer-photos > div:first-child span { color: var(--muted); font-size: 12px; }
.customer-photo-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-top: 20px;
}
.customer-photo-grid button {
  position: relative;
  overflow: hidden;
  height: 190px;
  padding: 0;
  border: 0;
  border-radius: 14px;
  background: #eef0e8;
}
.customer-photo-grid img { width: 100%; height: 100%; object-fit: cover; }
.customer-photo-grid small {
  position: absolute;
  left: 10px;
  bottom: 10px;
  padding: 5px 8px;
  border-radius: 999px;
  color: white;
  background: #183323cc;
}
.restaurant-cta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 18px;
  padding: 25px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(110deg, #fff, #f2f5e8);
}
.restaurant-cta > div { padding: 0 30px; }
.restaurant-cta > div + div { border-left: 1px solid var(--line); }
.restaurant-cta h2 { margin: 0; font: 600 21px Georgia, serif; }
.restaurant-cta p { color: var(--muted); font-size: 12px; }
.restaurant-cta a, .restaurant-cta button { display: inline-block; width: auto; }
.restaurant-page .restaurant-reviews-section { background: #fff; }
.restaurant-page > .restaurant-report { display: block; margin: 18px auto 0; }
@media (max-width: 980px) {
  .restaurant-page { width: min(100% - 32px, 760px); }
  .restaurant-overview,
  .restaurant-detail-columns { grid-template-columns: 1fr; }
  .restaurant-hero-main { height: 360px; }
  .restaurant-photo-count { top: 315px; }
}
@media (max-width: 620px) {
  .restaurant-page { width: min(100% - 24px, 520px); padding-top: 22px; }
  .restaurant-breadcrumb { padding-right: 45px; overflow-x: auto; white-space: nowrap; }
  .restaurant-hero-main { height: 270px; }
  .restaurant-photo-count { top: 225px; }
  .restaurant-hero-thumbs { display: flex; overflow-x: auto; }
  .restaurant-hero-thumbs button { flex: 0 0 105px; }
  .summary-title-row h1 { font-size: 42px; }
  .restaurant-tabs { grid-template-columns: repeat(2, 1fr); }
  .practical-grid,
  .community-panel > div,
  .customer-photo-grid,
  .restaurant-cta { grid-template-columns: 1fr 1fr; }
  .customer-photo-grid button { height: 145px; }
  .restaurant-cta { grid-template-columns: 1fr; }
  .restaurant-cta > div { padding: 14px 0; }
  .restaurant-cta > div + div { border-top: 1px solid var(--line); border-left: 0; }
  .detail-close { top: 86px !important; right: 12px !important; }
}

/* Restaurant management workspace */
html.restaurant-editor-route body > header,
html.restaurant-editor-route body > main {
  visibility: hidden;
}
body.restaurant-editor-active > header {
  display: none;
}
body.restaurant-editor-active > main {
  display: none;
}
body.restaurant-editor-active .account-view {
  height: 100vh;
}
.dashboard:has(#panel-restaurant-editor.active) {
  grid-template-columns: 1fr;
}
.dashboard:has(#panel-restaurant-editor.active) > aside {
  display: none;
}
.dashboard:has(#panel-restaurant-editor.active) .dash-content {
  padding: 0;
  overflow: hidden;
}
.dashboard .dash-content > #panel-restaurant-editor.active {
  height: 100%;
  min-height: 0;
  overflow: hidden;
  background: #f8f8f4;
}
.restaurant-editor-page.slide-in { animation: none; }
.restaurant-editor-shell {
  display: grid;
  grid-template-columns: 245px minmax(0, 1fr);
  height: 100%;
  min-height: 0;
}
.dashboard .restaurant-editor-sidebar {
  display: flex;
  height: 100%;
  min-height: 0;
  padding: 26px 18px;
  overflow-y: auto;
  color: var(--deep);
  background: linear-gradient(180deg, #f8f5eb, #f2f0e7);
  border-right: 1px solid #e1e1d8;
}
.restaurant-editor-sidebar .editor-back {
  margin: 0 0 22px;
  padding: 8px 10px;
  border: 0;
  background: transparent;
  font-size: 12px;
  font-weight: 800;
}
.editor-restaurant-card {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 12px;
  border: 1px solid #dedfd5;
  border-radius: 13px;
  background: #fff;
}
.editor-restaurant-card > span {
  display: grid;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  place-items: center;
  border-radius: 9px;
  color: white;
  background: var(--green);
  background-position: center;
  background-size: cover;
  font-weight: 900;
}
.editor-restaurant-card > span.has-image { color: transparent; }
.editor-restaurant-card div { min-width: 0; }
.editor-restaurant-card b,
.editor-restaurant-card small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.editor-restaurant-card small { margin-top: 5px; color: var(--muted); font-size: 10px; }
.dashboard .restaurant-editor-sidebar nav {
  display: grid;
  gap: 6px;
  margin-top: 22px;
}
.dashboard .restaurant-editor-sidebar nav button {
  padding: 12px;
  border: 0;
  border-radius: 9px;
  color: #33443a;
  background: transparent;
  text-align: left;
  font-size: 12px;
  font-weight: 750;
}
.dashboard .restaurant-editor-sidebar nav button.active,
.dashboard .restaurant-editor-sidebar nav button:hover {
  color: var(--deep);
  background: #e5eadb;
  box-shadow: none;
  transform: none;
}
.editor-help {
  margin-top: auto;
  padding: 14px;
  border-radius: 12px;
  background: #fffdf7;
  font-size: 11px;
}
.editor-help p { margin-bottom: 0; color: var(--muted); line-height: 1.45; }
.restaurant-editor-workspace {
  display: grid;
  grid-template-rows: 72px minmax(0, 1fr);
  min-width: 0;
  min-height: 0;
}
.restaurant-editor-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 0 28px;
  border-bottom: 1px solid #e1e1d8;
  background: #fff;
}
.restaurant-editor-topbar > div { display: flex; align-items: center; gap: 13px; }
.restaurant-editor-topbar h2 { margin: 0; font: 800 21px Inter, sans-serif; }
.restaurant-editor-topbar span {
  padding: 7px 11px;
  border-radius: 8px;
  color: #537047;
  background: #eef3e7;
  font-size: 10px;
  font-weight: 800;
}
.restaurant-editor-columns {
  display: grid;
  grid-template-columns: minmax(520px, 1.08fr) minmax(360px, .72fr);
  gap: 22px;
  min-height: 0;
  padding: 22px;
  overflow-y: auto;
}
.restaurant-editor-shell.summary-active .restaurant-editor-columns {
  grid-template-columns: minmax(0, 1fr);
}
.restaurant-editor-shell.summary-active .editor-preview-column {
  display: none;
}
.restaurant-editor-shell.summary-active .editor-main-column {
  width: min(980px, 100%);
  margin: 0 auto;
}
.editor-main-column {
  min-width: 0;
}
#restaurant-page-host #restaurant-form-wrap {
  max-width: none;
}
#restaurant-page-host .restaurant-editor-head {
  display: none;
}
#restaurant-page-host #restaurant-form {
  display: grid;
  gap: 17px;
}
#editor-basic { order: 1; }
#editor-location { order: 2; }
#editor-media { order: 3; }
#editor-amenities { order: 4; }
#restaurant-page-host .form-actions { order: 5; }
.editor-form-section {
  min-height: 0;
}
.editor-form-section[hidden] { display: none !important; }
.editor-section-heading { margin: 0 0 12px; }
.editor-section-heading h3 {
  margin: 0;
  font: 600 22px Georgia, serif;
}
.editor-section-heading p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.editor-card {
  max-width: none;
  padding: 18px;
  border: 1px solid #dfe1d7;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 4px 18px #18332307;
}
#restaurant-page-host .form-grid.two {
  grid-template-columns: 1fr 1fr;
  max-width: none;
}
#restaurant-page-host .modal-card label {
  margin: 0;
}
#restaurant-page-host .form-grid label { margin: 0 0 14px; }
#restaurant-page-host .media-manager {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(190px, .5fr);
  gap: 15px;
  align-items: center;
}
#restaurant-page-host .image-gallery {
  margin-top: 12px;
  padding: 12px;
  border-radius: 12px;
  background: #f1f2eb;
}
#restaurant-page-host .map-toolbar {
  margin-top: 0;
}
#restaurant-page-host #restaurant-map {
  height: 310px;
  border-radius: 13px;
}
#editor-location .coordinates {
  align-items: center;
  padding: 0 0 12px;
}
.map-coordinate-label {
  margin: 0 0 10px;
  padding: 9px 12px;
  border-radius: 9px;
  color: #7a6451;
  background: #f5eee5;
  font-size: 10px;
  font-weight: 800;
}
.map-coordinate-label.confirmed {
  color: #46653e;
  background: #eaf2e4;
}
#restaurant-map .leaflet-marker-icon {
  filter: drop-shadow(0 5px 5px #17332455);
}
#restaurant-page-host fieldset {
  margin: 0;
  border: 0;
}
#restaurant-page-host fieldset legend {
  margin-bottom: 13px;
  font-weight: 900;
}
.editor-hours-fieldset {
  margin-top: 18px !important;
  padding-top: 18px !important;
  border-top: 1px solid var(--line) !important;
}
#restaurant-page-host .form-actions {
  position: sticky;
  z-index: 5;
  bottom: -22px;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 14px 0;
  background: #f8f8f4e8;
  backdrop-filter: blur(8px);
}
#restaurant-page-host .form-actions .solid { width: auto; }
.dashboard .editor-preview-column {
  position: sticky;
  top: 0;
  display: grid;
  align-content: start;
  gap: 18px;
  height: fit-content;
  padding: 0;
  overflow: visible;
  color: var(--deep);
  background: transparent;
}
.editor-public-preview,
.editor-progress-card {
  padding: 18px;
  border: 1px solid #dfe1d7;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 4px 18px #18332307;
}
.editor-public-preview {
  padding: 16px;
}
.editor-public-preview h3,
.editor-progress-card h3 { margin: 0 0 14px; font: 600 19px Georgia, serif; }
.editor-preview-image {
  display: grid;
  height: 190px;
  place-items: center;
  border-radius: 12px;
  color: white;
  background: linear-gradient(135deg, #2d5238, #78934e);
  background-position: center;
  background-size: cover;
  font: 700 45px Georgia, serif;
}
.editor-preview-image.has-image { color: transparent; }
.editor-preview-profile { display: grid; grid-template-columns: 54px 1fr; gap: 12px; align-items: center; padding: 13px 4px 10px; }
.editor-preview-thumb { display: grid; width: 54px; height: 54px; place-items: center; border-radius: 9px; color: white; background: linear-gradient(135deg, #2d5238, #78934e) center / cover; font: 700 21px Georgia, serif; }
.editor-preview-thumb.has-image { color: transparent; }
.editor-preview-title > div:first-child { display: flex; align-items: center; gap: 8px; }
.editor-preview-title h2 { margin: 0; font: 600 20px Georgia, serif; }
.editor-preview-title > div:first-child span { padding: 4px 7px; border-radius: 999px; color: #496341; background: #edf2e5; font-size: 7px; font-weight: 850; }
.editor-preview-reputation { display: flex; align-items: center; gap: 6px; margin-top: 7px; }
.editor-preview-reputation b { color: #ed9c22; font-size: 12px; }
.editor-preview-reputation small { color: var(--muted); font-size: 8px; }
.editor-preview-reputation i { margin-left: 8px; color: #3f7040; font-style: normal; }
.editor-preview-reputation strong { font-size: 9px; }
#editor-preview-amenities { display: flex; flex-wrap: wrap; gap: 6px; }
#editor-preview-amenities span {
  padding: 5px 8px;
  border-radius: 999px;
  background: #edf1e6;
  font-size: 9px;
  font-weight: 800;
}
#editor-preview-amenities small { color: var(--muted); }
.editor-preview-meta { display: grid; gap: 7px; padding: 10px 4px 3px; border-top: 1px solid #eef0e9; }
.editor-preview-meta p { margin: 0; color: #687168; font-size: 9px; }
.editor-preview-meta .open { color: #4e7b43; font-weight: 750; }
.editor-progress-card > p { color: var(--muted); font-size: 11px; }
.editor-progress-card ul { display: grid; gap: 13px; padding: 0; list-style: none; }
.editor-progress-card li { position: relative; padding-left: 25px; font-size: 11px; font-weight: 750; }
.editor-progress-card li::before {
  content: "−";
  position: absolute;
  left: 0;
  display: grid;
  width: 16px;
  height: 16px;
  place-items: center;
  border-radius: 4px;
  color: #7f877d;
  background: #e9ebe5;
}
.editor-progress-card li.complete::before {
  content: "✓";
  color: white;
  background: #528044;
}
.editor-progress-total { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center; margin-top: 18px; padding-top: 16px; border-top: 1px solid #eceee7; font-size: 9px; font-weight: 800; }
.editor-progress-total i { height: 5px; overflow: hidden; border-radius: 999px; background: #e9ece5; }
.editor-progress-total b { display: block; width: 0; height: 100%; border-radius: inherit; background: #497c3e; transition: width .25s ease; }
#editor-view-public-bottom { width: 100%; margin-top: 15px; }

.restaurant-photo-manager { display: grid; gap: 18px; margin-top: 16px; }
#restaurant-images { display: none !important; }
.restaurant-photo-group { display: grid; gap: 12px; padding: 18px; border: 1px solid #dfe1d7; border-radius: 14px; background: #fff; }
.restaurant-photo-group > h4, .restaurant-photo-group > div > h4 { margin: 0; font: 700 16px Georgia, serif; }
.restaurant-photo-group > div > p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.restaurant-photo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.restaurant-photo-card, .restaurant-photo-add { position: relative; min-height: 138px; overflow: hidden; border: 1px dashed #bcc4b7; border-radius: 12px; background: #f8f9f5; }
.restaurant-photo-card.primary { min-height: 260px; }
.restaurant-photo-card img { width: 100%; height: 100%; min-height: inherit; object-fit: cover; }
.restaurant-photo-card > span { position: absolute; left: 9px; bottom: 9px; padding: 5px 8px; border-radius: 999px; color: white; background: #173324d9; font-size: 8px; font-weight: 850; }
.restaurant-photo-card > button { position: absolute; top: 8px; right: 8px; display: grid; width: 28px; height: 28px; padding: 0; place-items: center; border: 0; border-radius: 50%; color: #8f291f; background: #fff; box-shadow: 0 3px 12px #17332430; font-size: 18px; }
.restaurant-photo-card[draggable=true] { cursor: grab; }
.restaurant-photo-card.dragging { opacity: .45; }
.restaurant-photo-add { display: grid; padding: 20px; place-items: center; align-content: center; color: var(--deep); cursor: pointer; }
.restaurant-photo-add.primary-add { min-height: 230px; }
.restaurant-photo-add b { font-size: 30px; font-weight: 400; }
.restaurant-photo-add span { margin-top: 8px; font-weight: 850; }
.restaurant-photo-add small { margin-top: 4px; color: var(--muted); }
.restaurant-photo-upgrade { grid-column: 1 / -1; display: grid; gap: 6px; padding: 16px; border-radius: 11px; color: #46613e; background: #edf2e5; }
.restaurant-photo-upgrade span { font-size: 10px; }
.restaurant-photo-upgrade button { justify-self: start; margin-top: 4px; }
.editor-summary-view[hidden] { display: none !important; }
.editor-summary-hero {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  gap: 22px;
  padding: 20px;
  border: 1px solid #dfe1d7;
  border-radius: 15px;
  background: #fff;
}
#editor-summary-image {
  display: grid;
  min-height: 170px;
  place-items: center;
  border-radius: 12px;
  color: white;
  background: linear-gradient(135deg, #31543f, #8aa45f);
  background-position: center;
  background-size: cover;
  font: 700 46px Georgia, serif;
}
#editor-summary-image.has-image { color: transparent; }
.editor-summary-hero > div:last-child { align-self: center; }
.editor-summary-hero > div > span {
  display: inline-flex;
  padding: 6px 9px;
  border-radius: 999px;
  color: #4d7042;
  background: #edf3e7;
  font-size: 9px;
  font-weight: 850;
}
.editor-summary-hero h2 { margin: 12px 0 5px; font: 600 32px Georgia, serif; }
.editor-summary-hero p { margin: 0 0 14px; color: var(--muted); font-size: 12px; }
#editor-summary-amenities { display: flex; flex-wrap: wrap; gap: 6px; }
#editor-summary-amenities span {
  padding: 6px 8px;
  border-radius: 999px;
  background: #f0f2eb;
  font-size: 9px;
  font-weight: 750;
}
#editor-summary-amenities small { color: var(--muted); }
.editor-summary-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 16px;
}
.editor-summary-grid article {
  display: grid;
  gap: 7px;
  padding: 18px;
  border: 1px solid #dfe1d7;
  border-radius: 13px;
  background: #fff;
}
.editor-summary-grid span { color: #657166; font-size: 10px; font-weight: 850; text-transform: uppercase; }
.editor-summary-grid b { font-size: 15px; }
.editor-summary-grid small { color: var(--muted); }
@media (max-width: 1050px) {
  .profile-heading { align-items: flex-start; }
  .profile-security-note { width: 36%; }
  .profile-plan-card { grid-template-columns: 150px 1fr; }
  .profile-plan-card > button { grid-column: 2; justify-self: end; }
  .owned-summary { grid-template-columns: 1fr 1fr; }
  .owned-summary article:nth-child(2) { border-right: 0; }
  .owned-summary article:nth-child(-n+2) { border-bottom: 1px solid #e5e4dc; }
  .restaurant-editor-columns { grid-template-columns: 1fr; }
  .editor-preview-column { position: static; grid-row: 1; grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .profile-heading { flex-direction: column; }
  .profile-security-note { width: 100%; }
  .profile-plan-card { grid-template-columns: 1fr; }
  .profile-plan-card > button { grid-column: auto; justify-self: stretch; }
  .profile-plan-card .subscription-summary { justify-content: flex-start; }
  .profile-plan-card .subscription-summary span { text-align: left; }
  .profile-information-layout { grid-template-columns: 1fr; }
  .profile-photo-column { width: min(220px, 100%); margin: 0 auto; }
  .profile-edit-field { grid-template-columns: minmax(0, 1fr) 70px; }
  .owned-summary { grid-template-columns: 1fr; }
  .owned-summary article { border-right: 0; border-bottom: 1px solid #e5e4dc; }
  .owned-summary article:last-child { border-bottom: 0; }
  .owned-list article,
  .owned-main { flex-direction: column; }
  .owned-thumb { width: 100%; height: 180px; flex-basis: auto; }
  .owned-actions { width: 100%; }
  .restaurant-editor-shell { grid-template-columns: 1fr; }
  .dashboard .restaurant-editor-sidebar { display: none; }
  .restaurant-editor-topbar { padding: 0 14px; }
  .restaurant-editor-topbar span,
  #editor-public-preview { display: none; }
  .restaurant-editor-columns { padding: 14px; }
  .editor-preview-column { grid-template-columns: 1fr; }
  .editor-progress-card { display: none; }
  #restaurant-page-host .form-grid.two,
  #restaurant-page-host .media-manager { grid-template-columns: 1fr; }
  .editor-summary-hero,
  .editor-summary-grid { grid-template-columns: 1fr; }
}

/* Local landing refresh */
.build-version { color: var(--orange); font: 800 10px/1 Inter, sans-serif; }
.header-register,
.primary {
  padding: 11px 20px;
  border: 0;
  border-radius: 999px;
  color: white;
  background: var(--deep);
  font-weight: 800;
}
.sticky-search {
  width: min(560px, 42vw);
  display: flex;
  padding: 5px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: white;
  box-shadow: 0 8px 30px #18332312;
}
.sticky-search input {
  flex: 1;
  min-width: 0;
  padding: 8px 14px;
  border: 0;
  outline: 0;
  background: transparent;
}
.sticky-search button {
  padding: 8px 18px;
  border: 0;
  border-radius: 999px;
  color: white;
  background: var(--deep);
  font-weight: 800;
}
.landing-hero {
  min-height: auto;
  padding: 46px 5vw 48px;
  grid-template-columns: minmax(0, 1.08fr) minmax(460px, .92fr);
  align-items: start;
  gap: 5vw;
  background:
    radial-gradient(circle at 17% 12%, #fff 0, transparent 27%),
    linear-gradient(115deg, #fffdf9, #f7f4ec);
}
.landing-hero h1 {
  margin: 12px 0 18px;
  font-size: clamp(44px, 4.4vw, 70px);
  line-height: .98;
}
.landing-hero .hero-copy > p:not(.kicker) {
  max-width: 720px;
  font-size: 16px;
  line-height: 1.55;
}
.landing-hero .search-box {
  grid-template-columns: 1.1fr .8fr .9fr auto;
  max-width: none;
  margin-top: 25px;
  border: 1px solid #e5e1d8;
  box-shadow: 0 16px 44px #18332312;
}
.landing-hero .search-box select {
  width: 100%;
  padding: 7px 0;
  border: 0;
  outline: 0;
  color: var(--deep);
  background: transparent;
}
.hero-filter-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}
.hero-filter-pills button {
  padding: 9px 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--deep);
  background: #fffdf9;
  font-size: 12px;
  font-weight: 750;
}
.hero-filter-pills button.active { color: white; border-color: var(--deep); background: var(--deep); }
.hero-proof { padding-top: 5px; }
.proof-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.proof-heading h2 { margin: 0; font: 700 22px Georgia, serif; }
.proof-heading span { display: block; width: 24px; height: 2px; margin: 12px 0; background: var(--orange); }
.proof-heading a { font-size: 12px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.proof-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 20px 0; }
.proof-stats div { padding-left: 12px; border-left: 3px solid #dce7c5; }
.proof-stats b, .proof-stats small { display: block; }
.proof-stats b { font-size: 13px; }
.proof-stats small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.proof-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.proof-card { overflow: hidden; border-radius: 15px; background: white; box-shadow: 0 15px 40px #18332312; }
.proof-photo { height: 150px; display: grid; place-items: center; background-position: center; background-size: cover; }
.proof-photo span { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; color: var(--deep); background: #f5f6ebdd; font-size: 28px; font-weight: 900; }
.proof-declared .proof-photo { background-image: linear-gradient(#18332318,#18332355), url("images/logo.png"); }
.proof-community .proof-photo { background: linear-gradient(135deg, #ba9a75, #3d2518); }
.proof-bocavia .proof-photo { background: linear-gradient(135deg, #a7bf85, #244f32); }
.proof-card h3 { margin: 14px 14px 7px; font: 700 17px Georgia, serif; }
.proof-card p { margin: 0 14px 18px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.discover { padding: 48px 5vw 90px; }
.discover > .section-title { display: none; }
.landing-section-title { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.landing-section-title h2 { margin: 4px 0; font: 700 34px Georgia, serif; }
.landing-section-title p:last-child { margin: 0; color: var(--muted); }
.nearby-explorer {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(270px, .75fr);
  min-height: 350px;
  margin-bottom: 38px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #f5f4ed;
  box-shadow: 0 18px 55px #18332310;
}
#nearby-map { z-index: 1; min-height: 350px; background: #e8ecdf; }
.nearby-controls { padding: 38px 30px; background: linear-gradient(145deg, #fffdf8, #eff2e4); }
.nearby-icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; color: white; background: var(--green); font-size: 28px; }
.nearby-controls h3 { margin: 22px 0 8px; font: 700 24px Georgia, serif; }
.nearby-controls p { min-height: 58px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.nearby-controls label { display: flex; justify-content: space-between; margin-top: 25px; font-size: 12px; font-weight: 800; }
.nearby-controls input { width: 100%; margin: 18px 0 6px; accent-color: var(--orange); }
.radius-scale { display: flex; justify-content: space-between; color: var(--muted); font-size: 10px; }
@media (min-width: 1180px) {
  .restaurant-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  .landing-hero { grid-template-columns: 1fr; }
  .hero-proof { padding-top: 20px; }
  .sticky-search { width: min(460px, 44vw); }
}
@media (max-width: 760px) {
  header { padding: 0 18px; }
  #primary-nav, .header-register { display: none; }
  .sticky-search { position: absolute; top: 82px; left: 16px; width: calc(100% - 32px); }
  .landing-hero { padding: 38px 20px; }
  .landing-hero h1 { font-size: 43px; }
  .landing-hero .search-box { grid-template-columns: 1fr; }
  .landing-hero .search-box label + label { border-left: 0; border-top: 1px solid var(--line); }
  .proof-cards { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
  .proof-card { min-width: 220px; scroll-snap-align: start; }
  .proof-stats { grid-template-columns: 1fr; }
  .landing-section-title { align-items: stretch; flex-direction: column; }
  .nearby-explorer { grid-template-columns: 1fr; }
  #nearby-map { min-height: 320px; }
}

.entity-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 9px;
  border: 1px solid color-mix(in srgb, var(--badge-color) 35%, white);
  border-radius: 999px;
  background: color-mix(in srgb, var(--badge-color) 12%, white);
  color: var(--badge-color);
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 4px 12px #172a1c14;
}
.entity-badge img {
  width: 25px;
  height: 25px;
  border-radius: 7px;
  object-fit: cover;
}
.entity-badge i {
  font-style: normal;
}
.restaurant-card-badges {
  position: absolute;
  z-index: 2;
  top: 13px;
  left: 13px;
  display: flex;
  max-width: calc(100% - 72px);
  flex-wrap: wrap;
  gap: 5px;
}
.restaurant-card {
  cursor: pointer;
}
.restaurant-card:focus-visible {
  outline: 3px solid #8fa77c;
  outline-offset: 3px;
}
.restaurant-detail-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0 0 12px;
}
.owned-restaurant-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 12px 0 8px;
}
.badge-selector {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
  margin: 22px 0;
}
.badge-choice {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #fff;
  color: var(--deep);
  text-align: left;
}
.badge-choice:hover,
.badge-choice.active {
  border-color: #73906b;
  background: #f2f6ed;
}
.badge-choice-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #e5eadb;
  font: 700 20px Georgia, serif;
}
.badge-choice-icon img {
  width: 30px;
  height: 30px;
  object-fit: contain;
}
.badge-choice span:nth-child(2) {
  display: grid;
  gap: 4px;
}
.badge-choice small {
  color: var(--muted);
  line-height: 1.35;
}
.badge-choice > b {
  color: #60795b;
  font-size: 11px;
}
.review-card {
  position: relative;
  display: grid;
  gap: 14px;
  margin-top: 14px;
  padding: 20px;
  border: 1px solid #e1e3d9;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 8px 28px #263c2910;
}
.own-review-section { margin-bottom: 28px; }
.own-review-card { padding-top: 28px; border-color: #dce4d6; }
.own-review-label {
  position: absolute;
  left: 16px;
  top: -1px;
  padding: 6px 10px;
  border-radius: 0 0 8px 8px;
  color: #4e7248;
  background: #eaf1e3;
  font-size: 9px;
  font-weight: 850;
}
.community-reviews > header {
  position: static;
  display: flex;
  width: 100%;
  height: auto;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin: 0 0 14px;
  padding: 0;
  border: 0;
  background: transparent;
  backdrop-filter: none;
}
.community-reviews > header h3 { margin: 0; font: 600 25px Georgia, serif; }
.community-reviews > header p { margin: 6px 0 0; color: var(--muted); font-size: 10px; }
.community-reviews > header select {
  min-width: 140px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  color: var(--deep);
  background: white;
  font-size: 10px;
}
.review-card-head {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 18px;
}
.review-card-head time {
  margin-left: auto;
  color: var(--muted);
  font-size: 12px;
}
.review-author {
  display: flex;
  align-items: center;
  gap: 10px;
  text-align: left;
}
.review-author > div {
  display: grid;
  gap: 4px;
}
.review-author-badges {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 5px;
}
.review-author { flex-direction: row-reverse; }
.review-rating-line { display: flex; align-items: center; gap: 10px; }
.review-rating-line > b { color: #334438; font-size: 10px; }
.tier-image-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 125px;
  padding: 3px 7px 3px 3px;
  border: 1px solid #d9c58f;
  border-radius: 999px;
  color: #684d19;
  background: #fff9e8;
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
}
.tier-image-badge img {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  object-fit: cover;
}
.header-tier-image {
  max-width: none;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.header-tier-image img {
  width: 58px;
  height: 58px;
  border-radius: 12px;
}
.header-tier-image b {
  display: none;
}
.dash-tier-image {
  margin-top: 4px;
}
.reply-author-badges {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
}
.plan-grid article:has([data-plan="premium"])::before,
.plan-grid article:has([data-plan="business"])::before,
.plan-grid article:has([data-plan="businessPlus"])::before {
  content: "";
  display: block;
  width: 68px;
  height: 68px;
  margin-bottom: 12px;
  border-radius: 18px;
  background-position: center;
  background-size: cover;
  box-shadow: 0 7px 22px #48310e24;
}
.plan-grid article:has([data-plan="premium"])::before {
  background-image: url("images/premium_badge.png");
}
.plan-grid article:has([data-plan="business"])::before {
  background-image: url("images/business_badge.png");
}
.plan-grid article:has([data-plan="businessPlus"])::before {
  background-image: url("images/business_plus_badge.png");
}
.review-avatar {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  overflow: hidden;
  border-radius: 50%;
  background: #dfe7d7;
  color: var(--deep);
  font-weight: 800;
}
.review-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.review-tier {
  padding: 4px 7px;
  border-radius: 999px;
  background: #e9edde;
  color: #526747;
  font-size: 9px;
  font-weight: 900;
  text-transform: uppercase;
}
.review-stars {
  color: #79945e;
  font-size: 21px;
  letter-spacing: 2px;
}
.review-stars span {
  color: #d9ddd1;
}
.review-photo-strip {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 5px;
}
.review-photo-strip figure {
  flex: 0 0 112px;
  height: 76px;
  margin: 0;
}
.own-review-usage { color: var(--muted); font-size: 10px; }
.own-review-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.own-review-actions button {
  padding: 9px 13px;
  border: 1px solid #d9ddd5;
  border-radius: 8px;
  color: var(--deep);
  background: white;
  font-size: 10px;
  font-weight: 800;
}
.own-review-actions .danger { color: #d84638; border-color: #efb7af; }
.inline-review-editor {
  margin-top: 5px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.review-photo-strip img {
  width: 100%;
  height: 100%;
  border-radius: 11px;
  object-fit: cover;
}
.review-comment {
  margin: 0;
  color: #334037;
  line-height: 1.65;
}
.review-report {
  justify-self: start;
  margin: 0;
}
.owner-reply {
  padding: 14px 16px;
  border-left: 3px solid #7f9873;
  border-radius: 4px 12px 12px 4px;
  background: #f0f4eb;
}
.owner-reply > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}
.owner-reply small {
  color: var(--muted);
}
.review-manage {
  justify-self: end;
  width: min(100%, 540px);
}
.review-manage summary {
  color: #60795b;
  cursor: pointer;
  text-align: right;
  font-size: 12px;
  font-weight: 800;
}
.owner-reply-form {
  display: flex;
  gap: 8px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}
.owner-reply-form input {
  min-width: 0;
  flex: 1;
}
@media (max-width: 650px) {
  .dashboard-review-card { grid-template-columns: 1fr; }
  .dashboard-review-restaurant { width: 100%; height: 190px; }
  .community-reviews > header { align-items: stretch; flex-direction: column; }
  .community-reviews > header select { width: 100%; }
  .own-review-actions { display: grid; grid-template-columns: 1fr; }
  .review-card-head {
    align-items: flex-start;
  }
  .review-author {
    max-width: 65%;
  }
  .owner-reply-form {
    flex-wrap: wrap;
  }
  .owner-reply-form input {
    flex-basis: 100%;
  }
  .badge-selector {
    grid-template-columns: 1fr;
  }
}
.report-button{display:inline-flex;align-items:center;gap:6px;margin:12px 0;padding:8px 12px;border:1px solid #dbcdbf;border-radius:999px;background:#fffaf3;color:#8b563f;font-size:12px}
.restaurant-report{margin-top:18px}
.report-card{max-width:560px}.report-card form{display:grid;gap:18px;margin-top:24px}.report-card label{display:grid;gap:8px}.report-card textarea{min-height:130px}
.admin-report-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;margin-top:30px}.admin-report-columns>section>header{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--line)}.admin-report-columns>section>header span{display:grid;place-items:center;min-width:31px;height:31px;border-radius:50%;background:#edf2e6;color:var(--deep);font-weight:800}
.moderation-queue{display:grid;gap:14px;margin-top:16px}.moderation-case{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;padding:21px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 25px #2338270b}.moderation-case.is-solved{grid-template-columns:1fr;background:#f8f8f4}.moderation-case h3{margin:7px 0}.moderation-case p,.moderation-case small{color:var(--muted)}.moderation-case blockquote{margin:12px 0;padding:12px;border-left:3px solid #bdc9ab;background:#f6f8f1;color:#445047}.moderation-meta{display:flex;align-items:center;gap:8px;text-transform:uppercase;font-size:10px;font-weight:900;letter-spacing:.08em}.priority{padding:5px 8px;border-radius:999px;background:#fff0dd;color:#9a5a25}.report-reasons{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.report-reasons span{padding:5px 8px;border-radius:999px;background:#eef3e8;color:#456047;font-size:11px}.moderation-case details{margin:12px 0}.moderation-case details p{margin:8px 0}.moderation-actions{display:flex;flex-direction:column;gap:7px;min-width:145px}.moderation-actions button,.admin-result-actions button,.admin-result-actions select{padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:white}.moderation-actions .danger,.admin-result-actions .danger{color:#a73535}
.admin-search-form{display:grid;grid-template-columns:minmax(240px,1fr) 170px auto;gap:10px;margin:26px 0 34px}.admin-search-results{display:grid;gap:30px}.admin-search-results>section{display:grid;gap:12px}.admin-result-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:25px;padding:22px;border:1px solid var(--line);border-radius:16px;background:#fff}.admin-result-card h3{margin:5px 0}.admin-result-card p,.admin-result-card small{color:var(--muted)}.result-type{color:#66805f;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.admin-stats{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.admin-stats span{padding:7px 9px;border-radius:9px;background:#f0f3ea;font-size:12px}.admin-result-actions{display:flex;flex-direction:column;gap:7px;min-width:150px}
@media(max-width:1050px){.admin-report-columns{grid-template-columns:1fr}.admin-search-form{grid-template-columns:1fr 150px}.admin-search-form button{grid-column:1/-1}.moderation-case,.admin-result-card{grid-template-columns:1fr}.moderation-actions,.admin-result-actions{flex-direction:row;flex-wrap:wrap}}
.admin-context-button,
.admin-context-link {
  border: 0;
  background: transparent;
  color: #557154;
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.admin-context-button {
  display: inline-flex;
  margin: 0 0 14px;
  padding: 7px 10px;
  border: 1px solid #b9c8b2;
  border-radius: 999px;
  background: #f2f6ed;
  text-decoration: none;
}
.admin-detail-card {
  width: min(900px, calc(100% - 32px));
  max-height: 92vh;
  overflow-y: auto;
}
.admin-detail-heading {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 10px 0 20px;
}
.admin-detail-heading h2,
.admin-detail-heading p {
  margin: 0;
}
.admin-detail-heading p,
.admin-account-state {
  color: var(--muted);
}
.admin-detail-section {
  margin-top: 22px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #fbfcf8;
}
.admin-detail-section h3 {
  margin-top: 0;
}
.admin-badge-list {
  display: grid;
  gap: 8px;
}
.admin-badge-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border-radius: 10px;
  background: white;
}
.admin-badge-row small {
  color: var(--muted);
}
.admin-award-badge,
.admin-create-badge form {
  display: grid;
  grid-template-columns: minmax(180px, .8fr) minmax(220px, 1.2fr) auto;
  gap: 9px;
  margin-top: 14px;
}
.admin-create-badge {
  margin-top: 16px;
}
.admin-create-badge summary {
  color: #557154;
  cursor: pointer;
  font-weight: 800;
}
.admin-mini-review {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.admin-mini-review:last-child {
  border-bottom: 0;
}
.admin-mini-review p {
  margin: 0;
}
.admin-detail-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 9px;
  margin-top: 22px;
}
@media(max-width:700px) {
  .admin-award-badge,
  .admin-create-badge form,
  .admin-badge-row,
  .admin-mini-review {
    grid-template-columns: 1fr;
  }
  .admin-detail-actions {
    justify-content: stretch;
  }
}
.card-image {
  position: relative;
  background-position: center;
  background-size: cover;
}
.favorite {
  position: absolute;
  right: 13px;
  top: 13px;
  width: 39px;
  height: 39px;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: #a8afa8;
  font-size: 20px;
  box-shadow: 0 5px 18px #0002;
}
.favorite.active {
  color: #e14d55;
}
.detail-image {
  width: calc(100% + 70px);
  height: 260px;
  margin: -35px -35px 28px;
  object-fit: cover;
}
.owner-note {
  padding: 14px;
  border-radius: 10px;
  background: #eef1e5;
  color: var(--muted);
}
#review-form {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
}
#review-form select,
#review-form textarea {
  display: block;
  width: 100%;
  margin-top: 7px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: white;
}
#review-form textarea {
  min-height: 110px;
  resize: vertical;
}
.reviews article {
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}
.reviews article > b {
  color: var(--orange);
}
.owner-reply {
  margin-top: 12px;
  padding: 13px;
  border-left: 3px solid var(--olive);
  background: #f0f3e9;
}
.reply-form {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}
.reply-form input {
  margin: 0;
}
.reply-form button {
  border: 0;
  border-radius: 8px;
  background: var(--green);
  color: white;
  font-weight: 700;
}
.user-trigger em {
  padding: 4px 7px;
  border-radius: 999px;
  background: #dcebb2;
  color: var(--deep);
  font-size: 9px;
  font-style: normal;
  text-transform: uppercase;
}
.results-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.results-bar select {
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: white;
  color: var(--deep);
}
.distance {
  display: block;
  color: var(--olive);
  font-weight: 700;
}
.owned-actions {
  display: flex;
  gap: 7px;
}
.owned-actions button {
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
}
.owned-actions .danger {
  color: #a73535;
}
.active-plan {
  display: inline-flex;
  gap: 8px;
  margin: 12px 0 8px;
  padding: 9px 12px;
  border-radius: 9px;
  background: #eef1e5;
}
#profile-favorites {
  display: grid;
  gap: 8px;
  margin-top: 24px;
}
#profile-favorites button {
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: white;
  text-align: left;
}
#profile-favorites small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
}
.map-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
}
.required-note {
  color: var(--orange);
  font-size: 11px;
}
.dashboard fieldset {
  margin: 22px 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 13px;
}
.dashboard legend {
  padding: 0 7px;
  font-weight: 800;
}
.amenity-options {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.amenity-options label {
  margin: 0;
  font-weight: 500;
}
.amenity-options input {
  width: auto;
  margin: 0;
}
.hours-editor {
  display: grid;
  gap: 8px;
}
.hours-editor > div {
  display: grid;
  grid-template-columns: 1fr 110px auto 110px;
  align-items: center;
  gap: 8px;
}
.hours-editor label {
  margin: 0;
}
.hours-editor input {
  margin: 0;
}
.form-actions {
  display: flex;
  gap: 10px;
}
.form-actions .solid {
  width: auto;
}
@media (max-width: 600px) {
  .user-trigger em {
    display: none;
  }
  .results-bar {
    align-items: flex-start;
    gap: 10px;
  }
  .amenity-options {
    grid-template-columns: 1fr 1fr;
  }
  .hours-editor > div {
    grid-template-columns: 1fr 1fr;
  }
  .hours-editor > div span {
    display: none;
  }
  .owned-list article {
    display: block;
  }
  .owned-actions {
    margin-top: 12px;
  }
  .map-toolbar {
    display: block;
  }
}
.image-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin: 14px 0;
}
.image-gallery figure {
  position: relative;
  overflow: hidden;
  margin: 0;
  aspect-ratio: 4/3;
  border-radius: 11px;
  background: #eef1e5;
}
.image-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.image-gallery figure button {
  position: absolute;
  right: 6px;
  top: 6px;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: #a73535;
  font-size: 18px;
}
.image-gallery.compact {
  max-width: 130px;
  grid-template-columns: 1fr;
}
.detail-gallery {
  grid-template-columns: repeat(2, 1fr);
}
.detail-gallery figure:first-child {
  grid-column: 1/-1;
  aspect-ratio: 16/7;
}
.review-images {
  grid-template-columns: repeat(2, minmax(0, 180px));
}
.review-images figure {
  aspect-ratio: 1;
}
.form-grid label small {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-weight: 500;
}
.media-manager,
.review-media-manager {
  margin: 24px 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #f8faf3;
}
.media-manager h4,
.review-media-manager h4 {
  margin: 0 0 5px;
}
.media-manager p,
.review-media-manager p {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 12px;
}
.upload-box {
  display: inline-block;
  margin: 8px 0;
  padding: 11px 15px;
  border: 1px solid var(--green);
  border-radius: 9px;
  background: white;
  color: var(--green);
  font-weight: 800;
  cursor: pointer;
}
.upload-box input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.review-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.review-actions button {
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
}
.review-actions .danger {
  color: #a73535;
}
.selected-images {
  display: block;
  color: var(--olive);
  font-size: 12px;
  font-weight: 700;
}
.visible-file-input {
  display: block;
  width: 100%;
  margin: 12px 0;
  padding: 11px;
  border: 1px dashed var(--olive);
  border-radius: 10px;
  background: white;
}
.open-review-composer {
  max-width: 280px;
  margin: 26px 0 10px;
}
.review-modal {
  z-index: 70;
}
.review-composer {
  width: min(920px, 96vw);
  max-height: 96vh;
  padding: 42px 54px 34px;
  border-radius: 28px;
  background: #fffdf8;
}
.review-composer h2 {
  margin: 0 0 22px;
  color: var(--deep);
  font: 500 44px/1 Georgia, serif;
}
.review-close {
  width: 52px;
  height: 52px;
  right: 30px;
  top: 26px;
  border-radius: 50%;
  background: #f1f1e9;
  font-size: 30px;
}
.review-restaurant-summary {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 0 0 24px;
  border-bottom: 1px solid var(--line);
}
.review-restaurant-summary img,
.review-restaurant-placeholder {
  width: 78px;
  height: 78px;
  flex: 0 0 78px;
  border-radius: 18px;
  object-fit: cover;
}
.review-restaurant-placeholder {
  display: grid;
  place-items: center;
  background: #e8ebdf;
  font: 600 30px Georgia, serif;
}
.review-restaurant-summary strong {
  font-size: 20px;
}
.review-restaurant-summary p {
  margin: 9px 0 0;
  color: var(--muted);
}
.review-restaurant-summary p span {
  margin-right: 8px;
  color: var(--olive);
  font-size: 21px;
}
.review-step {
  margin-top: 30px;
}
.review-step h3 {
  margin: 0 0 5px;
  color: #192620;
  font-size: 18px;
}
.review-step h3 small {
  color: var(--muted);
  font-weight: 400;
}
.review-step > p {
  margin: 0 0 14px;
  color: var(--muted);
}
.star-rating {
  display: flex;
  width: min(490px, 100%);
  align-items: center;
  justify-content: space-between;
  padding: 15px 20px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #fafaf5;
}
.review-stars {
  display: flex;
}
.review-stars button {
  padding: 0 3px;
  border: 0;
  background: transparent;
  color: #7a8d58;
  font-size: 43px;
  line-height: 1;
}
.review-stars button.active {
  color: #728e52;
}
.star-rating > div:last-of-type {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #53603c;
}
.star-rating strong {
  font-size: 24px;
}
.review-text-wrap {
  position: relative;
}
.review-text-wrap textarea {
  width: 100%;
  min-height: 150px;
  padding: 18px 20px 38px;
  resize: vertical;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: white;
}
.review-text-wrap span {
  position: absolute;
  right: 18px;
  bottom: 14px;
  color: var(--muted);
  font-size: 12px;
}
.review-photo-picker {
  display: flex;
  gap: 16px;
  overflow-x: auto;
}
.review-photo-picker figure,
.add-review-photo {
  position: relative;
  width: 174px;
  height: 154px;
  flex: 0 0 174px;
  margin: 0;
  overflow: hidden;
  border-radius: 16px;
}
.review-photo-picker figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.review-photo-picker figure button {
  position: absolute;
  right: 8px;
  top: 8px;
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 50%;
  background: white;
  font-size: 20px;
}
.add-review-photo {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 5px;
  border: 1px dashed #aeb5a7;
  background: #fafaf5;
  color: var(--deep);
}
.add-review-photo span {
  font-size: 36px;
  line-height: 1;
}
.review-help {
  display: block;
  margin-top: 10px;
  color: var(--muted);
}
.review-amenity-votes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.amenity-vote-option {
  display: grid;
  grid-template-columns: 43px 1fr 30px;
  align-items: center;
  gap: 10px;
  min-height: 70px;
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  color: var(--deep);
  text-align: left;
}
.amenity-symbol,
.amenity-vote-option i,
.amenity-vote-legend i {
  display: grid;
  place-items: center;
  border-radius: 50%;
}
.amenity-symbol {
  width: 40px;
  height: 40px;
  background: #eef0e5;
  color: #738455;
  font-size: 21px;
}
.amenity-vote-option i {
  width: 28px;
  height: 28px;
  background: #eef0e8;
  color: white;
  font-style: normal;
}
.amenity-vote-option[data-state="confirmed"] i {
  background: #5b995b;
}
.amenity-vote-option[data-state="denied"] i {
  background: #c95a55;
}
.amenity-vote-legend {
  display: flex;
  gap: 28px;
  margin-top: 18px;
  color: var(--muted);
  font-size: 13px;
}
.amenity-vote-legend span {
  display: flex;
  align-items: center;
  gap: 8px;
}
.amenity-vote-legend i {
  width: 22px;
  height: 22px;
  border: 2px solid #e1e3d8;
  font-style: normal;
}
.amenity-vote-legend .confirmed { border: 0; background: #5b995b; color: white; }
.amenity-vote-legend .denied { border: 0; background: #c95a55; color: white; }
.amenity-vote-option[data-state="unknown"] i {
  background: #aeb2b0;
}
.amenity-vote-legend .unknown { border: 0; background: #aeb2b0; color: white; }
.review-submit {
  width: 100%;
  margin-top: 32px;
  padding: 18px;
  border: 0;
  border-radius: 11px;
  background: linear-gradient(90deg, #244d32, #315d39);
  color: white;
  font-size: 17px;
  font-weight: 800;
}
.review-submit span {
  margin-right: 12px;
  font-size: 25px;
}
.review-submit:disabled {
  opacity: .65;
}
.review-publish-note {
  margin: 14px 0 0;
  color: var(--muted);
  text-align: center;
  font-size: 12px;
}
.plan-grid:has(article:nth-child(4)) {
  grid-template-columns: repeat(4, 1fr);
}
.dashboard .plan-grid.compact:has(article:nth-child(4)) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
#panel-plans,
#panel-billing {
  padding-top: 0;
}
#panel-plans > .kicker,
#panel-billing > .kicker {
  margin-top: 0;
}
.subscription-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 14px 0 24px;
  padding: 16px 18px;
  border: 1px solid #dfe4d7;
  border-radius: 13px;
  background: #f4f6ee;
}
.subscription-summary span {
  color: var(--muted);
  text-align: right;
  font-size: 13px;
}
.billing-history {
  display: grid;
  gap: 10px;
  margin-top: 24px;
}
.billing-history article {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 13px;
}
.billing-history article div {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.billing-history article div:last-child {
  align-items: flex-end;
  text-align: right;
}
.billing-history span,
.billing-history small {
  color: var(--muted);
}
.premium-review-badge {
  display: inline-block;
  margin-left: 6px;
  padding: 3px 7px;
  border-radius: 999px;
  background: #e7edd6;
  color: #566b36;
  font-size: 10px;
  font-weight: 800;
}
.checkout-result-card {
  width: min(560px, calc(100% - 32px));
  text-align: center;
}
.checkout-result-card .active-plan {
  justify-content: center;
  margin: 24px 0;
}
@media (max-width: 700px) {
  .review-composer { padding: 34px 20px 26px; border-radius: 20px; }
  .review-composer h2 { padding-right: 45px; font-size: 36px; }
  .review-close { right: 16px; top: 16px; width: 44px; height: 44px; }
  .review-amenity-votes { grid-template-columns: 1fr; }
  .amenity-vote-legend { align-items: flex-start; flex-direction: column; gap: 9px; }
  .review-stars button { font-size: 36px; }
  .star-rating { gap: 10px; padding: 13px; }
  .plan-grid:has(article:nth-child(4)),
  .plan-grid.compact:has(article:nth-child(4)) { grid-template-columns: 1fr; }
  .subscription-summary,
  .billing-history article { align-items: flex-start; flex-direction: column; }
  .subscription-summary span,
  .billing-history article div:last-child { align-items: flex-start; text-align: left; }
  .restaurant-editor-card { width: 100%; max-height: 100vh; padding: 38px 18px; border-radius: 0; }
  .profile-actions { align-items: stretch; flex-direction: column; }
}
.restaurant-editor-head {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 24px;
  padding: 18px;
  border-radius: 14px;
  background: var(--deep);
  color: white;
}
.restaurant-editor-head > span {
  padding: 6px 9px;
  border-radius: 999px;
  background: var(--lime);
  color: var(--deep);
  font-size: 10px;
  font-weight: 900;
}
.restaurant-editor-head h3 {
  margin: 0;
}
.restaurant-editor-head p {
  margin: 5px 0 0;
  color: #dce6dc;
  font-size: 12px;
}
.empty-images {
  grid-column: 1/-1;
  padding: 18px;
  border: 1px dashed var(--line);
  border-radius: 10px;
  color: var(--muted);
}
.current-plan-summary {
  margin: 16px 0 24px;
  padding: 14px;
  border-radius: 10px;
  background: #eef1e5;
}
.plan-grid.compact article p,
.plan-grid.compact article small {
  display: block;
  color: var(--muted);
  line-height: 1.45;
}
.plan-grid.compact article small {
  min-height: 38px;
  margin: 8px 0 14px;
}
@media (max-width: 600px) {
  .image-gallery {
    grid-template-columns: repeat(2, 1fr);
  }
  .detail-card {
    width: 100%;
    max-height: 98vh;
    padding: 28px 18px;
    border-radius: 20px;
  }
  .restaurant-detail-name {
    font-size: 42px;
  }
  .restaurant-gallery-thumbs button {
    flex-basis: 190px;
    height: 145px;
    border-radius: 16px;
  }
  .restaurant-reviews-section {
    padding: 22px 16px;
  }
  .restaurant-gallery-lightbox {
    inset: 1vh 2vw;
    padding: 48px 12px 18px;
    border-radius: 18px;
  }
}
