/*
 Theme Name:     Divi Child
 Theme URI:      https://lillebureau.dk/
 Description:    Child theme for Det lille bureau (Divi 5). Holds the shared design rules that Divi's module settings can't express on their own: section edges, lists, form layout and a few helper classes used in the Divi layouts.
 Author:         Det lille bureau
 Template:       Divi
 Version:        1.0.0
 Text Domain:    divi-child
*/

/* ==========================================================================
   1. Design tokens (same values as the Divi global colors)
   ========================================================================== */
:root {
  --dlb-aubergine: #24152a;
  --dlb-aubergine-soft: #352340;
  --dlb-deep: #140b18;
  --dlb-red: #891a15;
  --dlb-red-on-dark: #f4a79e;
  --dlb-red-soft: #d9a19b;
  --dlb-mist: #f6f3f5;
  --dlb-hairline: #e6e0e8;
  --dlb-ink: #3d3542;
  --dlb-slate: #6b6170;
  --dlb-on-dark: #cdbfd2;
  --dlb-line-dark: #4a3852;
  --dlb-input-border: #7a6f7f;
}

body {
  font-family: 'Montserrat', Arial, sans-serif;
  color: var(--dlb-ink);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
#page-container { overflow-x: hidden; }
#main-content, #main-content .container:before { background: #fff; }
:focus-visible { outline: 2px solid #4c6ee6; outline-offset: 2px; }

/* Text module defaults */
.et_pb_text p:last-child { padding-bottom: 0; }
.et_pb_text a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.et_pb_text h4 { padding-bottom: 6px; }

/* Buttons placed next to each other (hero, CTA rows) */
.dlb-inline.et_pb_button_module_wrapper,
.et_pb_button_module_wrapper:has(> .dlb-inline) { display: inline-block; margin-right: 12px; vertical-align: top; }
.dlb-center .et_pb_button_module_wrapper { display: inline-block; margin: 0 6px 12px; }
.dlb-center { text-align: center; }
.et_pb_button.dlb-btn { line-height: 1.75 !important; transition: background-color .2s, color .2s, border-color .2s; }

/* Text links styled as small red caps ("Læs mere", "Beregn din pris") */
.dlb-capslink a { font-weight: 600; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--dlb-red); }

/* ==========================================================================
   2. Header (Theme Builder)
   ========================================================================== */
.dlb-topbar a { color: #fff; font-weight: 500; }
.dlb-header .et_pb_menu .et_pb_menu__menu > nav > ul > li > a { padding-bottom: 6px; border-bottom: 1px solid transparent; transition: border-color .2s; }
.dlb-header .et_pb_menu .et_pb_menu__menu > nav > ul > li.current-menu-item > a,
.dlb-header .et_pb_menu .et_pb_menu__menu > nav > ul > li.current-menu-ancestor > a,
.dlb-header .et_pb_menu .et_pb_menu__menu > nav > ul > li.current-page-ancestor > a,
.dlb-header .et_pb_menu .et_pb_menu__menu > nav > ul > li > a:hover { border-bottom-color: var(--dlb-red-soft); opacity: 1; }
.dlb-header .et_pb_menu .et-menu > li { padding-left: 16px; padding-right: 16px; }
.dlb-header .et_pb_menu .nav li ul { border-top: 2px solid var(--dlb-red); padding: 12px 0; width: 260px; }
.dlb-header .et_pb_menu .nav li ul a { width: 100%; padding: 10px 24px; letter-spacing: .12em; }
.dlb-header .et_pb_menu .et_mobile_menu { border-top-color: var(--dlb-red); }
.dlb-header .et_pb_menu .et_mobile_menu a { letter-spacing: .14em; text-transform: uppercase; font-size: 13px; }
.dlb-header .mobile_menu_bar:before { color: #fff !important; }
.dlb-header-cta { display: flex !important; align-items: center; justify-content: flex-end; gap: 24px; }
.dlb-header-cta > .et_pb_module { margin-bottom: 0 !important; }
.dlb-phone a { color: var(--dlb-on-dark); text-decoration: none; letter-spacing: .1em; font-weight: 500; }
.dlb-phone a:hover { color: #fff; }
.dlb-ring { display: none !important; }

/* ==========================================================================
   3. Sections: slanted edges
   ========================================================================== */
/* Footer slants up over whatever section comes before it */
.dlb-footer {
  position: relative;
  margin-top: -64px;
  clip-path: polygon(0 64px, 100% 0, 100% 100%, 0 100%);
  overflow: hidden;
}
.dlb-footer::before {
  content: "lille";
  position: absolute; left: -12px; bottom: -0.32em;
  font: 500 clamp(140px, 22vw, 320px)/1 'Montserrat', sans-serif;
  letter-spacing: -.02em;
  color: rgba(255,255,255,.035);
  pointer-events: none;
}
.dlb-footer .et_pb_row { position: relative; z-index: 1; }
.dlb-footer .et_pb_text a { color: var(--dlb-on-dark); text-decoration: none; }
.dlb-footer .et_pb_text a:hover { color: #fff; }
.dlb-footer .dlb-nap a { color: #fff; text-decoration: underline; }
.dlb-footer .dlb-legal a { color: var(--dlb-on-dark); text-decoration: underline; }
.dlb-footer .dlb-links p { padding-bottom: 6px; }

/* ==========================================================================
   4. Lists
   ========================================================================== */
/* Checklist with ✓ */
.dlb-checklist ul { list-style: none; padding: 0 !important; margin: 0; border-top: 1px solid var(--dlb-hairline); }
.dlb-checklist li { position: relative; padding: 13px 0 13px 30px; border-bottom: 1px solid var(--dlb-hairline); line-height: 1.6; }
.dlb-checklist li::before { content: ""; position: absolute; left: 4px; top: 20px; width: 10px; height: 5px; border-left: 1.5px solid var(--dlb-red); border-bottom: 1.5px solid var(--dlb-red); transform: rotate(-45deg); }
.dlb-checklist.dlb-on-dark ul, .dlb-checklist.dlb-on-dark li { border-color: var(--dlb-line-dark); }
.dlb-checklist.dlb-on-dark li::before { border-color: #fff; }
.dlb-checklist.dlb-caps li { font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; padding-left: 24px; }
.dlb-checklist.dlb-caps li::before { left: 2px; top: 19px; width: 8px; height: 4px; }

/* Price list: label left, price right */
.dlb-pricelist ul { list-style: none; padding: 0 !important; margin: 0; }
.dlb-pricelist li { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 14px 0; border-top: 1px solid var(--dlb-hairline); }
.dlb-pricelist li:last-child { border-bottom: 1px solid var(--dlb-hairline); }
.dlb-pricelist li strong { color: var(--dlb-aubergine); font-weight: 600; text-align: right; flex-shrink: 0; max-width: 60%; }
.dlb-pricelist.dlb-on-dark li { border-color: var(--dlb-line-dark); }
.dlb-pricelist.dlb-on-dark li strong { color: #fff; }
.dlb-pricelist.dlb-compact li { padding: 10px 0; font-size: 15px; }

/* Contact routes in the contact band */
.dlb-contactlist ul { list-style: none; padding: 0 !important; margin: 0; border-top: 1px solid var(--dlb-line-dark); }
.dlb-contactlist li { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 4px 16px; padding: 16px 0; border-bottom: 1px solid var(--dlb-line-dark); }
.dlb-contactlist li a { color: #fff; font-weight: 600; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; text-underline-offset: 5px; }
.dlb-contactlist li a[href^="mailto"] { text-transform: none; letter-spacing: .04em; font-size: 13px; }

/* Trust strip (four short points between hairlines) */
.dlb-trust ul { list-style: none; padding: 0 !important; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--dlb-hairline); border-bottom: 1px solid var(--dlb-hairline); }
.dlb-trust li { padding: 24px 16px; text-align: center; font-size: 12px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--dlb-aubergine); }

/* Logo wall / network grid */
.dlb-grid ul { list-style: none; padding: 0 !important; margin: 0; display: grid; grid-template-columns: repeat(var(--cols, 6), 1fr); border-left: 1px solid var(--dlb-hairline); border-top: 1px solid var(--dlb-hairline); }
.dlb-grid li { display: flex; align-items: center; justify-content: center; min-height: 110px; padding: 16px; text-align: center; border-right: 1px solid var(--dlb-hairline); border-bottom: 1px solid var(--dlb-hairline); font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--dlb-slate); }
.dlb-grid.dlb-network ul { --cols: 3; border-color: var(--dlb-line-dark); }
.dlb-grid.dlb-network li { border-color: var(--dlb-line-dark); color: var(--dlb-on-dark); min-height: 88px; }
.dlb-grid.dlb-network li strong { display: block; color: #fff; font-weight: 600; }
.dlb-grid.dlb-network li.dlb-center-cell { background: var(--dlb-red); color: #fff; flex-direction: column; }
.dlb-grid.dlb-network li.dlb-center-cell span { font-size: 11px; letter-spacing: 0; text-transform: none; font-weight: 400; }

/* Facts strip (Om bureauet) */
.dlb-facts ul { list-style: none; padding: 0 !important; margin: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 40px; padding: 20px 0 !important; border-top: 1px solid var(--dlb-hairline); border-bottom: 1px solid var(--dlb-hairline); }
.dlb-facts li { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--dlb-aubergine); }
.dlb-facts li a { color: var(--dlb-red); }

/* ==========================================================================
   5. Cards, steps, photo placeholders
   ========================================================================== */
.dlb-photo { display: flex !important; align-items: center; justify-content: center; }
.dlb-photo .et_pb_text_inner { width: 100%; }

.dlb-step .dlb-num { font-size: 40px; line-height: 1; font-weight: 400; color: var(--dlb-red); padding-bottom: 16px; }
.dlb-step h4 { font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--dlb-aubergine); line-height: 1.6; padding-bottom: 8px; }
.dlb-step.dlb-on-dark .dlb-num { color: var(--dlb-red-on-dark); }
.dlb-step.dlb-on-dark h4 { color: #fff; }
.dlb-step-line { border-top: 1px solid var(--dlb-line-dark); padding-top: 28px; }
.dlb-step.dlb-row-step { display: grid; grid-template-columns: 56px 1fr; column-gap: 8px; border-top: 1px solid var(--dlb-hairline); padding: 18px 0; }
.dlb-step.dlb-row-step .et_pb_text_inner { display: contents; }
.dlb-step.dlb-row-step .dlb-num { font-size: 28px; grid-row: span 2; padding: 0; }
.dlb-step.dlb-row-step h4 { padding-bottom: 2px; }

.dlb-card h4 { font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--dlb-aubergine); padding-bottom: 12px; line-height: 1.6; }
.dlb-card.dlb-on-dark h4 { color: #fff; }
.dlb-card .dlb-sub { color: var(--dlb-red); font-weight: 600; font-size: 14px; }
.dlb-pricecard { border-top: 2px solid var(--dlb-red); }
.dlb-pricecard .dlb-meta { display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid var(--dlb-hairline); margin-top: 20px; padding-top: 16px; font-size: 14px; }
.dlb-pricecard .dlb-meta strong { color: var(--dlb-aubergine); }
.dlb-topline { border-top: 2px solid var(--dlb-red); }

/* Case grid (full-bleed placeholders) */
.dlb-bleed .et_pb_column { margin-bottom: 0 !important; }

/* Equal height columns where the row uses it */
.et_pb_equal_columns > .et_pb_column { display: flex; flex-direction: column; }
.dlb-fill { flex: 1; }

/* ==========================================================================
   6. FAQ toggles
   ========================================================================== */
.dlb-faq.et_pb_toggle { border: 0 !important; border-top: 1px solid var(--dlb-hairline) !important; }
.dlb-faq-row .et_pb_column > .dlb-faq:last-child { border-bottom: 1px solid var(--dlb-hairline) !important; }
.dlb-faq .et_pb_toggle_title { padding-right: 0 !important; padding-left: 22px; }
.dlb-faq .et_pb_toggle_title:before { content: "" !important; right: auto !important; left: 2px; top: 50% !important; margin-top: -4px !important; width: 0; height: 0; border-style: solid; border-width: 5px 0 5px 7px; border-color: transparent transparent transparent var(--dlb-aubergine); font-size: 0 !important; transition: transform .2s; }
.dlb-faq.et_pb_toggle_open .et_pb_toggle_title:before { transform: rotate(90deg); display: block !important; }
.dlb-faq .et_pb_toggle_content { padding-top: 12px; }

/* ==========================================================================
   7. Forms (Divi contact form module)
   ========================================================================== */
.dlb-form .et_pb_contact_form { margin-left: 0; }
.dlb-form .et_pb_contact_field { padding-left: 0 !important; margin-bottom: 20px !important; }
.dlb-form .et_pb_contact_form_label,
.dlb-form .et_pb_contact_field_options_title { display: block !important; position: static !important; width: auto !important; height: auto !important; clip: auto !important; margin-bottom: 8px; font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--dlb-ink); }
.dlb-form .input { padding: 14px 16px !important; border-radius: 0 !important; font-family: 'Montserrat', sans-serif; }
.dlb-form textarea.input { min-height: 130px; }
.dlb-form .input:focus { border-color: var(--dlb-red) !important; outline: 2px solid rgba(137,26,21,.15); }
.dlb-form .input::placeholder { color: #8b8090; }
.dlb-form .et_contact_bottom_container { float: none; display: block; text-align: left; margin-top: 4px; }
.dlb-form .et_pb_contact_submit { margin-left: 0 !important; }
.dlb-form .et_pb_contact_field[data-type="checkbox"] .et_pb_contact_field_options_list,
.dlb-form .et_pb_contact_field[data-type="radio"] .et_pb_contact_field_options_list { display: flex; flex-wrap: wrap; gap: 8px; }
.dlb-form .et_pb_contact_field_checkbox, .dlb-form .et_pb_contact_field_radio { margin: 0 !important; padding: 10px 14px; border: 1px solid var(--dlb-hairline); background: #fff; font-size: 14px; }
.dlb-form .et_pb_contact_field_checkbox label, .dlb-form .et_pb_contact_field_radio label { color: var(--dlb-ink) !important; }
.dlb-form .et-pb-contact-message { color: var(--dlb-red); font-weight: 500; }
.dlb-small p { font-size: 12px; }

/* Contact page: three forms shown as tabs */
.dlb-tabs ul { list-style: none; padding: 0 !important; margin: 0; display: flex; flex-wrap: wrap; border-bottom: 1px solid var(--dlb-hairline); }
.dlb-tabs li a { display: block; padding: 14px 24px; font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--dlb-aubergine); text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.dlb-tabs li a.is-active, .dlb-tabs li a:hover { color: var(--dlb-red); border-bottom-color: var(--dlb-red); }
.dlb-js .dlb-tabpanel:not(.is-active) { display: none !important; }

/* ==========================================================================
   8. Price calculator (shortcode from the DLB Prisberegner plugin)
   ========================================================================== */
.dlb-calc-services ul { list-style: none; padding: 0 !important; margin: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.dlb-calc-services li a { display: flex; align-items: center; justify-content: center; min-height: 60px; padding: 12px; border: 1px solid var(--dlb-line-dark); color: #fff; font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; text-align: center; transition: border-color .2s, background .2s; }
.dlb-calc-services li a:hover { border-color: #fff; background: rgba(255,255,255,.04); }

/* ==========================================================================
   9. Responsive
   ========================================================================== */
@media (max-width: 980px) {
  .dlb-trust ul { grid-template-columns: repeat(2, 1fr); }
  .dlb-grid ul { --cols: 3; }
  .dlb-calc-services ul { grid-template-columns: repeat(2, 1fr); }
  .dlb-header-cta { justify-content: flex-end; }
  .dlb-footer { margin-top: -40px; clip-path: polygon(0 40px, 100% 0, 100% 100%, 0 100%); }
}
@media (max-width: 767px) {
  .dlb-header .dlb-cta-btn { display: none !important; }
  .dlb-ring { display: block !important; }
  .dlb-phone { display: none !important; }
  .dlb-trust li { padding: 18px 8px; font-size: 11px; letter-spacing: .14em; }
  .dlb-grid ul { --cols: 2; }
  .dlb-grid.dlb-network ul { --cols: 2; }
  .dlb-pricelist li { flex-direction: column; gap: 2px; }
  .dlb-pricelist li strong { text-align: left; max-width: none; }
  .dlb-contactlist li { flex-direction: column; }
  .dlb-tabs li { flex: 1 1 auto; }
  .dlb-tabs li a { padding: 12px 10px; text-align: center; letter-spacing: .1em; }
  .dlb-calc-services ul { grid-template-columns: 1fr; }
  .dlb-footer { margin-top: -28px; clip-path: polygon(0 28px, 100% 0, 100% 100%, 0 100%); }
  .dlb-inline.et_pb_button_module_wrapper, .et_pb_button_module_wrapper:has(> .dlb-inline) { display: block; margin-right: 0; }
  .dlb-inline.et_pb_button { display: block; text-align: center; }
}

/* ==========================================================================
   10. Additions (layout helpers)
   ========================================================================== */
@media (min-width: 981px) {
  .dlb-vcenter { display: flex; align-items: center; }
  .dlb-vcenter > .et_pb_column { margin-bottom: 0 !important; }
  .dlb-sticky { position: sticky; top: 32px; align-self: flex-start; }
  .dlb-contactsec .et_pb_row { display: flex; }
}
.dlb-headrow { display: flex; align-items: center; }
.dlb-headrow > .et_pb_column { margin-bottom: 0 !important; }
.dlb-menucol { flex: 1; }
.dlb-header .et_pb_menu__logo-wrap img { max-height: none; }
.dlb-footer-bottom { border-top: 1px solid var(--dlb-line-dark); }
.dlb-footer .dlb-nap a { color: #fff; }
.dlb-direct .dlb-direct-label { font-size: 12px; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: var(--dlb-red-on-dark); padding-bottom: 8px; }
.dlb-direct .dlb-direct-phone { font-size: 30px; font-weight: 500; letter-spacing: .06em; line-height: 1.3; padding-bottom: 12px; }
.dlb-direct .dlb-direct-phone a { text-decoration: none; }
.dlb-who { border-bottom: 1px solid var(--dlb-hairline); padding-bottom: 20px; }
.dlb-todo { border: 1px dashed var(--dlb-red-soft); }
.dlb-case .dlb-case-type { font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--dlb-slate); padding-bottom: 8px; }
.dlb-case h4 { padding-bottom: 8px; }
.dlb-nextlink h4 a { color: var(--dlb-aubergine); text-decoration: none; }
.dlb-grouplist h4 a { color: var(--dlb-aubergine); text-decoration: none; }
.dlb-grouplist h4 { padding-bottom: 12px; }
.dlb-pricenote strong { color: var(--dlb-red); font-weight: 600; font-size: 12px; letter-spacing: .3em; text-transform: uppercase; }
.dlb-factline { border-top: 1px solid var(--dlb-hairline); border-bottom: 1px solid var(--dlb-hairline); padding: 20px 0 !important; }
.dlb-legaltext h3 { font-size: 15px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--dlb-aubergine); padding: 24px 0 8px; }
.dlb-calc-wrap .et_pb_text_inner > p:empty { display: none; }
@media (max-width: 767px) {
  .dlb-headrow > .et_pb_column { width: auto !important; }
  .dlb-headrow > .dlb-menucol { flex: 1; }
  .dlb-header-cta { gap: 0; }
  .dlb-header .et_pb_menu .et_mobile_nav_menu { margin-left: auto; }
}.dlb-headrow > .dlb-menucol { width: auto !important; flex: 1 1 auto; margin-right: 32px !important; }
.dlb-headrow > .dlb-header-cta { width: auto !important; flex: 0 0 auto; margin-right: 0 !important; }
.dlb-header-cta .et_pb_button, .dlb-phone p { white-space: nowrap; }
.dlb-form .input::placeholder { color: transparent; }
.dlb-form .et_pb_contact_field[data-id="hvornaar"] .input::placeholder { color: transparent; }
.dlb-faq .et_pb_toggle_title { padding-left: 24px !important; }
.dlb-faq h5.et_pb_toggle_title, .dlb-faq .et_pb_toggle_title { line-height: 1.6 !important; }

.dlb-form .et_pb_contact_field_checkbox, .dlb-form .et_pb_contact_field_radio { width: auto !important; flex: 0 0 auto; }
.dlb-form .et_pb_contact_field[data-type=checkbox] .et_pb_contact_field_options_title, .dlb-form .et_pb_contact_field[data-type=radio] .et_pb_contact_field_options_title { display: none !important; }
.dlb-form .input::placeholder, .dlb-form .input::-webkit-input-placeholder { color: transparent !important; }
.dlb-form .et_contact_bottom_container { justify-content: flex-start !important; width: 100%; }
.dlb-direct .dlb-direct-phone { font-size: 26px; white-space: nowrap; }
.dlb-direct a[href^=mailto] { word-break: break-all; }

.dlb-form .input:not([type=checkbox]):not([type=radio]) { border: 1px solid var(--dlb-input-border) !important; background: #fff !important; }
.dlb-form .input:not([type=checkbox]):not([type=radio]):focus { border-color: var(--dlb-red) !important; }
.dlb-form select.input { appearance: auto; }
.dlb-calc__steps, .et_pb_text ol.dlb-calc__steps { list-style: none !important; }
.dlb-calc__steps li { list-style: none !important; }

@media (max-width: 980px) {
  .dlb-headrow { position: relative; }
  .dlb-header .dlb-menucol, .dlb-header .et_pb_menu, .dlb-header .et_pb_menu_inner_container, .dlb-header .et_pb_menu__wrap, .dlb-header .et_mobile_nav_menu, .dlb-header .mobile_nav { position: static !important; }
  .dlb-header .et_mobile_menu { left: 0 !important; right: 0 !important; width: 100% !important; top: calc(100% + 16px) !important; padding: 16px 24px 24px !important; background: var(--dlb-aubergine) !important; border-top: 2px solid var(--dlb-red) !important; box-shadow: 0 16px 32px rgba(0,0,0,.35); z-index: 9999; }
  .dlb-header .et_mobile_menu li a { border-bottom: 1px solid var(--dlb-line-dark); padding: 12px 0 !important; }
  .dlb-header .et_mobile_menu li li a { padding-left: 20px !important; font-size: 12px; }
}

/* ==========================================================================
   v2 – varm, blødere udgave (prototype: kun sider med body-klassen .dlb-v2)
   ========================================================================== */
body.dlb-v2 {
  --gcid-dlb-aubergine: #263d35; --gcid-dlb-aubergine-soft: #ddd4c6; --gcid-dlb-deep: #1e312a;
  --gcid-dlb-red-on-dark: #e3aa97; --gcid-dlb-red-soft: #c98b79; --gcid-dlb-mist: #eae3d8; --gcid-dlb-hairline: #dcd4c7;
  --gcid-dlb-ink: #333b36; --gcid-dlb-slate: #5f6a63; --gcid-dlb-on-dark: #c8d2cb; --gcid-dlb-line-dark: #3d564c;
  --gcid-primary-color: #b66b58; --gcid-secondary-color: #263d35; --gcid-heading-color: #263d35; --gcid-body-color: #333b36; --gcid-link-color: #9f5a49;
  --dlb-aubergine: #263d35; --dlb-aubergine-soft: #ddd4c6; --dlb-deep: #1e312a; --dlb-red: #b66b58; --dlb-red-on-dark: #e3aa97; --dlb-red-soft: #c98b79;
  --dlb-mist: #eae3d8; --dlb-hairline: #dcd4c7; --dlb-ink: #333b36; --dlb-slate: #5f6a63; --dlb-on-dark: #c8d2cb; --dlb-line-dark: #3d564c; --dlb-input-border: #a9a397;
  font-family: 'DM Sans', Arial, sans-serif; color: #333b36; background: #f6f3ee;
}
body.dlb-v2 #main-content, body.dlb-v2 .et_pb_section { background-color: #f6f3ee; }
body.dlb-v2 h1, body.dlb-v2 h2, body.dlb-v2 h3, body.dlb-v2 h4, body.dlb-v2 h5 { font-family: 'Manrope', Arial, sans-serif; }
body.dlb-v2 .et_pb_image img { border-radius: 12px; }

/* Header */
body.dlb-v2 .dlb-topbar p { font-family: 'DM Sans', sans-serif; letter-spacing: .01em !important; font-size: 13px; }
body.dlb-v2 .dlb-header .et_pb_menu .et-menu > li > a, body.dlb-v2 .dlb-header .et_pb_menu .et_mobile_menu a { font-family: 'DM Sans', sans-serif !important; text-transform: none !important; letter-spacing: .01em !important; font-size: 15px !important; font-weight: 500 !important; }
body.dlb-v2 .dlb-header .et_pb_menu .nav li ul { border-radius: 10px; border-top-width: 0; padding: 10px 0; box-shadow: 0 12px 32px rgba(20,35,30,.25); }
body.dlb-v2 .dlb-header .et_pb_menu .nav li ul a { font-size: 14px !important; }
body.dlb-v2 .dlb-header .et_pb_button { font-family: 'DM Sans', sans-serif !important; text-transform: none !important; letter-spacing: .01em !important; font-size: 15px !important; border-radius: 8px !important; }
body.dlb-v2 .dlb-phone a { font-family: 'DM Sans', sans-serif; letter-spacing: .02em; font-size: 15px; }
body.dlb-v2 .dlb-header .et_mobile_menu { border-radius: 0 0 12px 12px; border-top-width: 0 !important; }

/* Soft footer curve instead of slant */
body.dlb-v2 .dlb-footer { clip-path: none; margin-top: -56px; border-radius: 50% 50% 0 0 / 56px 56px 0 0; }
body.dlb-v2 .dlb-footer::before { font-family: 'Manrope', sans-serif; color: rgba(255,255,255,.03); }
body.dlb-v2 .dlb-footer .et_pb_text p, body.dlb-v2 .dlb-footer .et_pb_text { font-family: 'DM Sans', sans-serif; }
body.dlb-v2 .dlb-footer .et_pb_text_0 p { letter-spacing: .02em !important; }
@media (max-width: 980px) { body.dlb-v2 .dlb-footer { margin-top: -40px; border-radius: 50% 50% 0 0 / 40px 40px 0 0; } }
@media (max-width: 767px) { body.dlb-v2 .dlb-footer { margin-top: -24px; border-radius: 50% 50% 0 0 / 24px 24px 0 0; } }

/* Lists, steps, cards */
body.dlb-v2 .dlb-trust li, body.dlb-v2 .dlb-facts li, body.dlb-v2 .dlb-checklist.dlb-caps li { text-transform: none; letter-spacing: 0; font-size: 15px; font-weight: 500; font-family: 'DM Sans', sans-serif; }
body.dlb-v2 .dlb-trust ul { border-radius: 12px; border: 1px solid var(--dlb-hairline); background: #fbf9f5; }
body.dlb-v2 .dlb-step .dlb-num { font-family: 'Manrope', sans-serif; font-weight: 500; color: var(--dlb-red); }
body.dlb-v2 .dlb-step h4, body.dlb-v2 .dlb-card h4 { font-family: 'Manrope', sans-serif; text-transform: none; letter-spacing: -.005em; font-size: 18px; font-weight: 600; color: var(--dlb-aubergine); }
body.dlb-v2 .dlb-step.dlb-on-dark h4, body.dlb-v2 .dlb-card.dlb-on-dark h4 { color: #fff; }
body.dlb-v2 .dlb-capslink a { text-transform: none; letter-spacing: .01em; font-size: 15px; font-weight: 600; color: var(--dlb-red); }
body.dlb-v2 .dlb-pricelist li strong { font-family: 'Manrope', sans-serif; }
body.dlb-v2 .dlb-contactlist li a { text-transform: none; letter-spacing: .01em; font-size: 15px; }
body.dlb-v2 .dlb-checklist li::before { border-color: var(--dlb-red); }
body.dlb-v2 .dlb-checklist.dlb-on-dark li::before { border-color: var(--dlb-red-on-dark); }
body.dlb-v2 .dlb-photo p { letter-spacing: .1em !important; }

/* FAQ */
body.dlb-v2 .dlb-faq .et_pb_toggle_title { font-family: 'Manrope', sans-serif !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 18px !important; }
body.dlb-v2 .dlb-faq .et_pb_toggle_title:before { border-left-color: var(--dlb-red); }

/* Forms */
body.dlb-v2 .dlb-formcard { border-radius: 16px; }
body.dlb-v2 .dlb-form .et_pb_contact_form_label, body.dlb-v2 .dlb-form .et_pb_contact_field_options_title { font-family: 'DM Sans', sans-serif; text-transform: none; letter-spacing: 0; font-size: 14px; font-weight: 600; color: #263d35; }
body.dlb-v2 .dlb-form .input:not([type=checkbox]):not([type=radio]) { border-radius: 6px !important; font-family: 'DM Sans', sans-serif; }
body.dlb-v2 .dlb-form .et_pb_contact_field_checkbox, body.dlb-v2 .dlb-form .et_pb_contact_field_radio { border-radius: 6px; }
body.dlb-v2 .dlb-form .et_pb_contact_submit { border-radius: 8px !important; }
body.dlb-v2 .dlb-footer .et_pb_text p { letter-spacing: .1em !important; }
body.dlb-v2 .dlb-footer .dlb-links p, body.dlb-v2 .dlb-footer .dlb-nap p, body.dlb-v2 .dlb-footer .dlb-legal p { letter-spacing: 0 !important; }

/* v2: remaining CSS-driven labels */
body.dlb-v2 .dlb-tabs li a { text-transform: none; letter-spacing: .01em; font-size: 15px; font-weight: 600; font-family: 'DM Sans', sans-serif; }
body.dlb-v2 .dlb-calc-services li a { text-transform: none; letter-spacing: 0; font-size: 15px; font-weight: 600; border-radius: 10px; font-family: 'DM Sans', sans-serif; }
body.dlb-v2 .dlb-pricenote strong { text-transform: none; letter-spacing: 0; font-size: 13px; }
body.dlb-v2 .dlb-direct .dlb-direct-label { text-transform: none; letter-spacing: .02em; font-size: 14px; }
body.dlb-v2 .dlb-direct .dlb-direct-phone { font-family: 'Manrope', sans-serif; letter-spacing: 0; }
body.dlb-v2 .dlb-case .dlb-case-type { text-transform: none; letter-spacing: .02em; font-size: 13px; }
body.dlb-v2 .dlb-legaltext h3 { text-transform: none; letter-spacing: 0; font-size: 19px; }
body.dlb-v2 .dlb-grid li { text-transform: none; letter-spacing: .01em; font-size: 14px; font-weight: 500; }
body.dlb-v2 .dlb-grid ul { border-radius: 12px; overflow: hidden; }
body.dlb-v2 .dlb-pricecard, body.dlb-v2 .dlb-topline { border-top: 0; }
body.dlb-v2 .dlb-factline { border-radius: 12px; }
body.dlb-v2 .dlb-todo { border-radius: 12px; }
/* Background video in rounded boxes: always cover the box (Chrome + Safari) */
.et-pb-has-background-video { position: relative; overflow: hidden; isolation: isolate; }
.et-pb-has-background-video > .et-pb-background-video, .et-pb-has-background-video > span.et-pb-background-video { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; overflow: hidden; z-index: 0; }
.et-pb-has-background-video .et-pb-background-video .mejs-container, .et-pb-has-background-video .et-pb-background-video .mejs-inner, .et-pb-has-background-video .et-pb-background-video .mejs-mediaelement, .et-pb-has-background-video .et-pb-background-video mediaelementwrapper { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; margin: 0 !important; background: transparent !important; }
.et-pb-has-background-video .et-pb-background-video video { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; max-width: none !important; margin: 0 !important; object-fit: cover; }
.et-pb-has-background-video .mejs-controls, .et-pb-has-background-video .mejs-overlay, .et-pb-has-background-video .mejs-layers { display: none !important; }
.et-pb-has-background-video > .et_pb_text_inner { position: relative; z-index: 1; }

/* Divi sometimes misses the 'canplay' event and leaves its grey loading layer on top of background videos */
.et-pb-has-background-video.et_pb_preload { background-color: var(--dlb-aubergine-soft, #ddd4c6) !important; }
.et-pb-has-background-video.et_pb_preload::before { display: none !important; }
.et-pb-has-background-video.et_pb_preload > * { visibility: visible !important; opacity: 1 !important; }

/* Service card photos (front page) */
.dlb-cardimg .et_pb_image_wrap { display: block; width: 100%; aspect-ratio: 300 / 312; overflow: hidden; border-radius: 12px; }
.dlb-cardimg img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 12px; }
@media (max-width: 980px) { .dlb-cardimg .et_pb_image_wrap { aspect-ratio: 4 / 3; } }

/* Header menu: keep items on one line with the logo, and the submenu arrow level with the text */
@media (min-width: 981px) {
  .dlb-header .et_pb_menu .et-menu-nav > ul > li > a { padding-top: 6px !important; padding-bottom: 6px !important; align-items: center; }
  .dlb-header .et_pb_menu .et-menu-nav > ul > li { display: flex; align-items: center; }
  .dlb-header .et_pb_menu .et-menu-nav > ul > li.menu-item-has-children > a { padding-right: 22px !important; }
  .dlb-header .et_pb_menu .et-menu-nav > ul > li.menu-item-has-children > a::after { top: 50% !important; right: 0 !important; transform: translateY(-50%); line-height: 1 !important; font-size: 16px !important; }
  .dlb-header .et_pb_menu .et-menu-nav > ul > li > ul.sub-menu { top: 100% !important; margin-top: 0; }
  .dlb-header .et_pb_menu .et_pb_menu__wrap, .dlb-header .et_pb_menu .et-menu-nav, .dlb-header .et_pb_menu .et-menu-nav > ul { align-items: center; }
  .dlb-header .et_pb_menu .nav li ul a { letter-spacing: .01em !important; text-transform: none !important; }
}
