.theme-local-seo {
  --local-accent: var(--t-wine);
  --local-inset: 40px;
  background: var(--t-paper);
  color: var(--t-ink);
}

.theme-local-seo.local-theme--skin {
  --local-accent: var(--t-skin-accent);
}

.theme-local-seo.local-theme--face {
  --local-accent: var(--t-face-accent);
}

.theme-local-seo.local-theme--special {
  --local-accent: var(--t-special-accent);
}

.theme-local-seo .site-header[data-site-header] {
  color: var(--t-ink);
}

.theme-local-seo .site-header[data-site-header] .brand::before {
  background-image: url("../assets/brand/pierium-lockup-dark-2x.webp");
}

.local-main {
  overflow: clip;
}

.local-shell {
  margin-inline: auto;
  max-width: var(--container);
  padding-inline: var(--local-inset);
  width: 100%;
}

.local-breadcrumb {
  align-items: center;
  color: var(--t-muted);
  display: flex;
  font-size: var(--font-small);
  gap: var(--space-3);
  margin-bottom: clamp(var(--space-10), 5vw, var(--space-18));
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
}

.local-breadcrumb a {
  flex: 0 0 auto;
  text-underline-offset: 0.2em;
}

.local-breadcrumb [aria-current="page"] {
  overflow: hidden;
  text-overflow: ellipsis;
}

.local-hero {
  background: var(--t-paper);
  border-bottom: var(--border-thin);
  padding-block: clamp(13rem, 18vw, 16rem) clamp(var(--space-22), 8vw, var(--space-30));
}

.local-hero__grid {
  align-items: end;
  display: grid;
  gap: clamp(var(--space-12), 6vw, var(--space-30));
  grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.65fr);
}

.local-eyebrow {
  color: var(--local-accent);
  font-family: var(--font-editorial-latin);
  font-size: var(--font-eyebrow);
  letter-spacing: 0.16em;
  line-height: 1.4;
  margin-bottom: var(--space-6);
  text-transform: uppercase;
}

.local-nowrap {
  white-space: nowrap;
}

.local-hero h1 {
  font-size: clamp(3rem, 5.7vw, 5.75rem);
  line-height: 1.08;
  margin-bottom: var(--space-8);
  max-width: 12ch;
}

.local-answer {
  border-left: 2px solid var(--local-accent);
  font-size: var(--font-body-lg);
  line-height: 1.8;
  margin-bottom: var(--space-6);
  max-width: var(--measure);
  padding-left: var(--space-6);
}

.local-answer span {
  color: var(--local-accent);
  display: block;
  font-size: var(--font-small);
  margin-bottom: var(--space-2);
}

.local-lead {
  color: var(--t-muted);
  max-width: var(--measure);
}

.local-actions,
.local-contact__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-8);
}

.local-action,
.local-contact__actions a {
  align-items: center;
  border: var(--border-thin);
  border-radius: var(--radius-pill);
  display: inline-flex;
  justify-content: space-between;
  min-height: var(--control-height);
  padding: var(--space-3) var(--space-6);
  text-decoration: none;
}

.local-action--primary,
.local-contact__actions a:first-child {
  background: var(--t-wine-deep);
  border-color: var(--t-wine-deep);
  color: var(--t-on-wine);
  gap: var(--space-8);
}

.local-facts {
  background: var(--t-wine-deep);
  color: var(--t-on-wine);
  padding: clamp(var(--space-8), 4vw, var(--space-12));
}

.local-facts > p {
  color: var(--t-on-wine-accent);
  font-family: var(--font-editorial-latin);
  font-size: var(--font-eyebrow);
  letter-spacing: 0.14em;
  margin-bottom: var(--space-8);
}

.local-facts dl {
  margin: 0;
}

.local-facts dl div {
  border-top: 1px solid var(--t-on-wine-line);
  display: grid;
  gap: var(--space-4);
  grid-template-columns: 5rem 1fr;
  padding-block: var(--space-4);
}

.local-facts dt {
  color: var(--t-on-wine-muted);
}

.local-facts dd {
  margin: 0;
}

.local-facts a {
  border-top: 1px solid var(--t-on-wine-line);
  display: flex;
  justify-content: space-between;
  margin-top: var(--space-4);
  padding-top: var(--space-6);
  text-decoration: none;
}

.local-jump {
  background: var(--t-paper-glass);
  border-bottom: var(--border-thin);
  position: sticky;
  top: 0;
  z-index: 20;
}

.local-jump .local-shell {
  display: flex;
  gap: var(--space-8);
  overflow-x: auto;
  scrollbar-width: none;
}

.local-jump .local-shell::-webkit-scrollbar {
  display: none;
}

.local-jump a {
  flex: 0 0 auto;
  min-height: var(--control-height);
  padding-block: var(--space-4);
  text-decoration: none;
}

.local-section {
  padding-block: clamp(var(--space-22), 10vw, var(--space-40));
  scroll-margin-top: calc(var(--control-height) + var(--space-8));
}

@media (max-width: 47.9375rem) {
  .local-notes h2 {
    font-size: clamp(1.85rem, 8vw, 2.25rem);
    word-break: keep-all;
  }

  .local-fab .at-fab {
    border-radius: 50%;
    height: 3rem;
    min-height: 3rem;
    padding: 0;
    width: 3rem;
  }

  .local-fab .at-fab span:first-child {
    background: transparent;
    height: 100%;
    width: 100%;
  }

  .local-fab .at-fab span:last-child {
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  .local-fab.is-content-overlap {
    opacity: 0;
    pointer-events: none;
    transform: translateY(var(--space-4));
    visibility: hidden;
  }
}

.local-section--deep,
.local-contact {
  background: var(--t-wine-deep);
  color: var(--t-on-wine);
}

.local-split,
.local-check-grid {
  display: grid;
  gap: clamp(var(--space-12), 8vw, var(--space-30));
  grid-template-columns: minmax(15rem, 0.7fr) minmax(0, 1.3fr);
}

.local-split > header,
.local-check-grid > div {
  align-self: start;
  position: sticky;
  top: var(--space-22);
}

.local-heading {
  margin-bottom: clamp(var(--space-12), 6vw, var(--space-22));
  max-width: var(--article);
}

.local-section h2,
.local-contact h2 {
  font-size: clamp(2.25rem, 4.6vw, 4rem);
  line-height: 1.12;
  margin-bottom: var(--space-6);
}

.local-section header > p:last-child,
.local-check-grid > div > p:last-child,
.local-contact p {
  color: var(--t-muted);
  max-width: var(--measure);
}

.local-section--deep .local-eyebrow,
.local-contact .local-eyebrow {
  color: var(--t-on-wine-accent);
}

.local-section--deep .local-heading > p:last-child,
.local-contact p {
  color: var(--t-on-wine-muted);
}

.local-keywords ul {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  list-style: none;
  margin: 0;
  padding: 0;
}

.local-keywords li {
  border: var(--border-thin);
  border-radius: var(--radius-pill);
  padding: var(--space-3) var(--space-5);
}

.local-criteria {
  list-style: none;
  margin: 0;
  padding: 0;
}

.local-criteria li {
  border-top: 1px solid var(--t-on-wine-line);
  display: grid;
  gap: var(--space-8);
  grid-template-columns: 4rem minmax(0, 1fr);
  padding-block: var(--space-8);
}

.local-criteria li:last-child {
  border-bottom: 1px solid var(--t-on-wine-line);
}

.local-criteria > li > span {
  color: var(--t-on-wine-accent);
  font-family: var(--font-editorial-latin);
}

.local-criteria h3 {
  font-size: clamp(1.5rem, 2.3vw, 2.25rem);
  margin-bottom: var(--space-3);
}

.local-criteria p {
  color: var(--t-on-wine-muted);
  margin-bottom: 0;
  max-width: var(--measure);
}

.local-check-grid ol {
  counter-reset: local-check;
  list-style: none;
  margin: 0;
  padding: 0;
}

.local-check-grid li {
  align-items: center;
  border-top: var(--border-thin);
  counter-increment: local-check;
  display: grid;
  font-size: clamp(1.25rem, 2.4vw, 2rem);
  gap: var(--space-5);
  grid-template-columns: 3rem minmax(0, 1fr);
  padding-block: var(--space-8);
}

.local-check-grid li::before {
  color: var(--local-accent);
  content: counter(local-check, decimal-leading-zero);
  font-family: var(--font-editorial-latin);
  font-size: var(--font-small);
}

.local-treatment-grid {
  border-top: var(--border-thin);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.local-treatment {
  border-bottom: var(--border-thin);
  display: grid;
  gap: var(--space-4);
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 12rem;
  padding: var(--space-8);
  text-decoration: none;
}

.local-treatment:nth-child(odd) {
  border-right: var(--border-thin);
}

.local-treatment span {
  font-size: clamp(1.5rem, 2.6vw, 2.25rem);
}

.local-treatment p {
  color: var(--t-muted);
  grid-column: 1;
  margin-bottom: 0;
}

.local-treatment i {
  font-style: normal;
  grid-column: 2;
  grid-row: 1 / span 2;
}

.local-authority {
  background: var(--t-cream);
}

.local-authority__grid {
  align-items: center;
  display: grid;
  gap: clamp(var(--space-12), 8vw, var(--space-30));
  grid-template-columns: minmax(18rem, 0.8fr) minmax(0, 1.2fr);
}

.local-authority figure {
  aspect-ratio: 2 / 3;
  background: var(--t-paper-soft);
  margin: 0;
  max-width: 34rem;
  overflow: hidden;
}

.local-authority figure img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.local-authority h2,
.local-visit h2 {
  font-size: clamp(2.5rem, 5vw, 4.75rem);
  line-height: 1.08;
  margin-bottom: var(--space-8);
}

.local-authority blockquote {
  border-left: 2px solid var(--local-accent);
  font-size: clamp(1.25rem, 2.2vw, 1.8rem);
  line-height: 1.65;
  margin: 0 0 var(--space-10);
  max-width: var(--measure);
  padding-left: var(--space-6);
}

.local-authority dl,
.local-visit dl {
  border-top: var(--border-thin);
  margin: 0;
}

.local-authority dl > div,
.local-visit dl > div {
  border-bottom: var(--border-thin);
  display: grid;
  gap: var(--space-5);
  grid-template-columns: 7rem minmax(0, 1fr);
  padding-block: var(--space-5);
}

.local-authority dt,
.local-visit dt {
  color: var(--t-muted);
}

.local-authority dd,
.local-visit dd {
  margin: 0;
}

.local-inline-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4) var(--space-8);
  margin-top: var(--space-8);
}

.local-inline-links a,
.local-notes__all {
  text-decoration-thickness: 1px;
  text-underline-offset: 0.35em;
}

.local-notes {
  background: var(--t-paper-soft);
}

.local-note-grid {
  border-top: var(--border-thin);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.local-note-grid a {
  border-bottom: var(--border-thin);
  border-right: var(--border-thin);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 13rem;
  padding: var(--space-7);
  text-decoration: none;
}

.local-note-grid a:last-child {
  border-right: 0;
}

.local-note-grid h3 {
  font-size: clamp(1.35rem, 2.2vw, 1.8rem);
  grid-column: 1;
  margin-bottom: var(--space-4);
}

.local-note-grid span {
  align-self: end;
  color: var(--t-muted);
  grid-column: 1;
}

.local-note-grid i {
  font-style: normal;
  grid-column: 2;
  grid-row: 1 / span 2;
}

.local-notes__all {
  display: inline-block;
  margin-top: var(--space-8);
}

.local-faq__list {
  border-top: var(--border-thin);
}

.local-faq details {
  border-bottom: var(--border-thin);
}

.local-faq summary {
  align-items: center;
  display: grid;
  gap: var(--space-5);
  grid-template-columns: 2rem minmax(0, 1fr) 2rem;
  list-style: none;
  min-height: 4.5rem;
  padding-block: var(--space-5);
}

.local-faq summary::-webkit-details-marker {
  display: none;
}

.local-faq summary > span {
  color: var(--local-accent);
  font-family: var(--font-editorial-latin);
  font-size: var(--font-small);
}

.local-faq summary i::before,
.local-faq summary i::after {
  background: currentColor;
  content: "";
  display: block;
  height: 1px;
  position: absolute;
  width: 1rem;
}

.local-faq summary i {
  height: 1rem;
  position: relative;
  width: 1rem;
}

.local-faq summary i::after {
  transform: rotate(90deg);
}

.local-faq details[open] summary i::after {
  transform: rotate(0);
}

.local-faq details > p {
  color: var(--t-muted);
  margin: 0 0 var(--space-6) calc(2rem + var(--space-5));
  max-width: var(--measure);
}

.local-related nav {
  border-top: var(--border-thin);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.local-related nav a {
  align-items: center;
  border-bottom: var(--border-thin);
  display: grid;
  gap: var(--space-4);
  grid-template-columns: 2rem minmax(0, 1fr) auto;
  min-height: 6rem;
  padding: var(--space-5);
  text-decoration: none;
}

.local-related nav a:nth-child(odd) {
  border-right: var(--border-thin);
}

.local-related nav span {
  color: var(--local-accent);
  font-family: var(--font-editorial-latin);
  font-size: var(--font-small);
}

.local-related nav i {
  font-style: normal;
}

.local-related__title {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
}

.local-visit {
  background: var(--t-cream);
}

.local-visit__grid {
  display: grid;
  gap: clamp(var(--space-12), 8vw, var(--space-30));
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.85fr);
}

.local-visit header > p:last-child {
  color: var(--t-muted);
  font-size: var(--font-body-lg);
  max-width: var(--measure);
}

.local-contact {
  padding-block: clamp(var(--space-22), 10vw, var(--space-40));
}

.local-contact .local-shell {
  align-items: end;
  display: grid;
  gap: var(--space-12);
  grid-template-columns: minmax(0, 1.3fr) minmax(18rem, 0.7fr);
}

.local-contact__actions {
  align-items: stretch;
  flex-direction: column;
  margin-top: 0;
}

.local-contact__actions a {
  border-color: var(--t-on-wine-line);
  color: var(--t-on-wine);
}

.local-fab .at-fab span:first-child {
  font-family: var(--font-editorial-latin);
}

.guide-hero > .local-shell:not(.local-hero__grid) {
  max-width: var(--article-wide);
}

.guide-block,
.guide-directory,
.guide-sources {
  border-top: var(--border-thin);
  padding-block: clamp(var(--space-22), 9vw, var(--space-36));
}

.guide-block--tint,
.guide-directory {
  background: var(--t-paper-soft);
}

.guide-block__grid,
.guide-sources .local-shell {
  display: grid;
  gap: clamp(var(--space-10), 7vw, var(--space-24));
  grid-template-columns: minmax(15rem, 0.7fr) minmax(0, 1.3fr);
}

.guide-block h2,
.guide-directory h2,
.guide-sources h2 {
  font-size: clamp(2.1rem, 4.2vw, 3.75rem);
  line-height: 1.14;
}

.guide-block__grid > div > p,
.guide-sources p {
  color: var(--t-muted);
  font-size: var(--font-body-lg);
  max-width: var(--measure);
}

.guide-block ul,
.guide-sources ul {
  list-style: none;
  margin: var(--space-8) 0 0;
  padding: 0;
}

.guide-block li,
.guide-sources li {
  border-top: var(--border-thin);
  padding-block: var(--space-5);
}

.guide-block li::before {
  color: var(--local-accent);
  content: "—";
  margin-right: var(--space-3);
}

.guide-sources {
  background: var(--t-cream);
}

.guide-sources a {
  overflow-wrap: anywhere;
  text-underline-offset: 0.2em;
}

.guide-directory__item,
.guide-directory nav {
  border-top: var(--border-thin);
}

.guide-directory nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.guide-directory__item {
  align-items: center;
  border-bottom: var(--border-thin);
  display: grid;
  gap: var(--space-4);
  grid-template-columns: 3rem minmax(0, 1fr) auto;
  min-height: 6rem;
  padding: var(--space-5);
  text-decoration: none;
}

.guide-directory__item:nth-child(odd) {
  border-right: var(--border-thin);
}

.guide-directory__item span {
  color: var(--local-accent);
  font-family: var(--font-editorial-latin);
  font-size: var(--font-small);
}

.guide-directory__item i {
  font-style: normal;
}

@media (max-width: 56.25rem) {
  .theme-local-seo {
    --local-inset: 24px;
  }

  .local-hero {
    padding-block: calc(var(--header-height) + var(--space-16)) var(--space-22);
  }

  .local-hero__grid,
  .local-split,
  .local-check-grid,
  .local-contact .local-shell,
  .local-authority__grid,
  .local-visit__grid,
  .guide-block__grid,
  .guide-sources .local-shell {
    grid-template-columns: 1fr;
  }

  .local-split > header,
  .local-check-grid > div {
    position: static;
  }
}

@media (max-width: 47.9375rem) {
  .theme-local-seo {
    --local-inset: 18px;
  }

  .local-hero {
    padding-block: calc(var(--header-height) + var(--space-12)) var(--space-16);
  }

  .local-hero h1 {
    font-size: clamp(2rem, 9vw, 3rem);
    max-width: none;
    word-break: keep-all;
  }

  .local-hero__grid {
    gap: var(--space-12);
  }

  .local-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .local-action {
    width: 100%;
  }

  .local-action:not(.local-action--primary) {
    display: none;
  }

  .local-facts {
    margin-inline: calc(-1 * var(--local-inset));
    padding: var(--space-8) var(--local-inset);
  }

  .local-jump .local-shell {
    gap: var(--space-6);
  }

  .local-section {
    padding-block: var(--space-22);
  }

  .local-treatment-grid,
  .local-note-grid,
  .local-related nav,
  .guide-directory nav {
    grid-template-columns: 1fr;
  }

  .local-treatment:nth-child(odd),
  .local-note-grid a,
  .local-related nav a:nth-child(odd),
  .guide-directory__item:nth-child(odd) {
    border-right: 0;
  }

  .local-treatment {
    min-height: 0;
    padding-inline: 0;
  }

  .local-note-grid a {
    border-right: 0;
    min-height: 10rem;
    padding-inline: 0;
  }

  .local-authority figure {
    max-width: none;
  }

  .local-criteria li {
    gap: var(--space-4);
    grid-template-columns: 2.5rem minmax(0, 1fr);
  }

  .local-check-grid li {
    font-size: 1.0625rem;
    gap: var(--space-3);
    grid-template-columns: 2rem minmax(0, 1fr);
    word-break: keep-all;
  }

  .local-faq details > p {
    margin-left: 0;
  }

  .local-contact {
    padding-bottom: calc(var(--space-30) + env(safe-area-inset-bottom));
  }
}

@media (min-width: 48rem) {
  .local-fab {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .theme-local-seo *,
  .theme-local-seo *::before,
  .theme-local-seo *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
  }
}
