/* Tilmann Painting | CMSAgent public theme, v3
   Load after Bootstrap, primary_navigation.css, and public plugin styles.
   Bootstrap theme switch: <html data-bs-theme="light|dark">. */
:root {
  color-scheme: light;
  --tp-bg: #f8f9f8;
  --tp-panel: #ffffff;
  --tp-soft: #f0f3f3;
  --tp-ink: #1c2c3a;
  --tp-heading: #122b49;
  --tp-muted: #596b78;
  --tp-line: #dce3e5;
  --tp-blue: #175eaa;
  --tp-blue-hover: #104980;
  --tp-gold: #d39a35;
  --tp-nav: rgb(255 255 255 / 97%);
  --tp-footer: #142b45;
  --tp-ring: rgb(23 94 170 / 19%);
  --tp-radius: .75rem;
  --bs-body-color: var(--tp-ink);
  --bs-body-bg: var(--tp-bg);
  --bs-secondary-color: var(--tp-muted);
  --bs-tertiary-bg: var(--tp-soft);
  --bs-border-color: var(--tp-line);
  --bs-emphasis-color: var(--tp-heading);
  --bs-primary: var(--tp-blue);
  --bs-primary-rgb: 23, 94, 170;
  --cms-block-hero-min-height: 460px;
  --cms-block-hero-content-max-width: 800px;
  --cms-block-hero-scrim-color: rgb(12 29 48 / 55%);
  --cms-block-services-icon-color: var(--tp-blue);
  --cms-block-services-price-color: var(--tp-heading);
  --cms-block-file-thumbnail-fallback-bg: var(--tp-soft);
  --cms-block-gallery-masonry-gap: .85rem;
}
:root[data-bs-theme="dark"] {
  color-scheme: dark;
  --tp-bg: #191f25;
  --tp-panel: #242d35;
  --tp-soft: #2a353d;
  --tp-ink: #edf1f2;
  --tp-heading: #f8f9f8;
  --tp-muted: #b7c5ce;
  --tp-line: #41515c;
  --tp-blue: #9bccff;
  --tp-blue-hover: #c8e2ff;
  --tp-gold: #e8b45a;
  --tp-nav: rgb(27 35 42 / 97%);
  --tp-footer: #111c2b;
  --tp-ring: rgb(155 204 255 / 25%);
  --bs-primary-rgb: 155, 204, 255;
  --cms-block-hero-scrim-color: rgb(10 21 33 / 48%);
}
/* Use the OS preference only when CMSAgent has not set an explicit theme. */
@media (prefers-color-scheme: dark) {
  :root:not([data-bs-theme]) {
    color-scheme: dark;
    --tp-bg: #191f25; --tp-panel: #242d35; --tp-soft: #2a353d;
    --tp-ink: #edf1f2; --tp-heading: #f8f9f8; --tp-muted: #b7c5ce;
    --tp-line: #41515c; --tp-blue: #9bccff; --tp-blue-hover: #c8e2ff;
    --tp-gold: #e8b45a; --tp-nav: rgb(27 35 42 / 97%);
    --tp-footer: #111c2b; --tp-ring: rgb(155 204 255 / 25%);
    --bs-primary-rgb: 155, 204, 255;
    --cms-block-hero-scrim-color: rgb(10 21 33 / 48%);
  }
}

html { scroll-padding-top: 6rem; }
body { color: var(--tp-ink); background: var(--tp-bg); font-family: system-ui, -apple-system, "Segoe UI", sans-serif; }
h1, h2, h3, h4, h5, h6 { color: var(--tp-heading); font-weight: 700; letter-spacing: -.027em; }
p { line-height: 1.65; }
a { color: var(--tp-blue); text-underline-offset: .18em; }
a:hover { color: var(--tp-blue-hover); }
:focus-visible { outline: 3px solid var(--tp-gold); outline-offset: 3px; }
img, iframe { max-width: 100%; }

/* Navigation */
.site-navigation-header #site-navbar {
  background: var(--tp-nav); border-bottom: 1px solid var(--tp-line);
  box-shadow: 0 3px 16px rgb(9 29 49 / 5%); backdrop-filter: blur(12px);
}
.site-navigation-header .navbar-brand { display: inline-flex; align-items: center; gap: .7rem; color: var(--tp-heading); }
.site-navbar-brand-mark {
  display: grid; place-items: center; width: 2.4rem; height: 2.4rem; flex: 0 0 2.4rem;
  border-radius: .6rem; background: var(--tp-footer); color: var(--tp-gold);
}
.site-navbar-brand-copy { display: grid; line-height: 1.2; }
.site-navbar-brand-copy strong { font-size: 1.05rem; letter-spacing: -.02em; }
.site-navbar-brand-copy small { margin-top: .15rem; color: var(--tp-muted); font-size: .69rem; }
#site-navbar .navbar-nav .nav-link { color: var(--tp-ink); font-weight: 590; border-radius: .45rem; }
#site-navbar .navbar-nav .nav-link:is(:hover, .active) { color: var(--tp-blue); background: var(--tp-soft); }
#site-navbar .navbar-toggler { border-color: var(--tp-line); }
#site-navbar .site-navbar-search .form-control { min-width: 0; }
#site-navbar .dropdown-menu { background: var(--tp-panel); border: 1px solid var(--tp-line); border-radius: .65rem; box-shadow: 0 12px 30px rgb(0 0 0 / 10%); }
#site-navbar .dropdown-item:is(:focus, :hover) { color: var(--tp-heading); background: var(--tp-soft); }

/* CMS page and builder rows */
#container-main { padding: 0 0 4.5rem; }
#container-main > .container { max-width: 1200px; }
#container-main .row > [class*="col"] { min-width: 0; }
#container-main .content-block { margin-block: 1rem 1.75rem; }
#container-main .content-block-hero { margin-block: 0 2.5rem; }
#container-main .block-title { margin-bottom: .45rem; color: var(--tp-heading); font-size: clamp(1.4rem, 2.15vw, 1.9rem); font-weight: 690; letter-spacing: -.03em; line-height: 1.22; }
#container-main .block-subtitle { max-width: 70ch; margin-bottom: 1.2rem; color: var(--tp-muted); line-height: 1.55; }
#container-main .heading-block { font-size: clamp(2rem, 3.5vw, 3rem); line-height: 1.13; }
#container-main :is(.content-block-text, .content-block-html) { overflow-wrap: anywhere; }
#container-main :is(.content-block-text, .content-block-html) :is(p, ul, ol) { max-width: 75ch; }
/* CMSAgent's bg-body-tertiary utility sits on the columns in the sample page. */
#container-main .bg-body-tertiary { background-color: var(--tp-panel) !important; border: 1px solid var(--tp-line); }
#container-main :is(.bg-white, .bg-light, .bg-body) { background-color: var(--tp-panel) !important; }
#container-main .shadow-sm { box-shadow: 0 2px 10px rgb(14 31 42 / 4%) !important; }
#container-main .text-muted, #container-main .text-body-secondary { color: var(--tp-muted) !important; }

/* Keep image-led sections calm and let project photos provide the color. */
#container-main .hero-block {
  isolation: isolate; overflow: hidden;
  background-color: var(--tp-footer); box-shadow: none;
}
#container-main .hero-block h1 { color: #fff; font-size: clamp(2.25rem, 4.4vw, 4rem); line-height: 1.1; text-wrap: balance; }
#container-main .hero-block .lead { max-width: 56ch; margin: .9rem auto 1.55rem; color: #f5f7f8; font-size: clamp(1.03rem, 1.6vw, 1.24rem); }
#container-main .hero-block .btn { padding-inline: 1.45rem; }

/* Buttons and forms */
.btn { border-radius: .5rem; font-weight: 630; }
.btn-primary {
  --bs-btn-color: #fff; --bs-btn-bg: #175eaa; --bs-btn-border-color: #175eaa;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #104980; --bs-btn-hover-border-color: #104980;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #0e3d6b; --bs-btn-active-border-color: #0e3d6b;
}
.btn-outline-secondary {
  --bs-btn-color: var(--tp-ink); --bs-btn-border-color: var(--tp-line);
  --bs-btn-hover-color: var(--tp-heading); --bs-btn-hover-bg: var(--tp-soft); --bs-btn-hover-border-color: var(--tp-line);
}
.form-control, .form-select { border-color: var(--tp-line); border-radius: .5rem; }
.form-control:focus, .form-select:focus { border-color: var(--tp-blue); box-shadow: 0 0 0 .22rem var(--tp-ring); }
.form-label { color: var(--tp-heading); font-weight: 620; }
.form-text { color: var(--tp-muted); }
.form-check-input:checked { background-color: #175eaa; border-color: #175eaa; }

/* Cards and content blocks */
#container-main .card {
  color: var(--tp-ink); background: var(--tp-panel); border: 1px solid var(--tp-line);
  border-radius: var(--tp-radius); box-shadow: none; overflow: hidden;
}
#container-main .card-body { padding: clamp(1.15rem, 2vw, 1.6rem); }
#container-main .card-title { color: var(--tp-heading); font-weight: 680; }
#container-main .card-footer { background: var(--tp-panel); border-top: 1px solid var(--tp-line); }
#container-main .card-footer:empty { display: none; }
#container-main .service-card { transition: border-color .2s ease, transform .2s ease; }
@media (hover: hover) { #container-main .service-card:hover { border-color: var(--tp-blue); transform: translateY(-2px); } }
#container-main .service-icon { color: var(--tp-blue); }
#container-main .service-price { color: var(--tp-heading); }
#container-main .file-list .card { --cms-block-file-card-shadow: none; }
#container-main .cms-gallery figure { overflow: hidden; border-radius: .55rem; background: var(--tp-soft); }
#container-main .cms-gallery figure img { display: block; width: 100%; height: auto; }
#container-main .content-block-image img { border-radius: .55rem; }
#container-main .divider-block-rule { border-color: var(--tp-line); opacity: 1; }
#container-main .content-block-list li { margin-bottom: .4rem; }
#container-main :is(.content-block-file, .link-block) a { font-weight: 600; }
#container-main .icon-block { color: var(--tp-blue); }

/* FAQ, forms and widgets */
#container-main .faq-block {
  --bs-accordion-bg: var(--tp-panel); --bs-accordion-color: var(--tp-ink);
  --bs-accordion-btn-bg: var(--tp-panel); --bs-accordion-border-color: var(--tp-line);
  --bs-accordion-active-bg: var(--tp-soft); --bs-accordion-active-color: var(--tp-heading);
  --bs-accordion-btn-focus-box-shadow: 0 0 0 .2rem var(--tp-ring);
}
#container-main .faq-block .accordion-item { overflow: hidden; margin-bottom: .65rem; border: 1px solid var(--tp-line); border-radius: .55rem; }
#container-main .faq-block .accordion-button { color: var(--tp-heading); font-weight: 620; }
#container-main .cms-form { padding: clamp(1.15rem, 2.5vw, 1.8rem); background: var(--tp-panel); }
.modal-content, .offcanvas { border-color: var(--tp-line); }
#container-main :is(.ts-widget-shell, .gr-widget-shell, .payment-link-block) { border-radius: var(--tp-radius); }
#container-main :is(.ts-widget-title, .gr-widget-title) { color: var(--tp-heading); }


/* Footer */
body > footer.bg-body-tertiary { color: #e0e8ed; background: var(--tp-footer) !important; border-top: 1px solid var(--tp-line); }
body > footer.bg-body-tertiary :is(h5, h6) { color: #fff; }
body > footer.bg-body-tertiary a, body > footer.bg-body-tertiary .text-body-tertiary { color: #d5e0e9 !important; }
body > footer.bg-body-tertiary a:hover { color: #f1c87e !important; }
body > footer.bg-body-tertiary .business-profile-logo-icon { color: #f1c87e; }
body > footer.bg-body-tertiary hr { border-color: #748698 !important; }
@media (min-width: 1200px) {
  body > footer.bg-body-tertiary .row.gx-4 { display: grid; grid-template-columns: minmax(255px, 2.3fr) repeat(6, minmax(90px, 1fr)); gap: 1.4rem; }
  body > footer.bg-body-tertiary .row.gx-4 > * { width: auto; max-width: none; padding: 0; }
}

/* Explicit dark mode and OS fallback for Bootstrap utilities. */
:root[data-bs-theme="dark"] #container-main :is(.text-dark, .text-body) { color: var(--tp-ink) !important; }
:root[data-bs-theme="dark"] #container-main :is(.form-control, .form-select) { color: var(--tp-ink); background-color: var(--tp-panel); }
:root[data-bs-theme="dark"] #site-navbar .navbar-toggler-icon { filter: invert(1); }
@media (prefers-color-scheme: dark) {
  :root:not([data-bs-theme]) #container-main :is(.text-dark, .text-body) { color: var(--tp-ink) !important; }
  :root:not([data-bs-theme]) #container-main :is(.form-control, .form-select) { color: var(--tp-ink); background-color: var(--tp-panel); }
  :root:not([data-bs-theme]) #site-navbar .navbar-toggler-icon { filter: invert(1); }
}
@media (max-width: 1399.98px) {
  #site-navbar .navbar-collapse { padding-block: .85rem; max-height: calc(100dvh - 5rem); overflow-y: auto; }
  #site-navbar .site-navbar-search { margin-block: .7rem; }
}
@media (max-width: 767.98px) {
  #container-main { padding-block: 1.25rem 3rem; }
  #container-main .hero-block { min-height: 380px !important; }
  #container-main .hero-block > .position-relative { padding: 1.5rem !important; }
  #container-main .content-block { margin-block: 1rem 1.5rem; }
  .site-navbar-brand-copy small { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  #container-main .service-card { transition: none; }
}

/* Tilmann Painting — Contact page */
#container-main .row:has(.content-block-form[data-page-id="2"]) {
  display: grid;
  grid-template-columns: minmax(240px, 0.8fr) minmax(0, 1.5fr);
  align-items: start;
  gap: clamp(1.25rem, 3vw, 2.5rem);
}

#container-main .row:has(.content-block-form[data-page-id="2"]) > .col {
  width: auto;
  min-width: 0;
}

#container-main .row:has(.content-block-form[data-page-id="2"])
  > .col:has(.content-block-form) {
  padding: clamp(1.4rem, 3vw, 2.5rem);
  background: var(--tp-panel) !important;
  border: 1px solid var(--tp-line) !important;
  border-radius: var(--tp-radius) !important;
  box-shadow: none !important;
}

#container-main .content-block-form[data-page-id="2"] {
  margin: 0;
}

#container-main .content-block-form[data-page-id="2"] .block-title {
  margin-bottom: 0.75rem;
  font-size: clamp(2rem, 3vw, 2.75rem);
  line-height: 1.12;
}

#container-main .content-block-form[data-page-id="2"] .block-subtitle {
  max-width: 60ch;
  margin-bottom: 1rem;
  font-size: 1.075rem;
  line-height: 1.6;
}

#container-main .content-block-form[data-page-id="2"] > p {
  max-width: 68ch;
  margin-bottom: 1.75rem;
  color: var(--tp-muted);
}

#container-main .content-block-form[data-page-id="2"] .cms-form {
  padding: 1.5rem 0 0;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--tp-line);
  border-radius: 0;
}

#container-main .content-block-form[data-page-id="2"] .form-label {
  margin-bottom: 0.4rem;
  color: var(--tp-heading);
  font-weight: 620;
}

#container-main .content-block-form[data-page-id="2"]
  :is(.form-control, .form-select) {
  min-height: 2.8rem;
  padding: 0.6rem 0.8rem;
  color: var(--tp-ink);
  background: var(--tp-panel);
  border: 1px solid var(--tp-line);
  border-radius: 0.5rem;
}

#container-main .content-block-form[data-page-id="2"]
  :is(.form-control, .form-select):focus {
  border-color: var(--tp-blue);
  box-shadow: 0 0 0 0.22rem var(--tp-ring);
}

#container-main .content-block-form[data-page-id="2"] textarea.form-control {
  min-height: 8.5rem;
  resize: vertical;
}

#container-main .content-block-form[data-page-id="2"] [role="radiogroup"] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 1.4rem;
}

#container-main .content-block-form[data-page-id="2"] .form-check {
  margin-bottom: 0;
}

#container-main .content-block-form[data-page-id="2"] button[type="submit"] {
  min-height: 2.8rem;
  padding-inline: 1.7rem;
}

#container-main .row:has(.content-block-form[data-page-id="2"])
  .content-block-testimonials {
  margin-top: 0;
}

#container-main .row:has(.content-block-form[data-page-id="2"])
  .ts-widget-shell {
  background: var(--tp-soft);
  border: 1px solid var(--tp-line);
  border-radius: var(--tp-radius);
  box-shadow: none;
}

@media (max-width: 767.98px) {
  #container-main .row:has(.content-block-form[data-page-id="2"]) {
    grid-template-columns: minmax(0, 1fr);
  }

  #container-main .row:has(.content-block-form[data-page-id="2"])
    > .col:has(.content-block-form) {
    order: -1;
    padding: 1.25rem;
  }

  #container-main .content-block-form[data-page-id="2"]
    [role="radiogroup"] {
    gap: 0.35rem 1rem;
  }
}

/* Contact page refinements */
#container-main .row:has(.content-block-form[data-page-id="2"]) {
  align-items: start;
  gap: clamp(1.25rem, 3vw, 2.25rem);
}

/* Remove the extra surface around the testimonials widget. */
#container-main .row:has(.content-block-form[data-page-id="2"])
  > .col:has(.content-block-testimonials) {
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

#container-main .row:has(.content-block-form[data-page-id="2"])
  .content-block-testimonials,
#container-main .row:has(.content-block-form[data-page-id="2"])
  .ts-widget {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

#container-main .row:has(.content-block-form[data-page-id="2"])
  .ts-widget-shell {
  padding: clamp(1.25rem, 2.5vw, 1.75rem) !important;
  background: var(--tp-panel) !important;
  border: 1px solid var(--tp-line) !important;
  border-radius: var(--tp-radius) !important;
  box-shadow: none !important;
}

/* Tighter widget heading, empty state, and footer. */
#container-main .row:has(.content-block-form[data-page-id="2"])
  .ts-widget-header {
  margin: 0 0 1.25rem !important;
  padding: 0 !important;
}

#container-main .row:has(.content-block-form[data-page-id="2"])
  .ts-widget-title {
  max-width: none;
  margin: 0.6rem 0 0 !important;
  font-size: clamp(1.45rem, 2vw, 1.85rem) !important;
  line-height: 1.2;
  text-align: left;
}

#container-main .row:has(.content-block-form[data-page-id="2"])
  .ts-widget-heading-group {
  text-align: left;
}

#container-main .row:has(.content-block-form[data-page-id="2"])
  .ts-widget-list {
  margin: 0 0 1rem !important;
  padding: 0 !important;
}

#container-main .row:has(.content-block-form[data-page-id="2"])
  .ts-widget-state-empty {
  min-height: 0 !important;
  margin: 0 !important;
  padding: 1rem !important;
  background: var(--tp-soft) !important;
  border: 1px solid var(--tp-line) !important;
  border-radius: 0.55rem !important;
}

#container-main .row:has(.content-block-form[data-page-id="2"])
  .ts-widget-share-link {
  margin: 0 0 1rem !important;
  padding: 0 !important;
}

#container-main .row:has(.content-block-form[data-page-id="2"])
  .ts-widget-footer {
  margin: 0 !important;
  padding: 0.9rem 0 0 !important;
  border-top: 1px solid var(--tp-line);
}

/* Three clear levels: headline, lead, then supporting detail. */
#container-main .content-block-form[data-page-id="2"] .block-title {
  margin: 0 0 0.75rem !important;
  color: var(--tp-heading);
  font-size: clamp(2.1rem, 3vw, 2.75rem);
  font-weight: 720;
  line-height: 1.08;
  letter-spacing: -0.035em;
}

#container-main .content-block-form[data-page-id="2"] .block-subtitle {
  max-width: 48ch;
  margin: 0 0 1rem !important;
  color: var(--tp-heading);
  font-size: clamp(1.12rem, 1.5vw, 1.3rem);
  font-weight: 550;
  line-height: 1.5;
}

#container-main .content-block-form[data-page-id="2"] > p {
  max-width: 65ch;
  margin: 0 0 1.75rem !important;
  color: var(--tp-muted);
  font-size: 0.975rem;
  font-weight: 400;
  line-height: 1.7;
}

#container-main .content-block-form[data-page-id="2"] .cms-form {
  margin-top: 0 !important;
  padding-top: 1.65rem !important;
  border-top: 1px solid var(--tp-line);
}

@media (max-width: 767.98px) {
  #container-main .row:has(.content-block-form[data-page-id="2"])
    > .col:has(.content-block-testimonials) {
    margin-top: 0.5rem;
  }
}

/* Full-width home hero */
#container-main .row.cms-row-breakout {
  --bs-gutter-x: 0;
  --bs-gutter-y: 0;

  width: 100vw;
  margin: 0 0 0 calc(50% - 50vw);
}

#container-main .row.cms-row-breakout > .col {
  padding: 0;
}

#container-main .row.cms-row-breakout .content-block-hero {
  margin: 0;
}

#container-main .row.cms-row-breakout .hero-block {
  width: 100%;
  border-radius: 0;
}

/* Remove page padding above the breakout hero. */
#container-main:has(> .container > .cms-row-breakout) {
  padding-top: 0;
}

/* Stronger page and section headlines */
#container-main .heading-block,
#container-main .block-title,
#container-main .team-profile-section h2 {
  color: var(--tp-heading);
  font-weight: 750;
  letter-spacing: -0.035em;
  line-height: 1.15;
}

#container-main .heading-block {
  font-size: clamp(2.35rem, 4vw, 3.5rem);
}

#container-main .block-title,
#container-main .team-profile-section h2 {
  font-size: clamp(1.65rem, 2.4vw, 2.15rem);
}

#container-main .heading-block::after,
#container-main .block-title::after,
#container-main .team-profile-section h2::after {
  content: "";
  display: block;
  width: 3rem;
  height: 3px;
  margin-top: 0.8rem;
  border-radius: 999px;
  background: var(--tp-gold);
}

/* Keep the accent centered under centered page headings. */
#container-main .content-block-heading .heading-block::after {
  margin-inline: auto;
}

/* The hero already has a photograph, so use type rather than an accent line. */
#container-main .hero-block h1 {
  font-size: clamp(2.6rem, 5vw, 4.5rem);
  font-weight: 760;
  letter-spacing: -0.045em;
  line-height: 1.08;
  text-shadow: 0 2px 18px rgb(0 0 0 / 30%);
}

/* Refined headline treatment */
#container-main .heading-block::after,
#container-main .block-title::after,
#container-main .team-profile-section h2::after {
  display: none;
}

#container-main .content-block-form[data-page-id="2"] .block-title {
  width: fit-content;
  max-width: 100%;
  margin: 0 0 1.15rem !important;
  padding: 0.1rem 0 0.1rem 1.1rem;
  border-left: 4px solid var(--tp-gold);
  font-size: clamp(2.2rem, 3.4vw, 3.1rem);
  font-weight: 760;
  letter-spacing: -0.045em;
  line-height: 1.08;
}

#container-main .content-block-form[data-page-id="2"] .block-subtitle {
  max-width: 48ch;
  margin-bottom: 1rem !important;
  color: var(--tp-heading);
  font-size: clamp(1.1rem, 1.4vw, 1.25rem);
  font-weight: 600;
  line-height: 1.5;
}

#container-main .content-block-form[data-page-id="2"] > p {
  color: var(--tp-muted);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.7;
}

/* Visible navbar icon in both light and dark modes */
#site-navbar .navbar-toggler {
  color: var(--tp-heading);
  background: var(--tp-soft);
  border: 1px solid var(--tp-line);
  border-radius: 0.6rem;
}

#site-navbar .navbar-toggler:hover {
  background: var(--tp-panel);
}

#site-navbar .navbar-toggler-icon,
:root[data-bs-theme="dark"] #site-navbar .navbar-toggler-icon {
  color: var(--tp-heading);
  filter: none !important;
  background-image:
    linear-gradient(currentColor, currentColor),
    linear-gradient(currentColor, currentColor),
    linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-size: 21px 2px, 21px 2px, 21px 2px;
  background-position: center 25%, center 50%, center 75%;
}

#site-navbar .navbar-toggler:focus-visible {
  outline: 3px solid var(--tp-gold);
  outline-offset: 2px;
  box-shadow: none;
}
/* Consistent content block headings */
#container-main .content-block > .block-title {
  width: fit-content;
  max-width: 100%;
  margin: 0 0 0.8rem;
  padding: 0.1rem 0 0.1rem 0.9rem;
  border-left: 3px solid var(--tp-gold);
  color: var(--tp-heading);
  font-size: clamp(1.55rem, 2.3vw, 2rem);
  font-weight: 730;
  letter-spacing: -0.035em;
  line-height: 1.18;
}

#container-main .content-block > .block-title::after {
  display: none;
}

#container-main .content-block > .block-subtitle {
  max-width: 65ch;
  margin: 0 0 1.35rem;
  color: var(--tp-muted);
  font-size: clamp(1rem, 1.2vw, 1.1rem);
  font-weight: 450;
  line-height: 1.55;
}

/* Give the Contact Us heading its larger page-title size. */
#container-main .content-block-form[data-page-id="2"] > .block-title {
  padding-left: 1.1rem;
  border-left-width: 4px;
  font-size: clamp(2.2rem, 3.4vw, 3.1rem);
}

#container-main .content-block-form[data-page-id="2"] > .block-subtitle {
  color: var(--tp-heading);
  font-weight: 600;
}

/* Keep business details readable on the dark footer in both themes */
body > footer.bg-body-tertiary .business-profile-footer {
  --bs-tertiary-color: #d9e3ec;
  --bs-secondary-color: #d9e3ec;
  color: #d9e3ec;
}

body > footer.bg-body-tertiary .business-profile-footer
  :is(p, li, span, .text-body-tertiary) {
  color: #d9e3ec !important;
}

body > footer.bg-body-tertiary .business-profile-footer a {
  color: #e8f0f7 !important;
  text-decoration-color: currentColor;
}

body > footer.bg-body-tertiary .business-profile-footer a:hover {
  color: #f1c87e !important;
}

body > footer.bg-body-tertiary .business-profile-footer .bi {
  color: #b8ccdc;
}

/* Business profile layout */
body > footer.bg-body-tertiary .business-profile-footer {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.8rem;
  max-width: 34ch;
  margin-top: 1.25rem;
}

body > footer.bg-body-tertiary .business-profile-logo {
  display: block;
  width: 76px;
  height: 76px;
  margin: 0 0 0.35rem !important;
  object-fit: contain;
  border-radius: 50%;
}

body > footer.bg-body-tertiary .business-profile-footer p {
  margin: 0 !important;
  color: #d9e3ec !important;
  font-size: 0.925rem;
  line-height: 1.6;
}

body > footer.bg-body-tertiary .business-profile-footer p:first-of-type {
  color: #f1f5f8 !important;
  font-weight: 550;
}

body > footer.bg-body-tertiary .business-profile-contacts {
  display: grid;
  gap: 0.45rem;
  margin: 0 !important;
  padding: 0;
}

body > footer.bg-body-tertiary .business-profile-contacts li {
  margin: 0;
  color: #d9e3ec !important;
  font-size: 0.925rem;
  line-height: 1.5;
}

body > footer.bg-body-tertiary .business-profile-contacts a {
  font-weight: 600;
  text-underline-offset: 0.2em;
}

body > footer.bg-body-tertiary .business-profile-social {
  margin-top: 0.2rem;
}

body > footer.bg-body-tertiary .business-profile-social a {
  display: inline-grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid rgb(255 255 255 / 22%);
  border-radius: 0.5rem;
  font-size: 1.1rem;
  text-decoration: none;
}

body > footer.bg-body-tertiary .business-profile-social a:hover {
  background: rgb(255 255 255 / 10%);
}


#container-main .content-block > .block-title {
  border-left: 3px solid var(--tp-blue);
  border-image: linear-gradient(
    to bottom,
    #1769bd 0%,
    #f4c54e 50%,
    #f26b35 100%
  ) 1;
}

#container-main .content-block-form[data-page-id="2"] > .block-title {
  border-left-width: 4px;
}