/* DMT Bodywork & Muscular Therapy: Additional CSS. Paste into Customize > Additional CSS, replacing everything.
   Only what free Astra and Elementor can't set. Colours are Astra Global Palette slots (color-0 = slot 1). */

:root {
  --icon-home: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 3l9 8'/%3E%3Cpath d='M5 9.5V21h5v-6h4v6h5V9.5'/%3E%3C/svg%3E");
  --icon-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7'%3E%3Crect x='3' y='5' width='18' height='16'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");
}

/* 1 Sticky header */
#masthead { position: sticky; top: 0; z-index: 999; }
.admin-bar #masthead { top: 32px; }
@media (max-width: 782px) { .admin-bar #masthead { top: 46px; } }

/* 2 Desktop menu: current page tab, hover tile and rule, home icon */
.ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link { position: relative; }
.ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link::after { content: ""; position: absolute; left: 0; right: 0; bottom: -3px; height: 3px; background: transparent; }
.ast-builder-menu-1 .main-header-menu > .menu-item:hover > .menu-link { background: var(--ast-global-color-7); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.ast-builder-menu-1 .main-header-menu > .menu-item:hover > .menu-link::after { background: var(--ast-global-color-1); }
.ast-builder-menu-1 .main-header-menu > .current-menu-item > .menu-link,
.ast-builder-menu-1 .main-header-menu > .current-menu-ancestor > .menu-link { background: var(--ast-global-color-4); font-weight: 600; text-decoration: none; }
.ast-builder-menu-1 .main-header-menu > .current-menu-item > .menu-link::after,
.ast-builder-menu-1 .main-header-menu > .current-menu-ancestor > .menu-link::after { background: var(--ast-global-color-4); }
.ast-builder-menu-1 .main-header-menu > .menu-item-home > .menu-link,
.ast-builder-menu-1 .main-header-menu > .menu-item:first-child > .menu-link { font-size: 0; }
.ast-builder-menu-1 .main-header-menu > .menu-item:first-child > .menu-link::before,
.ast-mobile-popup-drawer .main-header-menu > .menu-item:first-child > .menu-link::before {
  content: ""; display: inline-block; width: 22px; height: 22px; flex: none; background: var(--ast-global-color-1);
  -webkit-mask: var(--icon-home) center / contain no-repeat; mask: var(--icon-home) center / contain no-repeat;
}
.ast-mobile-popup-drawer .main-header-menu > .menu-item:first-child > .menu-link::before { margin-right: 12px; }

/* 3 Dropdowns */
.ast-builder-menu-1 .main-header-menu .sub-menu { border-radius: 0; box-shadow: 0 6px 18px color-mix(in srgb, var(--ast-global-color-2) 12%, transparent); }
.ast-builder-menu-1 .main-header-menu .sub-menu .menu-link:hover { background: var(--ast-global-color-5); }

/* 4 Keyboard focus (keep) */
a:focus-visible, button:focus-visible, input:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--ast-global-color-1); outline-offset: 3px; }
.ast-primary-header-bar a:focus-visible, .ast-primary-header-bar button:focus-visible,
.ast-breadcrumbs-wrapper a:focus-visible, .site-footer a:focus-visible { outline-color: var(--ast-global-color-0); }

/* 5 Reduced motion */
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }

/* 6 Phone menu: side bars, current page, sub-menus, arrows */
.ast-header-break-point .ast-mobile-popup-drawer .main-navigation .main-header-menu .menu-item > .menu-link { border-left: 6px solid var(--ast-global-color-0); }
.ast-header-break-point .ast-mobile-popup-drawer .main-navigation .main-header-menu .menu-item > .menu-link:hover { border-left-color: var(--ast-global-color-1); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.ast-header-break-point .ast-mobile-popup-drawer .main-navigation .main-header-menu .current-menu-item > .menu-link { border-left-color: var(--ast-global-color-4); font-weight: 600; }
.ast-header-break-point .ast-mobile-popup-drawer .main-navigation .sub-menu { background: transparent; box-shadow: none; border: 0; }
.ast-header-break-point .ast-mobile-popup-drawer .main-navigation .sub-menu .menu-item > .menu-link { padding-left: 46px; background: var(--ast-global-color-5); }
.ast-header-break-point .ast-mobile-popup-drawer .main-navigation .sub-menu .menu-item > .menu-link:hover { background: var(--ast-global-color-7); }
.ast-header-break-point .ast-mobile-popup-drawer .main-navigation .sub-menu .current-menu-item > .menu-link { background: var(--ast-global-color-4); }
.ast-header-break-point .ast-mobile-popup-drawer .main-navigation .sub-menu .menu-link .icon-arrow { display: none; }
.ast-header-break-point .ast-mobile-popup-drawer .main-navigation .menu-item { position: relative; }
.ast-header-break-point .ast-mobile-popup-drawer .main-navigation .main-header-menu .ast-menu-toggle,
.ast-header-break-point .ast-mobile-popup-drawer .main-navigation .main-header-menu .ast-menu-toggle:hover,
.ast-header-break-point .ast-mobile-popup-drawer .main-navigation .main-header-menu .ast-menu-toggle:focus,
.ast-header-break-point .ast-mobile-popup-drawer .main-navigation .main-header-menu .ast-menu-toggle:active {
  position: absolute; top: 8px; right: 16px; left: auto; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 0;
  display: flex; align-items: center; justify-content: center;
  background: transparent; color: var(--ast-global-color-1); box-shadow: none;
}
.ast-header-break-point .ast-mobile-popup-drawer .main-navigation .main-header-menu .ast-menu-toggle .ast-icon { display: flex; margin: 0; line-height: 0; }

/* 7 Book now: header and phone-menu buttons (hover keeps a gold edge on navy backgrounds) */
.ast-header-button-1 .ast-custom-button { display: inline-flex; align-items: center; gap: 10px; }
.ast-header-button-1 .ast-custom-button::before,
.ast-mobile-popup-drawer .dmt-menu-book::before,
.site-footer .dmt-footer-book::before,
.dmt-book-panel .wp-block-button__link::before {
  content: ""; width: 20px; height: 20px; flex: none; background: currentColor;
  -webkit-mask: var(--icon-calendar) center / contain no-repeat; mask: var(--icon-calendar) center / contain no-repeat;
}
.ast-header-button-1[data-section] .ast-builder-button-wrap .ast-custom-button {
  font-size: 16px; font-weight: 600; line-height: 1; padding: 10px 20px; border: 2px solid var(--ast-global-color-0);
  background: var(--ast-global-color-0); color: var(--ast-global-color-2); transition: all .3s;
}
.ast-header-button-1[data-section] .ast-builder-button-wrap .ast-custom-button::before { width: 16px; height: 16px; }
.ast-header-button-1[data-section] .ast-builder-button-wrap .ast-custom-button:hover { background: var(--ast-global-color-2); color: var(--ast-global-color-4); border-color: var(--ast-global-color-0); }
.ast-custom-button, .elementor-widget-button .elementor-button, .wp-block-button__link { text-transform: none !important; letter-spacing: 0 !important; }
.ast-mobile-popup-drawer .dmt-menu-book {
  display: inline-flex; align-items: center; gap: 10px; margin: 28px 26px; padding: 16px 26px; border: 2px solid var(--ast-global-color-0);
  background: var(--ast-global-color-0); color: var(--ast-global-color-2); font-weight: 600; font-size: 16px; line-height: 1; text-decoration: none;
}
.ast-mobile-popup-drawer .dmt-menu-book:hover { background: var(--ast-global-color-2); color: var(--ast-global-color-4); border-color: var(--ast-global-color-2); }

/* 8 Phone header: logo, gold Book now button centred between logo and menu, menu block as tall as the button, gold rule */
.ast-header-break-point .ast-primary-header-bar .ast-mobile-menu-trigger-minimal { align-self: stretch; }
.ast-header-break-point .ast-primary-header-bar .ast-header-button-1 { margin-right: 16px; }
.ast-header-break-point .ast-primary-header-bar .ast-header-button-1 .ast-builder-button-wrap .ast-custom-button { gap: 8px; padding: 9px 14px; font-size: 15px; }
.ast-header-break-point .ast-primary-header-bar .ast-button-wrap .menu-toggle.main-header-menu-toggle {
  flex-direction: column; justify-content: center; align-items: center; gap: 4px; width: auto; height: 64px; padding: 0; margin: 0;
  background: transparent; border: 0; border-radius: 0;
  color: var(--ast-global-color-0); font-size: 12px; letter-spacing: .04em; text-transform: uppercase !important;
}
.ast-header-break-point .ast-primary-header-bar .ast-button-wrap .menu-toggle .mobile-menu-toggle-icon { display: block; width: 24px; height: 22px;
  background: linear-gradient(currentColor, currentColor) 0 0 / 100% 3px no-repeat, linear-gradient(currentColor, currentColor) 0 50% / 100% 3px no-repeat, linear-gradient(currentColor, currentColor) 0 100% / 100% 3px no-repeat; }
.ast-header-break-point .ast-primary-header-bar .ast-button-wrap .menu-toggle .mobile-menu-toggle-icon .ast-menu2-svg { display: none; }
.ast-header-break-point .ast-primary-header-bar .ast-button-wrap .menu-toggle .mobile-menu { font-size: 12px; line-height: 1; }
.ast-header-break-point .ast-primary-header-bar { border-bottom: 3px solid var(--ast-global-color-0); height: 76px; box-sizing: border-box; }
.ast-header-break-point .custom-mobile-logo-link img.ast-mobile-header-logo { width: auto; max-width: none; height: 48px; }
/* Open phone menu: the header stays (logo, Book now), the hamburger and MENU become an X, and the menu list starts under the header */
body:has(.ast-mobile-popup-drawer.active) #masthead { z-index: 100001; }
body:has(.ast-mobile-popup-drawer.active) #masthead { pointer-events: none; }
body:has(.ast-mobile-popup-drawer.active) #masthead :is(a, .ast-custom-button-link) { pointer-events: auto; }
.ast-mobile-popup-drawer .ast-mobile-popup-header { position: fixed; top: 0; right: 0; left: auto; width: 76px; height: 76px; padding: 0; background: transparent; }
.admin-bar .ast-mobile-popup-drawer .ast-mobile-popup-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ast-mobile-popup-drawer .ast-mobile-popup-header { top: 46px; } }
.ast-mobile-popup-drawer .ast-mobile-popup-header::before { display: none; }
.ast-mobile-popup-drawer .ast-mobile-popup-header .menu-toggle-close { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; }
.ast-mobile-popup-drawer .ast-mobile-popup-inner .ast-mobile-popup-content { padding-top: 80px !important; }
.admin-bar .ast-mobile-popup-drawer .ast-mobile-popup-inner .ast-mobile-popup-content { padding-top: 112px !important; }
@media (max-width: 782px) { .admin-bar .ast-mobile-popup-drawer .ast-mobile-popup-inner .ast-mobile-popup-content { padding-top: 126px !important; } }
.ast-header-break-point .ast-primary-header-bar .ast-button-wrap .menu-toggle.main-header-menu-toggle[aria-expanded="true"] { display: flex !important; }
.ast-header-break-point .ast-primary-header-bar .ast-button-wrap .menu-toggle[aria-expanded="true"] .mobile-menu-toggle-icon { background: none; width: 28px; height: 28px; }
.ast-header-break-point .ast-primary-header-bar .ast-button-wrap .menu-toggle[aria-expanded="true"] .ahfb-svg-iconset { display: flex !important; }
.ast-header-break-point .ast-primary-header-bar .ast-button-wrap .menu-toggle[aria-expanded="true"] .ast-close-svg { display: block !important; width: 28px; height: 28px; }
.ast-header-break-point .ast-primary-header-bar .ast-button-wrap .menu-toggle[aria-expanded="true"] .mobile-menu-wrap { display: none; }

/* 9 Breadcrumbs */
.ast-header-breadcrumb, .main-header-bar.ast-header-breadcrumb, .ast-breadcrumbs-wrapper { border-bottom: 0; box-shadow: none; }
.ast-breadcrumbs-wrapper a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }

/* 10 Gradient cards (CSS class: gradient-card) */
body .elementor .e-con.gradient-card {
  --card-gradient: linear-gradient(180deg, var(--ast-global-color-0) 0%, var(--ast-global-color-1) 100%);
  position: relative; isolation: isolate; border: 2px solid transparent;
  background: linear-gradient(var(--ast-global-color-4), var(--ast-global-color-4)) padding-box, var(--card-gradient) border-box;
}
body .elementor .e-con.gradient-card::after { content: ""; position: absolute; inset: -2px; z-index: 0; pointer-events: none; background: var(--card-gradient); opacity: 0; transition: opacity .35s ease; }
body .elementor .e-con.gradient-card > * { position: relative; z-index: 1; }
body .elementor .e-con.gradient-card .elementor-heading-title,
body .elementor .e-con.gradient-card .elementor-widget-text-editor { transition: color .35s ease; }
@media (hover: hover) {
  body .elementor .e-con.gradient-card:hover::after { opacity: 1; }
  body .elementor .e-con.gradient-card:hover .elementor-heading-title,
  body .elementor .e-con.gradient-card:hover .elementor-widget-text-editor,
  body .elementor .e-con.gradient-card:hover .elementor-widget-text-editor p { color: var(--ast-global-color-4); }
  body .elementor .e-con.gradient-card:hover .elementor-icon svg,
  body .elementor .e-con.gradient-card:hover .elementor-icon svg g { stroke: var(--ast-global-color-4); }
}

/* 11 Underlined text links */
.elementor-widget-text-editor a, .entry-content :is(p, li) > a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }

/* 12 Footer: column bars and widths, headings, intro, contact lines, Book now */
@media (min-width: 922px) { .site-primary-footer-wrap .site-footer-section + .site-footer-section { border-left: 1px solid var(--ast-global-color-0); padding-left: 40px; } }
@media (min-width: 922px) { .site-footer .site-primary-footer-wrap[data-section] .ast-builder-grid-row { grid-template-columns: 1fr 1.5fr 1fr 1fr; } }
.site-footer .dmt-contact { display: flex; gap: 12px; align-items: flex-start; margin: 0 0 14px; }
.site-footer .dmt-contact svg { flex: none; margin-top: 3px; color: var(--ast-global-color-0); }
.site-footer .dmt-contact b { color: var(--ast-global-color-8); font-weight: 400; }
.site-footer a { text-decoration: none; }
.site-footer a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.site-footer .widget-title { font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ast-global-color-0); margin-bottom: 20px; }
.site-footer .dmt-footer-intro { margin: 16px 0 0; font-size: 15px; line-height: 1.6; color: var(--ast-global-color-4); }
.site-footer .footer-widget-area a.dmt-footer-book { display: inline-flex; align-items: center; gap: 10px; padding: 10px 20px; border: 2px solid var(--ast-global-color-0);
  background: var(--ast-global-color-0); color: var(--ast-global-color-2); font-weight: 600; font-size: 16px; line-height: 1; text-decoration: none; transition: all .3s; }
.site-footer .dmt-footer-book::before { width: 16px; height: 16px; }
.site-footer .footer-widget-area a.dmt-footer-book:hover { background: var(--ast-global-color-2); color: var(--ast-global-color-4); border-color: var(--ast-global-color-0); }
.site-footer .dmt-follow { list-style: none; margin: 0; padding: 0; }
.site-footer .dmt-follow li { display: flex; gap: 14px; align-items: center; margin: 0 0 12px; }
@media (max-width: 921px) {
  .site-footer :is(.site-footer-section, .footer-widget-area, .ast-builder-html-element p, .ast-footer-copyright) { text-align: left !important; justify-content: flex-start !important; }
  .site-footer .site-primary-footer-wrap .ast-builder-grid-row { row-gap: 40px; }
  .site-footer .site-footer-section, .site-footer .widget, .site-footer .ast-builder-html-element p:last-child, .site-footer .dmt-contact:last-child { margin-bottom: 0 !important; }
  .site-footer .site-below-footer-wrap .ast-builder-grid-row { row-gap: 4px; }
  .site-footer .site-below-footer-wrap p { margin: 0; }
  .site-footer .dmt-follow { display: flex; gap: 8px; }
  .site-footer .dmt-follow li { position: relative; justify-content: center; width: 44px; height: 44px; margin: 0; }
  .site-footer .dmt-follow li a { position: absolute; inset: 0; font-size: 0; color: transparent; }
}

/* 13 Blog page, search and single posts */
.dmt-blog { padding: 8px 0 88px; }
.dmt-blog > h1 { margin: 0 0 12px; }
.dmt-blog-intro { font-size: 20px; max-width: 720px; margin: 0 0 48px; color: var(--ast-global-color-3); }
.dmt-feature-card, .dmt-card { background: var(--ast-global-color-4); box-shadow: 0 12px 40px color-mix(in srgb, var(--ast-global-color-2) 7%, transparent); }
.dmt-feature-card { gap: 0 !important; margin: 0 0 32px; }
.dmt-feature-body { padding: 40px 48px; }
.dmt-feature-media .wp-block-post-featured-image, .dmt-card .wp-block-post-featured-image { margin: 0; }
.dmt-feature-media .wp-block-post-featured-image img { height: 100%; }
.dmt-card { height: 100%; }
.dmt-blog .dmt-card, .dmt-blog .dmt-post-meta { padding: 0; }
.dmt-blog .dmt-grid { margin-top: 32px; }
.dmt-blog .wp-block-post-template { margin: 0; padding: 0; }
.dmt-card-body { padding: 24px 28px 28px; }
.dmt-post-meta { gap: 12px; align-items: center; margin-bottom: 14px; color: var(--ast-global-color-3); font-weight: 600; font-size: 13px; line-height: 1; letter-spacing: .04em; }
.dmt-post-meta .wp-block-post-terms a { display: inline-block; padding: 6px 10px; border: 1px solid var(--ast-global-color-7); color: var(--ast-global-color-2); text-decoration: none; }
.dmt-blog .wp-block-post-title { margin: 0 0 12px; }
.dmt-blog .wp-block-post-title a { color: var(--ast-global-color-2); text-decoration: none; }
.dmt-blog .wp-block-post-title a:hover { color: var(--ast-global-color-1); text-decoration: underline; }
.dmt-feature .wp-block-post-title { font-size: 34px; line-height: 1.2; }
.dmt-grid .wp-block-post-title { font-size: 21px; font-weight: 500; line-height: 1.3; }
.dmt-blog .wp-block-post-excerpt { font-size: 16px; }
.dmt-blog .wp-block-post-excerpt__more-link { color: var(--ast-global-color-1); font-weight: 600; font-size: 15px; }
@media (max-width: 781px) { .dmt-feature-body { padding: 28px 24px; } .dmt-feature .wp-block-post-title { font-size: 26px; } }
.dmt-pagination { margin-top: 48px; gap: 8px; font-weight: 600; font-size: 15px; }
.dmt-pagination a, .dmt-pagination .current { display: inline-block; padding: 10px 14px; border: 1px solid var(--ast-global-color-7); color: var(--ast-global-color-2); text-decoration: none; }
.dmt-pagination .current { background: var(--ast-global-color-2); color: var(--ast-global-color-4); border-color: var(--ast-global-color-2); }
.single-post .entry-header .entry-title { font-size: 56px; font-weight: 300; line-height: 1.15; color: var(--ast-global-color-2); margin-bottom: 18px; }
@media (max-width: 921px) { .single-post .entry-header .entry-title { font-size: 46px; } }
@media (max-width: 544px) { .single-post .entry-header .entry-title { font-size: 36px; } }
.single-post .entry-header .entry-meta { font-size: 0; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 28px; }
.single-post .entry-header .entry-meta > * { font-size: 13px; font-weight: 600; letter-spacing: .04em; color: var(--ast-global-color-3); }
.single-post .entry-meta :is(.ast-terms-link, .cat-links) a { display: inline-block; padding: 6px 10px; border: 1px solid var(--ast-global-color-7); color: var(--ast-global-color-2); text-decoration: none; }
.single-post .entry-meta .posted-on, .single-post .entry-meta .posted-on a { color: var(--ast-global-color-1); text-decoration: none; }
.dmt-book-panel { background: var(--ast-global-color-2); padding: 30px 26px; margin-bottom: 24px; border-left: 4px solid var(--ast-global-color-0); }
.dmt-book-panel p { color: var(--ast-global-color-8); }
.dmt-side-label { font-size: 15px !important; font-weight: 600; letter-spacing: .04em; margin: 0 0 12px !important; }
.dmt-book-panel .dmt-side-label { color: var(--ast-global-color-8); font-size: 13px !important; line-height: 1; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 16px !important; }
.dmt-book-panel .dmt-side-label::after { content: ""; display: block; width: 40px; height: 3px; margin-top: 16px; background: var(--ast-global-color-0); }
.dmt-book-panel .dmt-side-lead { color: var(--ast-global-color-4); font-size: 19px; font-weight: 600; line-height: 1.35; margin: 0 0 20px; }
.dmt-book-panel .wp-block-button__link { display: inline-flex; align-items: center; gap: 10px; padding: 14px 22px; border: 2px solid var(--ast-global-color-0);
  background: var(--ast-global-color-0); color: var(--ast-global-color-2); font-size: 16px; font-weight: 600; border-radius: 0; }
.dmt-book-panel .wp-block-button__link:hover { background: var(--ast-global-color-2); color: var(--ast-global-color-4); border-color: var(--ast-global-color-0); }
.dmt-recent { border: 1px solid var(--ast-global-color-7); padding: 28px; }
.dmt-recent .wp-block-latest-posts li { margin: 0; padding: 12px 0; border-top: 1px solid var(--ast-global-color-7); }
.dmt-recent .wp-block-latest-posts a { color: var(--ast-global-color-2); text-decoration: none; }
.dmt-author { gap: 20px; margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--ast-global-color-7); align-items: stretch; }
.dmt-author-photo { flex: 0 0 72px; position: relative; min-height: 72px; margin: 0; }
.dmt-author-photo img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; }
.dmt-author .dmt-author-text { flex: 1 1 0; min-width: 0; padding: 0; }
.dmt-author .dmt-author-text .wp-block-group__inner-container { text-box: trim-both cap alphabetic; }
.dmt-author p { margin: 0 0 8px; font-size: 15px; line-height: 1.75; }
.dmt-author .dmt-author-text p:last-child { margin-bottom: 0; }
.post-navigation .ast-left-arrow, .post-navigation .ast-right-arrow { display: none; }
.post-navigation .nav-previous a::before { content: "\00AB\00A0"; }
.post-navigation .nav-next a::after { content: "\00A0\00BB"; }

.dmt-blog .dmt-blog-lead { gap: 24px 48px; align-items: center; margin: 0 0 48px; padding: 0; }
.dmt-blog-lead .dmt-blog-intro { flex: 1 1 480px; margin: 0; }
.dmt-blog-search { flex: 0 1 420px; margin: 0; }
.dmt-blog-search.wp-block-search__button-inside .wp-block-search__inside-wrapper { padding: 4px; border: 1px solid var(--ast-global-color-8); outline: 0; background: var(--ast-global-color-4); }
.dmt-blog-search .wp-block-search__input { padding: 10px 14px; border: 0; background: transparent; font-size: 16px; color: var(--ast-global-color-2); }
.dmt-blog-search .wp-block-search__button { margin: 0; padding: 0 14px; border: 0; border-radius: 0; background: var(--ast-global-color-2); color: var(--ast-global-color-4); }
.dmt-blog-search .wp-block-search__button:hover { background: var(--ast-global-color-1); }
.search .site-content { background: var(--ast-global-color-5); }
.search .ast-archive-description { padding: 24px 0 8px; background: transparent; }
.search .ast-archive-description .page-title { font-size: 46px; font-weight: 300; color: var(--ast-global-color-2); }
.search .ast-blog-featured-section { display: none; }
.search .ast-article-post { margin-bottom: 24px; box-shadow: 0 12px 40px color-mix(in srgb, var(--ast-global-color-2) 7%, transparent); }
.search .ast-article-post .entry-title { font-size: 26px; font-weight: 400; }
.search .ast-article-post .entry-title a { color: var(--ast-global-color-2); text-decoration: none; }
.search .ast-article-post .entry-title a:hover { color: var(--ast-global-color-1); text-decoration: underline; }

/* 14 Google reviews */
body .ti-widget.ti-goog, body .ti-widget.ti-goog * { font-family: inherit !important; }
body .ti-widget.ti-goog .ti-reviews-container .ti-review-item > .ti-inner,
body .ti-widget.ti-goog .ti-review-item > .ti-inner { border-radius: 0 !important; }
body .ti-widget.ti-goog .ti-controls .ti-next:focus-visible, body .ti-widget.ti-goog .ti-controls .ti-prev:focus-visible { outline: 2px solid var(--ast-global-color-1) !important; outline-offset: 3px; }

/* 15 Privacy policy (CSS class: dmt-legal) */
.dmt-legal { padding: 56px 0 96px; }
.dmt-legal > h1 { margin: 0 0 28px; }
.dmt-legal > h1 + p { font-size: 20px; line-height: 1.55; }
.dmt-legal > h2 { font-size: 26px; line-height: 1.3; margin: 56px 0 16px; padding-top: 32px; border-top: 1px solid var(--ast-global-color-7); }
.dmt-legal > p, .dmt-legal > ul { margin: 0 0 18px; }
.dmt-legal > ul { padding-left: 22px; }
.dmt-legal li { margin-bottom: 8px; }
.dmt-legal li::marker { color: var(--ast-global-color-0); }
.dmt-legal-updated { font-size: 14px; color: var(--ast-global-color-1); }
@media (max-width: 544px) { .dmt-legal { padding: 36px 0 64px; } .dmt-legal > h2 { font-size: 22px; margin-top: 40px; padding-top: 24px; } }

/* 16 Contact card at /dmt/ (QR code page; CSS class: dmt-contact-card) */
body:has(.dmt-contact-card), body:has(.dmt-contact-card) :is(.site-content, .ast-article-single, .ast-article-post) { background: var(--ast-global-color-3); }
body:has(.dmt-contact-card) :is(.site-content > .ast-container, #primary, .site-main, .ast-article-single, .entry-content) { padding: 0; margin: 0; max-width: none; }
.dmt-contact-card {
  --icon-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
  --icon-text: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v11H9l-5 4z'/%3E%3C/svg%3E");
  --icon-email: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14'/%3E%3Cpath d='m3 6 9 7 9-7'/%3E%3C/svg%3E");
  --icon-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='m12 3 2.8 5.8 6.2.9-4.5 4.4 1.1 6.2L12 17.4l-5.6 2.9 1.1-6.2L3 9.7l6.2-.9z'/%3E%3C/svg%3E");
  --icon-web: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c2.5 2.5 3.8 5.5 3.8 9s-1.3 6.5-3.8 9c-2.5-2.5-3.8-5.5-3.8-9S9.5 5.5 12 3z'/%3E%3C/svg%3E");
  max-width: 480px; margin: 56px auto; padding: 0 0 48px; text-align: center; color: var(--ast-global-color-3);
  background: var(--ast-global-color-5);
}
@media (max-width: 544px) { .dmt-contact-card { max-width: none; min-height: 100vh; margin: 0; } }
.dmt-contact-card > .wp-block-group__inner-container > * { padding-left: 28px; padding-right: 28px; }
.dmt-contact-card .dmt-card-top { margin: 0 0 32px; padding: 22px 16px; background: var(--ast-global-color-2); border-bottom: 3px solid var(--ast-global-color-0); }
.dmt-contact-card .dmt-card-logo { margin: 0; }
.dmt-contact-card .dmt-card-logo img { width: 200px; height: auto; }
.dmt-contact-card .dmt-card-photo { margin-bottom: 20px; }
.dmt-contact-card .dmt-card-photo img { display: block; margin: 0 auto; width: 150px; height: 150px; object-fit: cover; object-position: center 22%; border-radius: 50%; border: 3px solid var(--ast-global-color-0); }
.dmt-contact-card h1 { margin-top: 0; margin-bottom: 8px; font-size: 36px; font-weight: 300; line-height: 1.15; color: var(--ast-global-color-2); }
.dmt-contact-card .dmt-card-role { margin-top: 0; margin-bottom: 20px; font-size: 13px; font-weight: 600; letter-spacing: .12em; line-height: 1.6; text-transform: uppercase; text-wrap: balance; color: var(--ast-global-color-1); }
.dmt-contact-card .dmt-card-lead { margin-top: 0; margin-bottom: 32px; font-size: 17px; line-height: 1.6; text-wrap: balance; }
.dmt-contact-card .dmt-card-buttons { flex-direction: column; gap: 12px; }
.dmt-contact-card .wp-block-button { width: 100%; }
.dmt-contact-card .wp-block-button__link {
  display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; padding: 16px 20px; border: 1px solid var(--ast-global-color-2); border-radius: 0;
  background: var(--ast-global-color-4); color: var(--ast-global-color-2); font-size: 16px; font-weight: 600; line-height: 1.2; text-decoration: none; transition: all .3s;
}
.dmt-contact-card .wp-block-button__link::before { content: ""; width: 20px; height: 20px; flex: none; background: var(--ast-global-color-1); -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; }
.dmt-contact-card .wp-block-button__link:hover { background: var(--ast-global-color-7); color: var(--ast-global-color-2); }
.dmt-contact-card .dmt-btn-book .wp-block-button__link { border: 2px solid var(--ast-global-color-0); background: var(--ast-global-color-0); color: var(--ast-global-color-2); }
.dmt-contact-card .dmt-btn-book .wp-block-button__link::before { background: currentColor; }
.dmt-contact-card .dmt-btn-book .wp-block-button__link:hover { background: var(--ast-global-color-2); border-color: var(--ast-global-color-2); color: var(--ast-global-color-4); }
.dmt-btn-book { --icon: var(--icon-calendar); }
.dmt-btn-map { --icon: var(--icon-pin); }
.dmt-btn-text { --icon: var(--icon-text); }
.dmt-btn-email { --icon: var(--icon-email); }
.dmt-btn-review { --icon: var(--icon-star); }
.dmt-btn-web { --icon: var(--icon-web); }
.dmt-contact-card .dmt-card-social { justify-content: center; gap: 14px; margin-top: 40px; margin-bottom: 28px; }
.dmt-contact-card .dmt-card-address { margin-top: 0; margin-bottom: 0; font-size: 14px; line-height: 1.6; }
.dmt-contact-card .dmt-card-top a:focus-visible { outline-color: var(--ast-global-color-0); }

/* 17 Photo tint: light brass wash on photo backgrounds, under the navy overlay (CSS class: dmt-photo-tint; Home goal tiles) */
.dmt-photo-tint { background-color: color-mix(in srgb, var(--ast-global-color-0) 15%, transparent) !important; background-blend-mode: soft-light !important; }

/* 18 Sidebar pages (Referrals, FAQs): sidebar stays in view on desktop; jump links land below the sticky header (classes: dmt-sticky-side on the sidebar, dmt-anchor on each jump target) */
@media (min-width: 1025px) { .dmt-sticky-side { position: sticky; top: 160px; } }
.dmt-anchor { scroll-margin-top: 160px; }
@media (max-width: 1024px) { .dmt-anchor { scroll-margin-top: 220px; } }

/* 19 Photo tint on images (not backgrounds): the same brass wash as section 17 (class dmt-photo-tint-img on Image widgets; blog featured images) */
:is(.dmt-photo-tint-img, .wp-block-post-featured-image, .single-post .post-thumb-img-content) { position: relative; }
:is(.dmt-photo-tint-img, .wp-block-post-featured-image, .single-post .post-thumb-img-content)::after { content: ""; position: absolute; inset: 0; background: color-mix(in srgb, var(--ast-global-color-0) 15%, transparent); mix-blend-mode: soft-light; pointer-events: none; }

/* 20 Home hero wash: page colour behind the text only; desktop feathers it at the top, bottom and left so the picture frames the words, tablets and phones keep it over the text and lighter on the right (CSS class: dmt-hero-wash) */
.dmt-hero-wash { --text-left: max(44px, calc(50% - 640px)); --wash: color-mix(in srgb, var(--ast-global-color-5) 94%, transparent); }
.dmt-hero-wash::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.dmt-hero-wash > * { position: relative; z-index: 1; }
@media (min-width: 1025px) {
  .dmt-hero-wash::after { background: linear-gradient(to right, transparent calc(var(--text-left) - 140px), var(--wash) calc(var(--text-left) + 20px), var(--wash) calc(var(--text-left) + 560px), transparent calc(var(--text-left) + 840px)); mask-image: linear-gradient(to bottom, transparent, #000 24%, #000 76%, transparent); }
}
@media (max-width: 1024px) {
  .dmt-hero-wash::after { background: linear-gradient(to right, var(--wash) 50%, transparent 95%); mask-image: linear-gradient(to bottom, #000 58%, transparent 72%); }
}

/* 21 Google reviews arrows on tablets and phones: the widget only shows them from 1024 px; text gets side room so the arrows don't cover it */
@media (max-width: 1023px) {
  body .ti-widget.ti-goog .ti-controls { display: block; }
  body .ti-widget.ti-goog .ti-review-item > .ti-inner { padding-left: 40px !important; padding-right: 40px !important; }
}
