/*
 * Shared editorial treatment for public entity widgets.
 * Every rule is rooted in .public-site and a widget namespace so the
 * administrative shell and unrelated cards retain their existing language.
 */
.public-site {
  --shared-paper: #f3f1e9;
  --shared-ink: #17342e;
  --shared-muted: #60746b;
  --shared-line: #d5ddd5;
  --shared-moss: #275749;
  --shared-rust: #a95334;
  --shared-sun: #e8c873;
}

.public-site .editorial-related-tours,
.public-site .editorial-premium-cards,
.public-site .editorial-content-sidebar,
.public-site .editorial-info-card,
.public-site .editorial-reviews,
.public-site .editorial-latest-research {
  color: var(--shared-ink);
  font-family: "DM Sans", Inter, sans-serif;
}

.public-site .editorial-related-tours,
.public-site .editorial-premium-cards > div,
.public-site .editorial-content-sidebar > div,
.public-site .editorial-info-card,
.public-site .editorial-reviews > div,
.public-site .editorial-latest-research {
  border-radius: 0;
  box-shadow: 0 8px 24px rgba(23, 52, 46, .07);
}

.public-site .editorial-related-tours {
  background: #faf9f4;
  border-color: var(--shared-line);
}

.public-site .editorial-related-tours h2,
.public-site .editorial-premium-cards h3,
.public-site .editorial-content-sidebar h3,
.public-site .editorial-info-card h3,
.public-site .editorial-reviews h2,
.public-site .editorial-reviews h3,
.public-site .editorial-latest-research h3 {
  font-family: Fraunces, "Playfair Display", Georgia, serif;
  font-weight: 500;
  letter-spacing: -.03em;
}

.public-site .editorial-related-tours h2,
.public-site .editorial-premium-cards h3 {
  font-size: 1.45rem;
}

.public-site .editorial-related-tours > p,
.public-site .editorial-premium-cards .text-\[10px\],
.public-site .editorial-content-sidebar .text-xs.font-semibold,
.public-site .editorial-info-card p.text-xs {
  font-family: "DM Mono", ui-monospace, monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.public-site .editorial-related-tours > p {
  color: var(--shared-muted);
  font-size: .68rem;
}

.public-site .editorial-related-tours a,
.public-site .editorial-premium-cards > div > div > a {
  border-radius: 0;
  border: 1px solid var(--shared-line);
  box-shadow: none;
}

.public-site .editorial-related-tours a:hover,
.public-site .editorial-related-tours a:focus-visible {
  background: var(--shared-moss);
  color: #fff;
}

.public-site .editorial-premium-cards > div {
  background: #faf9f4;
  border-color: var(--shared-line);
}

.public-site .editorial-premium-cards > div > div:first-child {
  border-bottom: 1px solid var(--shared-line);
}

.public-site .editorial-premium-cards > div > div > a {
  border-color: var(--shared-line);
  box-shadow: 0 4px 14px rgba(23, 52, 46, .06);
}

.public-site .editorial-premium-cards > div > div > a img {
  border-radius: 0;
}

.public-site .editorial-premium-cards h4 {
  font-family: Fraunces, "Playfair Display", Georgia, serif;
  font-weight: 500;
  letter-spacing: -.025em;
}

.public-site .editorial-content-sidebar {
  gap: 1.25rem;
}

.public-site .editorial-content-sidebar > div {
  border-color: var(--shared-line);
  box-shadow: 0 6px 20px rgba(23, 52, 46, .06);
}

.public-site .editorial-content-sidebar > div:first-child > div:first-child {
  background: var(--shared-moss);
}

.public-site .editorial-content-sidebar > div:first-child > div:last-child {
  background: #faf9f4;
}

.public-site .editorial-content-sidebar .group:hover {
  background: #eeefe8;
}

.public-site .editorial-content-sidebar > .editorial-sidebar-cta {
  background: var(--shared-moss);
  box-shadow: none;
  color: #fff;
}

.public-site .editorial-content-sidebar > .editorial-sidebar-cta h3,
.public-site .editorial-content-sidebar > .editorial-sidebar-cta p,
.public-site .editorial-content-sidebar > .editorial-sidebar-cta a {
  color: #fff;
}

.public-site .editorial-info-card {
  background: #faf9f4;
  border-color: var(--shared-line);
  padding: 1.5rem;
  color: var(--shared-ink);
}

/* Keep each card's foreground explicit: utility classes and editorial
 * parent surfaces must not turn labels into low-contrast inherited text. */
.public-site .editorial-info-card--contact,
.public-site .editorial-info-card--location,
.public-site .editorial-info-card--pricing {
  background: #faf9f4;
  color: var(--shared-ink);
}

.public-site .editorial-info-card--contact h3,
.public-site .editorial-info-card--contact p,
.public-site .editorial-info-card--location h3,
.public-site .editorial-info-card--location p,
.public-site .editorial-info-card--pricing h3,
.public-site .editorial-info-card--pricing p {
  color: var(--shared-ink);
}

.public-site .editorial-info-card--contact a,
.public-site .editorial-info-card--location a,
.public-site .editorial-info-card--pricing a {
  color: #1d5b53;
}

.public-site .editorial-info-card--booking {
  background: var(--shared-ink);
  border-color: var(--shared-ink);
  color: #fff;
}

.public-site .editorial-info-card--booking h3,
.public-site .editorial-info-card--booking p,
.public-site .editorial-info-card--booking div {
  color: #fff;
}

.public-site .editorial-info-card a,
.public-site .editorial-content-sidebar a,
.public-site .editorial-reviews a,
.public-site .editorial-reviews button {
  transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}

.public-site .editorial-info-card--booking a {
  border-radius: 0;
  border-color: var(--shared-sun);
  background: var(--shared-sun);
  color: var(--shared-ink);
}

.public-site .editorial-info-card--booking a:hover {
  background: #f6d983;
}

/* The course contact card predates the shared macro but uses the same
 * public sidebar treatment. Keep its dark editorial surface readable
 * without changing its form hooks or submission behavior. */
.public-site .course-editorial aside > div:has(#course-contact-form) {
  color: #fff;
}

.public-site .course-editorial aside > div:has(#course-contact-form) h3,
.public-site .course-editorial aside > div:has(#course-contact-form) label,
.public-site .course-editorial aside > div:has(#course-contact-form) p {
  color: #fff;
}

.public-site .course-editorial aside > div:has(#course-contact-form) input,
.public-site .course-editorial aside > div:has(#course-contact-form) textarea {
  color: var(--shared-ink);
  background: #fff;
}

.public-site .editorial-reviews h2 {
  font-size: clamp(1.8rem, 4vw, 2.5rem);
}

.public-site .editorial-reviews > div {
  background: #faf9f4;
  border: 1px solid var(--shared-line);
}

.public-site .editorial-latest-research {
  background: var(--shared-ink);
  border-color: var(--shared-moss);
}

.public-site .editorial-latest-research a {
  border-radius: 0;
  border-color: rgba(232, 200, 115, .35);
}

.public-site .editorial-latest-research a:hover {
  background: rgba(232, 200, 115, .12);
  border-color: rgba(232, 200, 115, .7);
}

.public-site .editorial-related-tours a:focus-visible,
.public-site .editorial-premium-cards a:focus-visible,
.public-site .editorial-content-sidebar a:focus-visible,
.public-site .editorial-info-card a:focus-visible,
.public-site .editorial-info-card button:focus-visible,
.public-site .editorial-reviews a:focus-visible,
.public-site .editorial-reviews button:focus-visible,
.public-site .editorial-latest-research a:focus-visible {
  outline: 3px solid var(--shared-rust);
  outline-offset: 3px;
}

@media (max-width: 640px) {
  .public-site .editorial-related-tours,
  .public-site .editorial-premium-cards,
  .public-site .editorial-content-sidebar,
  .public-site .editorial-info-card,
  .public-site .editorial-reviews,
  .public-site .editorial-latest-research {
    max-width: 100%;
    min-width: 0;
  }

  .public-site .editorial-related-tours,
  .public-site .editorial-premium-cards > div,
  .public-site .editorial-info-card,
  .public-site .editorial-latest-research {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .public-site .editorial-content-sidebar {
    overflow-wrap: anywhere;
  }
}