:root {
  color-scheme: light;
  --ink: #172126;
  --muted: #5d6a70;
  --line: #d8dfdf;
  --paper: #fbfaf6;
  --surface: #ffffff;
  --mist: #edf4f2;
  --teal: #0f6b63;
  --teal-dark: #0b4641;
  --brick: #b7442e;
  --gold: #c68a2f;
  --blue: #245b8f;
  --leaf: #4f7f46;
  --clay: #9a5a32;
  --sea: #2f7187;
  --cream: #fff7eb;
  --food-soft: #fff6ef;
  --travel-soft: #edf6f4;
  --route-soft: #eef5fb;
  --quality-soft: #fbf4e7;
  --shadow: 0 18px 48px rgba(23, 33, 38, 0.13);
  --container: min(1180px, calc(100vw - 40px));
}


/* Independent topics share the 0577 entry language while keeping their own content. */
.home-topic-shelf[hidden],
.topic-directory-action[hidden] {
  display: none !important;
}

.home-topic-shelf {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(15, 107, 99, 0.14);
}

.home-topic-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
}

.home-topic-heading .eyebrow {
  margin: 0 0 3px;
}

.home-topic-heading h3 {
  margin: 0;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.3;
}

.home-topic-heading > p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
}

.topic-card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
  min-width: 0;
}

.home-topic-shelf[data-topic-count="1"] .topic-featured-grid {
  grid-template-columns: minmax(0, 660px);
}

.home-topic-shelf[data-topic-count="2"] .topic-featured-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-topic-shelf[data-topic-count="3"] .topic-featured-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.topic-card {
  position: relative;
  display: grid;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(15, 107, 99, 0.18);
  border-radius: 8px;
  color: var(--ink);
  background: #fff;
}

a.topic-card,
.topic-card-entry {
  grid-template-columns: 76px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 12px;
  min-height: 128px;
  padding: 12px;
  color: inherit;
  text-decoration: none;
}

a.topic-home-card {
  grid-template-columns: 64px minmax(0, 1fr) auto 18px;
  min-height: 100px;
  padding: 10px;
}

.topic-home-card .topic-card-visual {
  width: 64px;
  height: 76px;
}

.topic-card-action {
  color: var(--teal);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.topic-card-entry {
  display: grid;
}

.topic-card-visual {
  display: grid;
  place-items: center;
  width: 76px;
  height: 92px;
  overflow: hidden;
  border-radius: 6px;
  background: #e9f3f0;
}

.topic-card-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.topic-card-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  color: var(--teal);
}

.topic-card-icon svg {
  width: 28px;
  height: 28px;
}

.topic-card-copy {
  display: grid;
  min-width: 0;
  gap: 5px;
}

.topic-card-copy small {
  color: var(--brick);
  font-size: 11px;
  font-weight: 800;
}

.topic-card-copy strong {
  color: var(--ink);
  font-size: 17px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.topic-card-copy > span {
  display: -webkit-box;
  overflow: hidden;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.topic-card > svg,
.topic-card-entry > svg {
  width: 18px;
  height: 18px;
  color: var(--teal);
}

.topic-card:hover,
.topic-card:focus-visible {
  border-color: rgba(15, 107, 99, 0.42);
  background: #fbfdfc;
}

.topic-directory-action {
  display: flex;
  justify-content: flex-end;
  margin-top: 14px;
}

.topic-directory-action a,
.topic-card-feedback {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--teal);
  font-size: 13px;
  font-weight: 800;
}

.topic-directory-action svg,
.topic-card-feedback svg {
  width: 16px;
  height: 16px;
}

.topic-directory-section {
  min-width: 0;
}

.topic-directory-card {
  align-content: start;
}

.topic-directory-card .topic-card-entry {
  min-height: 138px;
}

.topic-card-feedback {
  justify-self: start;
  margin: 0 12px 12px 100px;
}

@media (max-width: 980px) {
  .topic-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-topic-shelf[data-topic-count] .topic-featured-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-topic-shelf[data-topic-count="1"] .topic-featured-grid {
    grid-template-columns: minmax(0, 660px);
  }
}

@media (max-width: 640px) {
  .home-topic-shelf {
    gap: 10px;
    margin-top: 14px;
    padding-top: 12px;
  }

  .home-topic-heading {
    align-items: start;
    gap: 10px;
  }

  .home-topic-heading h3 {
    font-size: 16px;
  }

  .topic-directory-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  .home-topic-shelf[data-topic-count] .topic-featured-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .home-topic-shelf[data-topic-count="1"] .topic-featured-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  a.topic-card,
  .topic-card-entry {
    grid-template-columns: 60px minmax(0, 1fr) 16px;
    min-height: 104px;
    gap: 10px;
    padding: 10px;
  }

  .topic-card-visual {
    width: 60px;
    height: 72px;
  }

  .topic-card-copy strong {
    font-size: 16px;
  }

  .topic-card-copy > span {
    font-size: 12.5px;
  }

  a.topic-home-card {
    grid-template-columns: 42px minmax(0, 1fr) 14px;
    min-height: 82px;
    gap: 8px;
    padding: 9px;
  }

  .topic-home-card .topic-card-visual {
    width: 42px;
    height: 50px;
  }

  .topic-home-card .topic-card-copy {
    gap: 3px;
  }

  .topic-home-card .topic-card-copy small {
    font-size: 10px;
  }

  .topic-home-card .topic-card-copy strong {
    font-size: 14px;
    line-height: 1.28;
  }

  .topic-home-card .topic-card-copy > span,
  .topic-home-card .topic-card-action {
    display: none;
  }

  .home-topic-shelf.is-single .topic-home-card {
    grid-template-columns: 54px minmax(0, 1fr) auto 16px;
    min-height: 94px;
  }

  .home-topic-shelf.is-single .topic-home-card .topic-card-visual {
    width: 54px;
    height: 64px;
  }

  .home-topic-shelf.is-single .topic-home-card .topic-card-copy > span,
  .home-topic-shelf.is-single .topic-home-card .topic-card-action {
    display: -webkit-box;
  }

  .home-topic-shelf.is-single .topic-home-card .topic-card-copy > span {
    -webkit-line-clamp: 1;
  }

  .home-topic-shelf.is-single .topic-home-card .topic-card-action {
    display: inline-flex;
  }

  .topic-card-feedback {
    margin: 0 10px 10px 80px;
  }
}

/* V2 public navigation, search, and correction surfaces */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.header-search-button {
  flex: 0 0 auto;
}

.hero-search {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  width: min(100%, 620px);
  margin: 0 0 10px;
  padding: 6px 6px 6px 13px;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 7px;
}

.hero-search svg {
  width: 18px;
  height: 18px;
  color: var(--teal);
}

.hero-search input {
  min-width: 0;
  min-height: 40px;
  padding: 0 4px;
  border: 0;
  outline: 0;
  color: var(--ink);
  background: transparent;
  font: inherit;
}

.hero-search button {
  min-height: 40px;
  padding: 8px 15px;
  border: 0;
  border-radius: 5px;
  color: #fff;
  background: var(--teal);
  font: inherit;
  font-weight: 800;
}

.hero-utility-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-bottom: 18px;
  font-size: 13px;
  font-weight: 700;
}

.hero-utility-links a {
  color: rgba(255, 255, 255, 0.88);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.primary-route-grid .module-card:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.site-search-section {
  display: grid;
  gap: 18px;
}

.site-search-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px auto;
  gap: 10px;
  padding: 14px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
}

.site-search-form label {
  position: relative;
  display: flex;
  align-items: center;
}

.site-search-form label svg {
  position: absolute;
  left: 12px;
  width: 18px;
  height: 18px;
  color: var(--teal);
  pointer-events: none;
}

.site-search-form input,
.site-search-form select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  font: inherit;
}

.site-search-form input {
  padding: 9px 12px 9px 40px;
}

.site-search-form select {
  padding: 9px 10px;
}

.site-search-form input:focus,
.site-search-form select:focus {
  border-color: rgba(15, 107, 99, 0.62);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(15, 107, 99, 0.1);
}

.site-search-summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

.site-search-summary span {
  color: var(--muted);
  font-size: 13px;
}

.site-search-results {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.site-search-result {
  position: relative;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 11px;
  min-height: 108px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: 0 10px 26px rgba(23, 33, 38, 0.05);
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.site-search-result::before {
  position: absolute;
  top: 14px;
  bottom: 14px;
  left: 0;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: var(--teal);
  content: "";
}

.site-search-result:hover {
  border-color: rgba(15, 107, 99, 0.45);
  background: #f6faf8;
  box-shadow: 0 14px 32px rgba(23, 33, 38, 0.08);
}

.site-search-result-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  color: var(--teal-dark);
  background: rgba(15, 107, 99, 0.08);
  border: 1px solid rgba(15, 107, 99, 0.13);
  border-radius: 8px;
}

.site-search-result-icon svg,
.site-search-result > svg {
  width: 18px;
  height: 18px;
}

.site-search-result > svg {
  color: var(--ink);
  opacity: 0.78;
}

.site-search-result.is-food::before {
  background: var(--brick);
}

.site-search-result.is-food .site-search-result-icon {
  color: var(--brick);
  background: rgba(183, 68, 46, 0.08);
  border-color: rgba(183, 68, 46, 0.14);
}

.site-search-result.is-food:hover {
  border-color: rgba(183, 68, 46, 0.35);
  background: #fffaf7;
}

.site-search-result.is-place::before,
.site-search-result.is-region::before {
  background: var(--teal);
}

.site-search-result.is-route::before {
  background: var(--blue);
}

.site-search-result.is-route .site-search-result-icon {
  color: var(--blue);
  background: rgba(36, 91, 143, 0.08);
  border-color: rgba(36, 91, 143, 0.14);
}

.site-search-result.is-route:hover {
  border-color: rgba(36, 91, 143, 0.32);
  background: #f7fbff;
}

.site-search-result.is-topic::before,
.site-search-result.is-comparison::before {
  background: var(--gold);
}

.site-search-result.is-topic .site-search-result-icon,
.site-search-result.is-comparison .site-search-result-icon {
  color: #9a661e;
  background: rgba(198, 138, 47, 0.1);
  border-color: rgba(198, 138, 47, 0.16);
}

.site-search-result.is-topic:hover,
.site-search-result.is-comparison:hover {
  border-color: rgba(198, 138, 47, 0.34);
  background: #fffaf0;
}

.site-search-result-copy {
  min-width: 0;
}

.site-search-result-copy > span,
.site-search-result-copy > strong {
  display: block;
}

.site-search-result-meta {
  margin-bottom: 4px;
  color: var(--brick);
  font-size: 11px;
  font-weight: 800;
}

.site-search-result-copy > strong {
  margin-bottom: 4px;
  color: var(--ink);
  font-size: 16px;
}

.site-search-result-copy > span:last-child {
  display: -webkit-box;
  overflow: hidden;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.site-search-empty {
  grid-column: 1 / -1;
  padding: 22px;
  text-align: center;
  border: 1px dashed var(--line);
  border-radius: 8px;
}

.site-search-empty p {
  margin: 6px 0;
}

.site-search-empty a {
  color: var(--teal);
  font-weight: 800;
}

.detail-correction {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin-top: 18px;
  padding: 14px 16px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.detail-correction > span {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  color: var(--teal);
  background: var(--mist);
  border-radius: 6px;
}

.detail-correction p {
  margin: 2px 0 0;
  font-size: 13px;
  line-height: 1.45;
}

.detail-correction a {
  color: var(--teal-dark);
  font-weight: 800;
}

@media (max-width: 640px) {
  .site-header {
    gap: 10px;
    padding: 12px 14px;
  }

  .brand {
    min-width: 0;
    gap: 8px;
  }

  .brand-mark {
    width: 46px;
    height: 34px;
  }

  .header-actions {
    flex: 0 0 auto;
    gap: 7px;
  }

  .header-search-button {
    display: inline-grid;
  }

  .hero-search {
    grid-template-columns: 20px minmax(0, 1fr) auto;
  }

  .hero-search input {
    min-height: 38px;
    font-size: 14px;
  }

  .hero-search button {
    min-height: 38px;
    padding-inline: 12px;
    font-size: 13px;
  }

  .site-search-form {
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 10px;
  }

  .site-search-form label {
    grid-column: 1 / -1;
  }

  .site-search-results {
    grid-template-columns: 1fr;
  }

  .site-search-summary {
    display: grid;
    gap: 4px;
  }

  .site-search-result {
    grid-template-columns: 40px minmax(0, 1fr) 18px;
    min-height: 96px;
    padding: 11px;
  }

  .site-search-result-icon {
    width: 40px;
    height: 40px;
  }

  .detail-correction {
    grid-template-columns: 32px minmax(0, 1fr);
    padding: 12px 0;
  }

  .detail-correction > span {
    width: 32px;
    height: 32px;
  }

  .detail-correction a {
    grid-column: 2;
  }
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  overflow-x: hidden;
  margin: 0;
  font-family:
    Inter, "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
  letter-spacing: 0;
}

body,
button,
input,
textarea,
select {
  font: inherit;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  cursor: pointer;
}

img {
  display: block;
  max-width: 100%;
}

.container {
  width: var(--container);
  margin: 0 auto;
}

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px max(20px, calc((100vw - 1180px) / 2));
  color: #fff;
  transition:
    background 0.2s ease,
    box-shadow 0.2s ease,
    color 0.2s ease;
}

.site-header.is-scrolled,
.admin-header {
  color: var(--ink);
  background: #fbfaf6;
  border-bottom: 1px solid rgba(23, 33, 38, 0.1);
  box-shadow: 0 10px 30px rgba(23, 33, 38, 0.08);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 184px;
}

.brand-mark {
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 36px;
  border: 1px solid currentColor;
  font-weight: 800;
  font-size: 14px;
}

.brand strong,
.brand small {
  display: block;
}

.brand strong {
  font-size: 17px;
  line-height: 1.15;
}

.brand small {
  margin-top: 2px;
  color: currentColor;
  opacity: 0.72;
  font-size: 11px;
  line-height: 1.2;
}

.desktop-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px;
}

.desktop-nav a,
.mobile-nav a {
  padding: 9px 10px;
  border-radius: 6px;
  color: currentColor;
  font-size: 14px;
  line-height: 1;
}

.desktop-nav a:hover,
.mobile-nav a:hover {
  background: rgba(15, 107, 99, 0.12);
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.icon-button {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid currentColor;
  border-radius: 6px;
  color: inherit;
  background: transparent;
}

.icon-button svg,
.primary-button svg,
.secondary-button svg,
.module-icon svg,
.tool-item svg,
.service-card a svg {
  width: 18px;
  height: 18px;
  stroke-width: 2;
}

.menu-button {
  display: none;
}

.mobile-nav {
  position: fixed;
  top: 70px;
  left: 20px;
  right: 20px;
  z-index: 42;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
  padding: 12px;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.mobile-nav[hidden] {
  display: none;
}

.mobile-nav .mobile-nav-feedback {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin-top: 4px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  color: var(--teal-dark);
  font-weight: 800;
}

.mobile-nav .mobile-nav-feedback svg {
  width: 17px;
  height: 17px;
}

.hero {
  position: relative;
  min-height: min(64vh, 560px);
  display: grid;
  align-items: center;
  overflow: hidden;
  color: #fff;
}

.hero-image,
.hero-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero-image {
  object-fit: cover;
}

.hero-overlay {
  background:
    linear-gradient(90deg, rgba(8, 25, 28, 0.78) 0%, rgba(8, 25, 28, 0.54) 42%, rgba(8, 25, 28, 0.18) 100%),
    linear-gradient(0deg, rgba(8, 25, 28, 0.24), rgba(8, 25, 28, 0.24));
}

.hero-content {
  position: relative;
  z-index: 1;
  width: var(--container);
  margin: 0 auto;
  padding: 82px 0 58px;
}

.eyebrow {
  margin: 0 0 12px;
  color: var(--brick);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.hero .eyebrow {
  color: #ffd087;
}

h1,
h2,
h3,
p {
  margin-top: 0;
  overflow-wrap: anywhere;
}

a,
span,
strong,
small,
li,
button {
  overflow-wrap: anywhere;
}

h1 {
  max-width: 620px;
  margin-bottom: 18px;
  font-size: 64px;
  line-height: 0.96;
  letter-spacing: 0;
}

h2 {
  margin-bottom: 14px;
  font-size: 38px;
  line-height: 1.12;
  letter-spacing: 0;
}

h3 {
  margin-bottom: 10px;
  font-size: 20px;
  line-height: 1.25;
}

p {
  color: var(--muted);
  line-height: 1.75;
}

.hero-subtitle {
  max-width: 660px;
  margin-bottom: 22px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 20px;
  line-height: 1.65;
}

.hero-actions,
.row-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.primary-button,
.secondary-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 11px 16px;
  border-radius: 6px;
  border: 1px solid transparent;
  font-weight: 800;
  line-height: 1.15;
}

.primary-button {
  color: #fff;
  background: var(--teal);
}

.primary-button:hover {
  background: var(--teal-dark);
}

.secondary-button {
  color: currentColor;
  background: rgba(255, 255, 255, 0.12);
  border-color: currentColor;
}

.secondary-button:hover {
  background: rgba(255, 255, 255, 0.2);
}

.compact {
  min-height: 38px;
  padding: 9px 12px;
  font-size: 14px;
}

.section-band {
  padding: 62px 0;
}

.section-band.muted {
  background: var(--mist);
}

.life-guide-band,
.quick-entry-band {
  background: #fff;
}

.intro-strip {
  padding: 22px 0;
  background: var(--teal-dark);
  color: #fff;
}

.intro-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(255, 255, 255, 0.18);
}

.intro-grid article {
  min-height: 78px;
  padding: 18px 20px;
  background: var(--teal-dark);
}

.intro-grid span,
.module-card span,
.taste-card span,
.contact-box span,
.site-footer span,
.admin-row span,
.panel-kicker {
  display: block;
  margin-bottom: 8px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.intro-grid span {
  color: rgba(255, 255, 255, 0.68);
}

.intro-grid strong {
  display: block;
  font-size: 16px;
  line-height: 1.35;
}

.section-heading {
  max-width: 690px;
  margin-bottom: 24px;
}

.wide-heading {
  max-width: 820px;
}

.life-guide-layout,
.quick-entry-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
  gap: 16px;
  align-items: stretch;
}

.quick-entry-layout {
  grid-template-columns: minmax(300px, 0.76fr) minmax(0, 1fr);
}

.quick-module-panel {
  display: grid;
  align-content: start;
  gap: 12px;
}

.home-start-card {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  align-content: center;
  align-items: center;
  gap: 12px;
  min-height: 236px;
  padding: 22px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(237, 244, 242, 0.94), rgba(255, 255, 255, 0.92));
}

.home-start-thumb {
  grid-row: 1 / span 5;
  width: 100%;
  height: 100%;
  min-height: 176px;
  border-radius: 7px;
  object-fit: cover;
  filter: saturate(0.9) contrast(1.03);
}

.home-start-card > span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.home-start-card h2 {
  max-width: 500px;
  margin-bottom: 0;
  font-size: clamp(26px, 3.2vw, 38px);
}

.home-start-card p {
  max-width: 600px;
  margin-bottom: 0;
  font-size: 16px;
  line-height: 1.62;
}

.home-start-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.home-start-steps span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid rgba(15, 107, 99, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  color: var(--teal-dark);
  font-size: 13px;
  font-weight: 850;
}

.home-start-steps b {
  color: var(--brick);
  font-size: 11px;
}

.home-start-card a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  color: var(--teal);
  font-weight: 900;
  text-decoration: none;
}

.home-start-card a:hover,
.home-start-card a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.home-start-card a svg {
  width: 16px;
  height: 16px;
}

.quick-module-intro {
  margin-bottom: 0;
}

.compact-module-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.primary-route-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.compact-module-grid .module-card {
  min-height: 138px;
  padding: 14px;
  gap: 8px;
}

.primary-route-card {
  border-color: color-mix(in srgb, var(--module-accent, var(--teal)) 22%, var(--line));
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--module-soft, var(--mist)) 48%, #fff) 0%, #fff 58%);
}

.primary-route-thumb {
  position: relative;
  display: block;
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  margin: 0 !important;
  overflow: hidden;
  border-radius: 6px;
  background: var(--mist);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--module-accent, var(--teal)) 16%, transparent);
}

.primary-route-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.88) contrast(1.04);
}

.compact-module-grid .module-copy p {
  display: -webkit-box;
  overflow: hidden;
  font-size: 13px;
  line-height: 1.5;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.guide-feature-card,
.guide-stack a {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.guide-feature-card {
  display: grid;
  grid-template-columns: minmax(240px, 44%) minmax(0, 1fr);
  min-height: 320px;
}

.guide-feature-card img,
.guide-stack img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.guide-feature-card > div {
  display: grid;
  align-content: center;
  padding: 28px;
}

.guide-feature-card span,
.guide-stack span {
  display: block;
  margin-bottom: 10px;
  color: var(--brick);
  font-size: 12px;
  font-weight: 800;
}

.guide-feature-card h2 {
  max-width: 420px;
}

.guide-feature-card p {
  max-width: 480px;
}

.guide-feature-card a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  margin-top: 4px;
  color: var(--teal);
  font-weight: 800;
}

.guide-feature-card a svg {
  width: 16px;
  height: 16px;
}

.user-path-band {
  padding-top: 34px;
  padding-bottom: 34px;
  background: #fff;
}

.user-path-layout {
  display: grid;
  grid-template-columns: minmax(240px, 0.34fr) minmax(0, 0.66fr);
  gap: 18px;
  align-items: start;
}

.compact-heading {
  margin-bottom: 0;
}

.user-path-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.user-path-card {
  --module-accent: var(--teal);
  --module-soft: var(--travel-soft);
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 18px;
  gap: 12px;
  min-height: 132px;
  padding: 14px;
  align-items: start;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.user-path-card:nth-child(2) {
  --module-accent: var(--leaf);
  --module-soft: #f1f6ed;
}

.user-path-card:nth-child(3) {
  --module-accent: var(--brick);
  --module-soft: var(--food-soft);
}

.user-path-card .module-icon {
  color: var(--module-accent);
  background: var(--module-soft);
  border: 1px solid color-mix(in srgb, var(--module-accent) 16%, transparent);
}

.user-path-card > svg {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  color: var(--module-accent);
}

.user-path-card span {
  display: block;
  margin-bottom: 6px;
  color: var(--module-accent);
  font-size: 12px;
  font-weight: 900;
}

.user-path-card h3 {
  margin-bottom: 6px;
  font-size: 18px;
}

.user-path-card p {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.home-trip-flow-band {
  padding-top: 0;
  padding-bottom: 34px;
  background: #fff;
}

.home-trip-flow-layout {
  display: grid;
  grid-template-columns: minmax(240px, 0.34fr) minmax(0, 0.66fr);
  gap: 18px;
  align-items: start;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}

.home-trip-flow-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.home-trip-flow-steps a {
  display: grid;
  gap: 8px;
  min-height: 126px;
  padding: 14px;
  border: 1px solid rgba(15, 107, 99, 0.14);
  border-radius: 8px;
  background: rgba(248, 252, 250, 0.78);
  color: inherit;
  text-decoration: none;
}

.home-trip-flow-steps span {
  width: fit-content;
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
}

.home-trip-flow-steps strong {
  color: var(--ink);
  font-size: 17px;
  line-height: 1.28;
}

.home-trip-flow-steps em {
  color: var(--muted);
  font-size: 13px;
  font-style: normal;
  font-weight: 720;
  line-height: 1.5;
}

.home-trip-flow-steps a:hover strong,
.home-trip-flow-steps a:focus-visible strong {
  color: var(--teal);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.guide-stack {
  display: grid;
  gap: 12px;
}

.guide-stack a {
  display: grid;
  grid-template-columns: 128px minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  column-gap: 14px;
  min-height: 98px;
  align-items: start;
}

.guide-stack img {
  grid-row: 1 / span 2;
}

.guide-stack span {
  margin: 16px 16px 0 0;
}

.guide-stack strong {
  display: block;
  padding: 0 16px 14px 0;
  line-height: 1.35;
}

.editorial-band {
  background: var(--mist);
}

.taste-editorial-band {
  background: #fff;
}

.editorial-layout,
.resource-magazine,
.service-tool-layout,
.about-strip-layout {
  display: grid;
  gap: 18px;
}

.editorial-layout {
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  align-items: stretch;
}

.taste-layout {
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, 0.95fr);
  align-items: start;
}

.editorial-visual-card,
.editorial-card,
.resource-feature-card,
.resource-tile,
.compact-panel,
.compact-entry,
.about-strip-layout {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.editorial-visual-card {
  overflow: hidden;
}

.editorial-visual-card img {
  width: 100%;
  height: 260px;
  object-fit: cover;
}

.editorial-visual-card > div {
  padding: 22px;
}

.editorial-visual-card a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--teal);
  font-weight: 800;
}

.editorial-visual-card a svg {
  width: 16px;
  height: 16px;
}

.taste-visual-card {
  position: sticky;
  top: 92px;
}

.taste-visual-card span {
  display: block;
  margin-bottom: 8px;
  color: var(--brick);
  font-size: 12px;
  font-weight: 800;
}

.editorial-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.taste-entry-grid {
  grid-template-columns: 1fr;
}

.editorial-card {
  display: grid;
  overflow: hidden;
}

.editorial-card img {
  width: 100%;
  height: 118px;
  object-fit: cover;
}

.editorial-card div {
  padding: 14px;
}

.editorial-card span,
.resource-tile span {
  display: block;
  margin-bottom: 7px;
  color: var(--brick);
  font-size: 12px;
  font-weight: 800;
}

.editorial-card h3 {
  margin-bottom: 7px;
  font-size: 19px;
}

.editorial-card p {
  display: -webkit-box;
  overflow: hidden;
  margin-bottom: 0;
  font-size: 14px;
  line-height: 1.55;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.local-weekend-band {
  background: #fff;
}

.weekend-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.weekend-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.weekend-card.weekend-text-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  min-height: 0;
  padding: 16px;
  color: inherit;
  text-decoration: none;
}

.weekend-card-icon {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin: 0;
  border-radius: 8px;
  background: rgba(15, 107, 99, 0.08);
  color: var(--teal);
}

.weekend-card-icon svg {
  width: 19px;
  height: 19px;
}

.weekend-card img {
  width: 100%;
  height: 158px;
  object-fit: cover;
}

.weekend-card div {
  padding: 16px;
}

.weekend-card.weekend-text-card > div {
  padding: 0;
}

.weekend-card span {
  display: block;
  margin-bottom: 7px;
  color: var(--brick);
  font-size: 12px;
  font-weight: 800;
}

.weekend-card h3 {
  margin-bottom: 7px;
  font-size: 20px;
}

.weekend-card p {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.58;
}

.weekend-card.weekend-text-card p {
  margin-bottom: 10px;
}

.weekend-card.weekend-text-card strong {
  display: inline-flex;
  gap: 4px;
  align-items: center;
  color: var(--teal);
  font-size: 13px;
  font-weight: 900;
}

.weekend-card.weekend-text-card strong svg {
  width: 14px;
  height: 14px;
}

.weekend-card.weekend-text-card:hover h3,
.weekend-card.weekend-text-card:focus-visible h3,
.weekend-card.weekend-text-card:hover strong,
.weekend-card.weekend-text-card:focus-visible strong {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.food-bridge-band {
  background: var(--mist);
}

.home-secondary-band {
  padding: 34px 0;
  background: var(--mist);
}

.home-secondary-band .section-heading {
  margin-bottom: 14px;
}

.home-secondary-band .section-heading h2 {
  font-size: clamp(24px, 4vw, 34px);
}

.home-secondary-band .section-heading p:not(.eyebrow) {
  font-size: 15px;
}

.home-secondary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.home-secondary-link-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.home-secondary-link {
  --module-accent: var(--teal);
  --module-soft: var(--travel-soft);
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  grid-template-rows: auto auto 1fr auto;
  gap: 4px 10px;
  min-height: 140px;
  padding: 13px;
  border: 1px solid color-mix(in srgb, var(--module-accent) 14%, var(--line));
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.9);
  color: inherit;
  text-decoration: none;
}

.home-secondary-link:nth-child(1) {
  --module-accent: var(--leaf);
  --module-soft: #f1f6ed;
}

.home-secondary-link:nth-child(2) {
  --module-accent: var(--sea);
  --module-soft: var(--route-soft);
}

.home-secondary-link:nth-child(3) {
  --module-accent: var(--brick);
  --module-soft: var(--food-soft);
}

.home-secondary-link:nth-child(4) {
  --module-accent: var(--gold);
  --module-soft: var(--quality-soft);
}

.home-secondary-link > svg {
  grid-row: 1 / 5;
  width: 34px;
  height: 34px;
  padding: 8px;
  border: 1px solid color-mix(in srgb, var(--module-accent) 16%, transparent);
  border-radius: 8px;
  background: var(--module-soft);
  color: var(--module-accent);
}

.home-secondary-link span {
  align-self: end;
  color: var(--module-accent);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
}

.home-secondary-link strong {
  color: var(--ink);
  font-size: 16px;
  line-height: 1.3;
}

.home-secondary-link p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
}

.home-secondary-link em {
  align-self: end;
  color: var(--module-accent);
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}

.home-secondary-link em::after {
  content: " →";
}

.home-secondary-link:hover strong,
.home-secondary-link:focus-visible strong,
.home-secondary-link:hover em,
.home-secondary-link:focus-visible em {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.home-secondary-block {
  display: grid;
  gap: 10px;
  padding: 15px;
  border: 1px solid rgba(15, 107, 99, 0.13);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.76);
}

.home-secondary-head span {
  display: block;
  margin-bottom: 5px;
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.home-secondary-head h3 {
  margin: 0;
  font-size: 19px;
  line-height: 1.25;
}

.home-secondary-block .weekend-card-grid,
.home-secondary-block .food-bridge-grid {
  grid-template-columns: 1fr;
  gap: 8px;
}

.home-secondary-block .weekend-card.weekend-text-card {
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 11px;
  background: #fff;
}

.home-secondary-block .weekend-card-icon {
  width: 34px;
  height: 34px;
}

.home-secondary-block .weekend-card-icon svg {
  width: 16px;
  height: 16px;
}

.home-secondary-block .weekend-card h3,
.home-secondary-block .food-bridge-card h3 {
  margin-bottom: 3px;
  font-size: 15px;
}

.home-secondary-block .weekend-card p,
.home-secondary-block .food-bridge-card p {
  display: none;
}

.home-secondary-block .weekend-card span,
.home-secondary-block .food-bridge-mark {
  margin-bottom: 4px;
  font-size: 11px;
}

.home-secondary-block .weekend-card.weekend-text-card strong,
.home-secondary-block .food-bridge-card.food-bridge-link-card strong {
  font-size: 12px;
}

.home-secondary-block .food-bridge-card.food-bridge-link-card {
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 11px;
  background: #fff;
}

.home-secondary-block .food-bridge-mark {
  min-height: 30px;
  padding: 6px 7px;
}

.food-bridge-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.food-bridge-card {
  display: grid;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.food-bridge-card.food-bridge-link-card {
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 15px;
  color: inherit;
  text-decoration: none;
}

.food-bridge-mark {
  display: inline-grid;
  place-items: center;
  min-height: 36px;
  padding: 8px 9px;
  border: 1px solid rgba(15, 107, 99, 0.14);
  border-radius: 8px;
  background: rgba(15, 107, 99, 0.07);
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.3;
  text-align: center;
}

.food-bridge-card img {
  width: 100%;
  height: 156px;
  object-fit: cover;
}

.food-bridge-card div {
  padding: 16px;
}

.food-bridge-card.food-bridge-link-card div {
  padding: 0;
}

.food-bridge-card span {
  display: block;
  margin-bottom: 7px;
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.food-bridge-card h3 {
  margin-bottom: 7px;
  font-size: 20px;
}

.food-bridge-card p {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.58;
}

.food-bridge-card.food-bridge-link-card p {
  margin-bottom: 9px;
}

.food-bridge-card.food-bridge-link-card strong {
  display: inline-flex;
  gap: 4px;
  align-items: center;
  color: var(--teal);
  font-size: 13px;
  font-weight: 900;
}

.food-bridge-card.food-bridge-link-card strong svg {
  width: 14px;
  height: 14px;
}

.food-bridge-card.food-bridge-link-card:hover h3,
.food-bridge-card.food-bridge-link-card:focus-visible h3,
.food-bridge-card.food-bridge-link-card:hover strong,
.food-bridge-card.food-bridge-link-card:focus-visible strong {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.home-destination-band {
  padding-top: 24px;
  padding-bottom: 32px;
  background: var(--surface);
}

.home-destination-heading {
  display: flex;
  gap: 14px;
  align-items: end;
  justify-content: space-between;
  max-width: none;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(15, 107, 99, 0.12);
}

.home-destination-heading h2 {
  margin-bottom: 0;
  font-size: 24px;
  line-height: 1.12;
}

.home-destination-heading p {
  max-width: 420px;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
  text-align: right;
}

.home-destination-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.home-destination-card {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid rgba(15, 107, 99, 0.14);
  border-radius: 8px;
  background: rgba(247, 250, 248, 0.84);
}

.home-destination-photo {
  display: block;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border-radius: 7px;
  background: rgba(15, 107, 99, 0.08);
}

.home-destination-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 180ms ease;
}

.home-destination-main {
  display: grid;
  gap: 6px;
  color: inherit;
  text-decoration: none;
}

.home-destination-main span {
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
}

.home-destination-main h3 {
  margin: 0;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.25;
}

.home-destination-main p {
  display: -webkit-box;
  min-height: 62px;
  margin: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.58;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

.home-destination-food {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  min-width: 0;
  padding-top: 8px;
  border-top: 1px solid rgba(15, 107, 99, 0.12);
  color: inherit;
  text-decoration: none;
}

.home-destination-food span {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 4px;
  align-items: center;
  min-width: 0;
  min-height: 30px;
  padding: 4px 6px;
  border: 1px solid rgba(15, 107, 99, 0.1);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.58);
  color: #125f58;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

.home-destination-food span + span {
  border-color: rgba(154, 146, 54, 0.13);
  background: rgba(255, 255, 255, 0.64);
  color: #6a6b25;
}

.home-destination-food b {
  display: inline-grid;
  place-items: center;
  min-height: 18px;
  padding: 2px 4px;
  border-radius: 4px;
  background: rgba(15, 107, 99, 0.08);
  color: var(--teal);
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}

.home-destination-food span + span b {
  background: rgba(154, 146, 54, 0.1);
  color: #6a6b25;
}

.home-destination-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.home-destination-actions a {
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.3;
  text-decoration: none;
}

.home-destination-actions a::after {
  content: " →";
}

.home-destination-main:hover h3,
.home-destination-main:focus-visible h3,
.home-destination-photo:hover + .home-destination-main h3,
.home-destination-photo:focus-visible + .home-destination-main h3,
.home-destination-actions a:hover,
.home-destination-actions a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.home-destination-photo:hover img,
.home-destination-photo:focus-visible img {
  transform: scale(1.03);
}

.home-destination-more {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: rgba(247, 250, 248, 0.66);
}

.home-destination-more span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.3;
}

.home-destination-more div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 8px;
  min-width: 0;
}

.home-destination-more a {
  color: var(--teal);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.3;
  text-decoration: none;
}

.home-destination-more a:hover,
.home-destination-more a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.local-weekend-scenario-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 9px;
}

.local-weekend-scenario-section .section-heading,
.local-weekend-guide-section .section-heading {
  margin-bottom: 14px;
}

.local-weekend-scenario-section .section-heading h2,
.local-weekend-guide-section .section-heading h2 {
  max-width: 620px;
  font-size: 25px;
  line-height: 1.16;
}

.local-weekend-scenario-section .section-heading p:not(.eyebrow),
.local-weekend-guide-section .section-heading p:not(.eyebrow) {
  max-width: 640px;
  font-size: 14px;
  line-height: 1.55;
}

.local-weekend-scenario-card {
  display: grid;
  align-content: start;
  gap: 10px;
  min-width: 0;
  padding: 13px;
  border: 1px solid rgba(15, 107, 99, 0.13);
  border-radius: 8px;
  background: rgba(247, 250, 248, 0.82);
}

.local-weekend-scenario-card > div:first-child {
  display: grid;
  gap: 5px;
}

.local-weekend-scenario-card span {
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
}

.local-weekend-scenario-card h3 {
  margin: 0;
  color: var(--ink);
  font-size: 17px;
  line-height: 1.25;
}

.local-weekend-scenario-card p {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.5;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

.local-weekend-scenario-points {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.local-weekend-scenario-points a {
  color: #0f625b;
  font-size: 11.5px;
  font-weight: 850;
  line-height: 1.3;
  text-decoration: none;
}

.local-weekend-scenario-points a::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  margin-right: 4px;
  border-radius: 999px;
  background: rgba(15, 107, 99, 0.56);
  vertical-align: 2px;
}

.local-weekend-scenario-points a:hover,
.local-weekend-scenario-points a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.local-weekend-scenario-food {
  display: grid;
  gap: 5px;
  padding-top: 8px;
  border-top: 1px solid rgba(15, 107, 99, 0.1);
}

.local-weekend-scenario-food small {
  color: #64746f;
  font-size: 10.5px;
  font-weight: 850;
  line-height: 1.2;
}

.local-weekend-scenario-food .travel-food-mini-split {
  gap: 3px;
}

.local-weekend-scenario-food .travel-food-mini-row,
.local-weekend-food-preview .travel-food-mini-row {
  display: flex;
  flex-wrap: wrap;
  grid-template-columns: none;
  gap: 3px 5px;
  align-items: center;
}

.local-weekend-scenario-food .travel-food-mini-row b,
.local-weekend-food-preview .travel-food-mini-row b {
  flex: 0 0 auto;
}

.local-weekend-scenario-food .travel-food-mini-row > div,
.local-weekend-food-preview .travel-food-mini-row > div {
  display: flex;
  flex: 1 1 64px;
  flex-wrap: wrap;
  min-width: 0;
  gap: 3px 5px;
}

.local-weekend-point-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.local-weekend-food-cue {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: -4px 0 14px;
  padding: 10px 12px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: rgba(247, 250, 248, 0.74);
}

.local-weekend-food-cue span {
  color: #36524e;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

.local-weekend-food-cue span::before {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  margin-right: 6px;
  border-radius: 999px;
  background: rgba(15, 107, 99, 0.62);
  vertical-align: 2px;
}

.local-weekend-food-cue span:nth-child(3)::before {
  background: rgba(154, 146, 54, 0.72);
}

.local-weekend-more-fold {
  margin-top: 14px;
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.local-weekend-more-fold > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px;
  gap: 10px;
  align-items: center;
  margin-bottom: 0;
  cursor: pointer;
  list-style: none;
}

.local-weekend-more-fold > summary::-webkit-details-marker {
  display: none;
}

.local-weekend-more-fold > summary::after {
  content: "+";
  display: grid;
  grid-row: 1 / span 2;
  grid-column: 2;
  place-items: center;
  width: 26px;
  height: 26px;
  color: var(--teal);
  border: 1px solid rgba(15, 107, 99, 0.22);
  border-radius: 999px;
  font-size: 15px;
  font-weight: 900;
}

.local-weekend-more-fold[open] > summary {
  margin-bottom: 12px;
}

.local-weekend-more-fold[open] > summary::after {
  content: "-";
}

.local-weekend-more-fold > summary span,
.local-weekend-more-fold > summary strong {
  display: block;
  grid-column: 1;
}

.local-weekend-more-fold > summary span {
  margin-bottom: 2px;
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
}

.local-weekend-more-fold > summary strong {
  color: var(--ink);
  font-size: 18px;
  line-height: 1.25;
}

.local-weekend-point-card {
  display: grid;
  gap: 11px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  color: inherit;
  transition:
    border-color 0.18s ease,
    transform 0.18s ease;
}

.local-weekend-point-card:hover,
.local-weekend-point-card:focus-visible {
  border-color: rgba(15, 107, 99, 0.34);
  transform: translateY(-1px);
}

.local-weekend-point-card img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.local-weekend-point-image,
.local-weekend-point-card h3 a {
  color: inherit;
  text-decoration: none;
}

.local-weekend-point-card h3 a:hover,
.local-weekend-point-card h3 a:focus-visible,
.local-weekend-point-action:hover,
.local-weekend-point-action:focus-visible {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.local-weekend-point-meta,
.local-weekend-point-card h3,
.local-weekend-point-card p,
.local-weekend-point-card .travel-chip-row,
.local-weekend-point-action {
  margin-right: 14px;
  margin-left: 14px;
}

.local-weekend-point-meta {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}

.local-weekend-point-card span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.local-weekend-point-card strong {
  flex: 0 0 auto;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.local-weekend-point-card h3 {
  font-size: 20px;
}

.local-weekend-point-card p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
}

.local-weekend-point-card .travel-chip-row {
  margin-bottom: 14px;
}

.local-weekend-food-preview {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px;
  align-items: start;
  margin: -2px 14px 14px;
  padding-top: 8px;
  border-top: 1px solid rgba(15, 107, 99, 0.12);
}

.local-weekend-food-preview > span {
  grid-column: 1;
  grid-row: 1;
  color: #0f625b;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
}

.local-weekend-food-preview .travel-food-mini-split {
  grid-column: 1 / -1;
  grid-row: 2;
  gap: 3px;
}

.local-weekend-food-preview .travel-food-mini-row {
  gap: 5px;
}

.local-weekend-food-preview > a {
  grid-column: 2;
  grid-row: 1;
  width: fit-content;
  color: var(--teal);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
  text-decoration: none;
}

.local-weekend-food-preview > a::after {
  content: " →";
}

.local-weekend-route-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 7px;
  align-items: baseline;
  margin: -4px 14px 0;
  padding: 7px 8px;
  border: 1px solid rgba(15, 107, 99, 0.11);
  border-radius: 6px;
  background: rgba(15, 107, 99, 0.04);
}

.local-weekend-route-preview span {
  color: #6f817d;
  font-size: 10.5px;
  font-weight: 850;
  line-height: 1.2;
}

.local-weekend-route-preview a {
  min-width: 0;
  color: var(--teal);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
  text-decoration: none;
}

.local-weekend-route-preview small {
  color: var(--brick);
  font-size: 10.5px;
  font-weight: 850;
  line-height: 1.2;
}

.local-weekend-route-preview a::after {
  content: " →";
}

.local-weekend-route-preview a:hover,
.local-weekend-route-preview a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.local-weekend-point-action {
  width: fit-content;
  margin-top: -5px;
  margin-bottom: 14px;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.25;
  text-decoration: none;
}

.local-weekend-point-action::after {
  content: " →";
}

.local-weekend-food-summary {
  scroll-margin-top: 86px;
}

.local-weekend-route-summary {
  scroll-margin-top: 86px;
}

.local-weekend-route-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.local-weekend-route-item {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(15, 107, 99, 0.14);
  border-radius: 8px;
  background: rgba(15, 107, 99, 0.045);
}

.local-weekend-route-item span {
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
}

.local-weekend-route-item h3 {
  margin: 4px 0 6px;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.28;
}

.local-weekend-route-item p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.local-weekend-route-stops {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.local-weekend-route-stops span {
  padding: 5px 7px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.72);
  color: var(--teal);
  font-size: 11px;
  font-weight: 800;
}

.local-weekend-route-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  padding-top: 2px;
}

.local-weekend-route-actions a {
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.25;
  text-decoration: none;
}

.local-weekend-route-actions a::after {
  content: " →";
}

.local-weekend-route-actions a:hover,
.local-weekend-route-actions a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.travel-weekend-shortcut {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.42fr);
  gap: 14px;
  align-items: stretch;
  padding: 16px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 8px;
  background: rgba(15, 107, 99, 0.055);
}

.travel-weekend-shortcut > div {
  min-width: 0;
}

.travel-weekend-shortcut h2 {
  margin: 0 0 6px;
  color: var(--ink);
  font-size: 22px;
  line-height: 1.25;
}

.travel-weekend-shortcut p:not(.eyebrow) {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
}

.travel-weekend-shortcut > a {
  display: grid;
  align-content: center;
  gap: 5px;
  min-width: 0;
  padding: 13px 14px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.72);
  color: inherit;
  text-decoration: none;
}

.travel-weekend-shortcut > a span {
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
}

.travel-weekend-shortcut > a strong {
  color: var(--ink);
  font-size: 17px;
  font-weight: 900;
  line-height: 1.25;
}

.travel-weekend-shortcut > a em {
  color: var(--teal);
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
  line-height: 1.25;
}

.travel-weekend-shortcut > a em::after {
  content: " →";
}

.travel-weekend-shortcut > a:hover strong,
.travel-weekend-shortcut > a:focus-visible strong,
.travel-weekend-shortcut > a:hover em,
.travel-weekend-shortcut > a:focus-visible em {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.local-weekend-detail-page {
  display: grid;
  gap: 18px;
}

.local-weekend-detail-card {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 16px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.local-weekend-detail-card.is-summary {
  grid-template-columns: 1fr;
}

.local-weekend-detail-card img {
  width: 100%;
  height: 100%;
  min-height: 260px;
  object-fit: cover;
}

.local-weekend-detail-card > div {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 18px 18px 18px 0;
}

.local-weekend-detail-card.is-summary > div {
  padding: 18px;
}

.local-weekend-detail-card span,
.local-weekend-cycle span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.local-weekend-detail-card h3 {
  margin: 0;
  color: var(--ink);
  font-size: 24px;
  line-height: 1.22;
}

.local-weekend-detail-card p {
  margin: 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.65;
}

.local-weekend-detail-card dl {
  display: grid;
  gap: 8px;
  margin: 4px 0 0;
}

.local-weekend-detail-card dl div {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 8px;
  padding: 9px 10px;
  border-radius: 8px;
  background: rgba(15, 107, 99, 0.06);
}

.local-weekend-detail-card dt,
.local-weekend-detail-card dd {
  margin: 0;
  font-size: 13px;
  line-height: 1.45;
}

.local-weekend-detail-card dt {
  color: var(--teal);
  font-weight: 900;
}

.local-weekend-detail-card dd {
  color: var(--ink);
  font-weight: 800;
}

.local-weekend-decision-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.local-weekend-decision-panel > div {
  display: grid;
  align-content: start;
  gap: 7px;
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: rgba(15, 107, 99, 0.045);
}

.local-weekend-decision-panel span {
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
}

.local-weekend-decision-panel strong {
  color: var(--teal);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
}

.local-weekend-decision-panel p {
  margin: 0;
  color: var(--ink);
  font-size: 15px;
  font-weight: 900;
  line-height: 1.35;
}

.local-weekend-decision-panel a {
  width: fit-content;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.25;
  text-decoration: none;
}

.local-weekend-decision-panel a::after {
  content: " →";
}

.local-weekend-decision-food > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}

.local-weekend-decision-food b {
  flex: 0 0 auto;
  color: var(--brick);
  font-size: 9.5px;
  line-height: 1.25;
}

.local-weekend-cycle {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.local-weekend-cycle span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.local-weekend-cycle span svg {
  width: 13px;
  height: 13px;
}

.local-weekend-cycle a {
  display: grid;
  align-content: start;
  gap: 5px;
  min-height: 72px;
  padding: 12px;
  color: inherit;
  text-decoration: none;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.local-weekend-cycle a:hover,
.local-weekend-cycle a:focus-visible {
  border-color: rgba(15, 107, 99, 0.34);
}

.local-weekend-cycle strong {
  min-width: 0;
  color: var(--ink);
  font-size: 16px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

#weekend-nearby {
  gap: 10px;
}

#weekend-nearby > .section-heading {
  margin-bottom: 0;
}

.resource-magazine {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.resource-feature-card {
  overflow: hidden;
}

.resource-feature-card img {
  width: 100%;
  height: 230px;
  object-fit: cover;
}

.resource-feature-card div {
  padding: 22px;
}

.resource-tile-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.resource-tile {
  display: grid;
  min-height: 112px;
  padding: 16px;
  align-content: start;
}

.resource-tile svg {
  width: 22px;
  height: 22px;
  margin-bottom: 12px;
  color: var(--teal);
}

.resource-tile strong {
  font-size: 18px;
}

.site-index-band {
  padding: 34px 0;
  background: #fff;
}

.site-index-fold {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(247, 250, 248, 0.84);
}

.site-index-fold > summary {
  position: relative;
  display: block;
  cursor: pointer;
  list-style: none;
}

.site-index-fold > summary::-webkit-details-marker {
  display: none;
}

.site-index-fold > summary::after {
  content: "+";
  position: absolute;
  top: 4px;
  right: 0;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 1px solid rgba(15, 107, 99, 0.18);
  border-radius: 6px;
  color: var(--teal);
  font-size: 18px;
  font-weight: 850;
  line-height: 1;
}

.site-index-fold[open] > summary::after {
  content: "-";
}

.site-index-fold .section-heading {
  margin-bottom: 0;
  padding-right: 38px;
}

.site-index-fold[open] .section-heading {
  margin-bottom: 18px;
}

.site-index-fold .site-index-grid {
  padding-top: 16px;
  border-top: 1px solid rgba(15, 107, 99, 0.12);
}

.site-index-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.site-index-grid article {
  min-height: 236px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.site-index-grid h3 {
  margin-bottom: 8px;
}

.site-index-grid p {
  margin-bottom: 14px;
  font-size: 14px;
  line-height: 1.6;
}

.site-index-grid ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-index-grid a {
  display: inline-flex;
  align-items: center;
  width: 100%;
  min-height: 28px;
  color: var(--teal);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.site-index-grid a:hover {
  color: var(--teal-dark);
}

.inline-note {
  grid-column: 1 / -1;
  margin: 0;
  padding: 13px 16px;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: 14px;
}

.inline-note a {
  color: var(--teal);
  font-weight: 800;
}

.quiet-resource-band {
  padding-top: 34px;
  padding-bottom: 34px;
}

.quiet-resource-layout {
  display: grid;
  grid-template-columns: minmax(220px, 0.32fr) minmax(0, 0.68fr);
  gap: 14px;
  align-items: start;
}

.quiet-resource-copy {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.82);
}

.quiet-resource-copy h2 {
  margin-bottom: 8px;
  font-size: 24px;
}

.quiet-resource-copy p:last-child {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
}

.quiet-resource-layout .resource-tile-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.quiet-resource-layout .resource-tile {
  min-height: 86px;
  padding: 12px;
}

.quiet-resource-layout .resource-tile svg {
  width: 18px;
  height: 18px;
  margin-bottom: 8px;
}

.quiet-resource-layout .resource-tile strong {
  font-size: 15px;
}

.quiet-resource-layout .inline-note {
  grid-column: 1 / -1;
}

.compact-service-band {
  position: relative;
}

.anchor-target {
  position: absolute;
  top: -84px;
}

.service-tool-layout {
  grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr);
  align-items: start;
}

.service-lite-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.45fr);
  gap: 10px;
  align-items: stretch;
}

.service-lite-layout .compact-entry,
.service-lite-layout .compact-tool-item {
  min-height: 92px;
}

.service-lite-tools {
  grid-template-columns: 1fr;
}

.compact-panel {
  padding: 18px;
}

.compact-panel h3 {
  margin-bottom: 14px;
}

.compact-entry-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.compact-entry {
  --module-accent: var(--teal);
  --module-soft: var(--travel-soft);
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  min-height: 104px;
  padding: 14px;
}

.compact-entry:nth-child(2n) {
  --module-accent: var(--brick);
  --module-soft: var(--food-soft);
}

.compact-entry:nth-child(3n) {
  --module-accent: var(--sea);
  --module-soft: var(--route-soft);
}

.compact-entry:nth-child(4n) {
  --module-accent: var(--gold);
  --module-soft: var(--quality-soft);
}

.compact-entry .module-icon {
  width: 38px;
  height: 38px;
  margin-bottom: 0;
  color: var(--module-accent);
  background: var(--module-soft);
  border: 1px solid color-mix(in srgb, var(--module-accent) 16%, transparent);
}

.compact-entry h4,
.compact-tool-item h3 {
  margin: 0 0 6px;
  font-size: 17px;
  line-height: 1.25;
}

.compact-entry p,
.compact-tool-item p {
  display: -webkit-box;
  overflow: hidden;
  margin-bottom: 0;
  font-size: 13px;
  line-height: 1.5;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.compact-tool-stack {
  gap: 10px;
}

.compact-tool-item {
  padding: 14px;
}

.about-strip-band {
  padding: 26px 0;
  background: #fff;
}

.about-strip-layout {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  padding: 18px;
}

.about-strip-layout span {
  display: block;
  margin-bottom: 6px;
  color: var(--brick);
  font-size: 12px;
  font-weight: 800;
}

.about-strip-layout h2 {
  margin-bottom: 6px;
  font-size: 24px;
}

.about-strip-layout p {
  margin-bottom: 0;
}

.about-strip-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 10px;
  color: var(--teal);
  font-weight: 800;
}

.footer-mini-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  align-items: center;
}

.footer-mini-links a {
  color: rgba(255, 255, 255, 0.74);
  font-weight: 700;
}

.site-footer a {
  color: rgba(255, 255, 255, 0.82);
}

.module-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.module-card,
.taste-card,
.service-card,
.notice-panel,
.contact-box,
.admin-section,
.policy-grid article,
.tool-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.module-card,
.taste-card,
.service-card {
  min-height: 184px;
  padding: 18px;
}

.module-card {
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 12px;
  position: relative;
  overflow: hidden;
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.18s ease;
}

.module-card::before {
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: var(--module-accent, var(--teal));
  content: "";
  opacity: 0.85;
}

.module-card:hover {
  border-color: color-mix(in srgb, var(--module-accent, var(--teal)) 34%, transparent);
  box-shadow: 0 14px 36px rgba(23, 33, 38, 0.1);
  transform: translateY(-2px);
}

.module-card-head {
  display: flex;
  align-items: center;
  gap: 12px;
}

.module-icon {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin-bottom: 16px;
  color: var(--module-accent, var(--teal));
  background: var(--module-soft, rgba(15, 107, 99, 0.1));
  border: 1px solid color-mix(in srgb, var(--module-accent, var(--teal)) 16%, transparent);
  border-radius: 6px;
}

.module-card .module-icon {
  flex: 0 0 auto;
  margin-bottom: 0;
}

.module-card span {
  margin-bottom: 0;
}

.module-copy h3 {
  margin-bottom: 8px;
}

.module-card-action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--module-accent, var(--teal));
  font-size: 14px;
}

.module-card-action svg {
  width: 16px;
  height: 16px;
}

.module-card.tone-travel,
.module-card[href*="discover"],
.module-card[href*="travelHub"],
.module-card[href*="wenzhou-travel"] {
  --module-accent: var(--teal);
  --module-soft: var(--travel-soft);
}

.module-card.tone-food,
.module-card[href*="wenzhou-food"],
.module-card[href*="foodItem"],
.module-card[href*="foodGroup"] {
  --module-accent: var(--brick);
  --module-soft: var(--food-soft);
}

.module-card.tone-route,
.module-card[href*="travelLine"],
.module-card[href*="travelRoute"] {
  --module-accent: var(--sea);
  --module-soft: var(--route-soft);
}

.module-card.tone-guide,
.module-card[href*="local-weekend"] {
  --module-accent: var(--leaf);
  --module-soft: #f1f6ed;
}

.module-card.tone-quality,
.module-card[href*="taste"],
.module-card[href*="comparison"],
.module-card[href*="ingredients"] {
  --module-accent: var(--gold);
  --module-soft: var(--quality-soft);
}

.module-card p,
.taste-card p,
.service-card p,
.tool-item p {
  margin-bottom: 0;
}

.split-layout,
.resource-layout,
.utility-grid,
.about-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(320px, 1fr);
  gap: 44px;
  align-items: start;
}

.feature-list {
  display: grid;
  gap: 12px;
}

.feature-row {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  gap: 18px;
  min-height: 86px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(23, 33, 38, 0.14);
}

.feature-row span {
  color: var(--teal-dark);
  font-size: 20px;
  font-weight: 800;
}

.feature-row p {
  margin-bottom: 0;
}

.taste-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.taste-card {
  min-height: 176px;
  border-top: 4px solid var(--brick);
}

.service-band {
  color: var(--ink);
  background: #edf4f2;
}

.service-band .eyebrow {
  color: var(--brick);
}

.service-band p {
  color: var(--muted);
}

.service-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.service-card {
  color: var(--ink);
}

.service-card a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 22px;
  color: var(--teal);
  font-weight: 800;
}

.resource-layout {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 390px);
}

.pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.pill-row span {
  padding: 10px 14px;
  color: var(--teal-dark);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 999px;
  font-weight: 800;
}

.pill-row a {
  padding: 10px 14px;
  color: var(--teal-dark);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 999px;
  font-weight: 800;
}

.notice-panel {
  padding: 22px;
  box-shadow: var(--shadow);
}

.notice-panel h3 {
  font-size: 26px;
}

.notice-panel ul {
  display: grid;
  gap: 12px;
  padding-left: 18px;
  margin: 18px 0 0;
  color: var(--muted);
  line-height: 1.6;
}

.tool-stack {
  display: grid;
  gap: 12px;
}

.tool-item {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 14px;
  padding: 18px;
}

.tool-item svg {
  color: var(--brick);
}

.about-band {
  background: #fff;
}

.contact-box {
  padding: 24px;
}

.contact-box strong {
  display: block;
  margin-bottom: 20px;
  font-size: 24px;
  line-height: 1.3;
}

.site-footer {
  padding: 30px 0;
  color: rgba(255, 255, 255, 0.78);
  background: #172126;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1.3fr;
  gap: 20px;
}

.site-footer strong {
  color: #fff;
}

.site-footer p {
  margin-bottom: 0;
  color: rgba(255, 255, 255, 0.7);
}

.link-directory-section {
  display: grid;
  gap: 18px;
  padding-top: 28px;
}

.link-directory-section .section-heading {
  margin-bottom: 0;
}

.link-directory-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.link-directory-card {
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  gap: 6px;
  min-height: 148px;
  padding: 18px;
  color: inherit;
  text-decoration: none;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.link-directory-card span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 850;
}

.link-directory-card strong {
  color: var(--ink);
  font-size: 20px;
  line-height: 1.25;
}

.link-directory-card p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

.link-directory-card em {
  color: var(--teal);
  font-size: 13px;
  font-style: normal;
  font-weight: 850;
}

.link-directory-card:hover strong,
.link-directory-card:focus-visible strong,
.link-directory-card:hover em,
.link-directory-card:focus-visible em {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.link-directory-note {
  margin: 18px 0 0;
  padding: 13px 16px;
  color: var(--muted);
  border-left: 3px solid rgba(15, 107, 99, 0.42);
  background: rgba(15, 107, 99, 0.05);
  font-size: 13px;
  line-height: 1.6;
}

.admin-body {
  min-height: 100vh;
  background: var(--mist);
}

.admin-main {
  width: var(--container);
  margin: 0 auto;
  padding: 112px 0 64px;
}

.admin-hero {
  max-width: 780px;
  margin-bottom: 30px;
}

.admin-hero h1 {
  max-width: none;
  margin-bottom: 14px;
  color: var(--ink);
  font-size: 48px;
  line-height: 1.08;
}

.admin-local-note {
  margin-top: 16px;
  padding: 12px 14px;
  border: 1px solid #d7dfdd;
  border-left: 3px solid #be4a32;
  border-radius: 6px;
  background: #fff;
  color: #4e5a58;
  font-size: 14px;
  line-height: 1.6;
}

.admin-local-note strong {
  color: #9d3523;
}

.admin-section {
  padding: 24px;
  margin-bottom: 18px;
}

.admin-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.admin-section-head h2,
.policy-section h2 {
  margin-bottom: 0;
  font-size: 28px;
}

.admin-list {
  display: grid;
  gap: 10px;
}

.admin-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 72px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
}

.admin-row strong {
  display: block;
  margin-bottom: 4px;
}

.admin-row p {
  margin-bottom: 0;
}

.admin-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}

.admin-form label {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-weight: 800;
}

.admin-form textarea,
.admin-form button {
  grid-column: 1 / -1;
}

.admin-form input,
.admin-form textarea,
.admin-form select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 11px 12px;
  color: var(--ink);
  background: var(--surface);
}

.checkbox-row,
.form-actions {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.checkbox-row label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ink);
}

.checkbox-row input {
  width: auto;
}

.module-row.is-muted {
  opacity: 0.72;
}

.module-admin-main {
  min-width: 0;
}

.module-admin-title {
  margin-bottom: 8px;
}

.module-admin-title em {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}

.module-admin-main small {
  display: block;
  margin-top: 8px;
  color: var(--brick);
  line-height: 1.5;
}

.lock-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 10px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.empty-state {
  padding: 18px;
  margin-bottom: 0;
  color: var(--muted);
  background: var(--paper);
  border: 1px dashed var(--line);
  border-radius: 8px;
}

.policy-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 18px;
}

.policy-grid article {
  padding: 18px;
}

.policy-grid strong,
.policy-grid span {
  display: block;
}

.policy-grid strong {
  margin-bottom: 8px;
}

.policy-grid span {
  color: var(--muted);
  line-height: 1.6;
}

.template-body {
  min-height: 100vh;
  background: var(--paper);
}

.template-main {
  width: var(--container);
  margin: 0 auto;
  padding: 106px 0 64px;
}

.template-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  gap: 34px;
  align-items: center;
  padding: 30px 0 28px;
  border-bottom: 1px solid var(--line);
}

.template-hero.is-text-only {
  grid-template-columns: minmax(0, 860px);
}

.template-hero-copy {
  min-width: 0;
}

.template-hero h1 {
  max-width: 840px;
  margin-bottom: 12px;
  color: var(--ink);
  font-size: 46px;
  line-height: 1.05;
}

.template-hero p:not(.eyebrow) {
  max-width: 760px;
  font-size: 18px;
}

.template-hero-visual {
  position: relative;
  min-height: 206px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--mist);
}

.template-hero.is-text-only .template-hero-visual {
  display: none;
}

.template-hero-visual img,
.card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.template-hero-visual img {
  position: absolute;
  inset: 0;
}

.template-hero-visual::after,
.card-media::after {
  position: absolute;
  inset: 0;
  content: "";
  background:
    linear-gradient(0deg, rgba(8, 25, 28, 0.54), rgba(8, 25, 28, 0.1)),
    linear-gradient(90deg, rgba(15, 107, 99, 0.2), rgba(183, 68, 46, 0.1));
}

.template-hero-visual.is-photo-only::after {
  background: linear-gradient(0deg, rgba(8, 25, 28, 0.18), rgba(8, 25, 28, 0.02));
}

.template-hero-visual div {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 16px;
  z-index: 1;
  color: #fff;
}

.template-hero-visual span,
.card-media span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 4px 8px;
  color: #fff;
  background: rgba(8, 25, 28, 0.58);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
}

.template-hero-visual strong {
  display: block;
  margin-top: 8px;
  font-size: 24px;
  line-height: 1.18;
}

.tone-taste::after {
  background:
    linear-gradient(0deg, rgba(76, 38, 24, 0.56), rgba(76, 38, 24, 0.1)),
    linear-gradient(90deg, rgba(183, 68, 46, 0.2), rgba(198, 138, 47, 0.14));
}

.tone-service::after {
  background:
    linear-gradient(0deg, rgba(18, 44, 70, 0.66), rgba(18, 44, 70, 0.12)),
    linear-gradient(90deg, rgba(36, 91, 143, 0.26), rgba(15, 107, 99, 0.14));
}

.tone-resource::after {
  background:
    linear-gradient(0deg, rgba(10, 57, 52, 0.66), rgba(10, 57, 52, 0.1)),
    linear-gradient(90deg, rgba(15, 107, 99, 0.26), rgba(198, 138, 47, 0.16));
}

.tone-tool::after {
  background:
    linear-gradient(0deg, rgba(36, 91, 143, 0.62), rgba(36, 91, 143, 0.1)),
    linear-gradient(90deg, rgba(36, 91, 143, 0.2), rgba(183, 68, 46, 0.14));
}

.status-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 10px;
  margin-bottom: 16px;
  color: var(--teal-dark);
  background: var(--mist);
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
}

.template-content {
  display: grid;
  gap: 28px;
  padding-top: 28px;
}

.template-section {
  display: grid;
  gap: 18px;
}

.template-section > .section-heading {
  margin-bottom: 0;
}

.spec-grid,
.merchant-profile {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.spec-grid article,
.merchant-profile article,
.template-card,
.boundary-box,
.public-form,
.article-shell,
.policy-list article {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.spec-grid article,
.merchant-profile article {
  min-height: 96px;
  padding: 18px;
}

.spec-grid span,
.merchant-profile span,
.template-card span {
  display: block;
  margin-bottom: 8px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.spec-grid strong,
.merchant-profile strong {
  display: block;
  overflow-wrap: anywhere;
}

.template-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  align-items: start;
}

.compact-template-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.template-card {
  min-height: 0;
  padding: 16px;
}

.media-card {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  min-height: 128px;
  overflow: hidden;
  padding: 0;
}

.card-media {
  position: relative;
  min-height: 128px;
  overflow: hidden;
  background: var(--mist);
}

.card-media span {
  position: absolute;
  left: 10px;
  bottom: 10px;
  z-index: 1;
}

.card-copy {
  min-width: 0;
  padding: 16px;
}

.media-card .card-copy > span {
  display: none;
}

.card-copy h3 {
  margin-bottom: 8px;
  font-size: 20px;
}

.card-copy p {
  margin-bottom: 0;
  line-height: 1.65;
}

.action-card {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-height: 118px;
  padding: 16px;
}

.action-icon {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  color: var(--teal);
  background: rgba(15, 107, 99, 0.1);
  border-radius: 8px;
}

.action-icon svg {
  width: 20px;
  height: 20px;
}

.taste-hub-path-grid {
  margin-top: 4px;
}

.taste-hub-featured-grid {
  margin-top: 2px;
}

.taste-hub-next-section {
  padding-bottom: 0;
}

.quality-comparison-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.quality-comparison-grid.is-preview {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.quality-comparison-card {
  display: grid;
  grid-template-columns: 126px minmax(0, 1fr) 18px;
  gap: 14px;
  align-items: stretch;
  min-height: 156px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  color: inherit;
  text-decoration: none;
}

.quality-comparison-card.is-compact {
  grid-template-columns: 88px minmax(0, 1fr) 16px;
  min-height: 124px;
}

.quality-comparison-card > img {
  width: 100%;
  height: 100%;
  min-height: 156px;
  object-fit: cover;
}

.quality-comparison-card.is-compact > img {
  min-height: 124px;
}

.quality-comparison-card-copy {
  display: grid;
  align-content: center;
  gap: 5px;
  min-width: 0;
  padding: 14px 0;
}

.quality-comparison-card-copy > strong {
  font-size: 19px;
  line-height: 1.25;
}

.quality-comparison-card-copy > span:not(.quality-comparison-meta) {
  display: -webkit-box;
  overflow: hidden;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.quality-comparison-meta {
  color: var(--rust);
  font-size: 11px;
  font-weight: 800;
}

.quality-comparison-card-copy small {
  overflow: hidden;
  color: var(--teal-dark);
  font-size: 11px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.quality-comparison-card > svg {
  align-self: center;
  width: 17px;
  height: 17px;
  margin-right: 12px;
  color: var(--teal);
}

.quality-comparison-card:hover,
.quality-comparison-card:focus-visible {
  border-color: rgba(15, 107, 99, 0.42);
  box-shadow: 0 8px 22px rgba(23, 33, 38, 0.08);
}

.quality-comparison-more {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: fit-content;
  color: var(--teal-dark);
  font-size: 14px;
  font-weight: 800;
}

.quality-comparison-more svg {
  width: 17px;
  height: 17px;
}

.quality-principle-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.quality-principle-grid article {
  display: grid;
  gap: 7px;
  min-height: 132px;
  padding: 14px;
  border-top: 2px solid rgba(15, 107, 99, 0.38);
  background: rgba(15, 107, 99, 0.045);
}

.quality-principle-grid svg {
  width: 21px;
  height: 21px;
  color: var(--teal);
}

.quality-principle-grid strong {
  font-size: 15px;
}

.quality-principle-grid span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.quality-channel-actions {
  margin-top: -4px;
}

.template-card:hover,
.feature-row:hover,
.taste-card:hover,
.tool-item:hover,
.pill-row a:hover {
  border-color: rgba(15, 107, 99, 0.45);
  box-shadow: 0 10px 26px rgba(23, 33, 38, 0.08);
}

.template-link-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.template-link-list a {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  min-height: 40px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  font-weight: 800;
}

.template-link-list span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.discover-hub-section {
  gap: 16px;
}

.discover-hub-step-grid,
.discover-hub-branch-grid,
.discover-route-teaser-grid {
  display: grid;
  gap: 12px;
}

.discover-hub-step-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.discover-hub-step,
.discover-hub-branch-card,
.discover-route-teaser {
  border: 1px solid rgba(15, 107, 99, 0.14);
  border-radius: 8px;
  background: var(--surface);
}

.discover-hub-step {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  min-height: 124px;
  padding: 14px;
  color: inherit;
  text-decoration: none;
}

.discover-hub-step > span {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: rgba(15, 107, 99, 0.09);
  color: var(--teal);
}

.discover-hub-step svg {
  width: 19px;
  height: 19px;
}

.discover-hub-step b,
.discover-hub-branch-card span,
.discover-route-teaser span {
  display: block;
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
}

.discover-hub-step strong {
  display: block;
  margin-top: 5px;
  color: var(--ink);
  font-size: 17px;
  line-height: 1.25;
}

.discover-hub-step small {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.48;
}

.discover-hub-branch-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.discover-hub-branch-card {
  overflow: hidden;
}

.discover-hub-branch-image {
  display: block;
  height: 132px;
  overflow: hidden;
}

.discover-hub-branch-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.discover-hub-branch-card > div {
  display: grid;
  gap: 7px;
  padding: 13px;
}

.discover-hub-branch-card h3 {
  font-size: 18px;
  line-height: 1.25;
}

.discover-hub-branch-card h3 a,
.discover-hub-branch-card > div > a,
.discover-route-actions a {
  color: var(--teal);
  font-weight: 900;
  text-decoration: none;
}

.discover-hub-branch-card h3 a {
  color: var(--ink);
}

.discover-hub-branch-card p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.discover-hub-branch-card > div > a,
.discover-route-actions a {
  width: fit-content;
  font-size: 12px;
  line-height: 1.25;
}

.discover-hub-branch-card > div > a::after,
.discover-route-actions a::after {
  content: " →";
}

.discover-route-teaser-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.discover-route-teaser {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 14px;
  background: rgba(15, 107, 99, 0.045);
}

.discover-route-media {
  position: relative;
  min-height: 116px;
  overflow: hidden;
  border-radius: 6px;
  background: #dbe8e5;
}

.discover-route-media::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15, 31, 34, 0.46), transparent 48%, rgba(15, 31, 34, 0.12));
  content: "";
  pointer-events: none;
}

.discover-route-media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 116px;
  aspect-ratio: 16 / 7;
  object-fit: cover;
}

.discover-route-media > span,
.discover-route-media > small {
  position: absolute;
  z-index: 1;
  top: 10px;
  padding: 5px 8px;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 6px;
  background: rgba(15, 31, 34, 0.72);
  color: #fff;
  font-weight: 850;
  line-height: 1.2;
  backdrop-filter: blur(5px);
}

.discover-route-media > span {
  left: 10px;
  font-size: var(--type-meta, 11.5px);
}

.discover-route-media > small {
  right: 10px;
}

.discover-route-head {
  min-width: 0;
}

.travel-route-card-icon,
.travel-route-chooser-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(15, 107, 99, 0.11), rgba(184, 75, 54, 0.055));
  color: var(--teal);
}

.travel-route-card-icon svg,
.travel-route-chooser-icon svg {
  width: 18px;
  height: 18px;
  stroke-width: 2.2;
}

.discover-route-copy {
  min-width: 0;
}

.discover-route-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.discover-route-duration {
  align-self: start;
  color: #49635f;
  font-size: 10.5px;
  font-weight: 900;
  line-height: 1.25;
  white-space: nowrap;
}

.discover-route-teaser h3 {
  margin: 5px 0 6px;
  font-size: 18px;
  line-height: 1.28;
}

.discover-route-teaser p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.discover-route-stops,
.discover-route-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.discover-route-stops span {
  padding: 4px 6px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.72);
  color: #345b56;
  font-size: 10.5px;
  font-weight: 800;
}

.discover-route-food-preview {
  display: grid;
  grid-template-columns: auto repeat(2, minmax(0, 1fr));
  align-items: center;
  align-self: start;
  gap: 5px 8px;
  padding: 7px 8px;
  border: 1px solid rgba(15, 107, 99, 0.1);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.56);
}

.discover-route-food-preview strong {
  color: #345b56;
  font-size: 10px;
  font-weight: 900;
  line-height: 1.25;
  white-space: nowrap;
}

.discover-route-food-preview > div {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 3px;
  min-width: 0;
}

.discover-route-food-preview b {
  flex: 0 0 auto;
  color: var(--brick);
  font-size: 9.5px;
  line-height: 1.25;
}

.discover-route-food-preview .travel-food-name-link {
  font-size: 9.5px;
}

.discover-hub-step:hover,
.discover-hub-step:focus-visible,
.discover-hub-branch-card:hover,
.discover-hub-branch-card:focus-within,
.discover-route-teaser:hover,
.discover-route-teaser:focus-within {
  border-color: rgba(15, 107, 99, 0.34);
  box-shadow: 0 8px 22px rgba(23, 33, 38, 0.06);
}

.discover-hub-branch-card h3 a:hover,
.discover-hub-branch-card h3 a:focus-visible,
.discover-hub-branch-card > div > a:hover,
.discover-hub-branch-card > div > a:focus-visible,
.discover-route-actions a:hover,
.discover-route-actions a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.travel-guide-section {
  gap: 18px;
}

.travel-guide-page {
  display: grid;
  gap: 28px;
}

.travel-guide-page [hidden] {
  display: none !important;
}

.travel-finder-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);
  gap: 14px;
  align-items: end;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.travel-finder-panel h2 {
  margin: 0 0 8px;
  font-size: 28px;
}

.travel-finder-panel p {
  margin: 0;
  color: var(--muted);
  line-height: 1.65;
}

.travel-arrival-benefit-section {
  display: grid;
  grid-template-columns: minmax(180px, 0.35fr) minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  padding-block: 18px;
  border-block: 1px solid var(--line);
}

.travel-arrival-benefit-section h2,
.travel-arrival-benefit-section p {
  margin: 0;
}

.travel-arrival-benefit-section h2 {
  font-size: 24px;
}

.travel-arrival-benefit-copy {
  display: grid;
  gap: 8px;
}

.travel-arrival-benefit-copy > p {
  color: var(--ink);
  line-height: 1.65;
}

.travel-arrival-benefit-copy > small {
  color: var(--muted);
  line-height: 1.5;
}

.travel-arrival-benefit-copy nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}

.travel-arrival-benefit-copy a {
  display: inline-flex;
  gap: 5px;
  align-items: center;
  color: var(--teal);
  font-size: 13px;
  font-weight: 900;
}

.travel-arrival-benefit-copy a svg {
  width: 14px;
  height: 14px;
}

.travel-search-box {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-height: 46px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
}

.travel-search-box svg {
  width: 18px;
  height: 18px;
  color: var(--teal);
}

.travel-search-box input {
  min-width: 0;
  height: 44px;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font-weight: 800;
}

.travel-filter-row {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.travel-filter-row button {
  min-height: 34px;
  padding: 7px 12px;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  font-weight: 900;
}

.travel-filter-row button.is-active {
  color: #fff;
  background: var(--teal);
  border-color: var(--teal);
}

.travel-duration-row {
  gap: 6px;
  margin-top: -2px;
}

.travel-duration-row button {
  min-height: 30px;
  padding: 5px 10px;
  color: #48666a;
  background: rgba(255, 255, 255, 0.74);
  font-size: 12px;
}

.travel-duration-row button.is-active {
  color: #fff;
  background: #2f7770;
  border-color: #2f7770;
}

.travel-finder-shortcuts {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 5px 8px;
  padding-top: 2px;
}

.travel-finder-shortcuts a {
  display: inline-flex;
  align-items: center;
  min-height: 21px;
  padding: 2px 5px;
  color: #0f6b63;
  border-bottom: 1px solid rgba(15, 107, 99, 0.22);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
  text-decoration: none;
}

.travel-finder-shortcuts a:hover,
.travel-finder-shortcuts a:focus-visible {
  color: var(--brick);
  border-color: currentColor;
}

.travel-result-count {
  grid-column: 1 / -1;
  font-size: 13px;
  font-weight: 800;
}

.travel-active-state {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  color: var(--ink);
  background: rgba(15, 107, 99, 0.08);
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 8px;
}

.travel-active-state[hidden] {
  display: none;
}

.travel-empty-state {
  grid-column: 1 / -1;
  display: grid;
  gap: 7px;
  padding: 12px;
  color: #4a5f60;
  background: rgba(247, 250, 248, 0.9);
  border: 1px dashed rgba(15, 107, 99, 0.24);
  border-radius: 8px;
}

.travel-empty-state[hidden] {
  display: none;
}

.travel-empty-state strong {
  color: var(--ink);
  font-size: 14px;
  font-weight: 900;
  line-height: 1.35;
}

.travel-empty-state span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.5;
}

.travel-empty-state button {
  justify-self: start;
  min-height: 30px;
  padding: 5px 9px;
  color: var(--teal);
  background: #fff;
  border: 1px solid rgba(15, 107, 99, 0.18);
  border-radius: 5px;
  font-size: 12px;
  font-weight: 900;
}

.travel-active-state div {
  display: grid;
  gap: 4px;
}

.travel-active-state span {
  font-size: 14px;
  font-weight: 900;
}

.travel-active-state small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.45;
}

.travel-active-state button {
  flex: 0 0 auto;
  min-height: 34px;
  padding: 7px 10px;
  color: var(--teal);
  background: #fff;
  border: 1px solid rgba(15, 107, 99, 0.2);
  border-radius: 999px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 900;
}

.travel-theme-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.travel-hub-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.travel-destination-quick-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.travel-destination-more-fold {
  margin-top: 10px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.7);
}

.travel-destination-more-fold > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 24px;
  gap: 8px;
  align-items: center;
  padding: 9px 10px;
  color: inherit;
  cursor: pointer;
  list-style: none;
}

.travel-destination-more-fold > summary::-webkit-details-marker {
  display: none;
}

.travel-destination-more-fold > summary::after {
  content: "+";
  display: grid;
  grid-column: 2;
  grid-row: 1 / span 2;
  place-items: center;
  width: 22px;
  height: 22px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 999px;
  color: var(--teal);
  font-size: 13px;
  font-weight: 900;
}

.travel-destination-more-fold[open] > summary::after {
  content: "-";
}

.travel-destination-more-fold:not([open]) > :not(summary) {
  display: none !important;
}

.travel-destination-more-fold > summary span {
  grid-column: 1;
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
}

.travel-destination-more-fold > summary strong {
  grid-column: 1;
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.travel-destination-more-fold .travel-destination-quick-grid {
  padding: 0 10px 10px;
}

.travel-destination-quick-card {
  display: grid;
  gap: 8px;
  padding: 11px;
  border: 1px solid rgba(15, 107, 99, 0.14);
  border-radius: 8px;
  background: rgba(247, 250, 248, 0.92);
}

.travel-destination-quick-main {
  display: grid;
  gap: 3px;
  color: inherit;
  text-decoration: none;
}

.travel-destination-quick-main span {
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
}

.travel-destination-quick-main strong {
  color: var(--ink);
  font-size: 15px;
  font-weight: 900;
  line-height: 1.25;
}

.travel-destination-quick-route {
  display: grid;
  gap: 3px;
  padding: 7px 8px;
  border-left: 2px solid rgba(15, 107, 99, 0.25);
  background: rgba(255, 255, 255, 0.62);
}

.travel-destination-quick-route span {
  color: var(--teal);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
}

.travel-destination-quick-route small {
  color: var(--muted);
  font-size: 10.5px;
  font-weight: 800;
  line-height: 1.25;
}

.travel-destination-quick-route a {
  justify-self: start;
  color: var(--ink);
  font-size: 10.5px;
  font-weight: 900;
  line-height: 1.25;
  text-decoration: none;
}

.travel-destination-quick-route a::after {
  content: " ->";
}

.travel-destination-quick-food {
  display: grid;
  gap: 4px;
  padding-top: 7px;
  border-top: 1px solid rgba(15, 107, 99, 0.12);
}

.travel-destination-quick-food > span {
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
}

.travel-destination-quick-food b {
  flex: 0 0 auto;
  color: var(--teal);
  font-size: 10px;
  font-weight: 900;
  line-height: 1.2;
}

.travel-destination-quick-food .is-take b {
  color: #336b8a;
}

.travel-destination-quick-food .travel-food-name-link {
  min-height: 15px;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.25;
}

.travel-destination-quick-food-link {
  justify-self: start;
  color: var(--teal);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
  text-decoration: none;
}

.travel-destination-quick-main:hover strong,
.travel-destination-quick-main:focus-visible strong,
.travel-destination-quick-route a:hover,
.travel-destination-quick-route a:focus-visible,
.travel-destination-quick-food-link:hover,
.travel-destination-quick-food-link:focus-visible {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.travel-chain-grid,
.travel-stopover-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.travel-theme-card,
.travel-hub-card,
.travel-chain-card,
.travel-stopover-card,
.travel-region-card,
.travel-route-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  overflow: hidden;
}

.travel-route-stop-strip {
  display: flex;
  gap: 8px;
  margin: 12px 0 0;
  padding: 0 0 5px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
  list-style: none;
}

.travel-route-stop-strip li {
  flex: 0 0 116px;
  min-width: 0;
  border: 1px solid #dce4e2;
  border-radius: 4px;
  background: #fff;
  overflow: hidden;
}

.travel-route-stop-strip a,
.travel-route-stop-strip li.is-context {
  display: grid;
  min-height: 92px;
  color: inherit;
  text-decoration: none;
}

.travel-route-stop-strip img {
  width: 100%;
  height: 68px;
  object-fit: cover;
  background: #eef1ef;
}

.travel-route-stop-strip span {
  display: block;
  padding: 7px 8px 8px;
  overflow: hidden;
  color: #18302d;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.travel-route-stop-strip li.is-context {
  align-content: center;
  padding: 10px 0;
  border-style: dashed;
  background: #f5f7f6;
}

.travel-route-stop-strip li.is-context span {
  white-space: normal;
}

.travel-route-stop-strip small {
  padding: 0 8px;
  color: #7b8583;
  font-size: 10px;
}

.travel-chain-card,
.travel-stopover-card {
  display: grid;
  gap: 12px;
  padding: 15px;
}

.travel-hub-card {
  display: grid;
  gap: 11px;
  padding: 15px;
}

.travel-hub-image-link {
  display: block;
  overflow: hidden;
  border-radius: 8px;
}

.travel-hub-image {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  object-fit: cover;
  transition: transform 180ms ease;
}

.travel-hub-image-link:hover .travel-hub-image,
.travel-hub-image-link:focus-visible .travel-hub-image {
  transform: scale(1.025);
}

.travel-hub-image-link:focus-visible {
  outline: 2px solid rgba(15, 107, 99, 0.55);
  outline-offset: 2px;
}

.travel-hub-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.travel-hub-top span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.travel-hub-top strong {
  flex: 0 0 auto;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.travel-hub-food-link {
  display: grid;
  gap: 6px;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(15, 107, 99, 0.07);
  color: inherit;
}

.travel-hub-food-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}

.travel-hub-food-link > span {
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
}

.travel-hub-food-head > span {
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
}

.travel-hub-food-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 21px;
  padding: 2px 7px;
  border: 1px solid rgba(15, 107, 99, 0.14);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.78);
  color: var(--teal);
  font-size: 10.5px;
  font-weight: 850;
  line-height: 1.25;
  text-decoration: none;
}

.travel-hub-food-more::after {
  content: "→";
  margin-left: 4px;
}

.travel-hub-food-more:hover,
.travel-hub-food-more:focus-visible {
  text-decoration: underline;
}

.travel-hub-food-title {
  color: inherit;
  text-decoration: none;
}

.travel-hub-food-link strong {
  color: var(--teal);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.25;
}

.travel-hub-food-title:hover strong,
.travel-hub-food-title:focus-visible strong {
  text-decoration: underline;
}

.travel-hub-food-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.travel-hub-food-tags span,
.travel-hub-food-tags a {
  min-height: 21px;
  padding: 3px 7px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  color: var(--teal);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.3;
  text-decoration: none;
}

.travel-hub-food-tags a:hover,
.travel-hub-food-tags a:focus-visible {
  background: #fff;
  text-decoration: underline;
}

.travel-food-mini-split {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.travel-food-mini-row {
  --food-line-accent: #0f6b63;
  --food-line-bg: rgba(15, 107, 99, 0.07);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 4px;
  min-width: 0;
}

.travel-food-mini-row.is-take {
  --food-line-accent: #6a6b25;
  --food-line-bg: rgba(154, 146, 54, 0.09);
}

.travel-food-mini-row b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 16px;
  min-height: 16px;
  padding: 2px 4px;
  border-radius: 4px;
  color: var(--food-line-accent);
  background: var(--food-line-bg);
  font-size: 9.5px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.travel-food-mini-row > div {
  display: flex;
  flex-wrap: wrap;
  gap: 3px 4px;
  min-width: 0;
}

.travel-food-mini-row span,
.travel-food-mini-row a {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  min-height: 14px;
  padding: 0 1px;
  border: 0;
  border-radius: 2px;
  background: transparent;
  color: var(--food-tag-fg, #125f58);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0;
  text-decoration: none;
  text-rendering: optimizeLegibility;
  white-space: nowrap;
}

.travel-food-mini-row span::before,
.travel-food-mini-row a::before {
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: var(--food-tag-dot, currentColor);
  content: "";
  opacity: 0.72;
}

.travel-food-mini-row a:hover,
.travel-food-mini-row a:focus-visible {
  background: rgba(15, 107, 99, 0.045);
  outline: 1px solid rgba(15, 107, 99, 0.1);
  outline-offset: 2px;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.travel-chain-head {
  display: grid;
  gap: 8px;
}

.travel-theme-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.travel-theme-card > div {
  display: grid;
  gap: 8px;
  padding: 14px;
}

.travel-theme-card span,
.travel-chain-head span,
.travel-stopover-card > span,
.travel-region-top span,
.travel-route-card span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.travel-theme-card h3,
.travel-hub-card h3,
.travel-chain-card h3,
.travel-stopover-card h3,
.travel-region-card h3,
.travel-route-card h3 {
  margin: 0;
  font-size: 20px;
}

.travel-hub-card h3 a {
  color: inherit;
  text-decoration: none;
}

.travel-hub-card h3 a:hover,
.travel-hub-card h3 a:focus-visible {
  color: var(--teal);
  text-decoration: underline;
  text-underline-offset: 3px;
  outline: none;
}

.travel-theme-card p,
.travel-hub-card p,
.travel-chain-card p,
.travel-stopover-card p,
.travel-region-card p,
.travel-route-card p,
.travel-add-section p {
  margin: 0;
  color: var(--muted);
  line-height: 1.65;
}

.travel-hub-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding-top: 8px;
}

.travel-hub-groups > div {
  display: grid;
  gap: 4px;
  padding: 9px;
  background: var(--mist);
  border-radius: 8px;
}

.travel-hub-groups > div:first-child {
  grid-column: 1 / -1;
  background: rgba(15, 107, 99, 0.1);
}

.travel-hub-groups b {
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.travel-hub-groups p {
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.5;
}

.travel-hub-time-plan {
  display: grid;
  gap: 14px;
}

.travel-hub-time-steps {
  display: grid;
  gap: 10px;
}

.travel-hub-time-step {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(15, 107, 99, 0.045), rgba(255, 255, 255, 0.9));
}

.travel-hub-step-index {
  display: inline-grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border: 1px solid rgba(15, 107, 99, 0.18);
  border-radius: 7px;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.travel-hub-time-step b {
  display: block;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.35;
}

.travel-hub-time-step p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.travel-hub-step-points {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 8px;
  margin-top: 8px;
}

.travel-hub-step-points span {
  color: var(--teal);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

.travel-hub-step-points span::before {
  margin-right: 4px;
  color: rgba(15, 107, 99, 0.58);
  content: "·";
}

.travel-hub-time-food {
  display: grid;
  gap: 7px;
  padding: 10px 12px;
  border: 1px solid rgba(188, 74, 45, 0.13);
  border-radius: 8px;
  background: rgba(188, 74, 45, 0.045);
}

.travel-hub-time-food > span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.travel-hub-time-food .food-place-shortcut-line {
  padding: 0;
  border: 0;
}

.travel-hub-time-food .travel-route-plan-link {
  justify-self: start;
}

.travel-route-food-group span {
  display: block;
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.35;
}

.travel-route-food-group strong {
  display: block;
  margin-top: 2px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 900;
  line-height: 1.25;
}

.travel-route-food-group strong a {
  color: inherit;
  text-decoration: none;
}

.travel-route-food-group {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 9px;
  padding: 10px;
  background: rgba(15, 107, 99, 0.06);
}

.travel-route-food-image {
  display: block;
  width: 88px;
  min-width: 0;
  overflow: hidden;
  border-radius: 7px;
  background: var(--line);
}

.travel-route-food-image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 88px;
  object-fit: cover;
}

.travel-route-food-group > div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.travel-route-food-group > div span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.travel-route-food-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.travel-route-food-tags span,
.travel-route-food-tags a {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(15, 107, 99, 0.1);
  color: var(--teal);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
  text-decoration: none;
}

.travel-route-food-tags a:hover,
.travel-route-food-tags a:focus-visible {
  background: rgba(15, 107, 99, 0.16);
}

.travel-route-food-link {
  justify-self: start;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
  text-decoration: none;
}

.travel-route-food-link::after {
  content: " →";
}

.travel-food-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
}

.travel-food-timing-hints {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.travel-food-timing-hints span {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 7px 8px;
  border-left: 2px solid rgba(15, 107, 99, 0.34);
  background: rgba(255, 255, 255, 0.58);
  color: #536268;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.38;
}

.travel-food-timing-hints b {
  color: #0f625b;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
}

.travel-food-action-row .travel-route-food-link,
.travel-route-plan-link {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 6px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 4px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
  text-decoration: none;
}

.travel-food-action-row .travel-route-food-link {
  color: #0f625b;
  background: rgba(15, 107, 99, 0.07);
}

.travel-route-plan-link {
  color: #0f625b;
  background: rgba(255, 255, 255, 0.72);
}

.travel-route-plan-link::after {
  content: " ↓";
}

.travel-food-action-row .travel-route-food-link:hover,
.travel-food-action-row .travel-route-food-link:focus-visible,
.travel-route-plan-link:hover,
.travel-route-plan-link:focus-visible {
  background: rgba(15, 107, 99, 0.11);
  text-decoration: underline;
}

.travel-detail-sibling-nav {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid rgba(15, 107, 99, 0.14);
  border-radius: 8px;
  background: rgba(247, 250, 248, 0.8);
}

.travel-detail-sibling-nav > div:first-child {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 8px;
  align-items: baseline;
}

.travel-detail-sibling-nav span {
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
}

.travel-detail-sibling-nav strong {
  color: var(--ink);
  font-size: 13px;
  line-height: 1.3;
}

.travel-detail-sibling-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.travel-detail-sibling-links a {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 6px;
  border: 1px solid rgba(15, 107, 99, 0.14);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.68);
  color: var(--teal);
  font-size: 11px;
  font-weight: 850;
  line-height: 1.25;
  text-decoration: none;
}

.travel-detail-sibling-links a:hover,
.travel-detail-sibling-links a:focus-visible {
  background: rgba(15, 107, 99, 0.08);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.travel-related-hub-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.travel-related-hub-card {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid rgba(15, 107, 99, 0.14);
  border-radius: 8px;
  background: rgba(250, 251, 247, 0.9);
}

.travel-related-hub-main {
  display: grid;
  gap: 3px;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}

.travel-related-hub-main span {
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
}

.travel-related-hub-main strong {
  color: var(--ink);
  font-size: 15px;
  font-weight: 900;
  line-height: 1.25;
}

.travel-related-hub-main small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 750;
  line-height: 1.35;
}

.travel-related-hub-food {
  display: grid;
  gap: 4px;
  padding-top: 7px;
  border-top: 1px solid rgba(15, 107, 99, 0.1);
}

.travel-related-hub-food span {
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
}

.travel-related-hub-food b {
  flex: 0 0 auto;
  color: var(--brick);
  font-size: 10px;
  font-weight: 900;
  line-height: 1.2;
}

.travel-related-hub-food span + span b {
  color: #386b4f;
}

.travel-related-hub-food .travel-food-name-link {
  min-height: 15px;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 10px;
  font-weight: 750;
  line-height: 1.25;
}

.travel-related-hub-main:hover strong,
.travel-related-hub-main:focus-visible strong,
.travel-related-hub-food .travel-food-name-link:hover,
.travel-related-hub-food .travel-food-name-link:focus-visible {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.travel-detail-food-summary {
  display: grid;
  grid-template-columns: minmax(180px, 0.36fr) minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
  scroll-margin-top: 86px;
  padding: 12px;
  border: 1px solid rgba(15, 107, 99, 0.18);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(15, 107, 99, 0.07), rgba(15, 107, 99, 0.025));
}

.travel-detail-food-summary.is-destination-focused {
  grid-template-columns: minmax(0, 1fr);
}

.travel-detail-food-image {
  display: block;
  overflow: hidden;
  border-radius: 7px;
  background: var(--line);
}

.travel-detail-food-image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 150px;
  object-fit: cover;
}

.travel-detail-food-summary > div {
  display: grid;
  align-content: center;
  gap: 8px;
  min-width: 0;
}

.travel-detail-food-summary h2,
.travel-detail-food-summary p {
  margin: 0;
}

.travel-detail-food-summary h2 {
  color: var(--ink);
  font-size: 22px;
  line-height: 1.22;
}

.travel-detail-food-summary p:not(.eyebrow) {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
}

.travel-food-context-line {
  max-width: 42em;
}

.travel-detail-food-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.travel-detail-food-tags span,
.travel-detail-food-tags a {
  display: inline-flex;
  align-items: center;
  min-height: 14px;
  padding: 0 4px;
  border: 1px solid var(--food-tag-border, #cfdfdc);
  border-radius: 4px;
  color: var(--food-tag-fg, #145f59);
  background: var(--food-tag-bg, #f5faf8);
  font-size: 9.25px;
  font-weight: 650;
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
}

.travel-detail-food-tags a:hover,
.travel-detail-food-tags a:focus-visible {
  background: var(--food-tag-hover-bg, color-mix(in srgb, var(--food-tag-bg, #f5faf8) 82%, #ffffff));
}

.travel-food-decision {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.travel-food-decision-group {
  --food-line-accent: #0f6b63;
  --food-line-bg: rgba(15, 107, 99, 0.07);
  display: grid;
  align-content: start;
  gap: 5px;
  min-width: 0;
  padding: 7px;
  border: 1px solid rgba(15, 107, 99, 0.13);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.7);
}

.travel-food-decision-group.is-take {
  --food-line-accent: #6a6b25;
  --food-line-bg: rgba(154, 146, 54, 0.09);
}

.travel-food-decision-group > span {
  justify-self: start;
  padding: 2px 5px;
  border-radius: 4px;
  color: var(--food-line-accent);
  background: var(--food-line-bg);
  font-size: 10.5px;
  font-weight: 800;
  white-space: nowrap;
}

.travel-food-decision-group > div {
  display: flex;
  flex-wrap: wrap;
  gap: 3px 4px;
}

.travel-food-decision-group a,
.travel-food-decision-group > div span {
  display: inline-flex;
  align-items: center;
  min-height: 14px;
  padding: 0 4px;
  border: 1px solid var(--food-tag-border, #cfdfdc);
  border-radius: 4px;
  color: var(--food-tag-fg, #145f59);
  background: var(--food-tag-bg, #f5faf8);
  font-size: 9.25px;
  font-weight: 650;
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
}

.travel-food-decision-group a:hover,
.travel-food-decision-group a:focus-visible {
  background: var(--food-tag-hover-bg, color-mix(in srgb, var(--food-tag-bg, #f5faf8) 82%, #ffffff));
}

.travel-theme-action {
  justify-self: start;
  min-height: 32px;
  padding: 7px 11px;
  color: var(--teal);
  background: rgba(15, 107, 99, 0.08);
  border: 1px solid rgba(15, 107, 99, 0.18);
  border-radius: 999px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 900;
}

.travel-theme-action:hover,
.travel-theme-action:focus-visible,
.travel-theme-action.is-active {
  color: #fff;
  background: var(--teal);
  outline: none;
}

.travel-chain-path {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  padding: 9px;
  background: var(--mist);
  border-radius: 8px;
}

.travel-chain-path span {
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.35;
}

.travel-chain-path i {
  color: rgba(15, 107, 99, 0.55);
  font-style: normal;
  font-weight: 900;
}

.travel-chain-more {
  display: flex;
  gap: 7px;
  align-items: baseline;
  font-size: 13px;
}

.travel-chain-more strong {
  flex: 0 0 auto;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.travel-chain-more.is-separate,
.travel-route-separate,
.travel-navigation-note.is-separate {
  color: #745d43;
}

.travel-chain-more.is-separate strong,
.travel-route-separate strong,
.travel-navigation-note.is-separate strong {
  color: #9a5d22;
}

.travel-route-separate {
  margin: 0;
  padding: 8px 9px;
  border-left: 3px solid rgba(154, 93, 34, 0.45);
  background: rgba(154, 93, 34, 0.07);
  font-size: 12px;
  line-height: 1.55;
}

.travel-navigation-catalog,
.travel-navigation-lines {
  display: grid;
  gap: 10px;
}

.travel-navigation-region {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.travel-navigation-region > summary {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  min-height: 46px;
  padding: 10px 12px;
  cursor: pointer;
  list-style: none;
}

.travel-navigation-region > summary::-webkit-details-marker {
  display: none;
}

.travel-navigation-region > summary strong {
  color: var(--ink);
  font-size: 15px;
}

.travel-navigation-region > summary span {
  color: var(--muted);
  font-size: 12px;
}

.travel-navigation-lines {
  padding: 0 10px 10px;
}

.travel-navigation-line {
  display: grid;
  gap: 9px;
  padding: 12px;
  border-top: 1px solid var(--line);
}

.travel-navigation-line-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: start;
}

.travel-navigation-line-head span,
.travel-navigation-line-head a {
  color: var(--teal);
  font-size: 11px;
  font-weight: 800;
}

.travel-navigation-line h3,
.travel-navigation-line p {
  margin: 0;
}

.travel-navigation-line h3 {
  margin-top: 2px;
  color: var(--ink);
  font-size: 17px;
  line-height: 1.3;
}

.travel-navigation-line h3 a {
  color: inherit;
  text-decoration: none;
}

.travel-navigation-line h3 a:hover,
.travel-navigation-line h3 a:focus-visible {
  color: var(--teal);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.travel-navigation-line > p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.travel-navigation-line ol {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin: 0;
  padding: 9px 10px 9px 30px;
  background: var(--mist);
  border-radius: 6px;
}

.travel-navigation-line li {
  position: relative;
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.45;
}

.travel-navigation-line li:not(:last-child)::after {
  position: absolute;
  right: -13px;
  color: rgba(15, 107, 99, 0.55);
  content: "→";
}

.travel-navigation-note {
  display: flex;
  gap: 8px;
}

.travel-navigation-note strong {
  flex: 0 0 auto;
  color: var(--teal);
  font-size: 11px;
}

.travel-navigation-food {
  display: grid;
  gap: 5px;
}

.travel-navigation-food > div {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 7px;
  align-items: center;
}

.travel-navigation-food b {
  color: var(--brick);
  font-size: 11px;
}

.travel-navigation-food .travel-food-name-link {
  min-height: 22px;
  padding: 3px 7px;
  font-size: 11px;
}

.travel-navigation-no-food {
  color: var(--muted) !important;
  font-size: 11px !important;
}

.travel-attraction-name-link {
  color: var(--teal);
  font-weight: 850;
  text-decoration: underline;
  text-decoration-color: rgba(15, 107, 99, 0.28);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.travel-attraction-name-link:hover,
.travel-attraction-name-link:focus-visible {
  color: #084f49;
  text-decoration-color: currentColor;
}

.travel-local-attraction-catalog {
  display: grid;
  gap: 10px;
}

.travel-local-attraction-region {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.travel-local-attraction-region > summary {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  min-height: 44px;
  padding: 9px 12px;
  cursor: pointer;
  list-style: none;
}

.travel-local-attraction-region > summary::-webkit-details-marker {
  display: none;
}

.travel-local-attraction-region > summary strong {
  color: var(--ink);
  font-size: 15px;
}

.travel-local-attraction-region > summary span {
  color: var(--muted);
  font-size: 12px;
}

.travel-local-attraction-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 0 10px 10px;
}

.travel-line-detail-page .travel-local-attraction-links {
  padding: 0;
}

.travel-local-attraction-links > a {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 10px;
  align-items: stretch;
  min-width: 0;
  min-height: 96px;
  padding: 7px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 7px;
  background: rgba(15, 107, 99, 0.035);
  text-decoration: none;
}

.travel-local-attraction-links > a > img {
  width: 100%;
  height: 100%;
  min-height: 82px;
  max-height: 104px;
  object-fit: cover;
  border-radius: 5px;
  background: var(--mist);
}

.travel-local-attraction-copy {
  display: grid;
  align-content: center;
  gap: 4px;
  min-width: 0;
}

.travel-local-attraction-links > a:hover,
.travel-local-attraction-links > a:focus-visible {
  border-color: rgba(15, 107, 99, 0.42);
  background: rgba(15, 107, 99, 0.075);
}

.travel-local-attraction-copy > span {
  color: var(--brick);
  font-size: 10px;
  font-weight: 850;
}

.travel-local-attraction-copy strong {
  color: var(--ink);
  font-size: 14px;
  line-height: 1.35;
}

.travel-local-attraction-copy small {
  display: -webkit-box;
  overflow: hidden;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.travel-spot-overview,
.travel-spot-route-lines,
.travel-spot-source {
  display: grid;
  gap: 14px;
}

.travel-spot-photo {
  display: grid;
  gap: 6px;
  margin: 0;
}

.travel-spot-photo img {
  width: 100%;
  aspect-ratio: 16 / 9;
  max-height: 430px;
  object-fit: cover;
  border-radius: 7px;
  background: var(--mist);
}

.travel-spot-photo figcaption,
.travel-spot-photo-credit {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

.travel-spot-photo-credit {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  align-items: center;
}

.travel-spot-photo-credit a {
  color: var(--teal);
  font-weight: 800;
}

.travel-spot-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.travel-spot-facts > div {
  display: grid;
  gap: 4px;
  padding: 10px;
  background: var(--mist);
  border-radius: 7px;
}

.travel-spot-facts span,
.travel-spot-route-lines article > span {
  color: var(--muted);
  font-size: 11px;
}

.travel-spot-facts strong {
  color: var(--ink);
  font-size: 14px;
}

.travel-spot-access,
.travel-spot-road-attractions {
  display: grid;
  gap: 5px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  background: rgba(15, 107, 99, 0.035);
}

.travel-spot-access > span,
.travel-spot-road-attractions > span {
  color: var(--brick);
  font-size: 11px;
  font-weight: 850;
}

.travel-spot-access strong {
  color: var(--ink);
  font-size: 14px;
  line-height: 1.55;
}

.travel-spot-access small {
  color: var(--muted);
  font-size: 11px;
}

.travel-spot-road-attractions > div {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.travel-spot-road-attractions b {
  padding: 3px 7px;
  border: 1px solid rgba(15, 107, 99, 0.14);
  background: rgba(15, 107, 99, 0.08);
  color: var(--teal);
  font-size: 11px;
  line-height: 1.4;
}

.travel-spot-note {
  margin: 0;
  padding: 10px 12px;
  border-left: 3px solid rgba(154, 93, 34, 0.45);
  background: rgba(154, 93, 34, 0.07);
  color: #745d43;
  font-size: 13px;
  line-height: 1.6;
}

.travel-sub-attraction-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.travel-sub-attraction-card {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 11px;
  min-width: 0;
  padding: 8px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 7px;
  background: rgba(15, 107, 99, 0.035);
}

.travel-sub-attraction-card > img {
  width: 100%;
  height: 128px;
  object-fit: cover;
  border-radius: 5px;
  background: var(--mist);
}

.travel-sub-attraction-card > div {
  display: grid;
  align-content: center;
  gap: 4px;
  min-width: 0;
}

.travel-sub-attraction-card span {
  color: var(--brick);
  font-size: 10px;
  font-weight: 850;
}

.travel-sub-attraction-card h3,
.travel-sub-attraction-card p,
.travel-sub-attraction-card small {
  margin: 0;
}

.travel-sub-attraction-card h3 {
  color: var(--ink);
  font-size: 15px;
  line-height: 1.35;
}

.travel-sub-attraction-card p {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.travel-sub-attraction-card small {
  color: #7b746c;
  font-size: 9px;
}

.travel-spot-route-lines > div:last-child {
  display: grid;
  gap: 9px;
}

.travel-spot-route-lines article {
  display: grid;
  gap: 7px;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 7px;
}

.travel-spot-route-lines h3,
.travel-spot-route-lines ol {
  margin: 0;
}

.travel-spot-route-lines h3 {
  color: var(--ink);
  font-size: 16px;
}

.travel-spot-route-lines ol {
  padding-left: 22px;
  color: var(--ink);
  font-size: 12px;
  line-height: 1.65;
}

.travel-spot-route-lines article > a,
.travel-spot-source > a {
  justify-self: start;
  color: var(--teal);
  font-size: 12px;
  font-weight: 850;
}

@media (max-width: 640px) {
  .travel-local-attraction-links {
    grid-template-columns: 1fr;
  }

  .travel-local-attraction-links > a {
    grid-template-columns: 104px minmax(0, 1fr);
    min-height: 88px;
    padding: 7px;
  }

  .travel-local-attraction-links > a > img {
    min-height: 74px;
    max-height: 92px;
  }

  .travel-sub-attraction-grid {
    grid-template-columns: 1fr;
  }

  .travel-sub-attraction-card {
    grid-template-columns: 112px minmax(0, 1fr);
  }

  .travel-sub-attraction-card > img {
    height: 108px;
  }
}

.travel-chain-food {
  display: grid;
  gap: 7px;
  padding: 9px;
  border: 1px solid rgba(15, 107, 99, 0.14);
  border-radius: 8px;
  background: rgba(15, 107, 99, 0.06);
}

.travel-chain-food > span {
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
}

.travel-chain-food > div {
  display: flex;
  flex-wrap: wrap;
  gap: 3px 4px;
  min-width: 0;
}

.travel-chain-food > .travel-food-mini-split {
  display: grid;
  gap: 4px;
}

.travel-chain-food > div:not(.travel-food-mini-split) span,
.travel-chain-food > div:not(.travel-food-mini-split) a {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  min-height: 14px;
  padding: 0 1px;
  border: 0;
  border-radius: 2px;
  background: transparent;
  color: var(--food-tag-fg, #125f58);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0;
  text-decoration: none;
  text-rendering: optimizeLegibility;
  white-space: nowrap;
}

.travel-chain-food > div:not(.travel-food-mini-split) span::before,
.travel-chain-food > div:not(.travel-food-mini-split) a::before {
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: var(--food-tag-dot, currentColor);
  content: "";
  opacity: 0.72;
}

.travel-chain-food > div:not(.travel-food-mini-split) a:hover,
.travel-chain-food > div:not(.travel-food-mini-split) a:focus-visible {
  background: rgba(15, 107, 99, 0.045);
  outline: 1px solid rgba(15, 107, 99, 0.1);
  outline-offset: 2px;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.travel-chain-food > a {
  justify-self: start;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.25;
  text-decoration: none;
}

.travel-chain-food > a:hover,
.travel-chain-food > a:focus-visible {
  text-decoration: underline;
}

.travel-stopover-card dl {
  display: grid;
  gap: 8px;
  margin: 0;
}

.travel-stopover-card dl div {
  display: grid;
  gap: 4px;
  padding: 9px;
  background: var(--mist);
  border-radius: 8px;
}

.travel-stopover-card dt {
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.travel-stopover-card dd {
  margin: 0;
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.45;
}

.travel-section-fold {
  border-top: 1px solid var(--line);
  padding-top: 8px;
}

.travel-section-fold > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 30px;
  gap: 10px;
  align-items: center;
  cursor: pointer;
  list-style: none;
}

.travel-section-fold > summary::-webkit-details-marker {
  display: none;
}

.travel-section-fold > summary::after {
  content: "+";
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  color: var(--teal);
  border: 1px solid rgba(15, 107, 99, 0.22);
  border-radius: 999px;
  font-size: 16px;
  font-weight: 900;
}

.travel-section-fold[open] > summary::after {
  content: "-";
}

.travel-section-fold > summary .section-heading {
  margin: 0;
}

.travel-section-fold:not([open]) > summary .section-heading > div {
  display: grid;
  gap: 3px;
}

.travel-section-fold:not([open]) > summary .section-heading h2,
.travel-section-fold:not([open]) > summary .section-heading p {
  margin: 0;
}

.travel-section-fold:not([open]) > summary .section-heading h2 {
  font-size: clamp(18px, 2.6vw, 22px);
  line-height: 1.2;
}

.travel-section-fold:not([open]) > summary .section-heading p:not(.eyebrow) {
  display: -webkit-box;
  overflow: hidden;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}

.travel-section-fold-body {
  margin-top: 14px;
}

.travel-catalog-grid,
.travel-catalog-note-list,
.travel-heritage-list {
  display: grid;
  gap: 10px;
}

.travel-catalog-card,
.travel-catalog-note,
.travel-heritage-card,
.travel-scenic-catalog {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 12px;
}

.travel-catalog-card > span,
.travel-catalog-note > span,
.travel-heritage-card > span,
.travel-scenic-catalog-head span {
  color: var(--rust);
  font-size: 12px;
  font-weight: 900;
}

.travel-catalog-card h3,
.travel-catalog-note h3,
.travel-heritage-card h3,
.travel-scenic-catalog-head h3 {
  margin: 4px 0 6px;
  font-size: 18px;
}

.travel-catalog-card p,
.travel-catalog-note p,
.travel-heritage-card p,
.travel-scenic-catalog-head p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}

.travel-catalog-card dl,
.travel-scenic-catalog-head dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 10px 0;
}

.travel-catalog-card dl div,
.travel-scenic-catalog-head dl div {
  padding: 8px;
  border-radius: 8px;
  background: rgba(15, 107, 99, 0.07);
}

.travel-catalog-card dt,
.travel-scenic-catalog-head dt {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.travel-catalog-card dd,
.travel-scenic-catalog-head dd {
  margin: 3px 0 0;
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
}

.travel-catalog-card > a {
  display: inline-flex;
  margin-top: 10px;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.travel-scenic-catalog {
  margin-top: 10px;
}

.travel-scenic-catalog-head {
  display: grid;
  gap: 10px;
}

.travel-scenic-catalog-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.travel-scenic-catalog-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  background: rgba(15, 107, 99, 0.08);
  color: var(--teal);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
}

.travel-scenic-region-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.travel-scenic-region {
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

.travel-scenic-region > summary {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 10px;
  cursor: pointer;
  list-style: none;
  background: rgba(15, 107, 99, 0.06);
}

.travel-scenic-region > summary::-webkit-details-marker {
  display: none;
}

.travel-scenic-region > summary span {
  color: var(--ink);
  font-size: 14px;
  font-weight: 900;
}

.travel-scenic-region > summary strong {
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.travel-scenic-area-list {
  display: grid;
  gap: 0;
}

.travel-scenic-area-list article {
  padding: 10px;
  border-top: 1px dashed var(--line);
}

.travel-scenic-area-list article span {
  color: var(--rust);
  font-size: 11px;
  font-weight: 900;
}

.travel-scenic-area-list article h4 {
  margin: 3px 0 4px;
  font-size: 14px;
}

.travel-scenic-area-list article p,
.travel-scenic-area-list article small {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.travel-first-layout {
  display: grid;
  grid-template-columns: minmax(240px, 0.85fr) minmax(0, 1.35fr);
  gap: 14px;
  align-items: start;
}

.travel-first-notes {
  display: grid;
  gap: 10px;
}

.travel-first-section > .travel-first-notes {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.travel-first-notes article {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.travel-first-notes span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: var(--teal);
  background: rgba(15, 107, 99, 0.08);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}

.travel-first-notes h3,
.travel-food-heading h3,
.travel-food-card h4 {
  margin: 0;
}

.travel-first-notes p,
.travel-food-heading p,
.travel-takeaway-tip {
  margin: 0;
  color: var(--muted);
  line-height: 1.65;
}

.travel-inline-fold {
  overflow: hidden;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 8px;
  background: rgba(15, 107, 99, 0.04);
}

.travel-inline-fold > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 44px;
  padding: 10px 12px;
  color: var(--teal);
  cursor: pointer;
  list-style: none;
  font-weight: 900;
}

.travel-inline-fold > summary::-webkit-details-marker {
  display: none;
}

.travel-inline-fold > summary::after {
  content: "+";
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 22px;
  height: 22px;
  border: 1px solid rgba(15, 107, 99, 0.22);
  border-radius: 999px;
  font-size: 14px;
  line-height: 1;
}

.travel-inline-fold[open] > summary::after {
  content: "-";
}

.travel-inline-fold > summary span {
  color: var(--brick);
  font-size: 12px;
}

.travel-inline-fold > summary strong {
  min-width: 0;
  font-size: 13px;
}

.travel-detail-more-fold {
  margin-top: 16px;
}

.travel-detail-more-body {
  display: grid;
  gap: 14px;
  padding: 12px;
  border-top: 1px solid rgba(15, 107, 99, 0.14);
  background: var(--surface);
}

.travel-detail-more-body > .travel-detail-section,
.travel-detail-more-body > .travel-detail-sibling-nav {
  margin: 0;
}

.travel-food-board {
  display: grid;
  gap: 13px;
  padding: 16px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(15, 107, 99, 0.05), rgba(15, 107, 99, 0.02));
}

.travel-food-fold .travel-food-board {
  border-width: 1px 0 0;
  border-radius: 0;
}

.travel-food-heading {
  display: grid;
  gap: 7px;
}

.travel-food-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.travel-food-card {
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 11px;
  border: 1px solid rgba(15, 107, 99, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.78);
}

.travel-food-card > span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.travel-food-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.travel-food-columns strong {
  display: block;
  margin-bottom: 7px;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.travel-food-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.travel-food-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 5px 7px;
  color: var(--ink);
  background: rgba(15, 107, 99, 0.08);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.15;
}

.travel-takeaway-tip {
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  font-size: 13px;
  font-weight: 800;
}

.travel-food-entry-link {
  display: inline-flex;
  justify-self: start;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 8px 11px;
  color: #fff;
  background: var(--teal);
  border-radius: 999px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 900;
}

.travel-food-entry-link svg {
  width: 15px;
  height: 15px;
}

.travel-food-bridge-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.travel-food-bridge-card {
  display: grid;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  color: inherit;
}

.travel-food-bridge-image,
.travel-food-bridge-body > strong a {
  color: inherit;
  text-decoration: none;
}

.travel-food-bridge-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.travel-food-bridge-body {
  display: grid;
  gap: 8px;
  padding: 12px;
}

.travel-food-bridge-body > span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
}

.travel-food-bridge-body > strong {
  color: var(--ink);
  font-size: 18px;
  line-height: 1.25;
}

.travel-food-bridge-lines {
  display: grid;
  gap: 6px;
}

.travel-food-bridge-line {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
}

.travel-food-bridge-line b,
.travel-food-bridge-line span,
.travel-food-bridge-line a {
  display: inline-flex;
  align-items: center;
  min-height: 15px;
  border-radius: 4px;
  font-size: 9.5px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0;
  text-decoration: none;
  text-rendering: optimizeLegibility;
}

.travel-food-bridge-line b {
  font-weight: 850;
  color: var(--teal);
}

.travel-food-bridge-line span,
.travel-food-bridge-line a {
  gap: 3px;
  padding: 0 1px;
  border: 0;
  border-radius: 2px;
  color: var(--food-tag-fg, #125f58);
  background: transparent;
  white-space: nowrap;
}

.travel-food-bridge-line span::before,
.travel-food-bridge-line a::before {
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: var(--food-tag-dot, currentColor);
  content: "";
  opacity: 0.72;
}

.travel-food-bridge-line a:hover,
.travel-food-bridge-line a:focus-visible {
  background: rgba(15, 107, 99, 0.045);
  outline: 1px solid rgba(15, 107, 99, 0.1);
  outline-offset: 2px;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.travel-food-card-action {
  justify-self: start;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
  text-decoration: none;
}

.travel-food-bridge-body > strong a:hover,
.travel-food-bridge-body > strong a:focus-visible,
.travel-food-card-action:hover,
.travel-food-card-action:focus-visible {
  text-decoration: underline;
}

.food-guide-page {
  display: grid;
  gap: 22px;
}

.food-guide-section {
  margin: 0;
}

.food-guide-section[id] {
  scroll-margin-top: 82px;
}

.food-browse-mode-section {
  padding: 0;
  border: 0;
  background: transparent;
}

.food-browse-mode-section .section-heading {
  gap: 4px;
  margin-bottom: 8px;
}

.food-browse-mode-section .section-heading h2 {
  font-size: clamp(22px, 5vw, 30px);
  line-height: 1.15;
}

.food-browse-mode-section .section-heading p:not(.eyebrow) {
  max-width: 62ch;
  font-size: 14px;
  line-height: 1.55;
}

.food-browse-mode-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.food-browse-mode-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas:
    "step label"
    "title title"
    "summary summary"
    "cta cta";
  align-content: start;
  gap: 4px 6px;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(248, 252, 249, 0.86));
  color: inherit;
  text-decoration: none;
}

.food-browse-mode-card .food-browse-mode-step {
  grid-area: step;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  min-height: 17px;
  border: 1px solid rgba(15, 107, 99, 0.14);
  border-radius: 4px;
  background: rgba(15, 107, 99, 0.06);
  color: var(--teal);
  font-size: 10px;
  font-weight: 850;
  line-height: 1;
}

.food-browse-mode-card .food-browse-mode-label {
  grid-area: label;
  align-self: center;
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.25;
}

.food-browse-mode-card strong {
  grid-area: title;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.25;
}

.food-browse-mode-card small {
  grid-area: summary;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.food-browse-mode-card em {
  grid-area: cta;
  width: fit-content;
  color: var(--teal);
  font-size: 11px;
  font-style: normal;
  font-weight: 850;
  line-height: 1.3;
}

.food-browse-mode-card em::after {
  content: " →";
}

.food-browse-mode-card:hover,
.food-browse-mode-card:focus-visible {
  border-color: rgba(15, 107, 99, 0.34);
  box-shadow: 0 8px 18px rgba(15, 107, 99, 0.07);
  transform: translateY(-1px);
}

.food-browse-mode-note {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.food-route-grid,
.food-photo-grid {
  display: grid;
  gap: 12px;
}

.food-route-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.food-photo-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.food-guide-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.food-guide-card.no-image {
  display: block;
}

.food-guide-card.compact {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  min-height: 122px;
}

.food-guide-card.compact.no-image {
  display: block;
  min-height: 0;
}

.food-guide-card.compact .food-card-image-link {
  grid-column: 1;
  grid-row: 1;
  align-self: stretch;
  justify-self: stretch;
  width: 112px;
  max-width: 112px;
  min-width: 0;
  height: 100%;
  min-height: 0;
}

.food-guide-card.compact .food-card-image-link.food-card-mosaic {
  height: 100%;
  min-height: 122px;
  aspect-ratio: auto;
}

.food-guide-card.compact > div {
  grid-column: 2;
  grid-row: 1;
  align-self: stretch;
  min-width: 0;
  overflow: hidden;
  border-left: 1px solid var(--line);
}

.food-guide-card.compact img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  min-height: 122px;
  aspect-ratio: auto;
}

.food-card-image-link,
.food-card-title-link {
  color: inherit;
  text-decoration: none;
}

.food-card-image-link {
  display: block;
  position: relative;
  z-index: 0;
  height: 100%;
  overflow: hidden;
  background: var(--line);
}

.food-card-image-link.food-card-mosaic {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: minmax(0, 1fr);
  gap: 2px;
  aspect-ratio: 4 / 3;
  background: var(--line);
  overflow: hidden;
}

.food-card-title-link:hover,
.food-card-title-link:focus-visible {
  color: var(--teal);
}

.food-guide-card img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  filter: saturate(0.9) contrast(1.04) brightness(0.98);
}

.food-card-mosaic img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  min-width: 0;
  min-height: 0;
}

.food-place-shortcut-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.food-destination-shortcut-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.food-destination-shortcut-card {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(15, 107, 99, 0.13);
  border-radius: 8px;
  background: var(--surface);
}

.food-destination-shortcut-main {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}

.food-destination-shortcut-image {
  width: 100%;
  height: 104px;
  border-radius: 7px;
  object-fit: cover;
  background: rgba(15, 107, 99, 0.08);
}

.food-destination-shortcut-main span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.35;
}

.food-destination-shortcut-main h3 {
  margin: 0;
  color: var(--ink);
  font-size: 17px;
  line-height: 1.22;
}

.food-destination-shortcut-main p {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.food-destination-shortcut-main:hover h3,
.food-destination-shortcut-main:focus-visible h3 {
  color: var(--teal);
  text-decoration: underline;
}

.food-destination-shortcut-lines {
  gap: 7px;
  margin-top: 2px;
  padding-top: 9px;
  border-top: 1px solid rgba(15, 107, 99, 0.11);
  background: transparent;
}

.food-destination-shortcut-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  padding-top: 1px;
}

.food-destination-shortcut-actions .food-card-detail-link,
.food-destination-route-link {
  min-height: 22px;
  padding: 0 7px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 4px;
  background: rgba(15, 107, 99, 0.045);
  font-size: 11px;
  font-weight: 850;
  line-height: 1;
  text-decoration: none;
}

.food-destination-shortcut-actions .food-card-detail-link {
  color: var(--teal);
}

.food-destination-route-link {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  color: #315668;
  background: #f4f8fa;
}

.food-destination-route-link::after {
  content: "→";
  margin-left: 5px;
}

.food-destination-shortcut-actions .food-card-detail-link:hover,
.food-destination-shortcut-actions .food-card-detail-link:focus-visible,
.food-destination-route-link:hover,
.food-destination-route-link:focus-visible {
  border-color: rgba(15, 107, 99, 0.36);
  background: rgba(15, 107, 99, 0.08);
  color: var(--teal);
}

.food-place-shortcut-card {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(15, 107, 99, 0.13);
  border-radius: 8px;
  background: var(--surface);
}

.food-place-shortcut-card.has-image {
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 0;
  overflow: hidden;
  padding: 0;
}

.food-place-shortcut-image-link {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 174px;
  overflow: hidden;
  background: var(--line);
  border-right: 1px solid var(--line);
}

.food-place-shortcut-image-link img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 174px;
  object-fit: cover;
  filter: saturate(0.9) contrast(1.04) brightness(0.98);
}

.food-place-shortcut-image-link.food-place-shortcut-mosaic {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 2px;
}

.food-place-shortcut-image-link.food-place-shortcut-mosaic img {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  object-fit: cover;
}

.food-destination-shortcut-image,
.food-feature-card summary img,
.food-snack-card img,
.food-item-hero-card img,
.food-group-hero-card img,
.food-item-mini-card img {
  filter: saturate(0.9) contrast(1.04) brightness(0.98);
}

.food-place-shortcut-body {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.food-place-shortcut-card.has-image .food-place-shortcut-body {
  padding: 10px;
}

.food-place-shortcut-body > span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.35;
}

.food-place-shortcut-body h3 {
  margin: 0;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.22;
}

.food-place-shortcut-body h3 a {
  color: inherit;
  text-decoration: none;
}

.food-place-shortcut-body h3 a:hover,
.food-place-shortcut-body h3 a:focus-visible {
  color: var(--teal);
  text-decoration: underline;
}

.food-place-shortcut-body p {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.food-place-shortcut-lines {
  display: grid;
  gap: 6px;
  padding-top: 2px;
  border-top: 1px solid rgba(15, 107, 99, 0.12);
}

.food-place-shortcut-line {
  --food-line-accent: #0f6b63;
  --food-line-bg: rgba(15, 107, 99, 0.07);
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 5px;
  align-items: start;
  min-width: 0;
}

.food-place-shortcut-line.is-take {
  --food-line-accent: #6a6b25;
  --food-line-bg: rgba(154, 146, 54, 0.09);
}

.food-place-shortcut-line b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  min-height: 16px;
  border-radius: 4px;
  color: var(--food-line-accent);
  background: var(--food-line-bg);
  font-size: 9px;
  font-weight: 800;
  line-height: 1;
}

.food-place-shortcut-line > div {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 5px;
  min-width: 0;
}

.food-destination-shortcut-lines .food-place-shortcut-line {
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 5px;
}

.food-destination-shortcut-lines .food-place-shortcut-line b {
  color: var(--food-line-accent);
  background: var(--food-line-bg);
  font-size: 9px;
  text-align: center;
}

.travel-food-name-link,
.food-place-shortcut-lines .travel-food-name-link,
.food-destination-shortcut-lines .travel-food-name-link {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  min-height: 13px;
  padding: 0 1px;
  border: 0;
  border-radius: 2px;
  box-shadow: none;
  color: var(--food-tag-fg, #125f58);
  background: transparent;
  font-size: 9.5px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0;
  text-decoration: none;
  text-rendering: optimizeLegibility;
  white-space: nowrap;
}

.travel-food-name-link::before,
.food-place-shortcut-lines .travel-food-name-link::before,
.food-destination-shortcut-lines .travel-food-name-link::before {
  width: 3px;
  height: 3px;
  border-radius: 999px;
  background: var(--food-tag-dot, currentColor);
  content: "";
  opacity: 0.72;
}

.travel-food-name-link.is-ready,
.food-place-shortcut-lines .travel-food-name-link.is-ready,
.food-destination-shortcut-lines .travel-food-name-link.is-ready {
  --food-tag-fg: #12665e;
  --food-tag-dot: #4b9a8e;
  color: var(--food-tag-fg);
}

.travel-food-name-link.is-alias,
.food-place-shortcut-lines .travel-food-name-link.is-alias,
.food-destination-shortcut-lines .travel-food-name-link.is-alias {
  --food-tag-fg: #516b4d;
  --food-tag-dot: #93aa88;
  color: var(--food-tag-fg);
}

.travel-food-name-link.is-group,
.food-place-shortcut-lines .travel-food-name-link.is-group,
.food-destination-shortcut-lines .travel-food-name-link.is-group {
  --food-tag-fg: #245f73;
  --food-tag-dot: #6d9cad;
  color: var(--food-tag-fg);
}

.travel-food-name-link.is-context-locality,
.food-place-shortcut-lines .travel-food-name-link.is-context-locality,
.food-destination-shortcut-lines .travel-food-name-link.is-context-locality {
  --food-tag-fg: #76591f;
  --food-tag-dot: #bd8a32;
  color: var(--food-tag-fg);
}

.travel-food-name-link.is-context-photo,
.food-place-shortcut-lines .travel-food-name-link.is-context-photo,
.food-destination-shortcut-lines .travel-food-name-link.is-context-photo {
  --food-tag-fg: #6c5937;
  --food-tag-dot: #b88948;
  color: var(--food-tag-fg);
}

.travel-food-name-link.is-context-generic,
.food-place-shortcut-lines .travel-food-name-link.is-context-generic,
.food-destination-shortcut-lines .travel-food-name-link.is-context-generic {
  --food-tag-fg: #58646d;
  --food-tag-dot: #8b9ca6;
  color: var(--food-tag-fg);
}

.travel-food-name-link.is-context-craft,
.food-place-shortcut-lines .travel-food-name-link.is-context-craft,
.food-destination-shortcut-lines .travel-food-name-link.is-context-craft {
  --food-tag-fg: #754f38;
  --food-tag-dot: #b97955;
  color: var(--food-tag-fg);
}

.travel-food-name-link[href]:hover,
.travel-food-name-link[href]:focus-visible,
.food-place-shortcut-lines .travel-food-name-link[href]:hover,
.food-place-shortcut-lines .travel-food-name-link[href]:focus-visible,
.food-destination-shortcut-lines .travel-food-name-link[href]:hover,
.food-destination-shortcut-lines .travel-food-name-link[href]:focus-visible {
  color: var(--food-tag-fg, #075e58);
  background: rgba(15, 107, 99, 0.035);
  outline: 1px solid rgba(15, 107, 99, 0.09);
  outline-offset: 1px;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.food-guide-card > div {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 13px;
  background: var(--surface);
}

.food-guide-card span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.food-guide-card h3 {
  margin: 0;
  font-size: 19px;
  line-height: 1.22;
}

.food-guide-card p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}

.food-guide-card.compact h3 {
  font-size: 17px;
}

.food-guide-card.compact p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.food-guide-subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
}

.food-guide-subnav::before {
  content: "小类";
  color: var(--muted);
  font-size: 10.5px;
  font-weight: 750;
}

.food-guide-subnav a {
  display: inline-flex;
  align-items: center;
  min-height: 14px;
  padding: 0 4px;
  border: 1px solid rgba(15, 107, 99, 0.13);
  border-radius: 4px;
  color: var(--teal);
  background: rgba(15, 107, 99, 0.055);
  font-size: 9.25px;
  font-weight: 650;
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
}

.food-guide-subnav a:hover,
.food-guide-subnav a:focus-visible {
  background: rgba(15, 107, 99, 0.1);
}

.food-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.food-feature-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.food-feature-card summary {
  display: grid;
  grid-template-rows: auto 1fr;
  cursor: pointer;
  list-style: none;
}

.food-feature-card summary::-webkit-details-marker {
  display: none;
}

.food-feature-card summary img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.food-feature-card summary > div {
  display: grid;
  gap: 7px;
  padding: 13px;
}

.food-feature-card summary span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.food-feature-card summary h3 {
  margin: 0;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.25;
}

.food-feature-card summary p,
.food-feature-detail p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.food-feature-card summary em {
  color: var(--teal);
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}

.food-feature-detail {
  display: grid;
  gap: 8px;
  padding: 0 13px 13px;
}

.food-snack-grid,
.food-region-grid,
.food-town-grid,
.food-archive-grid {
  display: grid;
  gap: 12px;
}

.food-snack-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.food-region-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.food-town-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.food-archive-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.food-snack-card,
.food-region-card,
.food-town-card,
.food-archive-card {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.food-snack-card {
  grid-template-columns: 92px minmax(0, 1fr);
  align-items: start;
}

.food-snack-card img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 6px;
}

.food-snack-card > div:first-of-type {
  display: grid;
  gap: 6px;
}

.food-snack-card .food-name-chips {
  grid-column: 1 / -1;
}

.food-subgroup-list {
  grid-column: 1 / -1;
  display: grid;
  gap: 8px;
}

.food-subgroup {
  display: grid;
  gap: 7px;
  padding: 9px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: rgba(15, 107, 99, 0.035);
}

.food-subgroup strong {
  color: var(--teal);
  font-size: 12px;
  line-height: 1.25;
}

.food-snack-card > div > span,
.food-region-card span,
.food-town-card > span,
.food-archive-card > span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.food-snack-card h3,
.food-town-card h3,
.food-archive-card h3 {
  margin: 0;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.25;
}

.food-snack-card p,
.food-region-card p,
.food-town-card p,
.food-archive-card p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.food-region-featured {
  display: grid;
  gap: 5px;
  padding-top: 8px;
  border-top: 1px solid rgba(15, 107, 99, 0.11);
}

.food-region-featured > strong {
  color: var(--teal);
  font-size: 10px;
  line-height: 1.2;
}

.food-region-more {
  margin: 0;
}

.food-region-more > summary {
  color: var(--muted);
  font-size: 10px;
  font-weight: 750;
}

.food-region-more[open] > summary {
  margin-bottom: 7px;
}

.food-name-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 4px 5px;
}

.food-chip-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 4px 5px;
  margin-top: 2px;
}

.food-name-chips span,
.food-name-chips a,
.food-chip-legend span {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  min-height: 13px;
  padding: 0 1px;
  border-radius: 2px;
  color: var(--food-tag-fg, #125f58);
  background: transparent;
  border: 0;
  font-size: 9.5px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0;
  text-rendering: optimizeLegibility;
  white-space: nowrap;
}

.food-name-chips span::before,
.food-name-chips a::before,
.food-chip-legend span::before {
  width: 3px;
  height: 3px;
  border-radius: 999px;
  background: var(--food-tag-dot, currentColor);
  content: "";
  opacity: 0.72;
}

.food-name-chips a {
  text-decoration: none;
}

.food-name-chips span:not(.is-current),
.food-chip-legend .is-ready {
  --food-tag-fg: #12665e;
  --food-tag-dot: #4b9a8e;
  color: var(--food-tag-fg);
}

.food-chip-legend .is-context {
  --food-tag-fg: #6c5937;
  --food-tag-dot: #b88948;
  color: var(--food-tag-fg);
}

.food-name-chips span.is-current {
  --food-tag-dot: var(--teal);
  color: var(--ink);
  text-decoration: underline;
  text-decoration-color: rgba(15, 107, 99, 0.42);
  text-underline-offset: 2px;
}

.food-name-chips .is-alias,
.food-chip-legend .is-alias {
  --food-tag-fg: #4f6d46;
  --food-tag-dot: var(--leaf);
  color: var(--food-tag-fg);
}

.food-name-chips .is-group,
.food-chip-legend .is-group {
  --food-tag-fg: #2f6578;
  --food-tag-dot: var(--sea);
  color: var(--food-tag-fg);
}

.food-name-chips .is-context-locality,
.food-chip-legend .is-context-locality {
  --food-tag-fg: #7b5b24;
  --food-tag-dot: #bd8a32;
  color: var(--food-tag-fg);
}

.food-name-chips .is-context-photo,
.food-chip-legend .is-context-photo {
  --food-tag-fg: #6c5937;
  --food-tag-dot: #b88948;
  color: var(--food-tag-fg);
}

.food-name-chips .is-context-generic,
.food-chip-legend .is-context-generic {
  --food-tag-fg: #58646d;
  --food-tag-dot: #8b9ca6;
  color: var(--food-tag-fg);
}

.food-name-chips .is-context-craft,
.food-chip-legend .is-context-craft {
  --food-tag-fg: #7d4f34;
  --food-tag-dot: var(--clay);
  color: var(--food-tag-fg);
}

.food-name-chips a:hover,
.food-name-chips a:focus-visible {
  color: var(--food-tag-fg, #075e58);
  background: color-mix(in srgb, var(--food-tag-dot, var(--teal)) 9%, #fff);
  outline: 1px solid color-mix(in srgb, var(--food-tag-dot, var(--teal)) 18%, transparent);
  outline-offset: 1px;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.food-name-chips.compact span,
.food-name-chips.compact a {
  min-height: 14px;
  padding: 0 1px;
}

.travel-food-chip-legend {
  margin: -4px 0 12px;
}

.travel-hub-food-cue {
  display: grid;
  gap: 3px;
  margin: -4px 0 8px;
  padding: 9px 10px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: rgba(15, 107, 99, 0.045);
}

.travel-hub-food-cue strong {
  color: var(--teal);
  font-size: 12px;
  line-height: 1.25;
}

.travel-hub-food-cue span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.food-card-detail-link {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.food-card-detail-link::after {
  content: "→";
  margin-left: 5px;
}

.food-item-detail-page {
  display: grid;
  gap: 22px;
}

.food-item-hero-card {
  display: grid;
  grid-template-columns: minmax(240px, 0.42fr) minmax(0, 1fr);
  gap: 16px;
  align-items: stretch;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.food-item-hero-card img {
  width: 100%;
  height: 100%;
  min-height: 220px;
  object-fit: cover;
  border-radius: 6px;
}

.food-item-hero-card > div {
  display: grid;
  gap: 10px;
  align-content: center;
}

.food-item-hero-card h2 {
  margin: 0;
  font-size: 28px;
  line-height: 1.2;
}

.food-item-hero-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.7;
}

.food-item-hero-card > .food-v2-media-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  min-width: 0;
  align-content: stretch;
}

.food-v2-media-grid.is-multiple {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.food-v2-media-grid figure {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border-radius: 6px;
  background: var(--mist);
}

.food-v2-media-grid img {
  min-height: 220px;
}

.food-v2-media-grid figcaption {
  position: absolute;
  right: 7px;
  bottom: 7px;
  left: 7px;
  width: fit-content;
  max-width: calc(100% - 14px);
  padding: 4px 7px;
  border-radius: 4px;
  background: rgba(19, 35, 33, 0.78);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.35;
}

.food-v2-media-empty {
  display: grid;
  min-height: 220px;
  place-items: center;
  border-radius: 6px;
  background: var(--mist);
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.v2-food-route-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.v2-food-route-list a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 10px;
  align-items: center;
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid rgba(15, 107, 99, 0.18);
  border-radius: 7px;
  background: rgba(15, 107, 99, 0.045);
  color: var(--ink);
  text-decoration: none;
}

.v2-food-route-list a.is-locality,
.v2-food-route-list a.is-regional {
  border-color: rgba(42, 91, 112, 0.18);
  background: rgba(42, 91, 112, 0.045);
}

.v2-food-route-list a.is-theme {
  border-color: rgba(83, 99, 96, 0.16);
  background: rgba(83, 99, 96, 0.035);
}

.v2-food-route-list span {
  grid-column: 1 / -1;
  color: var(--brick);
  font-size: 11px;
  font-weight: 850;
}

.v2-food-route-list a.is-locality span,
.v2-food-route-list a.is-regional span {
  color: #365f72;
}

.v2-food-route-list a.is-theme span {
  color: var(--muted);
}

.v2-food-route-list strong {
  min-width: 0;
  font-size: 15px;
}

.v2-food-route-list svg {
  width: 16px;
  height: 16px;
  color: var(--teal);
}

.v2-food-source-links {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.v2-food-source-links a {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  padding: 5px 9px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface);
  color: var(--teal);
  font-size: 12px;
  font-weight: 850;
}

.food-pending-hero-card {
  grid-template-columns: minmax(0, 1fr);
  background: rgba(122, 103, 54, 0.035);
}

.food-pending-hero-card > div {
  align-content: start;
}

.food-pending-hero-card .food-reference-note {
  color: #7a6736 !important;
  background: rgba(122, 103, 54, 0.08);
}

.food-reference-note {
  padding: 10px;
  color: var(--teal) !important;
  background: rgba(15, 107, 99, 0.08);
  border-radius: 6px;
  font-size: 12px;
  font-weight: 800;
}

.food-item-info-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.food-item-info-grid > div {
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.food-item-info-grid ul {
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}

.food-safety-notice {
  padding: 14px 16px;
  border: 1px solid rgba(180, 75, 45, 0.24);
  background: rgba(180, 75, 45, 0.055);
}

.food-safety-notice > div {
  display: grid;
  gap: 7px;
  max-width: 820px;
}

.food-safety-notice h2,
.food-safety-notice p {
  margin: 0;
}

.food-safety-notice p:last-child {
  color: var(--muted);
  line-height: 1.75;
}

.food-detail-source-note {
  margin-top: -6px;
}

.food-detail-source-note .food-reference-note {
  margin: 0;
}

.food-detail-chip-row {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.food-related-group-list,
.food-group-switch-list,
.food-item-card-grid,
.food-route-backlink-list {
  display: grid;
  gap: 10px;
}

.food-related-group-list,
.food-group-switch-list,
.food-route-backlink-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.food-related-group-list a,
.food-group-switch-list a,
.food-route-backlink-card,
.food-item-mini-card {
  display: grid;
  gap: 6px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.food-related-group-list span,
.food-group-switch-list span,
.food-route-backlink-card span,
.food-item-mini-card span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.food-related-group-list strong,
.food-group-switch-list strong,
.food-route-backlink-card strong,
.food-item-mini-card strong {
  color: var(--ink);
  font-size: 17px;
  line-height: 1.25;
}

.food-route-backlink-card {
  gap: 5px;
  padding: 10px;
  background: rgba(15, 107, 99, 0.035);
}

.food-route-backlink-main {
  display: grid;
  gap: 6px;
  color: inherit;
  text-decoration: none;
}

.food-route-backlink-main:hover strong,
.food-route-backlink-main:focus-visible strong {
  color: var(--teal);
  text-decoration: underline;
}

.food-route-backlink-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
  justify-content: flex-start;
}

.food-route-backlink-action {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 6px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 4px;
  color: #0f625b;
  background: rgba(15, 107, 99, 0.045);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.25;
  text-decoration: none;
}

.food-route-backlink-action::after {
  content: " →";
}

.food-route-backlink-action:hover,
.food-route-backlink-action:focus-visible {
  background: rgba(15, 107, 99, 0.1);
  text-decoration: underline;
}

.food-route-backlink-action.is-route {
  color: #315668;
  border-color: rgba(49, 86, 104, 0.18);
  background: #f4f8fa;
}

.food-route-backlink-action.is-route:hover,
.food-route-backlink-action.is-route:focus-visible {
  color: #174d60;
  border-color: rgba(49, 86, 104, 0.3);
  background: #edf5f8;
}

.food-route-backlink-card .travel-food-mini-split {
  padding-top: 4px;
  border-top: 1px solid rgba(15, 107, 99, 0.12);
}

.food-route-backlink-card .travel-food-mini-row {
  grid-template-columns: auto minmax(0, 1fr);
}

.food-route-backlink-card .travel-food-mini-row b {
  color: var(--muted);
}

.food-route-backlink-list p {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.food-group-switch-list a {
  min-height: 62px;
  align-content: center;
  gap: 4px;
  padding: 10px;
  text-decoration: none;
}

.food-group-switch-list strong {
  font-size: 15px;
}

.food-group-switch-list span {
  font-size: 11px;
}

.food-quick-nav .food-card-detail-link {
  width: fit-content;
}

.food-sibling-more {
  display: grid;
  gap: 7px;
  padding: 8px 0 0;
  border-top: 1px dashed rgba(15, 107, 99, 0.14);
}

.food-sibling-more summary {
  width: fit-content;
  color: var(--teal);
  font-size: 12px;
  font-weight: 850;
  line-height: 1.3;
  cursor: pointer;
}

.food-sibling-more summary:hover,
.food-sibling-more summary:focus-visible {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.food-item-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.food-item-mini-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 6px;
}

.food-item-mini-card p {
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.food-region-fold {
  margin: 0;
}

.food-town-fold {
  margin: 0;
}

.food-archive-fold {
  margin: 0;
}

.food-town-note {
  margin-bottom: 12px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}

.travel-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-height: 0;
  padding: 0;
}

.travel-chip-row button,
.travel-chip-row span,
.travel-chip-row a {
  --chip-accent: var(--teal);
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-height: 22px;
  padding: 5px 7px;
  color: var(--chip-accent);
  background: color-mix(in srgb, var(--chip-accent) 9%, #fff);
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}

.travel-chip-row span:nth-child(2n),
.travel-chip-row a:nth-child(2n),
.travel-chip-row button:nth-child(2n) {
  --chip-accent: var(--sea);
}

.travel-chip-row span:nth-child(3n),
.travel-chip-row a:nth-child(3n),
.travel-chip-row button:nth-child(3n) {
  --chip-accent: var(--leaf);
}

.travel-chip-row span:nth-child(4n),
.travel-chip-row a:nth-child(4n),
.travel-chip-row button:nth-child(4n) {
  --chip-accent: var(--gold);
}

.travel-chip-row span {
  cursor: default;
}

.travel-chip-row button:hover,
.travel-chip-row button:focus-visible,
.travel-chip-row a:hover,
.travel-chip-row a:focus-visible {
  color: #fff;
  background: var(--chip-accent);
  outline: none;
}

.travel-card-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 34px;
  padding: 7px 10px;
  color: #fff;
  background: var(--teal);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
}

.travel-card-link svg {
  width: 15px;
  height: 15px;
}

.travel-place-detail {
  border-top: 1px solid var(--line);
  padding-top: 8px;
}

.travel-place-detail summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  cursor: pointer;
  list-style: none;
  color: var(--teal);
  font-size: 13px;
  font-weight: 900;
}

.travel-place-detail summary::-webkit-details-marker {
  display: none;
}

.travel-place-detail summary::after {
  content: "+";
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 22px;
  height: 22px;
  border: 1px solid rgba(15, 107, 99, 0.22);
  border-radius: 999px;
  font-size: 14px;
  line-height: 1;
}

.travel-place-detail[open] summary::after {
  content: "-";
}

.travel-place-detail summary span {
  flex: 0 0 auto;
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.travel-place-detail summary strong {
  min-width: 0;
  color: var(--teal);
  font-size: 13px;
  font-weight: 900;
}

.travel-place-detail-list {
  display: grid;
  gap: 0;
  margin-top: 9px;
}

.travel-place-detail-row {
  display: grid;
  gap: 7px;
  padding: 10px 0;
  border-top: 1px dashed rgba(15, 107, 99, 0.22);
}

.travel-place-detail-row.has-image {
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 10px;
}

.travel-place-detail-row img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 6px;
  object-fit: cover;
}

.travel-place-detail-body {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.travel-place-detail-row:first-child {
  border-top: 0;
  padding-top: 0;
}

.travel-detail-accordion {
  gap: 0;
}

.travel-detail-accordion.has-image {
  grid-template-columns: 1fr;
}

.travel-detail-accordion summary {
  position: relative;
  display: grid;
  gap: 10px;
  align-items: start;
  padding: 10px 34px 10px 0;
  cursor: pointer;
  list-style: none;
}

.travel-detail-accordion.has-image summary {
  grid-template-columns: 88px minmax(0, 1fr);
}

.travel-detail-accordion:first-child summary {
  padding-top: 0;
}

.travel-detail-accordion summary::-webkit-details-marker {
  display: none;
}

.travel-detail-accordion summary::after {
  content: "+";
  position: absolute;
  top: 10px;
  right: 0;
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  color: var(--teal);
  border: 1px solid rgba(15, 107, 99, 0.22);
  border-radius: 999px;
  font-size: 15px;
  font-weight: 900;
  line-height: 1;
}

.travel-detail-accordion[open] summary::after {
  content: "-";
}

.travel-detail-accordion summary p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.travel-detail-accordion[open] summary p {
  display: block;
  overflow: visible;
  -webkit-line-clamp: unset;
  -webkit-box-orient: unset;
}

.travel-detail-facts {
  display: grid;
  gap: 7px;
  padding: 0 0 12px;
}

.travel-detail-facts strong {
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.travel-detail-facts ul {
  margin: 0;
}

.travel-place-detail-row span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.travel-place-detail-row h4 {
  margin: 2px 0 0;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.25;
}

.travel-place-detail-row p {
  display: block;
  overflow: visible;
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
  -webkit-line-clamp: unset;
  -webkit-box-orient: unset;
}

.travel-place-detail-row ul {
  display: grid;
  gap: 5px;
  margin: 0;
  padding-left: 17px;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.55;
}

.travel-region-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.travel-place-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.travel-place-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.travel-place-card img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.travel-place-card > div {
  display: grid;
  gap: 8px;
  padding: 14px;
}

.travel-place-card span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.travel-place-card h3 {
  margin: 0;
  font-size: 20px;
}

.travel-place-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.travel-place-card strong {
  color: var(--teal);
  font-size: 13px;
}

.travel-region-card {
  display: grid;
  gap: 10px;
  min-height: 190px;
  padding: 16px;
}

.travel-region-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.travel-region-top strong {
  color: var(--muted);
  font-size: 12px;
}

.travel-route-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.travel-route-quick-section {
  display: grid;
  gap: 12px;
}

.travel-route-chooser-section {
  display: grid;
  gap: 12px;
  border-color: rgba(15, 107, 99, 0.12);
}

.travel-route-chooser-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.travel-route-chooser-card {
  display: grid;
  align-content: start;
  gap: 7px;
  min-height: 158px;
  padding: 13px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: rgba(248, 252, 250, 0.82);
}

.travel-route-chooser-head {
  display: flex;
  align-items: center;
  gap: 8px;
}

.travel-route-chooser-icon {
  width: 32px;
  height: 32px;
}

.travel-route-chooser-card span:not(.travel-route-chooser-icon) {
  width: fit-content;
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
}

.travel-route-chooser-card h3 {
  margin: 0;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.35;
}

.travel-route-chooser-card p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 740;
  line-height: 1.5;
}

.travel-route-chooser-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 9px;
  align-items: center;
  margin-top: auto;
  padding-top: 2px;
}

.travel-route-chooser-actions a {
  color: var(--teal);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
  text-decoration: none;
}

.travel-route-chooser-main {
  flex-basis: 100%;
  color: var(--ink) !important;
}

.travel-route-chooser-food {
  color: #35696c !important;
}

.travel-route-chooser-more {
  color: var(--muted) !important;
}

.travel-route-chooser-actions a:hover,
.travel-route-chooser-actions a:focus-visible {
  color: var(--brick) !important;
  outline: none;
}

.travel-route-start-section {
  display: grid;
  gap: 12px;
}

.travel-route-start-list {
  display: grid;
  gap: 8px;
}

.travel-route-start-item {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.78);
}

.travel-route-start-item > span {
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
}

.travel-route-start-item h3 {
  margin: 0;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.35;
}

.travel-route-start-item p {
  margin: 2px 0 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 740;
  line-height: 1.45;
}

.travel-route-start-actions {
  display: flex;
  flex-direction: column;
  gap: 5px;
  align-items: flex-start;
  min-width: 86px;
}

.travel-route-start-actions a {
  color: var(--teal);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
  text-decoration: none;
}

.travel-route-start-actions a:first-child {
  color: var(--ink);
}

.travel-route-start-actions a:hover,
.travel-route-start-actions a:focus-visible {
  color: var(--brick);
  outline: none;
}

.travel-weekend-bridge-section {
  display: grid;
  gap: 12px;
  border-color: rgba(187, 72, 49, 0.12);
  background: rgba(255, 252, 248, 0.86);
}

.travel-weekend-bridge-list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.travel-weekend-bridge-item {
  display: grid;
  align-content: start;
  gap: 7px;
  min-height: 150px;
  padding: 12px;
  border: 1px solid rgba(187, 72, 49, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.78);
}

.travel-weekend-bridge-item span {
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
}

.travel-weekend-bridge-item h3 {
  margin: 0;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.35;
}

.travel-weekend-bridge-item p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 740;
  line-height: 1.5;
}

.travel-weekend-bridge-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 9px;
  align-items: center;
  margin-top: auto;
}

.travel-weekend-bridge-actions a,
.travel-weekend-bridge-all {
  color: var(--teal);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
  text-decoration: none;
}

.travel-weekend-bridge-actions a:first-child {
  color: var(--ink);
}

.travel-weekend-bridge-actions a::after,
.travel-weekend-bridge-all::after {
  content: " →";
}

.travel-weekend-bridge-actions a:hover,
.travel-weekend-bridge-actions a:focus-visible,
.travel-weekend-bridge-all:hover,
.travel-weekend-bridge-all:focus-visible {
  color: var(--brick);
  outline: none;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.travel-route-quick-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.travel-route-duration-section {
  display: grid;
  gap: 12px;
}

.travel-route-scenario-section {
  display: grid;
  gap: 12px;
}

.travel-route-scenario-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.travel-route-scenario-card {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 13px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.78);
}

.travel-route-scenario-card > div:first-child {
  display: grid;
  gap: 4px;
}

.travel-route-scenario-card span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.travel-route-scenario-card p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 760;
  line-height: 1.5;
}

.travel-route-scenario-list {
  display: grid;
  gap: 7px;
}

.travel-route-scenario-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding-top: 7px;
  border-top: 1px solid rgba(15, 107, 99, 0.1);
}

.travel-route-scenario-item > a:first-child {
  display: grid;
  gap: 2px;
  color: inherit;
  text-decoration: none;
}

.travel-route-scenario-item strong {
  color: var(--ink);
  font-size: 13px;
  line-height: 1.35;
}

.travel-route-scenario-item small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 760;
  line-height: 1.35;
}

.travel-route-scenario-food-preview,
.travel-route-theme-food-preview {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 3px 8px;
  min-width: 0;
  margin-top: -2px;
}

.travel-route-scenario-food-preview > span,
.travel-route-theme-food-preview > span {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  min-width: 0;
  color: var(--muted);
  font-size: 10px;
  font-weight: 760;
  line-height: 1.25;
}

.travel-route-scenario-food-preview b,
.travel-route-theme-food-preview b {
  color: var(--brick);
  font-size: 10px;
  font-weight: 900;
}

.travel-route-scenario-food-preview .travel-food-name-link,
.travel-route-theme-food-preview .travel-food-name-link {
  font-size: 9.5px;
}

.travel-route-scenario-food {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: end;
  min-height: 24px;
  padding: 0 1px;
  border: 0;
  border-radius: 0;
  color: var(--teal);
  background: transparent;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
}

.travel-route-scenario-item > a:first-child:hover strong,
.travel-route-scenario-item > a:first-child:focus-visible strong,
.travel-route-scenario-food:hover,
.travel-route-scenario-food:focus-visible {
  color: var(--brick);
  outline: none;
}

.travel-route-duration-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.travel-route-duration-group {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 13px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: rgba(248, 252, 250, 0.76);
}

.travel-route-duration-head {
  display: grid;
  gap: 4px;
}

.travel-route-duration-head span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.travel-route-duration-head small {
  width: fit-content;
  padding: 2px 6px;
  border-radius: 4px;
  color: var(--teal);
  background: rgba(15, 107, 99, 0.07);
  font-size: 10.5px;
  font-weight: 900;
}

.travel-route-duration-head p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 760;
  line-height: 1.5;
}

.travel-route-duration-list {
  display: grid;
  gap: 7px;
}

.travel-route-duration-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding-top: 7px;
  border-top: 1px solid rgba(15, 107, 99, 0.1);
}

.travel-route-duration-item > a:first-child {
  display: grid;
  gap: 2px;
  color: inherit;
  text-decoration: none;
}

.travel-route-duration-food-preview {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 3px 8px;
  min-width: 0;
  margin-top: -2px;
}

.travel-route-duration-food-preview > span {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  min-width: 0;
  color: var(--muted);
  font-size: 10px;
  font-weight: 760;
  line-height: 1.25;
}

.travel-route-duration-food-preview b {
  color: var(--brick);
  font-size: 10px;
  font-weight: 900;
}

.travel-route-duration-food-preview .travel-food-name-link {
  font-size: 9.5px;
}

.travel-route-duration-item strong {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.35;
}

.travel-route-duration-item em {
  display: inline-flex;
  align-items: center;
  min-height: 17px;
  padding: 0 5px;
  border-radius: 4px;
  color: #35696c;
  background: rgba(53, 105, 108, 0.08);
  font-size: 9.5px;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
}

.travel-route-duration-item span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 760;
}

.travel-route-duration-food {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: end;
  min-height: 24px;
  padding: 0 1px;
  border: 0;
  border-radius: 0;
  color: var(--teal);
  background: transparent;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
}

.travel-route-duration-item > a:first-child:hover strong,
.travel-route-duration-item > a:first-child:focus-visible strong,
.travel-route-duration-food:hover,
.travel-route-duration-food:focus-visible {
  color: var(--brick);
  outline: none;
}

.travel-route-theme-section {
  display: grid;
  gap: 12px;
}

.travel-route-theme-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.travel-route-theme-group {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 13px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.78);
}

.travel-route-theme-group > div:first-child {
  display: grid;
  gap: 4px;
}

.travel-route-theme-group span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.travel-route-theme-group p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 760;
  line-height: 1.5;
}

.travel-route-theme-group > div:last-child {
  display: grid;
  gap: 6px;
}

.travel-route-theme-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
  align-items: center;
  padding-top: 6px;
  border-top: 1px solid rgba(15, 107, 99, 0.1);
}

.travel-route-theme-item > a:first-child {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
  align-items: center;
  color: inherit;
  text-decoration: none;
}

.travel-route-theme-item > a:first-child strong {
  color: var(--ink);
  font-size: 12.5px;
  line-height: 1.35;
}

.travel-route-theme-item > a:first-child small {
  color: var(--teal);
  font-size: 10.5px;
  font-weight: 900;
}

.travel-route-theme-food {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: end;
  min-height: 24px;
  padding: 0 1px;
  border: 0;
  border-radius: 0;
  color: var(--teal);
  background: transparent;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
}

.travel-route-theme-item > a:first-child:hover strong,
.travel-route-theme-item > a:first-child:focus-visible strong,
.travel-route-theme-food:hover,
.travel-route-theme-food:focus-visible {
  color: var(--brick);
  outline: none;
}

.travel-route-card {
  display: grid;
  gap: 10px;
  padding: 16px;
}

.travel-route-card-head {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}

.travel-route-card-icon {
  width: 38px;
  height: 38px;
}

.travel-route-card-duration {
  display: inline-block;
  width: fit-content;
}

.travel-route-card.is-quick {
  border-color: rgba(15, 107, 99, 0.16);
  background: linear-gradient(180deg, rgba(248, 252, 250, 0.96), #fff);
}

.travel-route-card ol {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 20px;
  color: var(--muted);
  font-weight: 800;
}

.travel-route-use-labels {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 7px;
  min-width: 0;
  color: #577174;
  font-size: 10.5px;
  font-weight: 850;
  line-height: 1.25;
}

.travel-route-use-labels span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  white-space: nowrap;
}

.travel-route-use-labels span::before {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: rgba(15, 107, 99, 0.52);
}

.travel-route-card-fit {
  margin: -2px 0 0;
  color: #4f676a;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.45;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.travel-route-card-food {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding-top: 8px;
  border-top: 1px solid rgba(15, 107, 99, 0.11);
}

.travel-route-card-food-title {
  color: #9b3e27;
  font-size: 10.5px;
  font-weight: 900;
  line-height: 1.1;
}

.travel-route-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
  padding-top: 2px;
}

.travel-route-card-primary,
.travel-route-card-secondary {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  min-height: 26px;
  padding: 0 9px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 850;
  line-height: 1;
  text-decoration: none;
}

.travel-route-card-primary {
  border: 1px solid rgba(15, 107, 99, 0.22);
  color: #075e58;
  background: rgba(15, 107, 99, 0.075);
}

.travel-route-card-secondary {
  border: 1px solid rgba(188, 74, 45, 0.14);
  color: #9b3e27;
  background: rgba(188, 74, 45, 0.045);
}

.travel-route-card-primary::after,
.travel-route-card-secondary::after {
  content: "→";
  margin-left: 5px;
}

.travel-route-card-primary:hover,
.travel-route-card-primary:focus-visible,
.travel-route-card-secondary:hover,
.travel-route-card-secondary:focus-visible {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.travel-hub-route-options {
  display: grid;
  gap: 14px;
}

.travel-hub-route-option-list {
  display: grid;
  gap: 10px;
}

.travel-hub-route-option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  padding: 12px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: rgba(248, 252, 250, 0.72);
}

.travel-hub-route-option span {
  display: block;
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
}

.travel-hub-route-option h3 {
  margin: 3px 0 0;
  color: var(--ink);
  font-size: 16px;
  line-height: 1.3;
}

.travel-hub-route-option p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.travel-hub-route-option ol {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}

.travel-hub-route-option li {
  color: var(--teal);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

.travel-hub-route-option li::before {
  margin-right: 4px;
  color: rgba(15, 107, 99, 0.58);
  content: "·";
}

.travel-hub-route-food-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 9px;
  margin-top: 8px;
  min-width: 0;
}

.travel-hub-route-food-preview span {
  display: inline-flex;
  align-items: baseline;
  gap: 3px;
  min-width: 0;
  color: var(--muted);
  font-size: 10px;
  font-weight: 760;
  line-height: 1.3;
}

.travel-hub-route-food-preview b {
  color: var(--brick);
  font-size: 10px;
  font-weight: 900;
}

.travel-hub-route-food-preview .travel-food-name-link {
  font-size: 9.5px;
}

.travel-hub-route-option-actions {
  display: flex;
  flex-direction: column;
  gap: 7px;
  align-items: flex-start;
}

.travel-route-detail-page {
  display: grid;
  gap: 14px;
}

.travel-route-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.travel-route-overview > div,
.travel-route-overview > a {
  display: grid;
  align-content: start;
  gap: 5px;
  min-height: 116px;
  padding: 12px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: rgba(248, 252, 250, 0.78);
  color: inherit;
  text-decoration: none;
}

.travel-route-overview span {
  color: var(--brick);
  font-size: 10.5px;
  font-weight: 900;
}

.travel-route-overview strong {
  color: var(--ink);
  font-size: 14px;
  line-height: 1.35;
}

.travel-route-overview p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.55;
}

.travel-route-overview .travel-route-use-labels {
  margin-top: 2px;
}

.travel-route-overview > a:hover,
.travel-route-overview > a:focus-visible {
  border-color: rgba(15, 107, 99, 0.28);
  outline: none;
}

.travel-route-decision {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.travel-route-decision > div {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 10px 12px;
  border-left: 3px solid rgba(15, 107, 99, 0.22);
  border-radius: 7px;
  background: rgba(248, 252, 250, 0.72);
}

.travel-route-decision span {
  color: var(--teal);
  font-size: 10.5px;
  font-weight: 900;
  line-height: 1.2;
}

.travel-route-decision p {
  margin: 0;
  color: #4f676a;
  font-size: 12px;
  font-weight: 760;
  line-height: 1.55;
}

.travel-route-detail-plan,
.travel-route-detail-hubs,
.travel-route-detail-food {
  display: grid;
  gap: 10px;
}

.travel-route-detail-stops {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.travel-route-detail-stops li {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  align-items: flex-start;
  padding: 10px 12px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: rgba(248, 252, 250, 0.82);
}

.travel-route-detail-stops li.is-ready {
  grid-template-columns: 28px 82px minmax(0, 1fr);
}

.travel-route-detail-stops > li > .travel-route-stop-index {
  display: inline-grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border: 1px solid rgba(15, 107, 99, 0.18);
  border-radius: 7px;
  color: var(--teal);
  font-size: 12px;
  font-weight: 900;
}

.travel-route-detail-stop-photo {
  display: block;
  width: 82px;
  height: 72px;
  overflow: hidden;
  border-radius: 6px;
  background: #e8efed;
}

.travel-route-detail-stop-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.travel-route-detail-stop-title {
  color: inherit;
  text-decoration: none;
}

.travel-route-detail-stop-title:hover,
.travel-route-detail-stop-title:focus-visible {
  color: var(--teal);
  outline: none;
}

.travel-route-detail-stops em {
  display: block;
  margin-top: 2px;
  color: #34746d;
  font-size: 10px;
  font-style: normal;
  font-weight: 850;
  line-height: 1.35;
}

.travel-route-detail-stops li.is-context em {
  color: #7a8588;
}

.travel-route-detail-stops strong {
  display: block;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.35;
}

.travel-route-detail-stops small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 760;
  line-height: 1.5;
}

.travel-route-stop-hub-link {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 10px;
  align-items: center;
  margin-top: 5px;
}

.travel-route-stop-hub-link a {
  color: #35696c;
  font-size: 10.5px;
  font-weight: 900;
  line-height: 1.25;
  text-decoration: none;
}

.travel-route-stop-hub-link a:first-child {
  color: var(--teal);
}

.travel-route-stop-hub-link a:hover,
.travel-route-stop-hub-link a:focus-visible {
  color: var(--brick);
  outline: none;
}

.travel-route-stop-food-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 9px;
  margin-top: 5px;
  min-width: 0;
}

.travel-route-stop-food-preview span {
  display: inline-flex;
  align-items: baseline;
  gap: 3px;
  min-width: 0;
  color: var(--muted);
  font-size: 10px;
  font-weight: 760;
  line-height: 1.3;
}

.travel-route-stop-food-preview b {
  color: var(--brick);
  font-size: 10px;
  font-weight: 900;
}

.travel-route-stop-food-preview .travel-food-name-link {
  font-size: 9.5px;
}

.travel-route-detail-hub-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.travel-route-detail-hub {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: var(--surface);
  color: inherit;
}

.travel-route-detail-hub-main {
  display: grid;
  gap: 4px;
  color: inherit;
  text-decoration: none;
}

.travel-route-detail-hub-main span {
  color: var(--brick);
  font-size: 11px;
  font-weight: 900;
}

.travel-route-detail-hub-main strong {
  color: var(--ink);
  font-size: 15px;
  line-height: 1.35;
}

.travel-route-detail-hub-main small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.travel-route-detail-hub:hover,
.travel-route-detail-hub:focus-within {
  border-color: rgba(15, 107, 99, 0.28);
}

.travel-route-detail-hub-main:focus-visible,
.travel-route-detail-hub-food-link:focus-visible {
  outline: none;
}

.travel-route-detail-hub-food {
  padding-top: 7px;
  border-top: 1px solid rgba(15, 107, 99, 0.1);
}

.travel-route-detail-hub-food .travel-food-mini-split {
  gap: 4px;
}

.travel-route-detail-hub-food .travel-food-mini-row {
  grid-template-columns: auto minmax(0, 1fr);
}

.travel-route-detail-hub-food .travel-food-mini-row b {
  width: auto;
  min-width: 30px;
  min-height: 20px;
  padding: 2px 5px;
  font-size: 10px;
}

.travel-route-detail-hub-food .travel-food-name-link {
  font-size: 10px;
  padding: 2px 5px;
}

.travel-route-detail-hub-food-link {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 4px;
  background: rgba(15, 107, 99, 0.06);
  color: var(--teal);
  font-size: 11px;
  font-weight: 900;
  text-decoration: none;
}

.travel-route-detail-hub-food-link::after {
  content: " ->";
}

.travel-route-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.travel-route-food-timeline {
  display: grid;
  gap: 8px;
}

.travel-route-food-step {
  display: grid;
  grid-template-columns: 54px minmax(0, 0.78fr) minmax(0, 1.2fr);
  gap: 8px;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid rgba(15, 107, 99, 0.1);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.78);
}

.travel-route-food-step > span {
  color: var(--brick);
  font-size: 10.5px;
  font-weight: 900;
}

.travel-route-food-step > strong {
  color: var(--ink);
  font-size: 13px;
  line-height: 1.35;
}

.travel-route-food-step > div {
  display: grid;
  gap: 4px;
}

.travel-route-food-step p {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: baseline;
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  font-weight: 760;
  line-height: 1.35;
}

.travel-route-food-step b {
  color: var(--teal);
  font-size: 10.5px;
}

.travel-route-food-step .travel-food-name-link {
  font-size: 10.5px;
}

.travel-route-alternatives {
  display: grid;
  gap: 12px;
}

.travel-route-alternative-list {
  display: grid;
  gap: 8px;
}

.travel-route-alternative {
  display: grid;
  gap: 8px;
  padding: 11px 12px;
  border: 1px solid rgba(15, 107, 99, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.78);
  color: inherit;
}

.travel-route-alternative-main {
  display: grid;
  gap: 4px;
  color: inherit;
  text-decoration: none;
}

.travel-route-alternative-main span {
  color: var(--brick);
  font-size: 10.5px;
  font-weight: 900;
}

.travel-route-alternative-main strong {
  color: var(--ink);
  font-size: 14px;
  line-height: 1.35;
}

.travel-route-alternative-main small {
  display: -webkit-box;
  overflow: hidden;
  color: var(--muted);
  font-size: 12px;
  font-weight: 760;
  line-height: 1.5;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.travel-route-alternative-main em {
  color: #35696c;
  font-size: 10.5px;
  font-style: normal;
  font-weight: 900;
  line-height: 1.35;
}

.travel-route-alternative:hover,
.travel-route-alternative:focus-within {
  border-color: rgba(15, 107, 99, 0.28);
}

.travel-route-alternative-main:focus-visible,
.travel-route-alternative-food-link:focus-visible {
  outline: none;
}

.travel-route-alternative-food {
  padding-top: 7px;
  border-top: 1px solid rgba(15, 107, 99, 0.1);
}

.travel-route-alternative-food .travel-food-mini-split {
  gap: 4px;
}

.travel-route-alternative-food .travel-food-mini-row {
  grid-template-columns: auto minmax(0, 1fr);
}

.travel-route-alternative-food .travel-food-mini-row b {
  width: auto;
  min-width: 30px;
  min-height: 20px;
  padding: 2px 5px;
  font-size: 10px;
}

.travel-route-alternative-food .travel-food-name-link {
  font-size: 10px;
  padding: 2px 5px;
}

.travel-route-alternative-food-link {
  color: var(--teal);
  font-size: 11px;
  font-weight: 900;
  text-decoration: none;
}

.travel-route-alternative-food-link::after {
  content: " ->";
}

.travel-route-all-link {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 4px;
  color: var(--teal);
  background: rgba(15, 107, 99, 0.045);
  font-size: 12px;
  font-weight: 850;
  line-height: 1;
  text-decoration: none;
}

.travel-route-all-link::after {
  content: "→";
  margin-left: 5px;
}

.travel-route-all-link:hover,
.travel-route-all-link:focus-visible {
  border-color: rgba(15, 107, 99, 0.32);
  background: rgba(15, 107, 99, 0.08);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.travel-add-section {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(280px, 1.1fr);
  gap: 18px;
  align-items: center;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.travel-add-steps {
  display: grid;
  gap: 10px;
}

.travel-add-steps article {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 12px;
  background: var(--mist);
  border-radius: 8px;
}

.travel-add-steps span {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  color: #fff;
  background: var(--teal);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
}

.travel-add-section .primary-button {
  justify-self: start;
}

.travel-credit-section {
  padding-top: 8px;
  border-top: 1px solid var(--line);
}

.travel-reference-section {
  padding-top: 8px;
  border-top: 1px solid var(--line);
}

.travel-reference-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.travel-reference-list a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 7px 10px;
  color: var(--teal);
  border: 1px solid rgba(15, 107, 99, 0.18);
  border-radius: 8px;
  background: rgba(15, 107, 99, 0.06);
  font-size: 12px;
  font-weight: 900;
}

.travel-credit-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.travel-credit-list a {
  display: inline-flex;
  flex-direction: column;
  gap: 3px;
  min-height: 44px;
  padding: 8px 10px;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  font-size: 12px;
  font-weight: 900;
}

.travel-credit-list span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.travel-source-note {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.55;
}

.travel-detail-page {
  display: grid;
  gap: 22px;
}

.travel-detail-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--line);
}

.travel-detail-topbar a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--teal);
  font-size: 13px;
  font-weight: 900;
}

.travel-detail-topbar svg {
  width: 15px;
  height: 15px;
}

.travel-detail-topbar span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 900;
}

.travel-detail-jump-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: -10px 0 -4px;
}

.travel-detail-jump-row a {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 7px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 4px;
  background: rgba(15, 107, 99, 0.06);
  color: #0f625b;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
  text-decoration: none;
}

.travel-detail-jump-row a + a {
  background: rgba(255, 255, 255, 0.72);
  color: #225d78;
}

.travel-detail-jump-row a:hover,
.travel-detail-jump-row a:focus-visible {
  border-color: rgba(15, 107, 99, 0.32);
  background: rgba(15, 107, 99, 0.11);
}

.travel-detail-section h2 {
  margin: 0;
}

.travel-detail-section .section-heading p:not(.eyebrow) {
  margin: 0;
  color: var(--muted);
  line-height: 1.7;
}

.travel-detail-section {
  display: grid;
  gap: 14px;
}

.quality-comparison-detail {
  display: grid;
  gap: 22px;
  padding: 24px;
}

.quality-comparison-lead {
  display: grid;
  grid-template-columns: minmax(260px, 0.82fr) minmax(0, 1.18fr);
  gap: 22px;
  align-items: center;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}

.quality-comparison-lead.is-text-only {
  grid-template-columns: minmax(0, 1fr);
}

.quality-comparison-lead.is-text-only > div {
  max-width: 760px;
}

.quality-comparison-lead > div:last-child {
  display: grid;
  gap: 9px;
}

.quality-comparison-lead h2,
.quality-comparison-lead p {
  margin: 0;
}

.quality-comparison-lead h2 {
  font-size: 28px;
}

.quality-comparison-lead > div:last-child > p:not(.eyebrow) {
  color: var(--muted);
  line-height: 1.75;
}

.quality-comparison-media {
  display: grid;
  min-height: 236px;
  overflow: hidden;
  border-radius: 7px;
  background: var(--mist);
}

.quality-comparison-media.is-multiple {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.quality-comparison-media img {
  width: 100%;
  height: 100%;
  min-height: 236px;
  object-fit: cover;
}

.quality-framework-note {
  display: block;
  padding: 9px 11px;
  border-left: 3px solid rgba(15, 107, 99, 0.5);
  background: rgba(15, 107, 99, 0.055);
  color: var(--teal-dark);
  font-size: 12px;
  line-height: 1.55;
}

.quality-choice-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}

.quality-choice-grid article {
  display: grid;
  align-content: start;
  gap: 7px;
  min-height: 132px;
  padding: 13px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-top: 3px solid rgba(15, 107, 99, 0.58);
  border-radius: 7px;
  background: rgba(15, 107, 99, 0.035);
}

.quality-choice-grid article[data-choice="quality"] {
  border-top-color: rgba(46, 101, 148, 0.62);
}

.quality-choice-grid article[data-choice="scarce"] {
  border-top-color: rgba(184, 126, 34, 0.68);
}

.quality-choice-grid article[data-choice="custom"] {
  border-top-color: rgba(170, 78, 57, 0.58);
}

.quality-choice-grid span {
  color: var(--ink);
  font-size: 15px;
  font-weight: 800;
}

.quality-choice-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.quality-product-model {
  padding-top: 4px;
}

.quality-cost-axis {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-top: 7px;
  border-top: 3px solid rgba(15, 107, 99, 0.28);
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.quality-ingredient-ladder {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.quality-ingredient-ladder article {
  --quality-level-accent: rgba(15, 107, 99, 0.42);
  display: grid;
  align-content: start;
  gap: 7px;
  min-width: 0;
  min-height: 248px;
  padding: 13px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--quality-level-accent);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.62);
}

.quality-ingredient-ladder article[data-level="2"] {
  --quality-level-accent: rgba(15, 107, 99, 0.56);
}

.quality-ingredient-ladder article[data-level="3"] {
  --quality-level-accent: rgba(46, 101, 148, 0.62);
}

.quality-ingredient-ladder article[data-level="4"] {
  --quality-level-accent: rgba(184, 126, 34, 0.68);
}

.quality-ingredient-ladder article[data-level="5"] {
  --quality-level-accent: rgba(170, 78, 57, 0.66);
}

.quality-ingredient-ladder small {
  color: var(--rust);
  font-size: 10px;
  font-weight: 800;
  line-height: 1.45;
}

.quality-ingredient-ladder > article > strong {
  font-size: 16px;
  line-height: 1.35;
}

.quality-ingredient-ladder > article > p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.quality-ingredient-ladder dl {
  display: grid;
  gap: 7px;
  margin: auto 0 0;
  padding-top: 9px;
  border-top: 1px solid var(--line);
}

.quality-ingredient-ladder dl > div {
  display: grid;
  gap: 2px;
}

.quality-ingredient-ladder dt {
  color: var(--ink);
  font-size: 10px;
  font-weight: 800;
}

.quality-ingredient-ladder dd {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

.quality-source-types {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.quality-source-types article {
  padding: 12px 13px;
  border-left: 3px solid rgba(15, 107, 99, 0.46);
  background: rgba(15, 107, 99, 0.045);
}

.quality-source-types strong {
  font-size: 14px;
}

.quality-source-types p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.quality-comparison-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.68);
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

.quality-comparison-table-wrap:focus-visible {
  outline: 2px solid rgba(15, 107, 99, 0.52);
  outline-offset: 2px;
}

.quality-comparison-table {
  width: max(100%, 900px);
  border-spacing: 0;
  table-layout: fixed;
}

.quality-comparison-table th,
.quality-comparison-table td {
  padding: 11px 12px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  vertical-align: top;
  text-align: left;
}

.quality-comparison-table tr > *:last-child {
  border-right: 0;
}

.quality-comparison-table tbody tr:last-child > * {
  border-bottom: 0;
}

.quality-comparison-table thead th {
  width: 168px;
  background: rgba(15, 107, 99, 0.055);
  color: var(--ink);
}

.quality-comparison-table thead th:first-child,
.quality-comparison-table tbody th {
  position: sticky;
  left: 0;
  z-index: 2;
  width: 126px;
  background: #f6f8f6;
}

.quality-comparison-table thead th:first-child {
  z-index: 3;
  color: var(--muted);
  font-size: 11px;
}

.quality-comparison-table thead th strong,
.quality-comparison-table thead th small {
  display: block;
}

.quality-comparison-table thead th strong {
  font-size: 13px;
  line-height: 1.4;
}

.quality-comparison-table thead th small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.4;
}

.quality-comparison-table thead img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  margin-bottom: 9px;
  border-radius: 5px;
  object-fit: cover;
}

.quality-comparison-table tbody th {
  color: var(--ink);
  font-size: 12px;
  line-height: 1.45;
}

.quality-comparison-table tbody th span {
  display: block;
  padding-left: calc(var(--quality-row-depth, 0) * 14px);
}

.quality-comparison-table tbody tr[data-depth]:not([data-depth="0"]) th span::before {
  content: "↳";
  margin-right: 5px;
  color: var(--teal-dark);
}

.quality-comparison-table td {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.quality-grade-scale {
  display: grid;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 7px;
}

.quality-grade-head,
.quality-grade-row {
  display: grid;
  grid-template-columns: minmax(104px, 0.7fr) repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

.quality-grade-head {
  background: var(--mist);
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.quality-grade-head > span,
.quality-grade-row > * {
  padding: 10px 12px;
  border-right: 1px solid var(--line);
}

.quality-grade-head > span:last-child,
.quality-grade-row > *:last-child {
  border-right: 0;
}

.quality-grade-row {
  border-top: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.62);
}

.quality-grade-row > strong {
  display: flex;
  gap: 8px;
  align-items: center;
  font-size: 13px;
}

.quality-grade-row > strong small {
  color: var(--teal-dark);
  font-size: 10px;
}

.quality-grade-row > span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.quality-record-fields {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px 14px;
  align-items: start;
  padding: 12px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.quality-record-fields > strong {
  color: var(--ink);
  font-size: 12px;
  line-height: 26px;
}

.quality-record-fields > div {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.quality-record-fields span {
  padding: 4px 8px;
  border: 1px solid rgba(15, 107, 99, 0.14);
  border-radius: 5px;
  background: rgba(15, 107, 99, 0.045);
  color: var(--teal-dark);
  font-size: 11px;
  line-height: 1.45;
}

.quality-model-note {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.6;
}

.quality-dimension-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 16px;
}

.quality-dimension-list article {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 12px 0;
  border-top: 1px solid var(--line);
}

.quality-dimension-list article > span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--mist);
  color: var(--teal-dark);
  font-size: 12px;
  font-weight: 800;
}

.quality-dimension-list strong {
  display: block;
  margin-bottom: 4px;
  font-size: 15px;
}

.quality-dimension-list p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}

.quality-evidence-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.quality-evidence-grid > div {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.52);
}

.quality-evidence-grid h2 {
  margin: 3px 0 10px;
  font-size: 20px;
}

.quality-evidence-grid ul,
.quality-uncertainty-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 19px;
  color: var(--muted);
  line-height: 1.6;
}

.quality-changing-note {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 14px 16px;
  border: 1px solid rgba(184, 126, 34, 0.24);
  border-radius: 7px;
  background: rgba(184, 126, 34, 0.065);
}

.quality-changing-note svg {
  color: #9a681d;
}

.quality-changing-note strong,
.quality-changing-note p {
  display: block;
  margin: 0;
}

.quality-changing-note p {
  margin-top: 3px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.quality-subject-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.quality-subject-grid > a {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) 18px;
  gap: 12px;
  align-items: center;
  min-height: 108px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--surface);
  color: inherit;
}

.quality-subject-grid img {
  width: 88px;
  height: 108px;
  object-fit: cover;
}

.quality-subject-grid span {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 10px 0;
}

.quality-subject-grid small {
  color: var(--rust);
  font-size: 10px;
  font-weight: 800;
}

.quality-subject-grid strong {
  font-size: 16px;
}

.quality-subject-grid p {
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.quality-subject-grid svg {
  width: 16px;
  color: var(--teal);
}

.quality-comparison-boundary {
  margin: 0;
}

.food-quality-links > div:last-child {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.food-quality-links > div:last-child > a {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) 16px;
  gap: 9px;
  align-items: center;
  min-height: 48px;
  padding: 8px 10px;
  border: 1px solid rgba(15, 107, 99, 0.18);
  border-radius: 7px;
  background: rgba(15, 107, 99, 0.045);
  color: var(--teal-dark);
}

.food-quality-links > div:last-child > a > span {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  background: rgba(15, 107, 99, 0.1);
}

.food-quality-links svg {
  width: 16px;
  height: 16px;
}

.v2-route-verification {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.v2-route-verification span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.v2-route-verification svg {
  width: 15px;
  height: 15px;
  color: var(--teal);
}

.v2-route-mode-panel {
  display: grid;
  gap: 7px;
  padding: 10px 0 12px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.v2-route-mode-controls {
  display: inline-grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: min(100%, 360px);
  padding: 3px;
  border: 1px solid rgba(15, 107, 99, 0.18);
  border-radius: 7px;
  background: rgba(15, 107, 99, 0.045);
}

.v2-route-mode-controls button {
  min-height: 34px;
  padding: 6px 12px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.v2-route-mode-controls button[aria-pressed="true"] {
  background: #fff;
  color: var(--teal);
  box-shadow: 0 1px 3px rgba(20, 38, 36, 0.12);
}

.v2-route-mode-controls button:focus-visible {
  outline: 2px solid rgba(15, 107, 99, 0.42);
  outline-offset: 1px;
}

.v2-route-mode-panel > p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

[data-route-mode-extra][hidden] {
  display: none !important;
}

.v2-food-node-intro {
  display: grid;
  gap: 14px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.v2-food-node-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.v2-food-node-list > a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 10px;
  align-items: center;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid rgba(15, 107, 99, 0.16);
  border-radius: 7px;
  background: rgba(15, 107, 99, 0.035);
  color: var(--ink);
  text-decoration: none;
}

.v2-food-node-list strong {
  font-size: 14px;
}

.v2-food-node-list span {
  grid-column: 1 / -1;
  overflow: hidden;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.v2-food-node-list svg {
  width: 16px;
  height: 16px;
  color: var(--teal);
}

.v2-food-node-list > a:hover,
.v2-food-node-list > a:focus-visible {
  border-color: rgba(15, 107, 99, 0.4);
  background: rgba(15, 107, 99, 0.07);
}

.travel-detail-groups {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.travel-detail-list {
  margin-top: 0;
  border-top: 1px solid var(--line);
}

.travel-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-top: 4px;
}

.travel-detail-actions .secondary-button {
  color: var(--teal);
  background: rgba(15, 107, 99, 0.06);
  border-color: rgba(15, 107, 99, 0.2);
}

.article-shell,
.boundary-box,
.public-form {
  padding: 24px;
}

.article-layout {
  display: grid;
  grid-template-columns: minmax(220px, 340px) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.article-layout .card-media {
  min-height: 220px;
  border-radius: 8px;
}

.article-layout .boundary-box {
  grid-column: 1 / -1;
}

.article-detail-layout {
  row-gap: 28px;
}

.article-compact-layout {
  display: grid;
  gap: 16px;
}

.article-note-layout {
  display: grid;
  gap: 24px;
}

.article-compact-layout .article-body {
  gap: 10px;
}

.article-compact-layout .article-body-section {
  gap: 0;
}

.article-compact-layout .boundary-box {
  margin-top: 0;
}

.article-note-layout .article-intro,
.article-compact-layout .article-intro,
.article-note-layout .boundary-box {
  max-width: 820px;
}

.article-intro {
  align-self: center;
}

.article-intro h2 {
  margin: 0 0 10px;
  font-size: clamp(24px, 4vw, 34px);
}

.article-intro p {
  margin: 0;
  color: var(--muted);
  line-height: 1.8;
}

.article-body {
  grid-column: 1 / -1;
  display: grid;
  gap: 20px;
  max-width: 820px;
}

.article-body-section {
  display: grid;
  gap: 10px;
}

.article-lead-section {
  padding: 18px;
  border-left: 4px solid var(--teal);
  background: var(--mist);
}

.article-body-section h3 {
  margin: 0;
  font-size: 22px;
}

.article-body-section p,
.article-body-section li {
  margin: 0;
  color: var(--muted);
  line-height: 1.85;
}

.article-body-section ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding-left: 20px;
}

.article-body-section pre {
  max-width: 100%;
  overflow: auto;
  margin: 4px 0 0;
  padding: 16px;
  color: var(--ink);
  background: #f3f0e8;
  border: 1px solid var(--line);
  border-radius: 8px;
  white-space: pre-wrap;
}

.article-body-section code {
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: 13px;
  line-height: 1.75;
}

.boundary-box {
  display: grid;
  gap: 8px;
  color: var(--brick);
  background: rgba(183, 68, 46, 0.07);
}

.boundary-box span,
.template-note,
.form-status {
  color: var(--muted);
  line-height: 1.7;
}

.forbidden-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.forbidden-grid span {
  padding: 9px 12px;
  color: var(--brick);
  background: rgba(183, 68, 46, 0.08);
  border: 1px solid rgba(183, 68, 46, 0.22);
  border-radius: 999px;
  font-weight: 800;
}

.public-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.feedback-context {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  margin-bottom: 14px;
  padding: 14px 16px;
  border: 1px solid rgba(15, 107, 99, 0.18);
  border-radius: 8px;
  background: rgba(15, 107, 99, 0.05);
}

.feedback-context > span {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  color: var(--teal-dark);
  background: var(--surface);
  border: 1px solid rgba(15, 107, 99, 0.14);
  border-radius: 6px;
}

.feedback-context svg {
  width: 18px;
  height: 18px;
}

.feedback-context div,
.feedback-context strong {
  min-width: 0;
}

.feedback-context small {
  display: block;
  margin-bottom: 3px;
  color: var(--teal-dark);
  font-weight: 800;
}

.feedback-context strong {
  display: block;
  color: var(--ink);
}

.feedback-context p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.public-form label {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-weight: 800;
}

.public-form label:has(textarea),
.public-form button,
.form-status {
  grid-column: 1 / -1;
}

.public-form input,
.public-form select,
.public-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 11px 12px;
  color: var(--ink);
  background: var(--paper);
}

.public-form select {
  min-height: 43px;
}

.feedback-optional-fields {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding-top: 2px;
}

.policy-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.policy-list article {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  padding: 18px;
  align-items: start;
}

.policy-list svg {
  width: 20px;
  height: 20px;
  color: var(--teal);
}

.preview-body {
  min-height: 100vh;
  background: #172126;
}

.preview-shell {
  display: grid;
  grid-template-columns: minmax(280px, 420px) minmax(390px, 1fr);
  gap: 34px;
  min-height: 100vh;
  padding: 34px;
  align-items: center;
}

.preview-panel {
  color: #fff;
}

.preview-panel h1 {
  max-width: 340px;
  margin-bottom: 14px;
  font-size: 42px;
  line-height: 1.08;
}

.preview-panel p {
  color: rgba(255, 255, 255, 0.72);
}

.preview-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 24px 0;
}

.preview-links button {
  min-height: 38px;
  padding: 8px 12px;
  color: #fff;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 6px;
  font-weight: 800;
}

.preview-links button:hover {
  background: rgba(255, 255, 255, 0.2);
}

/* Internal content relationship map */
.content-map-body {
  margin: 0;
  background: #f5f7f5;
  color: #172226;
}

.content-map-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 72px;
  padding: 0 28px;
  border-bottom: 1px solid #d8e1df;
  background: rgba(252, 252, 249, 0.96);
  backdrop-filter: blur(12px);
}

.content-map-header-actions {
  display: flex;
  gap: 18px;
}

.content-map-header-actions a {
  color: #176f66;
  font-size: 14px;
  font-weight: 700;
}

.content-map-shell {
  width: min(1480px, calc(100% - 48px));
  margin: 0 auto;
  padding: 34px 0 64px;
}

.content-map-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 36px;
  align-items: end;
}

.content-map-intro h1 {
  max-width: none;
  margin: 6px 0 10px;
  font-size: clamp(30px, 3.4vw, 44px);
  line-height: 1.16;
  letter-spacing: 0;
}

.content-map-intro > div:first-child > p:last-child {
  max-width: 760px;
  margin: 0;
  color: #617074;
  line-height: 1.7;
}

.content-map-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(80px, 1fr));
  border: 1px solid #d8e1df;
  background: #fff;
}

.content-map-stats div {
  min-width: 92px;
  padding: 14px 18px;
  border-right: 1px solid #e4e9e7;
}

.content-map-stats div:last-child {
  border-right: 0;
}

.content-map-stats strong,
.content-map-stats span {
  display: block;
}

.content-map-stats strong {
  font-size: 24px;
}

.content-map-stats span {
  margin-top: 2px;
  color: #6d797c;
  font-size: 12px;
}

.content-map-toolbar {
  display: flex;
  gap: 16px;
  align-items: end;
  margin: 28px 0 20px;
  padding: 16px;
  border: 1px solid #d8e1df;
  background: #fff;
}

.content-map-toolbar label {
  display: grid;
  gap: 6px;
  min-width: 180px;
}

.content-map-toolbar label span {
  color: #637174;
  font-size: 12px;
  font-weight: 700;
}

.content-map-toolbar select,
.content-map-toolbar input {
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid #cbd6d3;
  border-radius: 4px;
  background: #fff;
  color: #172226;
  font: inherit;
}

.content-map-search {
  flex: 1;
}

.content-map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding-bottom: 9px;
  color: #637174;
  font-size: 12px;
}

.content-map-legend span {
  display: inline-flex;
  gap: 5px;
  align-items: center;
}

.content-map-legend i {
  width: 9px;
  height: 9px;
  border-radius: 2px;
}

.content-map-legend .is-route { background: #147d72; }
.content-map-legend .is-attraction { background: #3170a8; }
.content-map-legend .is-food { background: #af6b22; }
.content-map-legend .is-context { background: #aab2b2; }
.content-map-legend .is-context-missing { background: #6d8ca7; }
.content-map-legend .is-context-review { background: #9b7a4a; }

.content-map-canvas {
  display: grid;
  gap: 16px;
}

.content-map-region {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  border: 1px solid #d8e1df;
  background: #fff;
}

.content-map-region-node {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 150px;
  padding: 22px;
  border-right: 1px solid #d8e1df;
  background: #edf5f2;
}

.content-map-region-node::after {
  position: absolute;
  top: 50%;
  right: -17px;
  width: 16px;
  border-top: 1px solid #9eb8b2;
  content: "";
}

.content-map-region-node span {
  color: #11685f;
  font-size: 24px;
  font-weight: 800;
}

.content-map-region-node small {
  margin-top: 4px;
  color: #71807d;
}

.content-map-route-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 14px 14px 14px 28px;
}

.content-map-route {
  min-width: 0;
  border: 1px solid #dfe6e4;
  border-left: 3px solid #147d72;
  border-radius: 4px;
  background: #fff;
}

.content-map-route-title {
  display: block;
  padding: 13px 14px 11px;
  border-bottom: 1px solid #edf0ef;
  color: #172226;
}

.content-map-route-title small,
.content-map-route-title strong {
  display: block;
}

.content-map-route-title small {
  margin-bottom: 3px;
  color: #c34831;
  font-size: 11px;
}

.content-map-route-title strong {
  font-size: 16px;
}

.content-map-branch {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 8px;
  padding: 9px 12px;
  border-bottom: 1px solid #f0f2f1;
}

.content-map-branch:last-child {
  border-bottom: 0;
}

.content-map-branch > b {
  padding-top: 5px;
  color: #6b7779;
  font-size: 11px;
}

.content-map-branch > div {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.content-map-node {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  padding: 4px 8px;
  border: 1px solid transparent;
  border-radius: 3px;
  font-size: 12px;
  line-height: 1.35;
}

.content-map-node.is-attraction {
  border-color: #c9dbea;
  background: #eef5fa;
  color: #235d8e;
}

.content-map-node.is-food {
  border-color: #ead8c2;
  background: #fbf4e9;
  color: #8a5318;
}

.content-map-node.is-context {
  border-color: #e0e4e3;
  background: #f1f3f2;
  color: #707a7a;
}

.content-map-node.is-context-official-missing-page,
.content-map-node.is-context-heritage-missing-page,
.content-map-node.is-context-missing-page {
  border-color: #d5e0e8;
  background: #f2f6f8;
  color: #536f84;
}

.content-map-node.is-context-relation-review {
  border-color: #e6dccd;
  background: #faf7f1;
  color: #79603d;
}

.content-map-node.is-context-experience-review {
  border-color: #ded9e5;
  background: #f7f5f9;
  color: #6d6179;
}

.content-map-branch.is-official-missing-page > b,
.content-map-branch.is-heritage-missing-page > b,
.content-map-branch.is-missing-page > b {
  color: #536f84;
}

.content-map-branch.is-relation-review > b {
  color: #79603d;
}

.content-map-empty {
  padding: 5px 0;
  color: #9aa3a2;
  font-size: 12px;
}

.content-map-empty-state {
  margin: 0;
  padding: 28px;
  color: #74817f;
}

.content-map-diagnostics {
  margin-top: 36px;
}

.content-map-diagnostics [data-content-map-diagnostics] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.content-map-diagnostics details {
  border: 1px solid #d8e1df;
  background: #fff;
}

.content-map-diagnostics summary {
  display: flex;
  justify-content: space-between;
  padding: 13px 15px;
  cursor: pointer;
}

.content-map-diagnostics summary span {
  color: #c34831;
}

.content-map-diagnostics details > div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 15px 15px;
}

.content-map-diagnostics details > div span {
  padding: 4px 7px;
  border: 1px solid #e0e5e4;
  border-radius: 3px;
  color: #657170;
  font-size: 12px;
}

@media (max-width: 900px) {
  .content-map-shell {
    width: min(100% - 24px, 720px);
    padding-top: 24px;
  }

  .content-map-intro {
    grid-template-columns: 1fr;
  }

  .content-map-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .content-map-toolbar label {
    min-width: 0;
  }

  .content-map-region {
    grid-template-columns: 1fr;
  }

  .content-map-region-node {
    min-height: 0;
    padding: 13px 16px;
    border-right: 0;
    border-bottom: 1px solid #d8e1df;
  }

  .content-map-region-node::after {
    display: none;
  }

  .content-map-region-node span {
    font-size: 20px;
  }

  .content-map-route-list,
  .content-map-diagnostics [data-content-map-diagnostics] {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .content-map-header {
    min-height: 62px;
    padding: 0 12px;
  }

  .content-map-header .brand small,
  .content-map-header-actions a:first-child {
    display: none;
  }

  .content-map-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .content-map-stats div:nth-child(2) {
    border-right: 0;
  }

  .content-map-stats div:nth-child(-n + 2) {
    border-bottom: 1px solid #e4e9e7;
  }

  .content-map-route-list {
    padding: 10px;
  }
}

.phone-frame {
  justify-self: center;
  width: 414px;
  height: 880px;
  padding: 12px;
  background: #0d1417;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 34px;
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.36);
}

.phone-frame iframe {
  width: 390px;
  height: 844px;
  border: 0;
  border-radius: 24px;
  background: var(--paper);
}

@media (max-width: 980px) {
  .site-header {
    padding: 12px 20px;
  }

  .desktop-nav {
    display: none;
  }

  .menu-button {
    display: inline-grid;
  }

  .hero {
    min-height: min(62vh, 560px);
  }

  h1 {
    font-size: 58px;
  }

  h2 {
    font-size: 32px;
  }

  .intro-grid,
  .module-grid,
  .taste-grid,
  .service-grid,
  .footer-grid,
  .policy-grid,
  .spec-grid,
  .merchant-profile,
  .template-card-grid,
  .policy-list {
    grid-template-columns: repeat(2, 1fr);
  }

  .split-layout,
  .life-guide-layout,
  .quick-entry-layout,
  .editorial-layout,
  .taste-layout,
  .resource-magazine,
  .service-tool-layout,
  .about-strip-layout,
  .resource-layout,
  .utility-grid,
  .about-layout {
    grid-template-columns: 1fr;
  }

  .guide-feature-card {
    min-height: 280px;
  }

  .taste-visual-card {
    position: static;
  }

  .resource-tile-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-index-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .travel-finder-panel,
  .travel-add-section {
    grid-template-columns: 1fr;
  }

  .travel-first-layout {
    grid-template-columns: 1fr;
  }

  .travel-chain-grid,
  .travel-stopover-grid,
  .travel-theme-grid,
  .travel-place-grid,
  .travel-route-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .travel-region-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-form {
    grid-template-columns: 1fr;
  }

  .template-hero h1 {
    font-size: 42px;
  }

  .template-hero {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .article-layout {
    grid-template-columns: 1fr;
  }

  .template-hero-visual {
    min-height: 180px;
  }

  .compact-template-grid {
    grid-template-columns: 1fr;
  }

  .discover-hub-step-grid,
  .discover-hub-branch-grid,
  .discover-route-teaser-grid {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .discover-hub-step {
    min-height: 0;
    padding: 12px;
  }

  .discover-hub-step strong {
    font-size: 16px;
  }

  .discover-hub-step small {
    font-size: 12px;
  }

  .discover-hub-branch-card {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    min-height: 126px;
  }

  .discover-hub-branch-image {
    height: 100%;
    min-height: 126px;
  }

  .discover-hub-branch-card > div {
    align-content: start;
    gap: 6px;
    padding: 11px;
  }

  .discover-hub-branch-card h3,
  .discover-route-teaser h3 {
    font-size: 17px;
  }

  .discover-hub-branch-card p,
  .discover-route-teaser p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 12.5px;
    line-height: 1.48;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .discover-route-teaser {
    padding: 12px;
  }

  .article-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  :root {
    --container: min(100vw - 28px, 1180px);
  }

  .brand {
    min-width: 0;
  }

  .brand small {
    display: none;
  }

  .brand-mark {
    width: 44px;
  }

  .hero {
    min-height: 56vh;
    align-items: end;
  }

  .hero-content {
    padding: 82px 0 26px;
  }

  .hero-overlay {
    background:
      linear-gradient(0deg, rgba(8, 25, 28, 0.82) 0%, rgba(8, 25, 28, 0.46) 52%, rgba(8, 25, 28, 0.3) 100%),
      linear-gradient(90deg, rgba(8, 25, 28, 0.36), rgba(8, 25, 28, 0.22));
  }

  h1 {
    font-size: 44px;
  }

  h2 {
    font-size: 28px;
  }

  .hero-subtitle {
    font-size: 17px;
    line-height: 1.55;
  }

  .section-band {
    padding: 32px 0;
  }

  .home-secondary-band {
    padding: 24px 0;
  }

  .home-secondary-band .section-heading {
    margin-bottom: 10px;
  }

  .home-secondary-band .section-heading h2 {
    font-size: 22px;
    line-height: 1.25;
  }

  .home-secondary-band .section-heading p:not(.eyebrow) {
    font-size: 13px;
    line-height: 1.45;
  }

  .site-index-band {
    padding: 16px 0;
  }

  .site-index-fold {
    padding: 12px 14px;
  }

  .site-index-fold > summary::after {
    top: 50%;
    transform: translateY(-50%);
  }

  .site-index-fold .section-heading h2 {
    font-size: 20px;
    line-height: 1.25;
  }

  .site-index-fold .section-heading .eyebrow {
    margin-bottom: 2px;
  }

  .site-index-fold:not([open]) .section-heading p:not(.eyebrow) {
    display: none;
  }

  .site-index-fold[open] .section-heading {
    margin-bottom: 12px;
  }

  .site-index-fold[open] .section-heading p:not(.eyebrow) {
    font-size: 13px;
    line-height: 1.45;
  }

  .site-index-fold .site-index-grid {
    padding-top: 12px;
  }

  .site-index-grid {
    gap: 8px;
  }

  .site-index-grid article {
    min-height: 0;
    padding: 12px;
  }

  .site-index-grid h3 {
    margin-bottom: 4px;
    font-size: 18px;
    line-height: 1.3;
  }

  .site-index-grid p {
    margin-bottom: 8px;
    font-size: 13px;
    line-height: 1.5;
  }

  .site-index-grid ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px 12px;
  }

  .site-index-grid li {
    min-width: 0;
  }

  .site-index-grid a {
    width: 100%;
    min-height: 26px;
    font-size: 13px;
    overflow-wrap: anywhere;
  }

  .site-footer {
    padding: 16px 0;
  }

  .footer-grid {
    gap: 8px;
  }

  .footer-grid > div {
    display: grid;
    gap: 2px;
  }

  .site-footer strong {
    font-size: 15px;
  }

  .site-footer span {
    font-size: 11px;
  }

  .site-footer p {
    font-size: 13px;
    line-height: 1.5;
  }

  .footer-mini-links {
    gap: 4px 10px;
  }

  .footer-grid > .footer-brand-block {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: baseline;
    column-gap: 10px;
  }

  .footer-brand-block p {
    white-space: nowrap;
  }

  .footer-grid > .footer-legal-block {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 2px 10px;
  }

  .footer-legal-block > span {
    display: none;
  }

  .footer-grid > .footer-nav-block {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 8px;
  }

  .footer-nav-block > span {
    margin-bottom: 0;
  }

  .footer-nav-block .footer-mini-links {
    row-gap: 2px;
  }

  .link-directory-section {
    gap: 12px;
    padding-top: 18px;
  }

  .link-directory-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .link-directory-card {
    min-height: 0;
    padding: 13px;
  }

  .link-directory-card strong {
    font-size: 17px;
  }

  .link-directory-card p {
    font-size: 12px;
    line-height: 1.5;
  }

  .link-directory-note {
    margin-top: 12px;
    padding: 10px 12px;
    font-size: 12px;
  }

  .intro-grid,
  .module-grid,
  .taste-grid,
  .service-grid,
  .footer-grid,
  .site-index-grid,
  .policy-grid,
  .spec-grid,
  .merchant-profile,
  .template-card-grid,
  .policy-list,
  .public-form {
    grid-template-columns: 1fr;
  }

  .feedback-optional-fields {
    grid-template-columns: 1fr;
  }

  .intro-strip {
    padding: 14px 0;
  }

  .intro-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .travel-theme-grid,
  .travel-destination-quick-grid,
  .travel-hub-grid,
  .travel-chain-grid,
  .travel-stopover-grid,
  .travel-place-grid,
  .travel-region-grid,
  .travel-route-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    overflow: visible;
    margin-right: 0;
    padding-right: 0;
    scroll-snap-type: none;
    scrollbar-width: auto;
  }

  .travel-route-quick-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    overflow: visible;
    margin-right: 0;
    padding-right: 0;
    scroll-snap-type: none;
    scrollbar-width: auto;
  }

  .travel-route-quick-grid .travel-route-card {
    flex: initial;
    width: auto;
  }

  .travel-route-chooser-grid {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    margin-right: 0;
    padding-right: 0;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .travel-route-chooser-grid::-webkit-scrollbar {
    display: none;
  }

  .travel-route-chooser-grid .travel-route-chooser-card {
    flex: 0 0 76%;
    scroll-snap-align: start;
  }

  .travel-route-chooser-grid {
    gap: 8px;
  }

  .travel-route-chooser-card {
    min-height: 0;
    padding: 11px;
  }

  .travel-route-start-item {
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 8px;
    align-items: flex-start;
    padding: 10px;
  }

  .travel-route-start-actions {
    grid-column: 2;
    flex-direction: row;
    flex-wrap: wrap;
    min-width: 0;
  }

  .travel-weekend-bridge-list {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .travel-weekend-bridge-item {
    min-height: 0;
    padding: 11px;
  }

  .travel-weekend-bridge-actions {
    gap: 6px 10px;
  }

  .travel-route-scenario-grid {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .travel-route-scenario-card {
    padding: 11px;
  }

  .travel-route-scenario-item {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
  }

  .travel-route-duration-grid {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .travel-route-duration-group {
    padding: 11px;
  }

  .travel-route-theme-grid {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .travel-route-theme-group {
    padding: 11px;
  }

  .travel-theme-grid {
    grid-template-columns: 1fr;
  }

  .travel-destination-quick-grid {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    margin-right: 0;
    padding-right: 0;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .travel-destination-quick-grid::-webkit-scrollbar {
    display: none;
  }

  .travel-destination-quick-card {
    flex: 0 0 72%;
    scroll-snap-align: start;
  }

  .travel-destination-more-fold .travel-destination-quick-grid {
    display: grid;
    grid-template-columns: 1fr;
    overflow: visible;
    margin-right: 0;
    padding-right: 10px;
  }

  .travel-destination-more-fold .travel-destination-quick-card {
    flex: initial;
  }

  .travel-destination-quick-card {
    gap: 5px;
    padding: 8px;
  }

  .travel-destination-quick-main span {
    font-size: 9.5px;
  }

  .travel-destination-quick-main strong {
    font-size: 13px;
  }

  .travel-destination-quick-food {
    display: flex;
    flex-wrap: wrap;
    gap: 3px 7px;
    padding-top: 5px;
  }

  .travel-destination-quick-food .travel-food-name-link {
    font-size: 9.5px;
  }

  .travel-destination-quick-food-link {
    font-size: 10px;
  }

  .travel-theme-card {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    min-height: 126px;
  }

  .travel-theme-card img {
    height: 100%;
    min-height: 126px;
    aspect-ratio: auto;
  }

  .travel-theme-card > div {
    padding: 12px;
  }

  .travel-theme-card p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.5;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .travel-theme-grid::-webkit-scrollbar,
  .travel-hub-grid::-webkit-scrollbar,
  .travel-chain-grid::-webkit-scrollbar,
  .travel-stopover-grid::-webkit-scrollbar,
  .travel-place-grid::-webkit-scrollbar,
  .travel-region-grid::-webkit-scrollbar,
  .travel-route-grid::-webkit-scrollbar,
  .travel-route-quick-grid::-webkit-scrollbar {
    display: none;
  }

  .travel-theme-card,
  .travel-hub-card,
  .travel-chain-card,
  .travel-stopover-card,
  .travel-place-card,
  .travel-region-card,
  .travel-route-card {
    flex: initial;
    width: auto;
    scroll-snap-align: start;
  }

  .travel-hub-card.is-expanded,
  .travel-place-card.is-expanded {
    width: auto;
    max-width: none;
  }

  .travel-section-fold .travel-region-grid,
  .travel-section-fold .travel-route-grid {
    display: grid;
    gap: 10px;
    overflow: visible;
    margin-right: 0;
    padding-right: 0;
    scroll-snap-type: none;
    scrollbar-width: auto;
  }

  .travel-section-fold .travel-region-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .travel-section-fold .travel-place-grid,
  .travel-section-fold .travel-chain-grid,
  .travel-section-fold .travel-stopover-grid {
    grid-template-columns: 1fr;
  }

  .travel-section-fold .travel-route-grid {
    grid-template-columns: 1fr;
  }

  .travel-section-fold .travel-region-card,
  .travel-section-fold .travel-place-card,
  .travel-section-fold .travel-chain-card,
  .travel-section-fold .travel-stopover-card,
  .travel-section-fold .travel-route-card {
    flex: initial;
    width: auto;
    min-height: 0;
    scroll-snap-align: unset;
  }

  .travel-section-fold .travel-region-card {
    gap: 7px;
    padding: 11px;
  }

  .travel-section-fold .travel-route-card {
    gap: 8px;
    padding: 12px;
  }

  .travel-guide-page {
    gap: 14px;
  }

  .travel-finder-panel {
    gap: 9px;
    padding: 12px;
  }

  .travel-first-layout {
    gap: 12px;
  }

  .travel-first-notes {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .travel-first-notes article {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 8px;
    padding: 11px;
  }

  .travel-first-notes span {
    width: 30px;
    height: 30px;
    font-size: 11px;
  }

  .travel-first-notes h3,
  .travel-food-heading h3 {
    font-size: 18px;
    line-height: 1.22;
  }

  .travel-first-notes p,
  .travel-food-heading p {
    font-size: 13px;
    line-height: 1.55;
  }

  .travel-food-board {
    gap: 11px;
    padding: 14px;
  }

  .travel-route-food-group {
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 8px;
    padding: 8px;
  }

  .travel-route-food-image {
    width: 82px;
  }

  .travel-route-food-image img {
    min-height: 82px;
  }

  .travel-route-food-group p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .travel-route-food-tags {
    gap: 4px;
  }

  .travel-route-food-tags span,
  .travel-route-food-tags a {
    min-height: 19px;
    padding: 3px 6px;
    font-size: 11px;
  }

  .travel-detail-food-summary {
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
    padding: 9px;
  }

  .travel-detail-food-image {
    order: 2;
    width: 100%;
  }

  .travel-detail-food-image img {
    height: auto;
    min-height: 0;
    aspect-ratio: 3.15 / 1;
  }

  .travel-detail-food-summary > div {
    order: 1;
    align-content: start;
    gap: 7px;
  }

  .travel-detail-food-summary h2 {
    font-size: 18px;
  }

  .travel-detail-food-summary p:not(.eyebrow) {
    display: -webkit-box;
    overflow: hidden;
    font-size: 12px;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .travel-detail-food-tags {
    gap: 4px;
  }

  .travel-detail-food-tags span,
  .travel-detail-food-tags a {
    min-height: 14px;
    padding: 0 4px;
    font-size: 9.25px;
  }

  .travel-food-action-row {
    gap: 5px;
  }

  .travel-food-timing-hints {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }

  .travel-food-timing-hints span {
    grid-template-columns: 56px minmax(0, 1fr);
    align-items: start;
    padding: 5px 7px;
    font-size: 10.5px;
    line-height: 1.35;
  }

  .travel-food-timing-hints b {
    font-size: 10.5px;
  }

  .travel-food-action-row .travel-route-food-link,
  .travel-route-plan-link {
    min-height: 22px;
    padding: 2px 6px;
    font-size: 11px;
    font-weight: 800;
  }

  .travel-food-decision {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .travel-food-decision-group {
    display: flex;
    align-items: center;
    gap: 5px;
    min-height: 26px;
    padding: 4px 6px;
  }

  .travel-food-decision-group > span {
    flex: 0 0 auto;
    min-width: 48px;
    font-size: 10px;
    line-height: 1.2;
  }

  .travel-food-decision-group > div {
    gap: 4px;
  }

  .travel-food-decision-group a,
  .travel-food-decision-group > div span {
    min-height: 14px;
    padding: 0 4px;
    font-size: 9.25px;
  }

  .travel-food-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    overflow: visible;
    padding-bottom: 2px;
    scroll-snap-type: none;
    scrollbar-width: auto;
  }

  .travel-food-grid::-webkit-scrollbar {
    display: none;
  }

  .travel-food-card {
    flex: initial;
    scroll-snap-align: start;
    gap: 8px;
    padding: 12px;
  }

  .travel-food-bridge-grid {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    margin-right: 0;
    padding-right: 0;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .travel-food-bridge-grid::-webkit-scrollbar {
    display: none;
  }

  .travel-food-bridge-card {
    flex: 0 0 82%;
    grid-template-columns: 96px minmax(0, 1fr);
    align-items: stretch;
    scroll-snap-align: start;
  }

  .travel-food-bridge-card img {
    height: 100%;
    min-height: 104px;
    aspect-ratio: auto;
  }

  .travel-food-bridge-body {
    min-width: 0;
    gap: 6px;
    padding: 10px 11px;
  }

  .travel-food-bridge-body > strong {
    font-size: 16px;
  }

  .travel-food-bridge-lines {
    gap: 4px;
  }

  .travel-food-bridge-line {
    gap: 4px;
  }

  .travel-food-bridge-line span,
  .travel-food-bridge-line a {
    min-height: 15px;
    padding: 1px 4px;
    font-size: 9.5px;
  }

  .travel-food-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .travel-food-tags span {
    min-height: 22px;
    padding: 5px 7px;
    font-size: 12px;
  }

  .travel-takeaway-tip {
    font-size: 12px;
    line-height: 1.55;
  }

  .food-guide-page {
    gap: 18px;
  }

  .food-place-shortcut-grid,
  .food-destination-shortcut-grid,
  .food-browse-mode-grid,
  .food-route-grid,
  .food-photo-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .food-place-shortcut-card.has-image {
    grid-template-columns: 104px minmax(0, 1fr);
  }

  .food-place-shortcut-image-link,
  .food-place-shortcut-image-link img {
    min-height: 178px;
  }

  .food-place-shortcut-card.has-image .food-place-shortcut-body {
    gap: 6px;
    padding: 9px;
  }

  .food-place-shortcut-body > span {
    font-size: 11px;
    line-height: 1.3;
  }

  .food-place-shortcut-body h3 {
    font-size: 16px;
  }

  .food-place-shortcut-body p {
    font-size: 12px;
    line-height: 1.45;
    -webkit-line-clamp: 2;
  }

  .food-browse-mode-section {
    padding: 0;
  }

  .food-browse-mode-section .section-heading {
    gap: 3px;
    margin-bottom: 8px;
  }

  .food-browse-mode-section .section-heading h2 {
    font-size: 21px;
  }

  .food-browse-mode-section .section-heading p:not(.eyebrow) {
    font-size: 12px;
    line-height: 1.4;
  }

  .food-browse-mode-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  .food-browse-mode-card {
    justify-items: start;
    gap: 3px 4px;
    min-height: 54px;
    padding: 7px 6px;
  }

  .food-browse-mode-card .food-browse-mode-step {
    min-width: 19px;
    min-height: 15px;
    font-size: 9px;
  }

  .food-browse-mode-card .food-browse-mode-label {
    font-size: 10px;
    line-height: 1.15;
  }

  .food-browse-mode-card strong {
    font-size: 13px;
    line-height: 1.15;
  }

  .food-browse-mode-card small {
    display: none;
  }

  .food-browse-mode-card em {
    display: none;
  }

  .food-browse-mode-note {
    margin-top: 6px;
    font-size: 11.5px;
    line-height: 1.45;
  }

  .food-destination-shortcut-section .section-heading {
    gap: 4px;
    margin-bottom: 6px;
  }

  .food-destination-shortcut-section .section-heading h2 {
    font-size: 23px;
    line-height: 1.12;
  }

  .food-destination-shortcut-section .section-heading p:not(.eyebrow) {
    font-size: 12.5px;
    line-height: 1.45;
  }

  .food-destination-shortcut-card {
    gap: 7px;
    padding: 10px;
  }

  .food-destination-shortcut-main {
    grid-template-columns: 104px minmax(0, 1fr);
    grid-template-rows: auto auto 1fr;
    column-gap: 10px;
    row-gap: 4px;
    align-items: start;
  }

  .food-destination-shortcut-image {
    grid-column: 1;
    grid-row: 1 / span 3;
    height: 104px;
  }

  .food-destination-shortcut-main span,
  .food-destination-shortcut-main h3,
  .food-destination-shortcut-main p {
    grid-column: 2;
  }

  .food-destination-shortcut-main h3 {
    font-size: 16px;
  }

  .food-destination-shortcut-main p {
    -webkit-line-clamp: 2;
  }

  .food-destination-shortcut-lines {
    gap: 7px;
    margin-top: 2px;
  }

  .food-feature-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .food-feature-card summary {
    grid-template-columns: 104px minmax(0, 1fr);
    grid-template-rows: auto;
    min-height: 116px;
  }

  .food-feature-card summary img {
    height: 100%;
    min-height: 116px;
    aspect-ratio: auto;
  }

  .food-feature-card summary > div {
    gap: 6px;
    padding: 12px;
  }

  .food-feature-card summary h3 {
    font-size: 17px;
  }

  .food-feature-card summary p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 12px;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .food-feature-detail {
    padding: 0 12px 12px;
  }

  .food-feature-detail p {
    font-size: 12px;
    line-height: 1.5;
  }

  .food-guide-card {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    min-height: 122px;
  }

  .food-guide-card.no-image {
    display: block;
    min-height: 0;
  }

  .food-guide-card.has-mosaic {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    min-height: 122px;
  }

  .food-card-image-link {
    grid-column: 1;
    grid-row: 1;
    align-self: stretch;
    justify-self: stretch;
    width: 112px;
    max-width: 112px;
    min-width: 0;
    height: 100%;
    min-height: 0;
  }

  .food-card-image-link.food-card-mosaic {
    width: 112px;
    max-width: 112px;
    height: 100%;
    min-height: 122px;
    aspect-ratio: auto;
  }

  .food-guide-card.has-mosaic .food-card-image-link.food-card-mosaic {
    grid-column: 1;
    grid-row: 1;
    width: 112px;
    max-width: 112px;
    height: 100%;
    min-height: 122px;
    aspect-ratio: auto;
  }

  .food-guide-card img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    min-height: 122px;
    aspect-ratio: auto;
  }

  .food-card-mosaic img {
    min-height: 0;
  }

  .food-guide-card > div {
    grid-column: 2;
    grid-row: 1;
    align-self: stretch;
    min-width: 0;
    overflow: hidden;
    gap: 6px;
    padding: 12px;
    border-left: 1px solid var(--line);
  }

  .food-guide-card.has-mosaic > div {
    grid-column: 2;
    grid-row: 1;
    border-top: 0;
    border-left: 1px solid var(--line);
  }

  .food-guide-card h3 {
    font-size: 17px;
  }

  .food-guide-card p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 12px;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .food-guide-subnav {
    gap: 4px;
  }

  .food-guide-subnav a {
    min-height: 14px;
    padding: 0 4px;
    font-size: 9.25px;
  }

  .food-snack-grid,
  .food-region-grid,
  .food-town-grid,
  .food-archive-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .food-snack-card,
  .food-region-card,
  .food-town-card,
  .food-archive-card {
    gap: 8px;
    padding: 12px;
  }

  .food-snack-card {
    grid-template-columns: 86px minmax(0, 1fr);
  }

  .food-snack-card h3,
  .food-town-card h3,
  .food-archive-card h3 {
    font-size: 17px;
  }

  .food-snack-card p,
  .food-region-card p,
  .food-town-card p,
  .food-archive-card p {
    font-size: 12px;
    line-height: 1.5;
  }

  .food-name-chips {
    gap: 4px 5px;
  }

  .food-name-chips span,
  .food-name-chips a {
    min-height: 14px;
    padding: 0 1px;
    font-size: 9.5px;
  }

  .food-item-hero-card {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 12px;
  }

  .food-group-hero-card {
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 9px;
    padding: 9px;
  }

  .food-item-hero-card img {
    min-height: 190px;
  }

  .food-v2-media-grid img,
  .food-v2-media-empty {
    min-height: 184px;
    height: 184px;
  }

  .v2-food-route-list {
    grid-template-columns: 1fr;
  }

  .food-group-hero-card img {
    height: 100%;
    max-height: 156px;
    min-height: 132px;
  }

  .food-group-hero-card > div {
    align-content: start;
    gap: 6px;
    min-width: 0;
  }

  .food-item-hero-card h2 {
    font-size: 23px;
  }

  .food-group-hero-card h2 {
    font-size: 18px;
  }

  .food-group-hero-card p:not(.eyebrow):not(.food-reference-note) {
    display: -webkit-box;
    overflow: hidden;
    font-size: 12px;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .food-item-info-grid,
  .food-related-group-list,
  .food-route-backlink-list,
  .food-item-card-grid {
    grid-template-columns: 1fr;
  }

  .food-group-switch-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  .travel-finder-panel h2 {
    font-size: 20px;
  }

  .travel-search-box {
    min-height: 40px;
  }

  .travel-search-box input {
    height: 38px;
    font-size: 14px;
  }

  .travel-filter-row {
    flex-wrap: nowrap;
    gap: 6px;
    overflow-x: auto;
    padding-bottom: 1px;
    scrollbar-width: none;
  }

  .travel-filter-row::-webkit-scrollbar {
    display: none;
  }

  .travel-filter-row button {
    flex: 0 0 auto;
    min-height: 29px;
    padding: 4px 8px;
    font-size: 12px;
  }

  .travel-duration-row button {
    min-height: 27px;
    padding: 4px 7px;
    font-size: 11px;
  }

  .travel-finder-shortcuts {
    flex-wrap: nowrap;
    gap: 8px;
    overflow-x: auto;
    padding: 1px 0 2px;
    scrollbar-width: none;
  }

  .travel-finder-shortcuts::-webkit-scrollbar {
    display: none;
  }

  .travel-finder-shortcuts a {
    flex: 0 0 auto;
    min-height: 22px;
    padding: 2px 0;
    border-bottom-style: solid;
    font-size: 10px;
  }

  .travel-active-state {
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
  }

  .travel-active-state button {
    width: fit-content;
  }

  .travel-place-card {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr);
    scroll-snap-align: unset;
  }

  .travel-place-card img {
    align-self: start;
    height: 112px;
    aspect-ratio: auto;
  }

  .travel-place-card > div {
    gap: 7px;
    min-height: 0;
    padding: 10px;
  }

  .travel-place-card.is-expanded {
    grid-template-columns: 1fr;
  }

  .travel-place-card.is-expanded img {
    height: auto;
    aspect-ratio: 16 / 9;
  }

  .travel-place-card h3 {
    font-size: 18px;
  }

  .travel-place-card p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.55;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
  }

  .travel-place-card strong {
    font-size: 12px;
  }

  .travel-theme-card {
    display: grid;
    grid-template-columns: 1fr;
  }

  .travel-theme-card img {
    height: 78px;
    aspect-ratio: auto;
    object-fit: cover;
  }

  .travel-theme-card > div {
    gap: 5px;
    padding: 9px;
  }

  .travel-theme-card p,
  .travel-theme-card .travel-chip-row {
    display: none;
  }

  .travel-theme-card h3,
  .travel-hub-card h3,
  .travel-chain-card h3,
  .travel-region-card h3,
  .travel-route-card h3 {
    font-size: 17px;
    line-height: 1.22;
  }

  .travel-theme-card h3 {
    font-size: 15px;
  }

  .travel-theme-card span {
    font-size: 11px;
  }

  .travel-theme-action {
    min-height: 28px;
    padding: 5px 8px;
    font-size: 11px;
  }

  .travel-hub-card {
    grid-template-columns: 104px minmax(0, 1fr);
    grid-template-areas:
      "image top"
      "image title"
      "image summary"
      "image chips"
      "image food"
      "image cta";
    gap: 9px;
    padding: 12px;
  }

  .travel-hub-image-link {
    grid-area: image;
    align-self: start;
    height: 116px;
  }

  .travel-hub-image {
    height: 100%;
    min-height: 0;
    aspect-ratio: auto;
  }

  .travel-hub-top {
    grid-area: top;
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .travel-hub-card h3 {
    grid-area: title;
  }

  .travel-hub-card > p {
    grid-area: summary;
    display: -webkit-box;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.55;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .travel-hub-card > .travel-chip-row {
    grid-area: chips;
  }

  .travel-hub-food-link {
    grid-area: food;
    gap: 2px;
    padding: 7px 8px;
  }

  .travel-hub-food-link .travel-food-mini-split {
    display: flex;
    flex-wrap: wrap;
    gap: 3px 7px;
  }

  .travel-hub-food-link .travel-food-mini-row {
    display: flex;
    grid-template-columns: none;
    gap: 3px;
    align-items: center;
  }

  .travel-hub-food-link .travel-food-mini-row > div {
    flex-wrap: wrap;
    row-gap: 1px;
  }

  .travel-hub-food-link > span {
    font-size: 10px;
  }

  .travel-hub-food-head > span,
  .travel-hub-food-more {
    font-size: 10px;
  }

  .travel-hub-food-more {
    min-height: 20px;
    padding: 2px 5px;
  }

  .travel-hub-food-link strong {
    font-size: 12px;
  }

  .travel-card-link {
    grid-area: cta;
    justify-self: start;
    min-height: 30px;
    padding: 6px 9px;
    font-size: 12px;
  }

  .travel-hub-groups {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .travel-hub-card.is-expanded .travel-hub-groups {
    gap: 0;
    overflow: hidden;
    border: 1px solid rgba(15, 107, 99, 0.12);
    border-radius: 8px;
  }

  .travel-hub-groups div {
    gap: 3px;
    padding: 8px;
  }

  .travel-hub-card.is-expanded .travel-hub-groups div {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    align-items: start;
    gap: 8px;
    padding: 9px 10px;
    border: 0;
    border-top: 1px solid rgba(15, 107, 99, 0.1);
    border-radius: 0;
    background: rgba(15, 107, 99, 0.06);
  }

  .travel-hub-card.is-expanded .travel-hub-groups div:first-child {
    grid-column: auto;
    border-top: 0;
    background: rgba(15, 107, 99, 0.08);
  }

  .travel-hub-groups p {
    font-size: 12px;
    line-height: 1.45;
  }

  .travel-place-detail summary {
    align-items: flex-start;
    font-size: 12px;
  }

  .travel-place-detail {
    padding-top: 6px;
  }

  .travel-place-detail summary {
    min-height: 34px;
    padding: 6px 9px;
    border: 1px solid rgba(15, 107, 99, 0.16);
    border-radius: 999px;
    background: rgba(15, 107, 99, 0.04);
  }

  .travel-place-detail summary::after {
    width: 20px;
    height: 20px;
    font-size: 13px;
  }

  .travel-place-detail summary span {
    font-size: 11px;
  }

  .travel-place-detail summary strong {
    font-size: 12px;
    line-height: 1.25;
  }

  .travel-place-card.is-expanded .travel-place-detail summary {
    min-height: 38px;
    padding-right: 0;
    padding-left: 0;
  }

  .travel-place-detail-row {
    padding: 9px 0;
  }

  .travel-place-detail-row.has-image {
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 9px;
  }

  .travel-detail-accordion.has-image {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .travel-detail-accordion summary {
    gap: 9px;
    padding: 9px 30px 9px 0;
  }

  .travel-detail-accordion.has-image summary {
    grid-template-columns: 78px minmax(0, 1fr);
  }

  .travel-detail-accordion summary::after {
    top: 9px;
    width: 22px;
    height: 22px;
    font-size: 13px;
  }

  .travel-detail-facts {
    padding-bottom: 10px;
  }

  .travel-place-detail-row h4 {
    font-size: 14px;
  }

  .travel-place-detail-row p,
  .travel-place-detail-row ul {
    font-size: 12px;
    line-height: 1.5;
  }

  .travel-chain-card,
  .travel-stopover-card {
    gap: 9px;
    padding: 12px;
  }

  .travel-chain-card p,
  .travel-stopover-card p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.55;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .travel-chain-path {
    gap: 5px;
    padding: 8px;
  }

  .travel-chain-path span,
  .travel-chain-more {
    font-size: 12px;
  }

  .travel-region-card {
    min-height: 0;
    gap: 8px;
    padding: 12px;
  }

  .travel-route-card {
    gap: 8px;
    min-height: 190px;
    padding: 12px;
  }

  .travel-route-card ol {
    font-size: 13px;
    line-height: 1.45;
  }

  .travel-hub-route-option {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 11px;
  }

  .travel-hub-route-option h3 {
    font-size: 15px;
  }

  .travel-hub-route-option p {
    font-size: 12px;
  }

  .travel-hub-route-option-actions {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .travel-route-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  .travel-route-overview > div,
  .travel-route-overview > a {
    min-height: auto;
    padding: 9px;
  }

  .travel-route-overview strong {
    font-size: 13px;
  }

  .travel-route-overview p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 11px;
    line-height: 1.45;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .travel-route-decision {
    display: flex;
    gap: 7px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }

  .travel-route-decision > div {
    flex: 0 0 72%;
    padding: 9px 10px;
    scroll-snap-align: start;
  }

  .travel-route-decision::-webkit-scrollbar,
  .travel-route-food-timeline::-webkit-scrollbar,
  .travel-route-alternative-list::-webkit-scrollbar {
    display: none;
  }

  .travel-route-detail-stops li {
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 8px;
    padding: 9px 10px;
  }

  .travel-route-detail-stops span {
    width: 22px;
    height: 22px;
    font-size: 11px;
  }

  .travel-route-detail-stops strong {
    font-size: 14px;
  }

  .travel-route-detail-stops small {
    display: -webkit-box;
    overflow: hidden;
    line-height: 1.45;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .travel-route-detail-hub-list {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .travel-route-detail-hub {
    padding: 8px 9px;
  }

  .travel-route-detail-hub-main {
    gap: 2px;
  }

  .travel-route-detail-hub-main strong {
    font-size: 14px;
  }

  .travel-route-detail-hub-main small {
    display: -webkit-box;
    overflow: hidden;
    line-height: 1.35;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
  }

  .travel-route-detail-hub-food-link {
    min-height: 22px;
    padding: 0 7px;
    font-size: 10px;
  }

  .travel-route-detail-actions {
    gap: 7px;
  }

  .travel-route-detail-page .section-heading {
    gap: 4px;
  }

  .travel-route-detail-page .section-heading h2 {
    font-size: 18px;
    line-height: 1.18;
  }

  .travel-route-detail-page .section-heading p:not(.eyebrow) {
    display: -webkit-box;
    overflow: hidden;
    font-size: 12px;
    line-height: 1.45;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .travel-route-food-timeline,
  .travel-route-alternative-list {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }

  .travel-route-food-step {
    flex: 0 0 76%;
    grid-template-columns: minmax(0, 1fr);
    gap: 5px;
    padding: 9px;
    scroll-snap-align: start;
  }

  .travel-route-food-step > span,
  .travel-route-food-step > strong {
    line-height: 1.25;
  }

  .travel-route-food-step p {
    gap: 3px 5px;
  }

  .travel-route-alternative {
    flex: 0 0 78%;
    gap: 6px;
    padding: 9px;
    scroll-snap-align: start;
  }

  .travel-route-alternative-food {
    padding-top: 5px;
  }

  .travel-region-card p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.55;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .travel-guide-section .section-heading {
    margin-bottom: 8px;
  }

  .travel-guide-section .section-heading h2 {
    font-size: 22px;
    line-height: 1.2;
  }

  .travel-guide-section .section-heading p:not(.eyebrow) {
    font-size: 13px;
    line-height: 1.5;
  }

  .travel-section-fold {
    padding-top: 6px;
  }

  .travel-section-fold > summary {
    grid-template-columns: minmax(0, 1fr) 24px;
    gap: 8px;
  }

  .travel-section-fold > summary::after {
    width: 22px;
    height: 22px;
    font-size: 13px;
  }

  .travel-section-fold:not([open]) > summary .section-heading > div {
    gap: 2px;
  }

  .travel-section-fold:not([open]) > summary .section-heading h2 {
    font-size: 17px;
  }

  .travel-section-fold:not([open]) > summary .section-heading p:not(.eyebrow) {
    font-size: 12px;
    line-height: 1.35;
  }

  .travel-region-top {
    display: block;
  }

  .travel-region-top strong {
    display: block;
    margin-top: 3px;
  }

  .travel-chip-row button,
  .travel-chip-row span,
  .travel-chip-row a {
    padding: 4px 6px;
    font-size: 11px;
  }

  .travel-credit-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .travel-credit-list a {
    min-height: 0;
    padding: 8px;
  }

  .travel-detail-page {
    gap: 16px;
    padding: 16px;
  }

  .local-weekend-detail-page {
    gap: 14px;
  }

  .travel-detail-topbar {
    align-items: center;
    flex-direction: row;
    gap: 10px;
  }

  .travel-detail-topbar span {
    max-width: 48%;
    text-align: right;
  }

  .travel-detail-jump-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin: 0;
  }

  .travel-detail-jump-row a {
    justify-content: center;
    min-height: 32px;
    padding: 6px 8px;
    text-align: center;
  }

  .travel-detail-section h2 {
    font-size: 22px;
    line-height: 1.2;
  }

  .travel-detail-section .section-heading p:not(.eyebrow) {
    font-size: 13px;
    line-height: 1.6;
  }

  .travel-detail-section {
    gap: 10px;
  }

  .v2-route-verification {
    gap: 4px 10px;
    padding-top: 8px;
    font-size: 11px;
  }

  .v2-route-mode-controls {
    width: 100%;
  }

  .v2-route-mode-controls button {
    min-height: 32px;
    padding: 5px 8px;
    font-size: 12px;
  }

  .v2-food-node-intro {
    gap: 10px;
  }

  .v2-food-node-list {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .v2-food-node-list > a {
    padding: 9px 10px;
  }

  .travel-related-hub-grid {
    grid-template-columns: 1fr;
  }

  .travel-detail-groups {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .travel-detail-actions {
    gap: 8px;
  }

  .intro-grid article {
    min-height: 62px;
    padding: 12px;
  }

  .intro-grid span {
    margin-bottom: 5px;
    font-size: 11px;
  }

  .intro-grid strong {
    font-size: 14px;
  }

  .feature-row {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .section-heading {
    margin-bottom: 18px;
  }

  .module-grid,
  .life-guide-layout,
  .quick-entry-layout,
  .user-path-layout,
  .editorial-layout,
  .taste-layout,
  .weekend-card-grid,
  .food-bridge-grid,
  .quiet-resource-layout,
  .resource-magazine,
  .service-tool-layout,
  .taste-grid,
  .service-grid {
    gap: 12px;
  }

  .user-path-layout {
    grid-template-columns: 1fr;
  }

  .home-trip-flow-layout {
    grid-template-columns: 1fr;
    gap: 12px;
    padding-top: 18px;
  }

  .home-trip-flow-steps {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .home-trip-flow-steps a {
    min-height: 0;
    padding: 12px;
  }

  .home-trip-flow-steps strong {
    font-size: 16px;
  }

  .home-trip-flow-steps em {
    font-size: 12.5px;
  }

  .quiet-resource-layout {
    grid-template-columns: 1fr;
  }

  .guide-feature-card {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .guide-feature-card img {
    height: 152px;
  }

  .guide-feature-card > div {
    padding: 16px;
  }

  .quick-feature-card h2 {
    font-size: 25px;
  }

  .quick-entry-band {
    padding-top: 18px;
    padding-bottom: 8px;
  }

  .quick-entry-layout {
    gap: 10px;
  }

  .home-start-card {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 9px;
    min-height: 0;
    padding: 15px;
  }

  .home-start-thumb {
    min-height: 104px;
  }

  .home-start-card h2 {
    font-size: 23px;
    line-height: 1.2;
  }

  .home-start-card p {
    font-size: 13px;
    line-height: 1.5;
  }

  .home-start-steps {
    grid-column: 1 / -1;
    gap: 6px;
  }

  .home-start-steps span {
    min-height: 26px;
    padding: 4px 8px;
    font-size: 12px;
  }

  .home-start-card a {
    grid-column: 1 / -1;
  }

  .quick-module-panel {
    gap: 8px;
  }

  .quick-module-panel .eyebrow {
    margin-bottom: 0;
  }

  .quick-module-intro {
    font-size: 15px;
    line-height: 1.55;
  }

  .compact-module-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .primary-route-grid {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 2px;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }

  .primary-route-grid::-webkit-scrollbar {
    display: none;
  }

  .compact-module-grid .module-card:nth-child(3) {
    grid-column: 1 / -1;
  }

  .primary-route-grid .module-card:nth-child(3) {
    grid-column: auto;
  }

  .primary-route-grid .module-card {
    flex: 0 0 66%;
    scroll-snap-align: start;
  }

  .compact-module-grid .module-card {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    grid-template-rows: auto auto;
    min-height: 108px;
    padding: 11px;
  }

  .compact-module-grid .module-card-head {
    grid-row: 1 / span 2;
  }

  .compact-module-grid .module-card .module-icon {
    width: 34px;
    height: 34px;
  }

  .compact-module-grid .primary-route-thumb {
    width: 42px;
    height: 42px;
  }

  .compact-module-grid .module-card span {
    margin-top: 7px;
    font-size: 10px;
  }

  .compact-module-grid .module-copy h3 {
    font-size: 16px;
  }

  .compact-module-grid .module-copy p {
    font-size: 12px;
    line-height: 1.45;
    -webkit-line-clamp: 2;
  }

  .compact-module-grid .module-card-action {
    grid-column: 2;
    font-size: 12px;
  }

  .guide-stack a {
    grid-template-columns: 96px minmax(0, 1fr);
    column-gap: 12px;
    min-height: 92px;
  }

  .guide-stack span {
    margin: 12px 12px 0 0;
    font-size: 11px;
    line-height: 1.2;
  }

  .guide-stack strong {
    padding: 0 12px 12px 0;
    font-size: 15px;
  }

  .editorial-visual-card img {
    height: 178px;
  }

  .editorial-visual-card > div,
  .resource-feature-card div,
  .compact-panel {
    padding: 16px;
  }

  .editorial-card-grid,
  .local-weekend-point-grid,
  .home-secondary-grid,
  .weekend-card-grid,
  .food-bridge-grid,
  .compact-entry-grid {
    grid-template-columns: 1fr;
  }

  .home-secondary-link-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .home-secondary-link {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 3px 8px;
    min-height: 116px;
    padding: 10px;
  }

  .home-secondary-link > svg {
    width: 30px;
    height: 30px;
    padding: 7px;
  }

  .home-secondary-link strong {
    font-size: 14px;
    line-height: 1.28;
  }

  .home-secondary-link p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 11px;
    line-height: 1.4;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .home-secondary-block {
    gap: 8px;
    padding: 12px;
  }

  .home-destination-band {
    padding-top: 10px;
    padding-bottom: 18px;
  }

  .home-destination-heading {
    display: grid;
    gap: 4px;
    align-items: start;
    margin-bottom: 7px;
    padding-bottom: 6px;
  }

  .home-destination-heading h2 {
    font-size: 19px;
    line-height: 1.15;
  }

  .home-destination-heading p {
    max-width: none;
    font-size: 12px;
    line-height: 1.38;
    text-align: left;
  }

  .home-destination-grid {
    display: flex;
    gap: 10px;
    padding: 0 0 4px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }

  .home-destination-grid::-webkit-scrollbar {
    display: none;
  }

  .home-destination-card {
    flex: 0 0 70%;
    gap: 7px;
    min-width: 0;
    padding: 9px;
    scroll-snap-align: start;
  }

  .home-destination-more {
    flex: 0 0 70%;
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 9px;
    scroll-snap-align: start;
  }

  .home-destination-more span,
  .home-destination-more a {
    font-size: 11px;
  }

  .home-destination-photo {
    aspect-ratio: 16 / 10;
  }

  .home-destination-main {
    gap: 4px;
  }

  .home-destination-main span {
    font-size: 10px;
  }

  .home-destination-main h3 {
    font-size: 15px;
  }

  .home-destination-main p {
    display: none;
  }

  .home-destination-food {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
    padding-top: 7px;
  }

  .home-destination-food span {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 3px;
    min-height: 27px;
    padding: 3px 5px;
    font-size: 10px;
    line-height: 1.3;
  }

  .home-destination-food b {
    min-height: 16px;
    padding: 2px 3px;
    font-size: 9px;
  }

  .home-destination-actions {
    display: none;
  }

  .user-path-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .user-path-card {
    grid-template-columns: 40px minmax(0, 1fr) 18px;
    align-items: center;
    min-height: 0;
    padding: 12px;
  }

  .user-path-card .module-icon {
    width: 38px;
    height: 38px;
  }

  .user-path-card h3 {
    font-size: 17px;
    line-height: 1.25;
  }

  .user-path-card p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.45;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .editorial-card {
    grid-template-columns: 104px minmax(0, 1fr);
    min-height: 112px;
  }

  .editorial-card img {
    height: 100%;
    min-height: 112px;
  }

  .editorial-card div {
    padding: 12px;
  }

  .editorial-card h3 {
    margin-bottom: 5px;
    font-size: 17px;
  }

  .editorial-card p {
    font-size: 13px;
    -webkit-line-clamp: 2;
  }

  .weekend-card {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    min-height: 118px;
  }

  .weekend-card img {
    height: 100%;
    min-height: 118px;
  }

  .weekend-card div {
    padding: 12px;
  }

  .weekend-card h3 {
    margin-bottom: 5px;
    font-size: 17px;
  }

  .weekend-card p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.5;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .food-bridge-card {
    grid-template-columns: 112px minmax(0, 1fr);
    min-height: 118px;
  }

  .food-bridge-card img {
    height: 100%;
    min-height: 118px;
  }

  .food-bridge-card div {
    padding: 12px;
  }

  .food-bridge-card h3 {
    margin-bottom: 5px;
    font-size: 17px;
  }

  .food-bridge-card p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.5;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .local-weekend-scenario-grid {
    display: flex;
    gap: 9px;
    overflow-x: auto;
    margin-right: 0;
    padding: 0 0 2px;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .local-weekend-scenario-section .section-heading,
  .local-weekend-guide-section .section-heading {
    margin-bottom: 10px;
  }

  .local-weekend-scenario-section .section-heading h2,
  .local-weekend-guide-section .section-heading h2 {
    font-size: 22px;
    line-height: 1.18;
  }

  .local-weekend-scenario-section .section-heading p:not(.eyebrow),
  .local-weekend-guide-section .section-heading p:not(.eyebrow) {
    font-size: 13px;
    line-height: 1.48;
  }

  .local-weekend-scenario-grid::-webkit-scrollbar {
    display: none;
  }

  .local-weekend-scenario-card {
    flex: 0 0 78%;
    gap: 8px;
    padding: 11px;
    scroll-snap-align: start;
  }

  .local-weekend-scenario-card h3 {
    font-size: 15px;
  }

  .local-weekend-scenario-card p {
    font-size: 12px;
    -webkit-line-clamp: 2;
  }

  .local-weekend-scenario-points {
    gap: 4px 7px;
  }

  .local-weekend-scenario-points a {
    font-size: 10.5px;
  }

  .local-weekend-scenario-food {
    padding-top: 6px;
  }

  .local-weekend-point-card {
    grid-template-columns: 118px minmax(0, 1fr);
    gap: 0;
    min-height: 132px;
  }

  .local-weekend-guide-section > .local-weekend-point-grid {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    margin-right: 0;
    padding: 0 0 2px;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .local-weekend-guide-section > .local-weekend-point-grid::-webkit-scrollbar {
    display: none;
  }

  .local-weekend-guide-section > .local-weekend-point-grid > .local-weekend-point-card {
    flex: 0 0 86%;
    min-width: 0;
    scroll-snap-align: start;
  }

  .local-weekend-more-fold .local-weekend-point-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    overflow: visible;
    padding: 0;
    scroll-snap-type: none;
  }

  .local-weekend-more-fold .local-weekend-point-card {
    flex: initial;
    width: auto;
    scroll-snap-align: unset;
  }

  .local-weekend-point-image {
    grid-row: 1 / span 7;
    height: 100%;
  }

  .local-weekend-point-card img {
    height: 100%;
    min-height: 132px;
    aspect-ratio: auto;
  }

  .local-weekend-point-meta,
  .local-weekend-point-card h3,
  .local-weekend-point-card p,
  .local-weekend-point-card .travel-chip-row,
  .local-weekend-point-action {
    margin-right: 12px;
    margin-left: 12px;
  }

  .local-weekend-point-meta {
    margin-top: 12px;
  }

  .local-weekend-point-card h3 {
    font-size: 17px;
  }

  .local-weekend-point-card p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 13px;
    line-height: 1.45;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .local-weekend-point-card .travel-chip-row {
    margin-bottom: 0;
  }

  .local-weekend-point-card > .local-weekend-food-preview {
    display: grid;
    grid-column: 2;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    justify-content: initial;
    margin: 0 12px 12px;
    padding-top: 6px;
  }

  .local-weekend-route-preview {
    grid-column: 2;
    margin: 0 12px 8px;
    padding: 6px 7px;
  }

  .local-weekend-food-preview > span {
    font-size: 10.5px;
  }

  .local-weekend-food-preview .travel-food-mini-row {
    align-items: baseline;
  }

  .local-weekend-food-preview > a {
    font-size: 10.5px;
  }

  .local-weekend-route-list {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .local-weekend-route-item {
    gap: 8px;
    padding: 12px;
  }

  .local-weekend-route-item h3 {
    font-size: 16px;
  }

  .local-weekend-route-item p {
    font-size: 12.5px;
  }

  .local-weekend-route-stops {
    gap: 5px;
  }

  .local-weekend-route-stops span {
    padding: 4px 6px;
    font-size: 10.5px;
  }

  .travel-weekend-shortcut {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 13px;
  }

  .travel-weekend-shortcut h2 {
    font-size: 18px;
  }

  .travel-weekend-shortcut p:not(.eyebrow) {
    font-size: 13px;
    line-height: 1.55;
  }

  .travel-weekend-shortcut > a {
    padding: 11px 12px;
  }

  .local-weekend-point-action {
    margin-top: 0;
    margin-bottom: 12px;
    font-size: 11px;
  }

  .local-weekend-detail-card {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .local-weekend-detail-card img {
    height: auto;
    min-height: 180px;
    aspect-ratio: 16 / 10;
  }

  .local-weekend-detail-card > div {
    padding: 14px;
  }

  .local-weekend-detail-card h3 {
    font-size: 20px;
  }

  .local-weekend-detail-card p {
    font-size: 14px;
  }

  .local-weekend-detail-card dl div {
    grid-template-columns: 68px minmax(0, 1fr);
    padding: 8px 9px;
  }

  .local-weekend-decision-panel {
    grid-template-columns: 1fr;
  }

  .local-weekend-decision-panel > div {
    padding: 11px;
  }

  .local-weekend-cycle {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  .local-weekend-cycle a {
    min-height: 0;
    padding: 9px 8px;
  }

  .local-weekend-cycle span {
    font-size: 10px;
  }

  .local-weekend-cycle strong {
    font-size: 13px;
    line-height: 1.3;
  }

  .local-weekend-cycle .is-directory {
    justify-items: center;
    text-align: center;
  }

  .local-weekend-cycle .is-next {
    justify-items: end;
    text-align: right;
  }

  .taste-entry-card {
    grid-template-columns: 94px minmax(0, 1fr);
    min-height: 104px;
  }

  .taste-entry-card img {
    min-height: 104px;
  }

  .taste-visual-card {
    display: none;
  }

  .resource-feature-card {
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
  }

  .resource-feature-card img {
    height: 100%;
    min-height: 160px;
  }

  .resource-feature-card div {
    display: grid;
    align-content: center;
    padding: 14px;
  }

  .resource-feature-card h2 {
    font-size: 22px;
  }

  .resource-feature-card p {
    display: -webkit-box;
    overflow: hidden;
    margin-bottom: 0;
    font-size: 13px;
    line-height: 1.55;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .resource-tile-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .quiet-resource-layout .resource-tile-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .resource-tile {
    min-height: 104px;
    padding: 13px;
  }

  .resource-tile strong {
    font-size: 16px;
  }

  .inline-note {
    padding: 12px;
    font-size: 13px;
  }

  .service-lite-layout {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .compact-entry-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .compact-entry {
    grid-template-columns: 1fr;
    min-height: 104px;
    gap: 8px;
    padding: 12px;
  }

  .compact-entry .module-icon {
    width: 34px;
    height: 34px;
  }

  .compact-entry h4,
  .compact-tool-item h3 {
    font-size: 15px;
  }

  .compact-tool-stack {
    grid-template-columns: 1fr;
  }

  .compact-tool-item {
    grid-template-columns: 34px minmax(0, 1fr);
    min-height: 86px;
    padding: 12px;
  }

  .about-strip-layout {
    gap: 14px;
  }

  .about-strip-layout h2 {
    font-size: 21px;
  }

  .about-strip-actions {
    justify-content: stretch;
  }

  .about-strip-actions .primary-button,
  .about-strip-actions .secondary-link {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .module-card {
    min-height: 0;
    grid-template-columns: 44px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 12px;
    row-gap: 6px;
    padding: 16px;
  }

  .module-card-head {
    grid-row: 1 / span 2;
    display: block;
  }

  .module-card .module-icon {
    width: 40px;
    height: 40px;
  }

  .module-card span {
    margin-top: 8px;
    font-size: 11px;
    line-height: 1.2;
  }

  .module-copy {
    min-width: 0;
  }

  .module-copy h3 {
    margin-bottom: 6px;
    font-size: 19px;
  }

  .module-copy p,
  .taste-card p,
  .service-card p {
    font-size: 14px;
    line-height: 1.6;
  }

  .module-card-action {
    grid-column: 2;
    font-size: 13px;
  }

  .compact-module-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .primary-route-grid .module-card:nth-child(3) {
    grid-column: auto;
  }

  .compact-module-grid .module-card {
    grid-template-columns: 44px minmax(0, 1fr);
    min-height: 118px;
    padding: 12px;
  }

  .compact-module-grid .module-card .module-icon {
    width: 34px;
    height: 34px;
  }

  .compact-module-grid .primary-route-thumb {
    width: 42px;
    height: 42px;
  }

  .compact-module-grid .module-card span {
    margin-top: 7px;
    font-size: 10px;
  }

  .compact-module-grid .module-copy h3 {
    font-size: 17px;
  }

  .compact-module-grid .module-copy p {
    font-size: 12px;
    line-height: 1.45;
  }

  .compact-module-grid .module-card-action {
    font-size: 12px;
  }

  .taste-card,
  .service-card {
    min-height: 0;
    padding: 16px;
  }

  .primary-button,
  .secondary-button {
    width: 100%;
  }

  .notice-panel,
  .contact-box,
  .admin-section {
    padding: 20px;
  }

  .admin-main {
    padding-top: 96px;
  }

  .template-main {
    padding-top: 72px;
    padding-bottom: 24px;
  }

  .template-hero {
    gap: 14px;
    padding: 12px 0 16px;
  }

  .template-hero h1 {
    margin-bottom: 8px;
    font-size: 28px;
  }

  .template-hero p:not(.eyebrow) {
    font-size: 15px;
    line-height: 1.55;
  }

  .template-hero-visual {
    min-height: 96px;
  }

  .template-hero-visual strong {
    font-size: 17px;
  }

  .template-content {
    gap: 16px;
    padding-top: 16px;
  }

  .template-section {
    gap: 14px;
  }

  .media-card {
    grid-template-columns: 104px minmax(0, 1fr);
    min-height: 110px;
  }

  .card-media {
    min-height: 110px;
  }

  .card-copy {
    padding: 12px;
  }

  .card-copy h3 {
    margin-bottom: 6px;
    font-size: 18px;
  }

  .card-copy p {
    display: -webkit-box;
    overflow: hidden;
    font-size: 14px;
    line-height: 1.55;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .action-card {
    grid-template-columns: 40px minmax(0, 1fr);
    min-height: 112px;
    padding: 12px;
  }

  .action-icon {
    width: 40px;
    height: 40px;
  }

  .action-card .card-copy {
    padding: 0;
  }

  .article-shell,
  .boundary-box,
  .public-form {
    padding: 14px;
  }

  .article-layout .card-media {
    min-height: 150px;
  }

  .article-intro h2 {
    margin-bottom: 6px;
    font-size: 22px;
  }

  .article-body {
    gap: 12px;
  }

  .article-body-section p,
  .article-body-section li {
    line-height: 1.65;
  }

  .admin-hero h1 {
    font-size: 36px;
  }

  .admin-section-head,
  .admin-row {
    align-items: stretch;
    flex-direction: column;
  }

  .row-actions {
    width: 100%;
  }

  .preview-shell {
    grid-template-columns: 1fr;
    padding: 20px;
  }

  .phone-frame {
    width: min(414px, calc(100vw - 40px));
    height: 78vh;
    padding: 10px;
  }

  .phone-frame iframe {
    width: 100%;
    height: 100%;
  }
}

/* Final guard for food cards: multi-photo cards stack media above copy so images never sit under text. */
.food-guide-card.compact {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  align-items: stretch;
  min-height: 122px;
}

.food-guide-card.compact:not(.has-mosaic) .food-card-image-link {
  grid-column: 1;
  grid-row: 1;
  width: 112px;
  max-width: 112px;
  height: 100%;
  min-height: 122px;
}

.food-guide-card.compact:not(.has-mosaic) > div {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  border-top: 0;
  border-left: 1px solid var(--line);
}

.food-guide-card.compact.has-mosaic {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  align-items: stretch;
  min-height: 0;
  overflow: hidden;
}

.food-guide-card.compact.has-mosaic .food-card-image-link.food-card-mosaic {
  display: grid;
  grid-column: 1 !important;
  grid-row: 1 !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  position: relative;
  z-index: 1;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: 16 / 9 !important;
  border-right: 0;
  border-bottom: 1px solid var(--line);
  pointer-events: auto;
}

.food-guide-card.compact.has-mosaic .food-card-mosaic img {
  width: 100%;
  height: 100%;
  min-height: 0;
  aspect-ratio: auto;
  object-fit: cover;
}

.food-guide-card.compact.has-mosaic > div {
  grid-column: 1 !important;
  grid-row: 2 !important;
  position: relative;
  z-index: 2;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  overflow: hidden;
  border-top: 0;
  border-left: 0;
  background: var(--surface);
}

.food-guide-card.compact.has-mosaic .food-guide-subnav,
.food-guide-card.compact.has-mosaic .travel-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 3px 5px;
  min-width: 0;
}

.food-guide-card.compact.has-mosaic .food-card-detail-link {
  width: fit-content;
}

@media (max-width: 640px) {
  .travel-guide-section {
    gap: 10px;
  }

  .travel-section-fold:not([open]) > summary .section-heading p:not(.eyebrow) {
    display: none;
  }

  .travel-section-fold:not([open]) > summary .section-heading .eyebrow {
    margin-bottom: 2px;
  }

  .travel-guide-section .section-heading {
    margin-bottom: 6px;
  }

  .travel-guide-section .section-heading .eyebrow {
    margin: 0 0 4px;
    font-size: 11px;
    line-height: 1.35;
  }

  .travel-guide-section .section-heading h2 {
    margin: 0 0 6px;
    font-size: 21px;
    line-height: 1.18;
  }

  .travel-guide-section .section-heading p:not(.eyebrow) {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    font-size: 12.5px;
    line-height: 1.45;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .travel-finder-panel > div:first-child {
    display: grid;
    gap: 4px;
  }

  .travel-finder-panel .eyebrow,
  .travel-finder-panel h2,
  .travel-finder-panel p:not(.eyebrow) {
    margin: 0;
  }

  .travel-arrival-benefit-section {
    grid-template-columns: 1fr;
    gap: 7px;
    padding-block: 12px;
  }

  .travel-arrival-benefit-section h2 {
    font-size: 20px;
  }

  .travel-arrival-benefit-copy {
    gap: 6px;
  }

  .travel-arrival-benefit-copy > p {
    font-size: 13px;
    line-height: 1.5;
  }

  .travel-arrival-benefit-copy > small {
    font-size: 11px;
  }

  .travel-arrival-benefit-copy nav {
    gap: 6px 12px;
  }

  .travel-route-chooser-card {
    gap: 6px;
    padding: 10px;
  }

  .travel-route-chooser-card p {
    display: -webkit-box;
    overflow: hidden;
    line-height: 1.45;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .travel-route-chooser-actions {
    gap: 5px;
  }

  .travel-route-chooser-actions a {
    min-height: 26px;
    padding: 5px 7px;
    font-size: 11px;
  }

  .food-guide-section {
    gap: 12px;
  }

  .food-guide-section .section-heading {
    margin-bottom: 6px;
  }

  .food-guide-section .section-heading .eyebrow {
    margin: 0 0 4px;
    font-size: 11px;
    line-height: 1.35;
  }

  .food-guide-section .section-heading h2 {
    margin: 0 0 6px;
    font-size: 21px;
    line-height: 1.18;
  }

  .food-guide-section .section-heading p:not(.eyebrow) {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    font-size: 12.5px;
    line-height: 1.45;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .food-destination-shortcut-grid,
  .food-place-shortcut-grid,
  .food-route-grid {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    margin-right: 0;
    padding: 0 0 2px;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .food-destination-shortcut-grid::-webkit-scrollbar,
  .food-place-shortcut-grid::-webkit-scrollbar,
  .food-route-grid::-webkit-scrollbar {
    display: none;
  }

  .food-destination-shortcut-card,
  .food-place-shortcut-card,
  .food-route-grid .food-guide-card {
    flex: 0 0 82%;
    scroll-snap-align: start;
  }

  .food-destination-shortcut-card,
  .food-place-shortcut-card {
    align-content: start;
  }

  .food-route-grid .food-guide-card {
    min-width: 0;
  }
}
/* Official scenic directory and total pages */
.travel-scenic-area-link {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
  padding: 10px;
  color: inherit;
  text-decoration: none;
  border: 1px solid var(--line, #d8e1df);
  background: #fff;
}

.travel-scenic-area-link:hover,
.travel-scenic-area-link:focus-visible {
  border-color: #317f73;
  box-shadow: 0 0 0 2px rgb(49 127 115 / 12%);
}

.travel-scenic-area-link > img {
  width: 88px;
  height: 88px;
  object-fit: cover;
  border-radius: 4px;
}

.travel-scenic-area-link > div {
  min-width: 0;
}

.travel-scenic-area-link h4 {
  margin: 3px 0 4px;
  font-size: 1rem;
  line-height: 1.35;
}

.travel-scenic-area-link p {
  display: -webkit-box;
  margin: 0 0 5px;
  overflow: hidden;
  color: var(--muted, #637075);
  font-size: .82rem;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.travel-scenic-area-link small {
  color: #147468;
  font-size: .75rem;
  font-weight: 700;
}

.official-scenic-overview {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, .92fr);
  gap: 24px;
  align-items: start;
}

.official-scenic-photo {
  margin: 0;
}

.official-scenic-photo img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 6px;
}

.official-scenic-photo figcaption {
  margin-top: 7px;
  color: var(--muted, #637075);
  font-size: .78rem;
}

.official-scenic-facts {
  display: grid;
  gap: 0;
  margin: 18px 0 0;
}

.official-scenic-facts > div {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 10px;
  padding: 9px 0;
  border-top: 1px solid var(--line, #d8e1df);
}

.official-scenic-facts dt {
  color: var(--muted, #637075);
}

.official-scenic-facts dd {
  margin: 0;
  font-weight: 700;
}

.official-scenic-child-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.official-scenic-child-card {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 14px;
  min-height: 132px;
  padding: 10px;
  color: inherit;
  text-decoration: none;
  border: 1px solid var(--line, #d8e1df);
  background: #fff;
}

.official-scenic-child-card img {
  width: 132px;
  height: 132px;
  object-fit: cover;
  border-radius: 4px;
}

.official-scenic-child-card h3 {
  margin: 3px 0 5px;
  font-size: 1rem;
}

.official-scenic-child-card p {
  display: -webkit-box;
  margin: 0 0 7px;
  overflow: hidden;
  color: var(--muted, #637075);
  font-size: .82rem;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.official-scenic-child-card strong {
  color: #147468;
  font-size: .8rem;
}

.official-scenic-unresolved {
  margin: 14px 0 0;
  padding: 10px 12px;
  color: #665d47;
  background: #f5f2e9;
  border-left: 3px solid #b89546;
}

.official-scenic-route-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.official-scenic-route-list a {
  display: grid;
  gap: 4px;
  padding: 12px;
  color: inherit;
  text-decoration: none;
  border: 1px solid var(--line, #d8e1df);
  background: #f7faf9;
}

.official-scenic-route-list span,
.official-scenic-route-list small {
  color: var(--muted, #637075);
}

@media (max-width: 720px) {
  .travel-scenic-area-link {
    grid-template-columns: 76px minmax(0, 1fr);
  }

  .travel-scenic-area-link > img {
    width: 76px;
    height: 76px;
  }

  .official-scenic-overview,
  .official-scenic-child-grid,
  .official-scenic-route-list {
    grid-template-columns: 1fr;
  }

  .official-scenic-overview {
    gap: 16px;
  }

  .official-scenic-child-card {
    grid-template-columns: 104px minmax(0, 1fr);
    min-height: 104px;
  }

  .official-scenic-child-card img {
    width: 104px;
    height: 104px;
  }

  .official-scenic-facts > div {
    grid-template-columns: 72px minmax(0, 1fr);
  }
}

/* Local-only V2 review workspace */
.review-main {
  width: min(1180px, calc(100vw - 32px));
  margin: 0 auto;
  padding: 112px 0 56px;
}

.review-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--line);
}

.review-hero h1 {
  margin-bottom: 12px;
  font-size: 42px;
  line-height: 1.08;
}

.review-hero p:not(.eyebrow) {
  max-width: 760px;
  margin: 0;
}

.review-build-note {
  display: grid;
  gap: 4px;
  min-width: 150px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--surface);
}

.review-build-note span {
  color: var(--muted);
  font-size: 11px;
}

.review-auth-bar {
  display: grid;
  grid-template-columns: minmax(220px, 0.8fr) minmax(0, 2fr);
  align-items: center;
  gap: 16px;
  margin-top: 16px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #f4f6f3;
}

.review-service-state,
.review-session {
  display: grid;
  gap: 3px;
}

.review-service-state span,
.review-session span,
.review-login-form label > span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
}

.review-service-state small,
.review-login-form small {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4;
}

.review-login-form {
  display: grid;
  grid-template-columns: minmax(120px, 0.6fr) minmax(190px, 1fr) auto;
  align-items: end;
  gap: 8px;
}

.review-login-form[hidden],
.review-session[hidden] {
  display: none;
}

.review-login-form label {
  display: grid;
  gap: 4px;
}

.review-login-form input {
  min-width: 0;
  min-height: 36px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #fff;
  font: inherit;
  font-size: 12px;
}

.review-login-form small {
  grid-column: 1 / -1;
}

.review-session {
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
}

.review-session span {
  grid-column: 1 / -1;
}

.review-session > div {
  display: grid;
  gap: 2px;
}

.review-session > small {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: 10px;
}

.review-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 20px 0;
}

.review-stat-grid article {
  min-width: 0;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--surface);
}

.review-stat-grid span,
.review-stat-grid strong,
.review-stat-grid small {
  display: block;
}

.review-stat-grid span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.review-stat-grid strong {
  margin: 4px 0;
  font-size: 24px;
}

.review-stat-grid small {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}

.review-processing {
  margin: 4px 0 20px;
  padding: 18px;
  border: 1px solid #cbdad6;
  border-radius: 8px;
  background: #f6faf8;
}

.review-processing[hidden] {
  display: none;
}

.review-processing-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
}

.review-processing-heading h2 {
  margin: 2px 0 0;
  font-size: 24px;
}

.review-processing-heading > strong {
  color: var(--teal-dark);
  font-size: 13px;
}

.review-processing-intro,
.review-processing-note {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}

.review-processing-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}

.review-processing-grid article {
  display: grid;
  align-content: start;
  gap: 5px;
  min-width: 0;
  padding: 12px;
  border: 1px solid #d6e1de;
  border-radius: 7px;
  background: #fff;
}

.review-processing-grid span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.review-processing-grid strong {
  color: var(--ink);
  font-size: 26px;
}

.review-processing-grid p,
.review-processing-grid small {
  margin: 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
}

.review-processing-grid small {
  padding-top: 6px;
  border-top: 1px solid #e4ebe8;
}

.review-controls {
  position: sticky;
  top: 66px;
  z-index: 10;
  display: grid;
  grid-template-columns: minmax(210px, 1.35fr) repeat(5, minmax(104px, 0.65fr)) auto;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(251, 250, 246, 0.97);
  box-shadow: 0 10px 28px rgba(23, 33, 38, 0.08);
}

.review-controls label {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.review-controls label > span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
}

.review-controls input,
.review-controls select {
  width: 100%;
  min-width: 0;
  min-height: 38px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #fff;
  font: inherit;
  font-size: 13px;
}

.review-control-actions {
  display: flex;
  align-items: end;
  gap: 6px;
}

.review-list-section {
  padding-top: 28px;
}

.review-list-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.review-list-heading h2 {
  margin: 0;
  font-size: 28px;
}

.review-list-heading > strong {
  color: var(--teal-dark);
  font-size: 14px;
}

.review-task-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.review-task {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 15px;
  border: 1px solid var(--line);
  border-left: 4px solid #aab6b3;
  border-radius: 7px;
  background: var(--surface);
}

.review-task[data-priority="high"] {
  border-left-color: var(--brick);
}

.review-task[data-priority="medium"] {
  border-left-color: var(--gold);
}

.review-task.is-draft-open {
  grid-column: 1 / -1;
}

.review-task-head > div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 7px;
}

.review-task-head span,
.review-reason-list span,
.review-task-metrics span {
  font-size: 11px;
}

.review-task-head > div > span {
  color: var(--muted);
}

.review-priority {
  font-weight: 800;
}

.review-priority.is-high {
  color: var(--brick);
}

.review-priority.is-medium {
  color: #8b641d;
}

.review-workflow {
  padding: 1px 6px;
  border: 1px solid #cfd8d4;
  border-radius: 4px;
  color: #566662;
  background: #eef2f0;
  font-weight: 800;
}

.review-workflow.is-in_progress {
  color: #315b78;
  border-color: #bfd2df;
  background: #edf4f8;
}

.review-workflow.is-approved {
  color: #176655;
  border-color: #b7d6cd;
  background: #eaf5f1;
}

.review-workflow.is-needs_info {
  color: #7b5b1d;
  border-color: #dfcfaa;
  background: #f8f2e5;
}

.review-workflow.is-rejected {
  color: #873f34;
  border-color: #e1beb7;
  background: #f8ece9;
}

.review-task-head > strong {
  display: block;
  margin-bottom: 3px;
  font-size: 18px;
}

.review-task-head code {
  color: var(--muted);
  font-size: 10px;
}

.review-task-summary,
.review-route-impact,
.review-next-action {
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
}

.review-reason-list,
.review-task-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 10px;
}

.review-reason-list span {
  color: #6c5937;
  font-weight: 700;
}

.review-task-metrics {
  padding: 8px 0;
  color: var(--muted);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.review-task-actions {
  display: flex;
  gap: 8px;
  margin-top: auto;
}

.review-task-actions a,
.review-task-actions button {
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--teal-dark);
  background: transparent;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
}

.review-saved-note,
.review-task-lock {
  margin: 0;
  padding: 8px 9px;
  border-left: 3px solid #b9cbc6;
  color: #485955;
  background: #f0f4f2;
  font-size: 12px;
  line-height: 1.5;
}

.review-task-lock {
  color: var(--muted);
  border-left-color: #cfd4d2;
  background: #f5f5f3;
}

.review-editor {
  margin-top: 2px;
  border-top: 1px solid var(--line);
}

.review-editor summary {
  padding: 9px 0 2px;
  color: var(--teal-dark);
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
}

.review-editor form {
  display: grid;
  grid-template-columns: minmax(120px, 0.7fr) minmax(140px, 1fr);
  gap: 8px;
  padding-top: 9px;
}

.review-editor label {
  display: grid;
  gap: 4px;
}

.review-editor label > span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
}

.review-editor input,
.review-editor select,
.review-editor textarea {
  width: 100%;
  min-width: 0;
  padding: 7px 8px;
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--ink);
  background: #fff;
  font: inherit;
  font-size: 12px;
}

.review-editor textarea {
  resize: vertical;
  line-height: 1.45;
}

.review-editor-notes,
.review-editor-actions,
.review-history {
  grid-column: 1 / -1;
}

.review-editor-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.review-editor-actions small {
  color: var(--muted);
  font-size: 11px;
}

.review-history {
  display: grid;
  gap: 5px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #f7f7f4;
}

.review-history[hidden] {
  display: none;
}

.review-history p {
  display: grid;
  gap: 1px;
  margin: 0;
  font-size: 11px;
}

.review-history span {
  color: var(--muted);
}

.review-draft-entry {
  display: grid;
  gap: 8px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

.review-draft-entry > button {
  justify-self: start;
}

.review-draft-panel {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid #cbd8d4;
  border-radius: 6px;
  background: #f4f7f5;
}

.review-draft-panel[hidden] {
  display: none;
}

.review-draft-heading,
.review-draft-submit {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.review-draft-heading > div {
  display: grid;
  gap: 2px;
}

.review-draft-heading small,
.review-draft-submit small {
  color: var(--muted);
  font-size: 10px;
}

.review-draft-validation {
  padding: 9px 10px;
  border-left: 3px solid #b38836;
  background: #fbf6e9;
  font-size: 11px;
  line-height: 1.45;
}

.review-draft-validation.is-valid {
  border-left-color: var(--teal);
  background: #eaf5f1;
}

.review-draft-validation ul {
  margin: 5px 0 0;
  padding-left: 18px;
}

.review-draft-validation p {
  margin: 5px 0 0;
  color: var(--muted);
}

.review-draft-form {
  display: grid;
  gap: 10px;
}

.review-draft-form fieldset {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  min-width: 0;
  margin: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
}

.review-draft-form legend {
  padding: 0 5px;
  color: var(--teal-dark);
  font-size: 11px;
  font-weight: 800;
}

.review-draft-form label {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.review-draft-form label > span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
}

.review-draft-form input,
.review-draft-form select,
.review-draft-form textarea {
  width: 100%;
  min-width: 0;
  padding: 7px 8px;
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--ink);
  background: #fff;
  font: inherit;
  font-size: 12px;
}

.review-draft-form textarea {
  resize: vertical;
  line-height: 1.45;
}

.review-draft-form .is-wide,
.review-draft-switches,
.review-draft-submit,
.review-draft-form > .review-history {
  grid-column: 1 / -1;
}

.review-draft-switches {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.review-draft-switches label {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
}

.review-draft-switches input {
  width: auto;
}

.review-draft-hint {
  margin: 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
}

.review-empty {
  grid-column: 1 / -1;
  padding: 32px;
  text-align: center;
  border: 1px dashed var(--line);
  border-radius: 8px;
}

.review-empty-complete {
  max-width: 720px;
  margin: 0 auto;
  padding: 38px 28px;
  border-style: solid;
  background: #f8fbfa;
}

.review-empty-complete strong {
  display: block;
  color: var(--ink);
  font-size: 22px;
  letter-spacing: 0;
}

.review-empty-complete p {
  max-width: 560px;
  margin: 12px auto 0;
  color: var(--muted);
  line-height: 1.7;
}

.review-empty-complete small {
  display: block;
  max-width: 600px;
  margin: 18px auto 0;
  color: var(--muted);
  line-height: 1.6;
}

.review-empty-actions {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 22px;
}

.review-empty-actions a {
  text-decoration: none;
}

.review-load-more {
  grid-column: 1 / -1;
  display: flex;
  justify-content: center;
  padding: 12px;
}

@media (max-width: 980px) {
  .review-stat-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .review-controls {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .review-processing-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .review-auth-bar {
    grid-template-columns: 1fr;
  }

  .review-search-field,
  .review-control-actions {
    grid-column: 1 / -1;
  }

  .review-empty-complete {
    padding: 28px 18px;
  }

  .review-empty-actions {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (max-width: 640px) {
  .review-main {
    width: min(100vw - 24px, 1180px);
    padding-top: 88px;
  }

  .review-hero {
    grid-template-columns: 1fr;
  }

  .review-login-form {
    grid-template-columns: 1fr;
  }

  .review-login-form small {
    grid-column: auto;
  }

  .review-hero h1 {
    font-size: 30px;
  }

  .review-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .review-processing {
    padding: 14px;
  }

  .review-processing-heading {
    align-items: start;
    flex-direction: column;
  }

  .review-processing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .review-controls,
  .review-task-list {
    grid-template-columns: 1fr;
  }

  .review-search-field,
  .review-control-actions {
    grid-column: auto;
  }

  .review-control-actions {
    align-items: stretch;
  }

  .review-editor form {
    grid-template-columns: 1fr;
  }

  .review-editor-notes,
  .review-editor-actions,
  .review-history {
    grid-column: auto;
  }

  .review-session {
    grid-template-columns: 1fr 1fr;
  }

  .review-session > div,
  .review-session > small {
    grid-column: 1 / -1;
  }

  .review-draft-form fieldset {
    grid-template-columns: 1fr;
  }

  .review-draft-form .is-wide {
    grid-column: auto;
  }

  .review-draft-submit {
    align-items: stretch;
  }
}

@media (max-width: 700px) {
  .quality-comparison-grid,
  .quality-principle-grid,
  .quality-choice-grid,
  .quality-dimension-list,
  .quality-evidence-grid,
  .quality-subject-grid,
  .food-quality-links > div:last-child {
    grid-template-columns: 1fr;
  }

  .quality-comparison-grid.is-preview {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 0 2px 6px;
    scroll-snap-type: x proximity;
  }

  .quality-comparison-grid.is-preview .quality-comparison-card {
    flex: 0 0 min(82vw, 310px);
    scroll-snap-align: start;
  }

  .quality-comparison-card,
  .quality-comparison-card.is-compact {
    grid-template-columns: 82px minmax(0, 1fr) 14px;
    min-height: 116px;
    gap: 10px;
  }

  .quality-comparison-card > img,
  .quality-comparison-card.is-compact > img {
    min-height: 116px;
  }

  .quality-comparison-card-copy {
    gap: 4px;
    padding: 10px 0;
  }

  .quality-comparison-card-copy > strong {
    font-size: 16px;
  }

  .quality-comparison-card-copy > span:not(.quality-comparison-meta) {
    font-size: 11px;
    line-height: 1.45;
  }

  .quality-comparison-card > svg {
    width: 14px;
    margin-right: 8px;
  }

  .quality-principle-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  .quality-principle-grid article {
    min-height: 116px;
    padding: 11px;
  }

  .quality-comparison-detail {
    gap: 16px;
    padding: 15px;
  }

  .quality-comparison-lead {
    grid-template-columns: 1fr;
    gap: 13px;
    padding-bottom: 15px;
  }

  .quality-comparison-media,
  .quality-comparison-media img {
    min-height: 188px;
    max-height: 218px;
  }

  .quality-comparison-lead h2 {
    font-size: 23px;
  }

  .quality-choice-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  .quality-choice-grid article {
    min-height: 124px;
    padding: 10px;
  }

  .quality-cost-axis {
    font-size: 10px;
  }

  .quality-ingredient-ladder {
    display: grid;
    grid-auto-columns: minmax(206px, 72vw);
    grid-auto-flow: column;
    grid-template-columns: none;
    overflow-x: auto;
    padding: 0 2px 7px;
    scroll-snap-type: x proximity;
  }

  .quality-ingredient-ladder article {
    min-height: 238px;
    padding: 11px;
    scroll-snap-align: start;
  }

  .quality-source-types {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .quality-source-types article {
    padding: 10px 11px;
  }

  .quality-comparison-table {
    width: max(100%, 950px);
  }

  .quality-comparison-table th,
  .quality-comparison-table td {
    padding: 9px 10px;
  }

  .quality-comparison-table thead th {
    width: 166px;
  }

  .quality-comparison-table thead th:first-child,
  .quality-comparison-table tbody th {
    width: 106px;
  }

  .quality-comparison-table thead img {
    max-height: 112px;
  }

  .quality-grade-head {
    display: none;
  }

  .quality-grade-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 10px;
    gap: 8px 12px;
  }

  .quality-grade-row > strong {
    grid-column: 1 / -1;
    padding: 0 0 7px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .quality-grade-row > span {
    display: grid;
    gap: 2px;
    padding: 0;
    border-right: 0;
    font-size: 11px;
  }

  .quality-grade-row > span::before {
    content: attr(data-label);
    color: var(--ink);
    font-size: 9px;
    font-weight: 800;
  }

  .quality-grade-row > span:last-child {
    grid-column: 1 / -1;
  }

  .quality-record-fields {
    grid-template-columns: 1fr;
    gap: 7px;
  }

  .quality-record-fields > strong {
    line-height: 1.45;
  }

  .quality-dimension-list article {
    padding: 9px 0;
  }

  .quality-evidence-grid {
    gap: 8px;
  }

  .quality-evidence-grid > div {
    padding: 12px;
  }

  .quality-changing-note {
    grid-template-columns: 28px minmax(0, 1fr);
    padding: 11px 12px;
  }

  .quality-subject-grid > a {
    grid-template-columns: 74px minmax(0, 1fr) 14px;
    min-height: 92px;
  }

  .quality-subject-grid img {
    width: 74px;
    height: 92px;
  }
}

/* Private content maintenance */
.manage-body {
  background: #f4f6f4;
}

.manage-body .admin-header {
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 4px 18px rgba(23, 33, 38, 0.06);
}

.manage-main {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: 108px 0 72px;
}

.manage-intro,
.manage-section-heading,
.manage-submit-row,
.manage-history-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.manage-intro h1 {
  margin: 5px 0 8px;
  font-size: clamp(30px, 4vw, 44px);
  line-height: 1.12;
  letter-spacing: 0;
}

.manage-intro-copy {
  max-width: 760px;
}

.manage-intro-copy > p:last-child,
.manage-section-heading > p {
  color: var(--muted);
  line-height: 1.75;
}

.manage-service-card {
  width: 220px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.manage-service-card span,
.manage-service-card strong,
.manage-service-card small {
  display: block;
}

.manage-service-card span,
.manage-service-card small {
  color: var(--muted);
}

.manage-service-card span {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
}

.manage-service-card span i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #2d8a69;
  box-shadow: 0 0 0 4px rgba(45, 138, 105, 0.12);
}

.manage-service-card strong {
  margin: 5px 0;
  font-size: 15px;
}

.manage-auth {
  display: block;
  margin-top: 22px;
  padding: 0;
  border: 0;
  background: transparent;
}

.manage-auth .review-login-form {
  display: grid;
  grid-template-columns: minmax(230px, 1.2fr) minmax(160px, 0.8fr) minmax(210px, 1fr) auto;
  align-items: end;
  gap: 14px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(23, 33, 38, 0.06);
}

.manage-auth .review-login-form[hidden] {
  display: none;
}

.manage-login-heading {
  display: grid;
  align-content: center;
  min-height: 62px;
  padding-right: 20px;
  border-right: 1px solid var(--line);
}

.manage-login-heading span,
.manage-login-heading strong,
.manage-login-heading small {
  display: block;
}

.manage-login-heading span {
  color: var(--brick);
  font-size: 12px;
  font-weight: 800;
}

.manage-login-heading strong {
  margin-top: 3px;
  font-size: 20px;
}

.manage-login-heading small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
}

.manage-auth .review-login-form label {
  gap: 6px;
}

.manage-auth .review-login-form label > span {
  color: var(--ink);
  font-size: 12px;
}

.manage-auth .review-login-form input {
  min-height: 46px;
  padding: 10px 12px;
  border-radius: 6px;
  font-size: 15px;
}

.manage-auth .review-login-form > button {
  min-height: 46px;
  padding-inline: 24px;
}

.manage-auth .review-login-form > small {
  grid-column: 2 / -1;
  color: var(--muted);
  font-size: 12px;
}

.manage-auth .review-session {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: 10px;
  padding: 13px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.manage-auth .review-session[hidden] {
  display: none;
}

[data-manage-password-toggle][hidden],
[data-manage-password-cancel][hidden] {
  display: none;
}

.manage-auth .review-session span {
  grid-column: auto;
}

.manage-password-panel {
  display: grid;
  grid-template-columns: minmax(220px, 0.65fr) minmax(0, 1.35fr);
  gap: 28px;
  margin-top: 18px;
  padding: 24px;
  border: 1px solid #b8d2cc;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(23, 33, 38, 0.05);
}

.manage-password-panel[hidden] {
  display: none;
}

.manage-password-copy {
  padding-right: 24px;
  border-right: 1px solid var(--line);
}

.manage-password-copy h2 {
  margin: 4px 0 8px;
  font-size: 25px;
  letter-spacing: 0;
}

.manage-password-copy p:last-child {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
}

.manage-password-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.manage-password-form label {
  display: grid;
  gap: 7px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
}

.manage-password-form input {
  width: 100%;
  min-height: 44px;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
}

.manage-password-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  grid-column: 1 / -1;
}

.manage-password-form > small {
  grid-column: 1 / -1;
  color: var(--muted);
  line-height: 1.55;
}

.manage-password-form > small.is-error {
  color: #a73227;
}

.manage-locked,
.manage-empty {
  margin-top: 28px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.manage-locked[hidden],
[data-manage-workspace][hidden] {
  display: none;
}

.manage-locked p,
.manage-empty {
  color: var(--muted);
}

.manage-section {
  margin-top: 32px;
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.manage-section-heading {
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}

.manage-section-heading h2,
.manage-history-heading h3 {
  margin: 3px 0 0;
  letter-spacing: 0;
}

.manage-section-heading > p {
  max-width: 520px;
  margin: 0;
}

.manage-editor-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 24px;
}

.manage-editor-form > label,
.manage-choice-editor label,
.manage-feedback-actions label {
  display: grid;
  gap: 8px;
  color: var(--ink);
  font-weight: 700;
}

.manage-editor-form .is-wide {
  grid-column: 1 / -1;
}

.manage-editor-form input,
.manage-editor-form select,
.manage-editor-form textarea,
.manage-feedback-actions select {
  width: 100%;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
}

.manage-editor-form textarea {
  resize: vertical;
}

.manage-editor-form label small {
  color: var(--muted);
  font-weight: 400;
}

.maintenance-choice-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  max-height: 220px;
  overflow: auto;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--surface);
}

.maintenance-choice {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--mist);
  color: var(--ink);
  font-weight: 600;
  line-height: 1.4;
  cursor: pointer;
}

.maintenance-choice:has(input:checked) {
  border-color: var(--teal);
  background: #eaf4f1;
  color: var(--teal);
}

.maintenance-choice input {
  width: 18px;
  min-height: 18px;
  margin: 0;
  accent-color: var(--teal);
}

.maintenance-choice-empty {
  grid-column: 1 / -1;
  padding: 8px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 400;
}

.manage-intake-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.manage-intake-record {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
}

.manage-intake-thumb,
.manage-intake-thumb img {
  display: block;
  width: 112px;
  aspect-ratio: 4 / 3;
}

.manage-intake-thumb img {
  object-fit: cover;
  border-radius: 4px;
}

.manage-intake-record span {
  color: var(--accent);
  font-size: 12px;
  font-weight: 800;
}

.manage-intake-record strong,
.manage-intake-record p,
.manage-intake-record small {
  display: block;
}

.manage-intake-record strong {
  margin-top: 3px;
}

.manage-intake-record p {
  margin: 5px 0;
  color: var(--muted);
  line-height: 1.55;
}

.manage-intake-record small {
  color: var(--muted);
}

.manage-entity-summary {
  display: grid;
  grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.2fr);
  gap: 18px;
  padding: 16px;
  background: var(--mist);
  border: 1px solid var(--line);
}

.manage-entity-summary span,
.manage-media-record span,
.manage-feedback-copy > span {
  color: var(--accent);
  font-size: 13px;
  font-weight: 800;
}

.manage-entity-summary strong,
.manage-entity-summary p {
  display: block;
  margin-top: 6px;
}

.manage-entity-summary p,
.manage-media-record p,
.manage-feedback-copy p {
  color: var(--muted);
  line-height: 1.65;
}

.manage-content-version {
  display: inline-block;
  margin-top: 8px;
  padding: 3px 7px;
  border: 1px solid var(--line);
  border-radius: 3px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
}

.manage-current-media {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.manage-current-media figure {
  margin: 0;
}

.manage-current-media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--line);
}

.manage-current-media figcaption {
  overflow: hidden;
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.manage-image-preview {
  display: grid;
  grid-template-columns: minmax(180px, 300px) 1fr;
  gap: 18px;
  align-items: center;
  padding: 14px;
  border: 1px solid var(--line);
  background: var(--mist);
}

.manage-image-preview[hidden] {
  display: none;
}

.manage-image-preview img {
  width: 100%;
  max-height: 220px;
  object-fit: contain;
  background: #e9eeec;
}

.manage-image-preview strong,
.manage-image-preview span {
  display: block;
  margin-bottom: 6px;
}

.manage-submit-row {
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
}

.form-status.is-error {
  color: #a73227;
}

.manage-history-heading {
  align-items: baseline;
  margin-top: 30px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}

.manage-history-heading span {
  color: var(--muted);
  font-size: 13px;
}

.manage-media-history,
.manage-content-history,
.manage-feedback-list {
  display: grid;
  gap: 12px;
  margin-top: 15px;
}

.manage-content-record {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: start;
  padding: 13px 14px;
  border: 1px solid var(--line);
}

.manage-content-record.is-current {
  border-color: #7fb8ad;
  background: #f3f8f6;
}

.manage-content-record span,
.manage-content-record strong,
.manage-content-record p,
.manage-content-record small {
  display: block;
}

.manage-content-record span {
  color: var(--teal-dark);
  font-size: 12px;
  font-weight: 800;
}

.manage-content-record strong {
  margin-top: 4px;
}

.manage-content-record p,
.manage-content-record small {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.manage-media-record {
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
}

.manage-media-record.is-active {
  border-color: #7fb8ad;
  background: #f3f8f6;
}

.manage-media-record > img {
  width: 118px;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.manage-media-record strong,
.manage-media-record small {
  display: block;
  margin-top: 5px;
}

.manage-media-record p {
  margin: 5px 0 0;
}

.manage-media-record > b {
  color: var(--teal);
}

.manage-choice-editor {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.manage-feedback-card {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr) 240px;
  gap: 18px;
  padding: 16px;
  border: 1px solid var(--line);
}

.manage-feedback-card:not(:has(.manage-feedback-image)) {
  grid-template-columns: minmax(0, 1fr) 240px;
}

.manage-feedback-image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.manage-feedback-copy strong,
.manage-feedback-copy small {
  display: block;
  margin-top: 7px;
}

.manage-feedback-copy p {
  margin: 7px 0;
  white-space: pre-wrap;
}

.manage-feedback-actions {
  display: grid;
  gap: 12px;
  align-content: start;
}

.manage-analytics-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}

.manage-analytics-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.manage-analytics-summary article {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--line);
  background: var(--mist);
}

.manage-analytics-summary span,
.manage-analytics-summary strong,
.manage-analytics-summary small {
  display: block;
}

.manage-analytics-summary span,
.manage-analytics-summary small {
  color: var(--muted);
  font-size: 12px;
}

.manage-analytics-summary strong {
  margin: 7px 0 4px;
  font-size: 28px;
  letter-spacing: 0;
}

.manage-analytics-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 22px;
}

.manage-analytics-columns > section {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--line);
}

.manage-analytics-columns h3 {
  margin: 0 0 12px;
}

.manage-analytics-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto auto;
  gap: 8px;
  align-items: center;
  padding: 9px 0;
  border-top: 1px solid var(--line);
  font-size: 13px;
}

.manage-analytics-row:first-child {
  border-top: 0;
}

.manage-analytics-row b,
.manage-analytics-row small {
  color: var(--muted);
}

.manage-analytics-row span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 760px) {
  .manage-main {
    width: min(100% - 24px, 680px);
    padding: 86px 0 48px;
  }

  .manage-intro,
  .manage-section-heading,
  .manage-history-heading {
    display: grid;
    gap: 12px;
  }

  .manage-service-card {
    width: 100%;
  }

  .manage-intro h1 {
    font-size: 31px;
  }

  .manage-intro-copy > p:last-child {
    margin-bottom: 0;
    font-size: 14px;
    line-height: 1.65;
  }

  .manage-auth .review-login-form {
    grid-template-columns: 1fr;
    gap: 13px;
    padding: 18px 16px;
  }

  .manage-login-heading {
    min-height: 0;
    padding: 0 0 14px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .manage-auth .review-login-form > small {
    grid-column: auto;
  }

  .manage-auth .review-login-form > button,
  .manage-password-actions > button {
    width: 100%;
  }

  .manage-auth .review-session {
    grid-template-columns: 1fr 1fr;
  }

  .manage-auth .review-session > div {
    grid-column: 1 / -1;
  }

  .manage-password-panel {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 18px 16px;
  }

  .manage-password-copy {
    padding: 0 0 15px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .manage-password-form {
    grid-template-columns: 1fr;
  }

  .manage-password-actions,
  .manage-password-form > small {
    grid-column: auto;
  }

  .manage-section {
    padding: 18px 14px;
  }

  .manage-editor-form,
  .manage-entity-summary,
  .manage-choice-editor,
  .manage-content-record,
  .manage-feedback-card,
  .manage-feedback-card:not(:has(.manage-feedback-image)) {
    grid-template-columns: 1fr;
  }

  .manage-current-media {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .manage-image-preview {
    grid-template-columns: 1fr;
  }

  .manage-analytics-summary,
  .manage-analytics-columns {
    grid-template-columns: 1fr;
  }

  .manage-media-record {
    grid-template-columns: 92px minmax(0, 1fr);
  }

  .manage-media-record > img {
    width: 92px;
  }

  .manage-media-record > button,
  .manage-media-record > b {
    grid-column: 1 / -1;
  }

  .manage-intake-record {
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 12px;
  }

  .manage-intake-thumb,
  .manage-intake-thumb img {
    width: 82px;
  }

  .manage-intake-record > a:last-child {
    grid-column: 1 / -1;
    width: 100%;
  }

  .maintenance-choice-list {
    grid-template-columns: 1fr;
    max-height: 250px;
  }
}

.feedback-image-upload {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 0.55fr);
  gap: 14px;
  padding: 14px;
  border: 1px solid var(--line);
  background: var(--mist);
}

.feedback-image-upload label {
  display: grid;
  align-content: start;
  gap: 8px;
}

.feedback-image-upload input,
.feedback-image-upload select {
  width: 100%;
}

.feedback-image-upload small {
  color: var(--muted);
  font-weight: 400;
  line-height: 1.5;
}

.feedback-image-preview {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  color: var(--muted);
  font-size: 13px;
}

.feedback-image-preview[hidden],
.feedback-honeypot {
  display: none;
}

.feedback-image-preview img {
  width: 120px;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.feedback-image-preview .is-error {
  color: #a73227;
}

.feedback-credit-consent {
  grid-column: 1 / -1;
  display: grid !important;
  grid-template-columns: 18px minmax(0, 1fr) !important;
  align-items: start;
  gap: 10px !important;
  padding: 12px 14px;
  border: 1px solid var(--line);
  background: var(--mist);
}

.public-form .feedback-credit-consent input {
  width: 16px;
  height: 16px;
  margin-top: 3px;
}

.feedback-credit-consent span {
  font-weight: 600;
  line-height: 1.6;
}

.site-origin-contribution {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}

.site-origin-contribution > h2 {
  margin: 6px 0 10px;
}

.site-origin-contribution > p:not(.eyebrow) {
  max-width: 760px;
  color: var(--muted);
  line-height: 1.75;
}

.site-origin-contributors {
  margin-top: 22px;
}

.site-origin-contributors[hidden] {
  display: none;
}

.site-origin-contributors > h3 {
  display: block;
  margin-bottom: 10px;
}

.site-origin-contributors > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.site-origin-contributors span {
  display: grid;
  gap: 2px;
  min-width: 132px;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: #fff;
}

.site-origin-contributors b {
  color: var(--ink);
}

.site-origin-contributors small {
  color: var(--muted);
}

@media (max-width: 620px) {
  .feedback-image-upload {
    grid-template-columns: 1fr;
  }

  .feedback-image-preview {
    grid-column: auto;
  }
}

@media (max-width: 640px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  .site-header {
    gap: 10px;
    width: 100%;
    max-width: 100%;
    padding: 12px 14px;
  }

  .brand {
    flex: 1 1 auto;
    min-width: 0;
    gap: 8px;
  }

  .brand-mark {
    flex: 0 0 46px;
    width: 46px;
    height: 34px;
  }

  .brand strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .header-actions {
    flex: 0 0 auto;
    gap: 7px;
  }

  .container,
  .template-main,
  .template-content,
  .template-section,
  .section-band,
  .home-secondary-band,
  .site-search-section,
  .site-search-results,
  .module-grid,
  .compact-module-grid,
  .home-secondary-grid,
  .home-secondary-link-grid,
  .site-index-grid {
    max-width: 100%;
    min-width: 0;
  }

  .module-card,
  .home-secondary-link,
  .site-search-result,
  .site-search-form,
  .quick-module-panel,
  .template-card,
  .media-card {
    max-width: 100%;
    min-width: 0;
  }

  .site-search-result-copy,
  .module-copy,
  .home-secondary-link > div {
    min-width: 0;
  }

  .site-search-result-copy > strong,
  .module-copy h3,
  .home-secondary-link strong {
    overflow-wrap: anywhere;
  }
}

/* Visual polish layer: softer typography hierarchy and calmer reading color. */
:root {
  --ink: #162127;
  --muted: #68747a;
  --soft-muted: #7a8589;
  --brick: #b94b36;
}

.eyebrow,
.site-search-result-meta,
.food-browse-mode-card .food-browse-mode-label,
.home-start-card > span {
  color: #b84f3a;
}

p,
.template-hero p:not(.eyebrow),
.section-heading p:not(.eyebrow),
.home-start-card p,
.quick-module-intro,
.home-secondary-link p,
.site-search-result-copy > span:last-child,
.food-browse-mode-card small,
.food-browse-mode-note {
  color: var(--muted);
}

.module-copy h3,
.home-secondary-link strong,
.site-search-result-copy > strong,
.food-browse-mode-card strong {
  color: #172229;
}

.module-copy p,
.home-secondary-link p,
.site-search-result-copy > span:last-child {
  letter-spacing: 0;
}

@media (max-width: 640px) {
  body {
    font-size: 15px;
  }

  h1 {
    font-size: clamp(32px, 8.8vw, 36px);
    line-height: 1.08;
  }

  .hero h1 {
    font-size: clamp(40px, 10.5vw, 44px);
    line-height: 1.02;
  }

  h2 {
    font-size: clamp(22px, 6.6vw, 26px);
    line-height: 1.16;
  }

  h3 {
    font-size: 18px;
    line-height: 1.24;
  }

  p {
    line-height: 1.64;
  }

  .hero-subtitle {
    font-size: 16px;
    line-height: 1.58;
  }

  .template-hero h1 {
    font-size: clamp(30px, 8.4vw, 34px);
    line-height: 1.12;
  }

  .template-hero p:not(.eyebrow) {
    font-size: 14px;
    line-height: 1.56;
  }

  .template-content {
    gap: 14px;
  }

  .template-section {
    gap: 12px;
  }

  .home-start-card h2 {
    font-size: 22px;
    line-height: 1.22;
  }

  .home-start-card p {
    font-size: 13px;
    line-height: 1.52;
  }

  .quick-module-intro,
  .home-secondary-band .section-heading p:not(.eyebrow) {
    font-size: 13.5px;
    line-height: 1.52;
  }

  .compact-module-grid .module-card {
    min-height: 100px;
  }

  .compact-module-grid .module-copy h3,
  .module-copy h3 {
    font-size: 15.5px;
    line-height: 1.28;
  }

  .compact-module-grid .module-copy p,
  .module-copy p {
    font-size: 12px;
    line-height: 1.48;
  }

  .module-card span,
  .home-secondary-link span,
  .site-search-result-meta {
    font-size: 10.5px;
    line-height: 1.25;
  }

  .home-secondary-link {
    min-height: 108px;
  }

  .home-secondary-link strong {
    font-size: 13.5px;
    line-height: 1.3;
  }

  .home-secondary-link p {
    font-size: 11.5px;
    line-height: 1.42;
  }

  .site-search-result {
    min-height: 92px;
  }

  .site-search-result-copy > strong {
    font-size: 15px;
    line-height: 1.25;
  }

  .site-search-result-copy > span:last-child {
    font-size: 12.5px;
    line-height: 1.48;
  }

  .food-browse-mode-section .section-heading h2 {
    font-size: clamp(22px, 6.8vw, 26px);
    line-height: 1.16;
  }

  .food-browse-mode-section .section-heading p:not(.eyebrow) {
    font-size: 13px;
    line-height: 1.5;
  }

  .food-browse-mode-card strong {
    font-size: 14.5px;
  }

  .food-browse-mode-card small {
    font-size: 11.5px;
    line-height: 1.42;
  }
}

/* Control polish layer: unify buttons, chips, and Chinese reading rhythm. */
body {
  font-family:
    -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
    "Microsoft YaHei", "Noto Sans CJK SC", "Segoe UI", system-ui, sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

button,
input,
select,
textarea {
  font-family: inherit;
}

button,
.primary-button,
.secondary-button,
.icon-button,
.travel-chip-row button,
.travel-chip-row a,
.travel-food-name-link,
.site-search-form button,
.public-form button,
.preview-links button,
.v2-route-mode-controls button,
.review-task-actions button {
  transition:
    color 0.16s ease,
    background-color 0.16s ease,
    border-color 0.16s ease,
    box-shadow 0.16s ease,
    transform 0.16s ease;
}

.primary-button,
.secondary-button,
.hero-search button,
.site-search-form button,
.public-form button,
.preview-links button,
.travel-empty-state button,
.travel-active-state button,
.review-task-actions button,
.manage-auth .review-login-form > button {
  min-height: 42px;
  border-radius: 7px;
  font-weight: 760;
  letter-spacing: 0;
}

.primary-button,
.hero-search button,
.site-search-form button,
.public-form button,
.travel-empty-state button,
.travel-active-state button,
.manage-auth .review-login-form > button {
  background: linear-gradient(180deg, #12786f, #0d665f);
  box-shadow: 0 8px 20px rgba(15, 107, 99, 0.16);
}

.primary-button:hover,
.hero-search button:hover,
.site-search-form button:hover,
.public-form button:hover,
.travel-empty-state button:hover,
.travel-active-state button:hover,
.manage-auth .review-login-form > button:hover {
  background: linear-gradient(180deg, #0f6f67, #0a5751);
  box-shadow: 0 10px 24px rgba(15, 107, 99, 0.2);
  transform: translateY(-1px);
}

.secondary-button {
  border-color: rgba(22, 33, 39, 0.2);
  color: #213036;
  background: rgba(255, 255, 255, 0.72);
}

.secondary-button:hover,
.secondary-button:focus-visible {
  border-color: rgba(15, 107, 99, 0.3);
  color: var(--teal-dark);
  background: rgba(237, 246, 244, 0.96);
}

.icon-button {
  width: 40px;
  height: 40px;
  border-color: rgba(22, 33, 39, 0.38);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.56);
}

.site-header:not(.is-scrolled):not(.admin-header) .icon-button {
  border-color: rgba(255, 255, 255, 0.78);
  background: rgba(255, 255, 255, 0.08);
}

.icon-button:hover,
.icon-button:focus-visible {
  border-color: rgba(15, 107, 99, 0.42);
  color: var(--teal-dark);
  background: rgba(237, 246, 244, 0.9);
}

.desktop-nav a,
.mobile-nav a {
  font-weight: 680;
}

.desktop-nav a:hover,
.desktop-nav a:focus-visible,
.mobile-nav a:hover,
.mobile-nav a:focus-visible {
  color: var(--teal-dark);
  background: rgba(15, 107, 99, 0.08);
}

.site-search-form input,
.site-search-form select,
.hero-search {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
}

.site-search-form input:focus,
.site-search-form select:focus,
.hero-search:focus-within {
  border-color: rgba(15, 107, 99, 0.46);
  box-shadow:
    0 0 0 3px rgba(15, 107, 99, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.travel-chip-row button,
.travel-chip-row span,
.travel-chip-row a {
  min-height: 24px;
  padding: 5px 8px;
  border: 1px solid color-mix(in srgb, var(--chip-accent) 16%, transparent);
  background: color-mix(in srgb, var(--chip-accent) 8%, #fff);
  font-size: 11.5px;
  font-weight: 720;
}

.travel-chip-row button:hover,
.travel-chip-row button:focus-visible,
.travel-chip-row a:hover,
.travel-chip-row a:focus-visible {
  box-shadow: 0 5px 14px color-mix(in srgb, var(--chip-accent) 18%, transparent);
  transform: translateY(-1px);
}

.travel-food-name-link,
.food-place-shortcut-lines .travel-food-name-link,
.food-destination-shortcut-lines .travel-food-name-link {
  min-height: 16px;
  padding: 1px 3px;
  border-radius: 4px;
  background: color-mix(in srgb, var(--food-tag-fg, #125f58) 6%, #fff);
  font-size: 10px;
  font-weight: 680;
}

.travel-food-name-link[href]:hover,
.travel-food-name-link[href]:focus-visible,
.food-place-shortcut-lines .travel-food-name-link[href]:hover,
.food-place-shortcut-lines .travel-food-name-link[href]:focus-visible,
.food-destination-shortcut-lines .travel-food-name-link[href]:hover,
.food-destination-shortcut-lines .travel-food-name-link[href]:focus-visible {
  background: color-mix(in srgb, var(--food-tag-fg, #075e58) 10%, #fff);
  box-shadow: 0 3px 10px rgba(15, 107, 99, 0.08);
  text-decoration: none;
}

.module-copy h3,
.home-secondary-link strong,
.site-search-result-copy > strong,
.food-browse-mode-card strong,
.template-card h3,
.media-card h3 {
  font-weight: 780;
}

.eyebrow,
.site-search-result-meta,
.food-browse-mode-card .food-browse-mode-label,
.home-start-card > span {
  font-weight: 760;
}

@media (max-width: 640px) {
  .primary-button,
  .secondary-button,
  .hero-search button,
  .site-search-form button,
  .public-form button {
    min-height: 40px;
    padding: 9px 13px;
    font-size: 14px;
  }

  .icon-button {
    width: 38px;
    height: 38px;
  }

  .travel-chip-row button,
  .travel-chip-row span,
  .travel-chip-row a {
    min-height: 22px;
    padding: 4px 7px;
    font-size: 11px;
  }
}

/* Shared page rhythm: one spacing system for home, channel, and detail pages. */
:root {
  --flow-1: 4px;
  --flow-2: 8px;
  --flow-3: 12px;
  --flow-4: 16px;
  --flow-5: 20px;
  --flow-6: 24px;
  --flow-7: 32px;
  --page-section-gap: 24px;
  --content-section-gap: 16px;
  --card-inset: 18px;
  --compact-card-inset: 12px;
  --control-height: 40px;
  --reading-width: 44rem;
}

.section-heading {
  display: grid;
  gap: var(--flow-2);
  max-width: var(--reading-width);
  margin-bottom: var(--flow-5);
}

.section-heading > .eyebrow,
.section-heading > h2,
.section-heading > p {
  margin-bottom: 0;
}

.template-content {
  gap: var(--page-section-gap);
  padding-top: var(--page-section-gap);
}

.template-section,
.travel-detail-section {
  gap: var(--content-section-gap);
}

.template-section > .section-heading,
.travel-detail-section > .section-heading,
#weekend-nearby > .section-heading {
  margin-bottom: 0;
}

.travel-detail-page,
.local-weekend-detail-page {
  gap: var(--page-section-gap);
}

.travel-detail-section[id],
.travel-detail-food-summary[id] {
  scroll-margin-top: 88px;
}

.travel-detail-jump-row {
  margin: 0;
}

.local-weekend-cycle a {
  min-height: 0;
}

@media (max-width: 640px) {
  :root {
    --page-section-gap: 18px;
    --content-section-gap: 12px;
    --card-inset: 14px;
    --compact-card-inset: 10px;
  }

  .section-band {
    padding: 28px 0;
  }

  .template-main {
    padding-bottom: 20px;
  }

  .template-hero {
    gap: 12px;
    padding: 12px 0 14px;
  }

  .template-hero h1 {
    margin-bottom: 6px;
    font-size: clamp(28px, 8vw, 32px);
  }

  .template-hero p:not(.eyebrow) {
    font-size: 13.5px;
    line-height: 1.55;
  }

  .template-hero-visual {
    min-height: 94px;
  }

  .template-content {
    gap: var(--page-section-gap);
    padding-top: var(--page-section-gap);
  }

  .template-section,
  .travel-detail-section,
  .travel-detail-page,
  .local-weekend-detail-page {
    gap: var(--content-section-gap);
  }

  .section-heading {
    gap: 5px;
    margin-bottom: 12px;
  }

  .template-section > .section-heading,
  .travel-detail-section > .section-heading {
    margin-bottom: 0;
  }

  .section-heading > .eyebrow {
    font-size: 11.5px;
    line-height: 1.25;
  }

  .section-heading > h2 {
    font-size: clamp(21px, 6.2vw, 24px);
    line-height: 1.18;
  }

  .section-heading > p:not(.eyebrow) {
    font-size: 13px;
    line-height: 1.52;
  }

  .article-shell,
  .boundary-box,
  .public-form {
    padding: var(--card-inset);
  }

  .travel-detail-jump-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin: 0;
  }

  .travel-detail-jump-row a {
    justify-content: center;
    min-height: 36px;
    padding: 7px 8px;
    text-align: center;
  }

  .local-weekend-detail-card.is-summary > div {
    gap: 8px;
    padding: var(--compact-card-inset);
  }

  .local-weekend-detail-card dl {
    gap: 6px;
  }

  .local-weekend-detail-card dl div {
    padding: 7px 8px;
  }

  .local-weekend-decision-panel {
    gap: 8px;
  }

  .local-weekend-decision-panel > div {
    gap: 6px;
    padding: var(--compact-card-inset);
  }

  .local-weekend-route-list {
    gap: 8px;
  }

  .local-weekend-route-item {
    gap: 7px;
    padding: var(--compact-card-inset);
  }

  .discover-route-teaser {
    gap: 8px;
    padding: var(--compact-card-inset);
  }

  .discover-route-media,
  .discover-route-media img {
    min-height: 112px;
  }

  .discover-route-food-preview {
    grid-template-columns: auto repeat(2, minmax(0, 1fr));
    gap: 4px 7px;
    min-height: 0;
    padding: 6px 7px;
  }

  .local-weekend-point-card > .local-weekend-food-preview {
    min-height: 0;
    padding-top: 6px;
  }

  .home-destination-food {
    gap: 5px;
    padding-top: 6px;
  }

  .home-destination-food span {
    min-height: 26px;
  }

  .local-weekend-cycle {
    gap: 6px;
  }

  .local-weekend-cycle a {
    align-content: start;
    gap: 4px;
    padding: 8px 7px;
  }

  .local-weekend-cycle span {
    font-size: 9.5px;
  }

  .local-weekend-cycle strong {
    font-size: 12.5px;
    line-height: 1.28;
  }

  .detail-correction {
    margin-top: 14px;
    padding: 12px 0;
  }
}

/* Shared typography scale: consistent roles, not one uniform font size. */
:root {
  --type-display: 56px;
  --type-page-title: 42px;
  --type-section-title: 28px;
  --type-card-title: 19px;
  --type-body: 16px;
  --type-intro: 15px;
  --type-card-body: 14px;
  --type-action: 14px;
  --type-meta: 12px;
  --type-label: 12px;
  --type-micro: 11px;
  --leading-display: 1.04;
  --leading-title: 1.16;
  --leading-body: 1.62;
  --leading-compact: 1.5;
}

body {
  font-size: var(--type-body);
}

h1,
h2,
h3,
p,
a,
button,
input,
select,
textarea {
  letter-spacing: 0;
}

h1 {
  font-size: var(--type-page-title);
  line-height: var(--leading-title);
}

.hero h1 {
  font-size: var(--type-display);
  line-height: var(--leading-display);
}

h2,
.section-heading > h2,
.travel-detail-section > h2,
.travel-weekend-shortcut h2 {
  font-size: var(--type-section-title);
  line-height: var(--leading-title);
}

h3,
.module-copy h3,
.template-card h3,
.media-card h3,
.home-secondary-link strong,
.site-search-result-copy > strong,
.discover-hub-step strong,
.discover-hub-branch-card h3,
.discover-route-teaser h3,
.local-weekend-point-card h3,
.local-weekend-route-item h3,
.travel-weekend-shortcut > a strong {
  font-size: var(--type-card-title);
  line-height: 1.28;
}

.hero-subtitle,
.template-hero p:not(.eyebrow),
.section-heading > p:not(.eyebrow),
.travel-detail-section .section-heading p:not(.eyebrow),
.travel-weekend-shortcut p:not(.eyebrow) {
  font-size: var(--type-intro);
  line-height: var(--leading-body);
}

.module-copy p,
.template-card p,
.media-card p,
.home-secondary-link p,
.site-search-result-copy > span:last-child,
.discover-hub-step small,
.discover-hub-branch-card p,
.discover-route-teaser p,
.local-weekend-point-card p,
.local-weekend-route-item p {
  font-size: var(--type-card-body);
  line-height: var(--leading-compact);
}

.primary-button,
.secondary-button,
.site-search-form button,
.hero-search button,
.public-form button,
.travel-detail-jump-row a,
.local-weekend-point-action,
.local-weekend-route-actions a,
.discover-hub-branch-card > div > a,
.discover-route-actions a {
  font-size: var(--type-action);
  line-height: 1.3;
}

.eyebrow,
.site-search-result-meta,
.home-start-card > span,
.discover-hub-step b,
.discover-hub-branch-card > div > span,
.discover-route-meta > span,
.local-weekend-point-meta > span,
.local-weekend-point-meta > strong,
.local-weekend-route-item > span,
.local-weekend-cycle > a > span,
.travel-detail-topbar > span,
.template-link-list span {
  font-size: var(--type-meta);
  line-height: 1.3;
}

.travel-chip-row button,
.travel-chip-row span,
.travel-chip-row a,
.travel-food-name-link,
.food-place-shortcut-lines .travel-food-name-link,
.food-destination-shortcut-lines .travel-food-name-link,
.discover-route-food-preview strong,
.discover-route-food-preview b,
.discover-route-food-preview .travel-food-name-link,
.local-weekend-food-preview > span,
.local-weekend-food-preview > a,
.local-weekend-decision-food b,
.local-weekend-route-preview span,
.local-weekend-route-preview small,
.local-weekend-route-preview a {
  font-size: var(--type-label);
  line-height: 1.3;
}

.discover-route-duration,
.local-weekend-cycle span,
.footer-mini-links,
.footer-brand-block p {
  font-size: var(--type-micro);
  line-height: 1.45;
}

.brand strong {
  font-size: 18px;
  line-height: 1.15;
}

.brand small {
  font-size: var(--type-micro);
  line-height: 1.3;
}

@media (max-width: 640px) {
  :root {
    --type-display: 42px;
    --type-page-title: 30px;
    --type-section-title: 24px;
    --type-card-title: 17px;
    --type-body: 15px;
    --type-intro: 13.5px;
    --type-card-body: 12.5px;
    --type-action: 13px;
    --type-meta: 11.5px;
    --type-label: 11px;
    --type-micro: 10.5px;
  }

  .brand strong {
    font-size: 17px;
  }

  .template-hero h1 {
    font-size: var(--type-page-title);
    line-height: var(--leading-title);
  }

  .section-heading > h2,
  .food-browse-mode-section .section-heading h2 {
    font-size: var(--type-section-title);
    line-height: var(--leading-title);
  }

  .home-start-card h2 {
    font-size: 22px;
    line-height: 1.2;
  }

  .compact-module-grid .module-copy h3,
  .module-copy h3,
  .home-secondary-link strong,
  .site-search-result-copy > strong,
  .food-browse-mode-card strong,
  .discover-route-teaser h3,
  .local-weekend-point-card h3,
  .local-weekend-route-item h3 {
    font-size: var(--type-card-title);
  }

  .home-start-card p,
  .quick-module-intro,
  .home-secondary-band .section-heading p:not(.eyebrow),
  .food-browse-mode-section .section-heading p:not(.eyebrow) {
    font-size: var(--type-intro);
    line-height: var(--leading-compact);
  }

  .compact-module-grid .module-copy p,
  .module-copy p,
  .home-secondary-link p,
  .site-search-result-copy > span:last-child,
  .food-browse-mode-card small,
  .discover-route-teaser p,
  .local-weekend-point-card p,
  .local-weekend-route-item p {
    font-size: var(--type-card-body);
    line-height: var(--leading-compact);
  }

  .primary-button,
  .secondary-button,
  .hero-search button,
  .site-search-form button,
  .public-form button,
  .travel-detail-jump-row a {
    font-size: var(--type-action);
  }

  .module-card span,
  .home-secondary-link span,
  .site-search-result-meta,
  .food-browse-mode-card .food-browse-mode-label,
  .section-heading > .eyebrow {
    font-size: var(--type-meta);
  }

  .travel-chip-row button,
  .travel-chip-row span,
  .travel-chip-row a,
  .travel-food-name-link,
  .discover-route-food-preview strong,
  .discover-route-food-preview b,
  .discover-route-food-preview .travel-food-name-link,
  .local-weekend-food-preview > span,
  .local-weekend-food-preview > a,
  .local-weekend-decision-food b,
  .local-weekend-route-preview span,
  .local-weekend-route-preview small,
  .local-weekend-route-preview a {
    font-size: var(--type-label);
  }

  .local-weekend-cycle span {
    font-size: var(--type-micro);
  }

  .local-weekend-cycle strong {
    font-size: 13px;
    line-height: 1.3;
  }
}

/* 2026.07.23 mobile product shell and compact directory */
.home-secondary-band {
  background:
    linear-gradient(180deg, rgba(236, 245, 242, 0.88), rgba(246, 249, 247, 0.96));
}

.home-secondary-link {
  position: relative;
  overflow: hidden;
  border-color: color-mix(in srgb, var(--module-accent) 22%, var(--line));
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--module-soft) 66%, white), white 66%);
  box-shadow: 0 8px 20px rgba(23, 46, 43, 0.05);
}

.home-secondary-link::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--module-accent);
}

.home-secondary-link > svg {
  width: 38px;
  height: 38px;
  padding: 9px;
  border-color: color-mix(in srgb, var(--module-accent) 24%, transparent);
  background: color-mix(in srgb, var(--module-soft) 84%, white);
}

.home-secondary-link em {
  display: inline-flex;
  gap: 4px;
  align-items: center;
  color: var(--module-accent);
  font-size: 13px;
  font-style: normal;
  font-weight: 850;
}

.site-index-band {
  padding: 24px 0 32px;
  background: #fff;
}

.home-more-panel {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 20px;
  border: 1px solid color-mix(in srgb, var(--sea) 18%, var(--line));
  border-radius: 8px;
  background:
    linear-gradient(110deg, color-mix(in srgb, var(--route-soft) 58%, white), white 66%);
}

.home-more-icon {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border: 1px solid color-mix(in srgb, var(--sea) 22%, transparent);
  border-radius: 8px;
  color: var(--sea);
  background: color-mix(in srgb, var(--route-soft) 84%, white);
}

.home-more-icon svg {
  width: 25px;
  height: 25px;
}

.home-more-copy h2 {
  margin: 2px 0 5px;
  font-size: 24px;
}

.home-more-copy > p:last-of-type {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}

.home-more-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 12px;
  margin-top: 11px;
}

.home-more-tags span {
  display: inline-flex;
  gap: 5px;
  align-items: center;
  color: #315e59;
  font-size: 12px;
  font-weight: 750;
}

.home-more-tags svg {
  width: 14px;
  height: 14px;
}

.home-more-action {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 15px;
  border-radius: 7px;
  color: #fff;
  background: var(--teal);
  font-size: 14px;
  font-weight: 850;
  text-decoration: none;
}

.home-more-action svg {
  width: 16px;
  height: 16px;
}

.template-hero.is-more-hero {
  grid-template-columns: minmax(0, 820px);
  margin-top: 14px;
  padding: 26px 28px 25px;
  border: 1px solid #d4e1de;
  border-top: 3px solid var(--teal);
  background: #eef5f3;
}

.template-hero.is-more-hero h1 {
  margin-bottom: 8px;
  font-size: 40px;
}

.template-hero.is-more-hero p:not(.eyebrow) {
  max-width: 680px;
  color: #526663;
  font-size: 15px;
}

.more-page-content {
  width: min(100%, 940px);
  margin-inline: auto;
}

.more-page-section {
  display: grid;
  gap: 16px;
}

.more-page-section + .more-page-section {
  margin-top: 8px;
}

.compact-section-heading {
  margin-bottom: 0;
}

.more-page-section .compact-section-heading > p:last-child:not(.eyebrow) {
  max-width: 620px;
  color: var(--muted);
  font-size: 14px;
}

.more-link-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  gap: 12px;
}

.more-link-card,
.more-info-link {
  --more-accent: var(--teal);
  --more-soft: var(--travel-soft);
}

.more-link-card {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 9px 12px;
  align-items: start;
  min-height: 146px;
  padding: 17px;
  border: 1px solid color-mix(in srgb, var(--more-accent) 24%, var(--line));
  border-left: 3px solid var(--more-accent);
  border-radius: 8px;
  color: inherit;
  background: color-mix(in srgb, var(--more-soft) 64%, white);
  box-shadow: 0 7px 20px rgba(20, 42, 41, 0.035);
  text-decoration: none;
}

.tone-sea { --more-accent: var(--sea); --more-soft: var(--route-soft); }
.tone-brick { --more-accent: var(--brick); --more-soft: var(--food-soft); }
.tone-leaf { --more-accent: var(--leaf); --more-soft: #eff6ec; }
.tone-gold { --more-accent: var(--gold); --more-soft: var(--quality-soft); }

.more-link-icon,
.more-info-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border: 1px solid color-mix(in srgb, var(--more-accent) 24%, transparent);
  border-radius: 8px;
  color: var(--more-accent);
  background: color-mix(in srgb, var(--more-soft) 82%, white);
}

.more-link-icon svg,
.more-info-icon svg {
  width: 20px;
  height: 20px;
}

.more-link-copy,
.more-info-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.more-link-copy small {
  color: var(--more-accent);
  font-size: 11px;
  font-weight: 850;
}

.more-link-copy strong {
  color: var(--ink);
  font-size: 18px;
  line-height: 1.25;
}

.more-link-copy > span,
.more-info-copy > span {
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.5;
}

.more-link-action {
  grid-column: 2;
  display: inline-flex;
  gap: 6px;
  align-items: center;
  justify-self: start;
  margin-top: 1px;
  color: var(--more-accent);
  font-size: 12px;
  font-weight: 850;
}

.more-link-action svg {
  width: 14px;
  height: 14px;
}

.more-review-note {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  justify-self: start;
  margin: 0;
  color: #48635e;
  font-size: 12px;
}

.more-review-note svg {
  width: 16px;
  height: 16px;
  color: var(--teal);
}

.more-about-section {
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.more-info-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-block: 1px solid var(--line);
}

.more-info-link {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) 14px;
  gap: 10px;
  align-items: center;
  min-width: 0;
  padding: 15px 12px;
  color: inherit;
  text-decoration: none;
}

.more-info-link + .more-info-link {
  border-left: 1px solid var(--line);
}

.more-info-icon {
  width: 40px;
  height: 40px;
}

.more-info-icon svg {
  width: 18px;
  height: 18px;
}

.more-info-copy strong {
  color: var(--ink);
  font-size: 15px;
  line-height: 1.25;
}

.more-info-link > svg {
  width: 14px;
  height: 14px;
  color: var(--more-accent);
}

.more-topic-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.footer-compact {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 14px 26px;
  align-items: center;
}

.footer-identity,
.footer-legal,
.footer-essential-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  align-items: center;
}

.footer-identity strong {
  font-size: 17px;
}

.footer-identity span,
.footer-legal,
.footer-legal a,
.footer-essential-links a {
  color: rgba(255, 255, 255, 0.72);
  font-size: 12px;
  text-decoration: none;
}

.footer-legal a,
.footer-essential-links a {
  color: rgba(255, 255, 255, 0.86);
  font-weight: 700;
}

.mobile-tab-bar {
  display: none;
}

@media (max-width: 900px) {
  .more-link-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .more-topic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer-compact {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}

@media (max-width: 640px) {
  body.has-mobile-shell {
    padding-bottom: calc(62px + env(safe-area-inset-bottom));
  }

  body.has-mobile-shell .menu-button {
    display: none;
  }

  .mobile-tab-bar {
    position: fixed;
    z-index: 120;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    min-height: calc(58px + env(safe-area-inset-bottom));
    padding: 4px 8px env(safe-area-inset-bottom);
    border-top: 1px solid rgba(25, 54, 50, 0.14);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 -8px 24px rgba(18, 39, 37, 0.08);
    backdrop-filter: blur(14px);
  }

  .mobile-tab-bar a {
    position: relative;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 2px;
    min-width: 0;
    color: #687674;
    font-size: 10px;
    font-weight: 750;
    line-height: 1.1;
    text-decoration: none;
  }

  .mobile-tab-bar a::before {
    content: "";
    position: absolute;
    top: -4px;
    width: 28px;
    height: 3px;
    border-radius: 0 0 3px 3px;
    background: transparent;
  }

  .mobile-tab-bar svg {
    width: 21px;
    height: 21px;
  }

  .mobile-tab-bar a.is-active {
    color: var(--teal);
  }

  .mobile-tab-bar a.is-active::before {
    background: var(--teal);
  }

  .home-secondary-band {
    padding: 26px 0;
  }

  .home-secondary-link-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .home-secondary-link {
    grid-template-columns: 32px minmax(0, 1fr);
    min-height: 132px;
    padding: 11px;
    gap: 3px 8px;
  }

  .home-secondary-link > svg {
    width: 31px;
    height: 31px;
    padding: 7px;
  }

  .home-secondary-link p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .home-secondary-link em {
    font-size: 11px;
  }

  .site-index-band {
    padding: 18px 0 24px;
  }

  .home-more-panel {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 10px;
    padding: 14px;
  }

  .home-more-icon {
    width: 42px;
    height: 42px;
  }

  .home-more-icon svg {
    width: 20px;
    height: 20px;
  }

  .home-more-copy h2 {
    font-size: 19px;
  }

  .home-more-copy > p:last-of-type {
    font-size: 12px;
    line-height: 1.5;
  }

  .home-more-tags {
    grid-column: 1 / -1;
    gap: 6px 10px;
    margin-top: 9px;
  }

  .home-more-tags span {
    font-size: 10.5px;
  }

  .home-more-action {
    grid-column: 1 / -1;
    justify-self: stretch;
    min-height: 38px;
    margin-top: 2px;
    font-size: 12px;
  }

  .more-page-section {
    gap: 12px;
  }

  .template-hero.is-more-hero {
    margin-top: 6px;
    padding: 15px 14px 16px;
    border-top-width: 2px;
  }

  .template-hero.is-more-hero h1 {
    margin-bottom: 5px;
    font-size: 28px;
  }

  .template-hero.is-more-hero p:not(.eyebrow) {
    font-size: 12.5px;
    line-height: 1.5;
  }

  .more-page-content {
    gap: 18px;
    padding-top: 16px;
  }

  .more-page-section .compact-section-heading > p:last-child:not(.eyebrow) {
    font-size: 12.5px;
    line-height: 1.5;
  }

  .more-link-grid {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .more-link-card {
    grid-template-columns: 40px minmax(0, 1fr);
    min-height: 0;
    padding: 13px;
    gap: 6px 10px;
  }

  .more-link-icon {
    width: 40px;
    height: 40px;
  }

  .more-link-icon svg {
    width: 18px;
    height: 18px;
  }

  .more-link-copy strong {
    font-size: 16px;
  }

  .more-link-copy > span {
    font-size: 12px;
    line-height: 1.46;
  }

  .more-link-action {
    font-size: 11.5px;
  }

  .more-topic-grid {
    grid-template-columns: 1fr;
  }

  .more-review-note {
    font-size: 11px;
  }

  .more-about-section {
    padding-top: 17px;
  }

  .more-info-list {
    grid-template-columns: 1fr;
  }

  .more-info-link {
    grid-template-columns: 38px minmax(0, 1fr) 14px;
    padding: 12px 4px;
  }

  .more-info-link + .more-info-link {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .more-info-icon {
    width: 38px;
    height: 38px;
  }

  .more-info-copy strong {
    font-size: 14.5px;
  }

  .more-info-copy > span {
    font-size: 11.5px;
    line-height: 1.45;
  }

  .footer-compact {
    gap: 7px;
  }

  .site-footer {
    padding: 20px 0;
  }

  .footer-identity,
  .footer-legal,
  .footer-essential-links {
    gap: 4px 10px;
  }

  .footer-identity span,
  .footer-legal,
  .footer-legal a,
  .footer-essential-links a {
    font-size: 10.5px;
  }
}
