/* DB Professional Services - main.css
   Mobile-first, one file, CSS custom properties. */

:root {
  --navy: #16163F;
  --blue: #2B3D90;
  --green: #81C33F;
  --green-dark: #137943;
  --text: #4A4A4A;
  --white: #FFFFFF;
  --font: Poppins, "Poppins Fallback", Arial, sans-serif;
  --container: 1280px;
  --content: 760px;
}

@font-face {
  font-family: Poppins;
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/poppins-300-latin.woff2) format('woff2');
}
@font-face {
  font-family: Poppins;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/poppins-400-latin.woff2) format('woff2');
}
@font-face {
  font-family: Poppins;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/poppins-600-latin.woff2) format('woff2');
}
@font-face {
  font-family: Poppins;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/poppins-700-latin.woff2) format('woff2');
}

/* Metric-matched fallback (1.0.7): while the webfont loads, text is set in
   Arial/Arimo/Liberation scaled to Poppins' widths and line metrics, so the
   swap to Poppins does not re-wrap the hero heading (that swap caused the
   0.13 mobile CLS once main.css was inlined). Poppins uses typo metrics:
   ascent 1050, descent 350, line gap 100 per 1000. */
@font-face {
  font-family: 'Poppins Fallback';
  font-weight: 100 500;
  src: local('Arial'), local('ArialMT'), local('Arimo'), local('Liberation Sans'), local('Roboto');
  size-adjust: 112%;
  ascent-override: 93.75%;
  descent-override: 31.25%;
  line-gap-override: 8.93%;
}
@font-face {
  font-family: 'Poppins Fallback';
  font-weight: 600 900;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Arimo Bold'), local('Liberation Sans Bold'), local('Roboto Bold');
  size-adjust: 107.5%;
  ascent-override: 97.67%;
  descent-override: 32.56%;
  line-gap-override: 9.3%;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.6;
  color: var(--text);
  background: var(--white);
}
img { max-width: 100%; height: auto; }
a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; }

.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 1rem;
}

/* Skip link */
.skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  background: var(--navy);
  color: var(--white);
  padding: 8px;
  z-index: 10000;
}
.skip-link:focus { top: 0; }

/* Header */
.site-header { background: var(--white); border-bottom: 1px solid #eee; }
.top-bar {
  background: var(--blue);
  color: var(--white);
  font-size: 14px;
  padding: 0.4rem 0;
}
.top-bar a { color: var(--white); }
.header-main { padding: 0.5rem 0; }
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.site-logo { height: 60px; width: auto; }
.primary-nav { display: block; }
@media (max-width: 899px) {
  .primary-nav .primary-menu { display: none; list-style: none; margin: 0; padding: 0; }
  .primary-nav.is-open .primary-menu { display: flex; }
  .primary-nav.is-open .primary-menu a { display: block; padding: .6rem 0; color: var(--navy); font-weight: 600; font-size: 1.1rem; }
  .primary-nav.is-open .sub-menu { display: none; list-style: none; padding-left: 1rem; }
  .primary-nav.is-open li.is-open > .sub-menu { display: block; }
  .primary-nav.is-open .burger { position: absolute; top: 1rem; right: 1rem; }
  .header-inner .btn-book { display: none; }
  .top-bar .container > span:first-child { display: none; }
  .top-bar .container { justify-content: flex-start; }
}
.burger {
  background: none;
  border: none;
  font-size: 24px;
  cursor: pointer;
  color: var(--navy);
}
.btn {
  display: inline-block;
  padding: 0.6rem 1.2rem;
  border-radius: 4px;
  font-weight: 600;
  text-align: center;
}
.btn-book, .btn-green {
  background: var(--green);
  color: var(--navy); /* 1.0.6: navy on brand green = 8.4:1 (white was 2.1:1) */
}
.btn-book:hover, .btn-green:hover { background: var(--green-dark); color: var(--white); text-decoration: none; }

/* Desktop nav */
@media (min-width: 900px) {
  .burger { display: none; }
  .primary-nav { display: block; }
  .primary-menu {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 1.2rem;
  }
  .primary-menu > li { position: relative; }
  .primary-menu a { color: var(--navy); font-weight: 600; }
  .sub-menu {
    display: none;
    position: absolute;
    background: var(--white);
    box-shadow: 0 4px 12px rgba(0,0,0,.1);
    list-style: none;
    padding: 0.5rem 0;
    min-width: 220px;
    z-index: 10;
  }
  .menu-item-has-children:hover > .sub-menu,
  .menu-item-has-children:focus-within > .sub-menu { display: block; }
}

/* Mobile menu (JS toggles .is-open) */
.primary-nav.is-open {
  display: block;
  position: fixed;
  inset: 0;
  background: var(--white);
  z-index: 100;
  padding: 4rem 1rem;
}
.primary-nav.is-open .primary-menu { flex-direction: column; }

/* Hero */
.hero {
  position: relative;
  min-height: 50vh;
  display: flex;
  align-items: center;
  color: var(--white);
  background: var(--navy);
}
.hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.hero-overlay {
  position: relative;
  z-index: 1;
  width: 100%;
  background: linear-gradient(to right, rgba(22,22,63,.75), rgba(22,22,63,.4));
  padding: 3rem 0;
}
.hero-content { position: relative; }
.safe-contractor-badge {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  width: 100px;
  height: auto;
  background: #fff;
  border-radius: 8px;
  padding: 4px;
}
.hero h1 {
  color: var(--white);
  font-weight: 500;
  font-size: clamp(2rem, 5vw, 3.125rem);
  line-height: 1.4;
  letter-spacing: 1px;
  margin: 0 0 0.5rem;
}
.strapline { font-size: 1.25rem; font-weight: 600; margin: 0 0 1.5rem; }

/* Trust ticks */
.trust-ticks { background: var(--blue); color: var(--white); padding: 1.5rem 0; }
.ticks {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  list-style: none;
  margin: 0;
  padding: 0;
  justify-content: center;
}
.ticks li { display: flex; align-items: center; gap: 0.4rem; font-weight: 600; }
.icon-tick { fill: var(--green); }

/* Content */
.page-content { padding: 2rem 0; }
.entry-title { color: var(--navy); font-size: clamp(1.8rem, 4vw, 2.5rem); }
.entry-content h2 { color: var(--navy); font-size: 1.75rem; }
.entry-content p { margin: 1rem 0; }
.breadcrumbs { font-size: 0.9rem; margin-bottom: 1rem; color: #666; }
.breadcrumbs a { color: var(--blue); text-decoration: underline; text-underline-offset: 2px; }

/* Testimonials */
.testimonials { padding: 2rem 0; }
.testimonial-cards { display: grid; gap: 1.5rem; }
@media (min-width: 768px) { .testimonial-cards { grid-template-columns: repeat(3, 1fr); } }
blockquote {
  background: #f9f9f9;
  border-left: 4px solid var(--green);
  padding: 1rem;
  margin: 0;
}
cite { display: block; margin-top: 0.5rem; font-weight: 600; font-style: normal; }

/* CTA */
.cta-band {
  background: var(--navy);
  color: var(--white);
  text-align: center;
  padding: 3rem 1rem;
}
.cta-band h2 { color: var(--white); margin-top: 0; }

/* Quote mount */
.quote-builder-mount { width: 100%; margin: 2rem 0; }

/* Footer */
.site-footer {
  background: #313131;
  color: var(--white);
  padding: 2rem 0;
  font-size: 0.95rem;
}
.site-footer a { color: var(--green); }
.footer-blurb { font-weight: 600; }
.footer-menu { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }
.footer-contact p { margin: 0.4rem 0; }

/* Gravity Forms light styling */
.gform_wrapper input, .gform_wrapper textarea, .gform_wrapper select {
  border: 1px solid #ccc;
  padding: 0.5rem;
  border-radius: 4px;
  width: 100%;
}
.gform_wrapper .gform_button, .gform_wrapper input[type="submit"] {
  background: var(--green);
  color: var(--navy);
  border: none;
  padding: 0.7rem 1.5rem;
  font-weight: 600;
  cursor: pointer;
}

/* Scroll-snap gallery (carousels) */
.scroll-snap-gallery,
.wp-block-gallery.scroll-snap-gallery {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  gap: 0.5rem;
  padding-bottom: 0.5rem;
}
.scroll-snap-gallery figure,
.wp-block-gallery.scroll-snap-gallery figure {
  scroll-snap-align: start;
  flex: 0 0 80%;
  max-width: 300px;
}
:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

/* Staging banner already inline */


/* ===== v1.0.2: layout for migrated block content (live-matched) ===== */
html { overflow-x: clip; } /* clip, not hidden: keeps position:sticky working for the quote builder */
.top-bar .container { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.primary-menu a { color: var(--blue); }
.hero { min-height: 420px; text-align: center; }
.hero-overlay { background: rgba(0,0,0,.45); padding: 4rem 0; }
.hero h1 .accent { color: var(--green); }
.hero .strapline { color: var(--white); }
.safe-contractor-badge { position: static; display: block; margin: 0 auto 1rem; width: 110px; background: none; padding: 0; border-radius: 50%; }
.page-content { padding: 0 1rem 2rem; }
.front-page .site-main > .wp-block-group, .front-page .site-main > *:not(.hero) { max-width: none; }
.entry-content > .alignfull, .front-content > .alignfull {
  margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); width: auto; max-width: none;
}
.dbps-section { padding: 2.5rem max(1rem, calc((100vw - var(--container)) / 2 + 1rem)); }
.dbps-section > * { margin-top: 0; }
.dbps-section.bg-green { background: var(--green); color: var(--navy); padding-top: 1.5rem; padding-bottom: 1.5rem; }
.dbps-section.bg-green h1, .dbps-section.bg-green h2, .dbps-section.bg-green h3 { color: var(--navy); margin: 0; font-weight: 500; font-size: clamp(1.6rem, 3.5vw, 2.25rem); }
.dbps-section.bg-blue { background: var(--blue); color: var(--white); text-align: center; }
.dbps-section.bg-blue p:first-child { color: var(--white); font-size: clamp(1.4rem, 3vw, 2.25rem); font-weight: 600; margin: 0 0 1rem; }
.dbps-section.bg-navy { background: var(--navy); color: var(--white); }
.dbps-section.bg-tint { background: #F3F9EC; }
.dbps-section.bg-image { background: var(--navy); color: var(--white); }
.dbps-section h1 { color: var(--navy); }
.entry-content h2, .dbps-section h2 { color: #222; font-weight: 500; font-size: clamp(1.4rem, 3vw, 1.9rem); line-height: 1.3; }
.dbps-section h3 { color: var(--blue); }
.dbps-section h4 { color: var(--green-dark); font-size: clamp(1.6rem, 3.5vw, 2.4rem); font-weight: 600; text-align: center; margin: 0 0 1rem; }
.dbps-section > p:first-child:has(+ h4) { color: var(--blue); text-align: center; font-weight: 600; margin: 0 0 .25rem; }
.dbps-section h2 a { color: inherit; }
/* columns */
.wp-block-columns { display: flex; flex-wrap: wrap; gap: 2rem; margin: 0 0 1.5rem; }
.wp-block-column { flex: 1 1 100%; min-width: 0; }
@media (min-width: 782px) {
  .wp-block-columns { flex-wrap: nowrap; }
  .wp-block-column { flex: 1 1 0; }
  .wp-block-column[style*="flex-basis"] { flex-grow: 0; }
}
@media (max-width: 781px) { .wp-block-column[style*="flex-basis"] { flex-basis: 100% !important; } }
.has-cards .wp-block-column { background: var(--white); border-bottom: 4px solid var(--blue); padding-bottom: 1rem; }
.has-cards .wp-block-column > :not(figure), .dbps-card > :not(figure) { padding: 0 1.25rem; }
.dbps-card { background: var(--blue); color: var(--white); border-bottom: 4px solid var(--green); padding-bottom: 1rem; height: 100%; }
.has-cards .dbps-card h2, .has-cards h2 { color: var(--blue); font-weight: 600; font-size: 1.35rem; }
.has-cards .dbps-card h2 { color: var(--white); }
.wp-block-image { margin: 0 0 1rem; }
.wp-block-image img { display: block; height: auto; }
.wp-block-image.alignleft { float: left; margin: 0 1rem 1rem 0; }
/* buttons */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1rem 0; }
.dbps-section.bg-blue .wp-block-buttons, .dbps-section.bg-tint > .wp-block-buttons, .dbps-section > .wp-block-buttons:only-child { justify-content: center; }
.wp-block-button__link, a.db-btn, .elementor-button {
  display: inline-block; background: var(--green); color: var(--navy); padding: .7rem 1.4rem;
  border-radius: 3px; font-weight: 500; text-decoration: none; line-height: 1.3;
}
a.db-btn + a.db-btn, .db-btns a { margin-right: .5rem; }
a.db-btn { background: #54595F; }
.wp-block-button__link:hover, a.db-btn:hover { background: var(--green-dark); color: var(--white); text-decoration: none; }
/* lists, tables, details */
.wp-block-list { padding-left: 1.25rem; }
.wp-block-table { overflow-x: auto; margin: 1rem 0; }
.wp-block-table table { border-collapse: collapse; width: 100%; font-size: .9rem; }
.wp-block-table th, .wp-block-table td { border: 1px solid #ccc; padding: .6rem .75rem; text-align: left; }
.wp-block-table tbody tr:nth-child(odd) { background: #f5f5f5; }
.wp-block-details, details { border-bottom: 1px solid #ddd; padding: .75rem 0; }
.wp-block-details summary, details summary { cursor: pointer; font-weight: 600; color: var(--navy); }
/* galleries (carousels) */
.wp-block-gallery { display: flex; gap: .5rem; flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; margin: 1rem 0; padding-bottom: .5rem; }
.wp-block-gallery > figure, .wp-block-gallery .wp-block-image { flex: 0 0 80%; max-width: 320px; scroll-snap-align: start; margin: 0; }
@media (min-width: 782px) { .wp-block-gallery > figure, .wp-block-gallery .wp-block-image { flex-basis: calc(25% - .4rem); max-width: none; } }
.wp-block-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
/* price cards */
.price-card { border: 1px solid #e3e3e3; border-top: 4px solid var(--green); padding: 1.25rem; text-align: center; background: var(--white); height: 100%; }
.price-card h3, .price-card h2 { color: var(--blue); margin: 0; }
.price-amount { font-size: 2rem; font-weight: 700; color: var(--navy); margin: .5rem 0 0; }
.price-period, .price-sub { color: #666; margin: .25rem 0; }
.price-card ul { list-style: none; padding: 0; }
.dbps-toggle details > summary { font-size: 1.15rem; }
/* ticks & testimonials */
.ticks { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; text-align: center; color: var(--navy); }
@media (min-width: 782px) { .ticks { grid-template-columns: repeat(4, 1fr); } }
.ticks li { flex-direction: column; justify-content: center; font-size: 1.05rem; }
.ticks .icon-tick { width: 48px; height: 48px; fill: var(--blue); }
.dbps-testimonial { margin: 0; background: var(--white); box-shadow: 0 2px 10px rgba(0,0,0,.18); padding: 1.5rem; height: 100%; }
.dbps-testimonial blockquote { background: none; border: 0; padding: 0; }
.dbps-stars { color: #F26B1D; letter-spacing: 2px; margin: 0 0 .5rem; }
.dbps-form-placeholder { border: 2px dashed #c00; padding: 1rem; color: #c00; }
/* footer */
.site-footer { color: #bbb; }
.site-footer a { color: #ccc; }
.site-logo { height: 64px; }
@media (min-width: 900px) { .site-logo { height: 80px; } .primary-menu { gap: 2.2rem; } .primary-menu a { letter-spacing: .5px; } }
.submenu-toggle { background: none; border: 0; color: var(--blue); font-size: .6rem; cursor: pointer; padding: 0; margin-left: .15rem; min-width: 24px; min-height: 24px; display: inline-flex; align-items: center; justify-content: center; } /* 1.0.7: 24x24 target */
.sub-menu a { display: block; padding: .4rem 1rem; }
.eyebrow { color: var(--blue); font-weight: 600; }
@media (min-width: 900px) {
  .site-footer .container { display: grid; grid-template-columns: 1fr 2fr; gap: 1rem 3rem; }
  .footer-menu { display: grid; grid-template-columns: 1fr 1fr; grid-auto-flow: column; grid-template-rows: repeat(6, auto); }
  .footer-contact { grid-column: 1 / -1; border-top: 1px solid #444; padding-top: 1rem; font-size: .8rem; }
}
.footer-blurb { font-weight: 400; }
.hero h1 { font-size: clamp(1.6rem, 5vw, 3.125rem); }
.dbps-section h4 { font-size: clamp(2.1rem, 4vw, 2.4rem); line-height: 1.25; }
.dbps-section > p:first-child:has(+ h4) { font-size: clamp(1.25rem, 2.5vw, 1.1rem); }
@media (min-width: 900px) { .dbps-section > p:first-child:has(+ h4) { font-size: 1.05rem; } }
/* price cards: blue header band like live */
.price-card { padding: 0 0 1.25rem; border: 0; box-shadow: 0 2px 10px rgba(0,0,0,.18); }
.price-card > h3:first-child { background: var(--blue); color: var(--white); padding: .9rem .5rem .1rem; font-size: 1.5rem; font-weight: 600; }
.price-card > .price-sub { background: var(--blue); color: #dfe3f5; margin: 0 0 1rem; padding-bottom: .8rem; font-size: .85rem; }
.price-card .price-amount { color: var(--blue); }
.price-card .price-period { font-size: .9rem; color: var(--blue); }
.price-card > .wp-block-buttons { justify-content: center; }

/* v1.0.3: homepage instant quote mount (builder JS/CSS come from the WPCode snippets).
   Space is reserved only until the builder marks itself ready, so there is no
   layout shift when it renders and no empty gap if it ever fails to load. */
.home-quote { padding: 2rem 0; background: var(--white); }
#instant-quote { clear: both; scroll-margin-top: 90px; }
/* Reserved = measured first-render builder height (412px: 3014, 1350px: 1837) so mounting does not shift the page. */
.home-quote .dbq-embed:not([data-dbq-ready]) { min-height: 3014px; }
@media (min-width: 782px) { .home-quote .dbq-embed:not([data-dbq-ready]) { min-height: 1837px; } }
/* Server-rendered builder top (1.0.6): fills the reserved space as the same card. */
.dbq-embed .dbq-ph { min-height: inherit; box-sizing: border-box; }
#instant-quote .dbq-embed {
  --dbq-font: "Poppins", "Poppins Fallback", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --dbq-heading-font: "Kanit", "Poppins", "Poppins Fallback", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}
.dbq-embed .dbq-ph-nojs { padding: 0 22px 22px; }
.hero-picture { position: absolute; inset: 0; z-index: 0; }

/* v1.0.3: pricing 6 Weekly / 12 Weekly toggle. Without JS the bar is hidden and
   both price sets show (6 Weekly first). With JS (html.js, set in <head>) only
   the selected set shows; CSS decides before first paint, so no layout shift. */
.dbps-pt-bar { display: none; }
.js .dbps-pt-bar { display: flex; align-items: center; justify-content: center; gap: .75rem; margin: 1rem 0 1.5rem; }
.dbps-pt-tab { background: none; border: 0; padding: .35rem .25rem; font: inherit; font-size: 1.15rem; font-weight: 600; color: #666; cursor: pointer; border-bottom: 2px solid transparent; }
.dbps-pt-tab[aria-selected="true"] { color: var(--blue); border-bottom-color: var(--green); }
.dbps-pt-tab:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.dbps-pt-switch { position: relative; width: 52px; height: 28px; border-radius: 14px; background: var(--green); cursor: pointer; flex: 0 0 auto; }
.dbps-pt-knob { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: var(--white); transition: transform .2s ease; }
.dbps-pt.is-12 .dbps-pt-knob { transform: translateX(24px); }
.dbps-pt-panel + .dbps-pt-panel { margin-top: 2rem; }
.js .dbps-pt-panel + .dbps-pt-panel { margin-top: 0; }
.js .dbps-pt-12, .js .dbps-pt.is-12 .dbps-pt-6 { display: none; }
.js .dbps-pt.is-12 .dbps-pt-12 { display: block; }
@media (prefers-reduced-motion: reduce) { .dbps-pt-knob { transition: none; } }

/* v1.0.3: answer intro + quick facts (AI-answer content set) */
.dbps-answer { background: #F3F9EC; }
.dbps-answer-lead { font-size: 1.1rem; color: var(--navy); max-width: 900px; }
.dbps-facts { list-style: none; padding: 0; margin: .5rem 0 0; display: grid; gap: .4rem; }
.dbps-facts li { padding-left: 1.4rem; position: relative; }
.dbps-facts li::before { content: ""; position: absolute; left: 0; top: .55em; width: .6rem; height: .6rem; border-radius: 50%; background: var(--green); }

/* v1.0.4: in-page quote mounts (service pages) reserve space until ready */
.entry-content #instant-quote .dbq-embed:not([data-dbq-ready]) { min-height: 3000px; }
@media (min-width: 782px) { .entry-content #instant-quote .dbq-embed:not([data-dbq-ready]) { min-height: 1800px; } }
.dbps-section .wp-block-table td, .dbps-section .wp-block-table th { vertical-align: top; }

/* 1.0.5: whole service card clickable when its heading links somewhere */
.dbps-cols .wp-block-column{position:relative}
.dbps-cols .wp-block-column h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.dbps-cols .wp-block-column:has(h3 a){cursor:pointer;transition:transform .15s ease}
.dbps-cols .wp-block-column:has(h3 a):hover{transform:translateY(-2px)}
.dbps-cols .wp-block-column:has(h3 a):hover h3 a{text-decoration:underline}

/* 1.0.5: mobile menu slides in from the right as a drawer */
@media (max-width: 899px) {
  .primary-nav.is-open { position: static; inset: auto; padding: 0; background: none; }
  .primary-nav .primary-menu {
    display: flex; flex-direction: column; position: fixed; top: 0; right: 0; bottom: 0;
    width: min(82vw, 320px); background: var(--white); padding: 4.5rem 1.5rem 2rem; margin: 0;
    box-shadow: -8px 0 24px rgba(0,0,0,.18); transform: translateX(100%); visibility: hidden;
    transition: transform .25s ease, visibility .25s; z-index: 1000; overflow-y: auto;
  }
  .primary-nav.is-open .primary-menu { transform: none; visibility: visible; }
  .primary-nav .primary-menu > li { border-bottom: 1px solid #eef0f4; }
  .primary-nav .primary-menu a { display: block; padding: .8rem 0; color: var(--navy); font-weight: 600; font-size: 1.1rem; }
  .primary-nav .menu-item-has-children { display: flex; flex-wrap: wrap; align-items: center; }
  .primary-nav .menu-item-has-children > a { flex: 1; }
  .primary-nav .menu-item-has-children > .sub-menu { flex-basis: 100%; display: none; list-style: none; padding: 0 0 .5rem 1rem; margin: 0; }
  .primary-nav li.is-open > .sub-menu { display: block; }
  .primary-nav .sub-menu a { font-size: 1rem; font-weight: 400; padding: .5rem 0; }
  .primary-nav .submenu-toggle { font-size: .9rem; padding: .8rem .5rem; }
  .primary-nav.is-open::before { content: ""; position: fixed; inset: 0; background: rgba(22,22,63,.45); z-index: 999; }
  .primary-nav.is-open .burger { position: fixed; top: 1rem; right: 1rem; z-index: 1001; }
  .primary-nav.is-open .burger svg { display: none; }
  .primary-nav.is-open .burger::after { content: "\2715"; font-size: 24px; line-height: 1; color: var(--navy); }
}

/* 1.0.6 accessibility: links inside running text are underlined so they do
   not rely on colour alone (nav, buttons and cards are not affected). */
.front-content p a:not(.wp-block-button__link):not(.btn),
.front-content li a:not(.wp-block-button__link):not(.btn),
.entry-content p a:not(.wp-block-button__link):not(.btn),
.entry-content li a:not(.wp-block-button__link):not(.btn),
.footer-contact a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.dbps-card a, .price-card a, .dbps-section h2 a { text-decoration: none; }

