/* Shared palette. Pale surfaces and translucent borders derive from these colors. */
:root {
  --font-heading: "Anton", system-ui, sans-serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --tracking-heading: -0.01em;
  --leading-heading: 1.1;
  --leading-body: 1.6;
  --text-display: 54.9px;
  --text-h1: 43.9px;
  --text-h2: 35.2px;
  --text-h3: 28.1px;
  --text-h4: 22.5px;
  --text-body: 18px;
  --text-small: 14.4px;
  --text-caption: 11.5px;
  --primary-color: #6b9587;
  --secondary-color: #5a3d2d;
  --success-color: #6b9587;
  --alert-color: #5a3d2d;
}
body, #wrapper, #wrapper p, #wrapper li, #wrapper a,
#wrapper label, #wrapper input, #wrapper textarea, #wrapper select,
#wrapper button, #wrapper .button, #wrapper table, #wrapper .text,
#wrapper .nav, .mfp-content, .ds-contact-modal {
  font-family: var(--font-body) !important;
}
body, #wrapper p, .mfp-content p, .ds-contact-modal p {
  font-weight: 400 !important;
  line-height: var(--leading-body) !important;
}
body { font-size: var(--text-body) !important; }
#wrapper p, .mfp-content p, .ds-contact-modal p {
  font-size: var(--text-body) !important;
}
#wrapper h1, #wrapper h2, #wrapper h3, #wrapper h4, #wrapper h5, #wrapper h6,
#wrapper .heading-font, #wrapper .section-title,
.ds-contact-modal h2, .ds-contact-modal h3 {
  font-family: var(--font-heading) !important;
  font-weight: 400 !important;
  letter-spacing: var(--tracking-heading) !important;
  line-height: var(--leading-heading) !important;
}
body h1 { font-size: var(--text-h1) !important; }
body h2 { font-size: var(--text-h2) !important; }
body h3 { font-size: var(--text-h3) !important; }
body h4 { font-size: var(--text-h4) !important; }
#wrapper :is(h1,h2,h3,h4,h5,h6) :is(span,strong,b,a),
#wrapper .section-title :is(span,strong,b,a) {
  font-family: inherit !important;
  font-weight: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}
#wrapper :is(h1,h2,h3,h4,h5,h6) { color: var(--ds-brand-brown); }
#wrapper .dark :is(h1,h2,h3,h4,h5,h6) { color: var(--ds-brand-white); }
#wrapper a:not(.button):focus-visible, #wrapper button:focus-visible,
#wrapper input:focus-visible, #wrapper select:focus-visible, #wrapper textarea:focus-visible {
  outline: 2px solid var(--ds-brand-brown);
  outline-offset: 3px;
}
.footer-wrapper > .section > .section-content > .row > .col:nth-child(2) .text a {
  color: var(--ds-brand-brown);
}
.footer-wrapper > .section > .section-content > .row > .col:nth-child(2) .text a:hover {
  color: var(--ds-brand-green);
}
.ds-brand-drawer .ds-brand-link--menu { color: var(--ds-brand-black); }
.ds-cake-sweets .ds-cake-sweets-badge { background: var(--ds-brand-surface); }
.ds-blogs .ds-blogs-category { color: var(--ds-brand-brown); }
.ds-contact-page-status.is-error, .ds-contact-modal__status.is-error,
.ds-cake-order-status.is-error, .ds-blogs-quote .ds-quote-field label span {
  color: var(--ds-brand-brown);
}
.ds-event-consult .ds-teabreak-consult__status.is-error { color: var(--ds-brand-white); }
#wrapper [style*="color: #333333"], #wrapper [style*="color:#333333"] {
  color: var(--ds-brand-black) !important;
}
.ds-brand-search input { border-color: var(--ds-brand-mint); }
.ds-brand-drawer .ds-brand-link--menu { border-top-color: var(--ds-brand-mint); }

/* Keep the blog search input borderless when focused. */
#wrapper .ds-blogs-search input[type="search"],
#wrapper .ds-blogs-search input[type="search"]:focus,
#wrapper .ds-blogs-search input[type="search"]:focus-visible {
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Center the homepage latest-posts section on phones only. */
@media (max-width: 549px) {
  .home .ds-home-blog { padding-inline: 16px; }
  .home .ds-home-blog .section-title-container {
    width: 100%;
    margin-inline: auto;
    padding-inline: 0;
    text-align: center;
  }
  .home .ds-home-blog .section-title {
    justify-content: center;
    text-align: center;
  }
  .home .ds-home-blog .section-title-main {
    min-width: 0;
    text-align: center;
  }
  .home .ds-home-blog > .section-content > .row {
    width: 100%;
    max-width: 480px;
    margin-inline: auto !important;
    justify-content: center;
  }
  .home .ds-home-blog .post-item {
    padding-inline: 0;
    text-align: center;
  }
  .home .ds-home-blog .post-item > .col-inner {
    margin-inline: auto;
  }
  .home .ds-home-blog .box-text { text-align: center; }
  .home .ds-home-blog .is-divider { margin-inline: auto; }
}

/* Blog consultation: readable light text on the brown panel, dark text on the form. */
#wrapper .ds-blogs-quote .ds-blogs-quote-panel {
  background: var(--ds-brand-brown);
  box-shadow: 0 16px 36px rgb(90 61 45 / 14%);
}
#wrapper .ds-blogs-quote-copy { color: var(--ds-brand-white); }
#wrapper .ds-blogs-quote-copy :is(h2,h3,h4) { color: var(--ds-brand-white) !important; }
#wrapper .ds-blogs-quote-tag p,
#wrapper .ds-blogs-quote-lead p { color: var(--ds-brand-mint) !important; }
#wrapper .ds-blogs-quote-benefit {
  background: rgb(184 217 205 / 10%);
  border: 1px solid rgb(184 217 205 / 24%);
}
#wrapper .ds-blogs-quote-benefit p { color: var(--ds-brand-white); }
#wrapper .ds-blogs-quote-benefit::before {
  background: var(--ds-brand-mint);
  color: var(--ds-brand-brown);
}
#wrapper .ds-blogs-quote-card {
  background: var(--ds-brand-white);
  color: var(--ds-brand-brown);
}
#wrapper .ds-blogs-quote-card :is(h2,h3,h4,p,label) { color: var(--ds-brand-brown); }
#wrapper .ds-blogs-quote .ds-quote-field :is(input,select) {
  background: var(--ds-brand-surface);
  color: var(--ds-brand-brown);
  border-color: var(--ds-brand-mint);
}
#wrapper .ds-blogs-quote .ds-quote-field input::placeholder {
  color: var(--ds-brand-brown);
  opacity: .75;
}
#wrapper .ds-blogs-quote .ds-blogs-quote-form button {
  background: var(--ds-brand-brown) !important;
  color: var(--ds-brand-white);
}
#wrapper .ds-blogs-quote .ds-blogs-quote-form button:hover {
  background: var(--ds-brand-mint) !important;
  color: var(--ds-brand-brown);
}

/* Footer exceptions to the sitewide typography scale. */
#wrapper .footer-wrapper {
  --text-body: 16px;
  --text-h1: 20px;
  --text-h2: 20px;
  --text-h3: 20px;
  --text-h4: 20px;
}
#wrapper .footer-wrapper p,
#wrapper .footer-wrapper a {
  font-size: 16px !important;
}
#wrapper .footer-wrapper :is(h1,h2,h3,h4,h5,h6) {
  font-size: 20px !important;
}
#wrapper .footer-wrapper > .section > .section-content > .row {
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
}

/* Event CTA: typography must flow instead of overlapping absolute banner layers. */
.ds-event-consult-native__row {
  background: var(--ds-brand-green);
  align-items: stretch;
}
.ds-event-consult-native__row > .col { padding-bottom: 0; }
.ds-event-consult-native__row > .col > .col-inner {
  padding: 32px !important;
}
.ds-event-consult-native__copy > .col-inner {
  display: flex;
  align-items: center;
}
.ds-event-consult-native__canvas {
  width: 100%;
  height: auto !important;
  padding-top: 0 !important;
}
.ds-event-consult-native__canvas .banner-inner,
.ds-event-consult-native__canvas .banner-layers {
  position: relative !important;
  height: auto !important;
}
.ds-event-consult-native__canvas .banner-layers {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 0;
}
.ds-event-consult-native__canvas .banner-link { display: none; }
.ds-event-consult-native__canvas .text-box {
  position: static !important;
  width: 100% !important;
  margin: 0 !important;
  transform: none !important;
}
.ds-event-consult-native__canvas .text-inner { text-align: left; }
#wrapper .ds-event-consult-native__title h2,
#wrapper .ds-event-consult-native__intro p { margin: 0; }
.ds-event-consult-native__button-layer .button {
  margin: 4px 0 0;
  color: var(--ds-brand-brown) !important;
  white-space: normal;
  text-align: center;
}
.ds-event-consult-native__button-layer .button:hover {
  background: var(--ds-brand-mint) !important;
}
.ds-event-consult-native .ds-event-consult__form { width: 100%; }
@media (min-width: 920px) {
  .ds-event-consult-native__copy > .col-inner { padding-left: 40px !important; }
}
@media (max-width: 849px) {
  .ds-event-consult-native__row > .col > .col-inner { height: auto; }
  .ds-event-consult-native__row > .col + .col > .col-inner { padding-top: 0 !important; }
}
@media (max-width: 549px) {
  .ds-event-consult-native__row > .col > .col-inner { padding: 24px !important; }
  .ds-event-consult-native .ds-event-consult__field input,
  .ds-event-consult-native .ds-event-consult__field select { font-size: 16px; }
}
