/* =====================================================================
   DO Blog Template – Direct Objective
   Everything is scoped under .dobt (plugin sections) or the Elementor
   classes .dobt-body / .dobt-rail-col / .dobt-main-col / .dobt-content.
   ===================================================================== */
:root {
	--dobt-accent: #527aba;
	--dobt-accent-soft: #A9BEDC;
	--dobt-accent-2: #b247bb;
	--dobt-ink: #262626;
	--dobt-bg: #FBFBFA;
	--dobt-sand: #E3DACB;
	--dobt-font: Montserrat, "Helvetica Neue", Helvetica, Arial, sans-serif;
	--dobt-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
	--dobt-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--dobt-sticky-top: 116px;   /* distance of the sticky sidebar from the top (under your header) */
	--dobt-px: 64px;
}
@media (max-width: 1080px) { :root { --dobt-px: 40px; } }
@media (max-width: 760px)  { :root { --dobt-px: 22px; } }

/* ---------- shield: the theme forces fonts / styles on spans, headings … ---------- */
.dobt, .dobt-content { font-family: var(--dobt-font); color: var(--dobt-ink); -webkit-font-smoothing: antialiased; }
.dobt *, .dobt *::before, .dobt *::after { box-sizing: border-box; }
.dobt :is(div, section, figure, p, span, a, h1, h2, h3, h4, ul, li, button, summary, nav, strong, b, em, blockquote, figcaption, time),
.dobt-content :is(p, span, a, h1, h2, h3, h4, h5, li, strong, b, em, blockquote, figcaption, td, th, caption, label, div) {
	font-family: var(--dobt-font) !important;
}
.dobt .dobt-mono, .dobt .dobt-mono *, .dobt-content .dobt-mono, .dobt-content .dobt-mono * ,
.dobt-content .dobt-method-label, .dobt-content .dobt-method-label *, .dobt-content figcaption, .dobt-content .wp-caption-text,
.dobt-content .widget-image-caption { font-family: var(--dobt-mono) !important; }
.dobt h1, .dobt h2, .dobt h3, .dobt h4 { text-transform: none !important; font-style: normal !important; text-shadow: none; padding: 0 !important; border: 0 !important; background: none !important; }
.dobt p { padding: 0; }
.dobt a { text-decoration: none !important; box-shadow: none !important; transition: color .2s ease; }
.dobt ul { list-style: none; }
.dobt img { max-width: 100%; height: auto; border: 0 !important; box-shadow: none; }
.dobt button { font: inherit; text-transform: none; letter-spacing: inherit; box-shadow: none; }
.dobt-dot { display: inline-block; width: 6px; height: 6px; border-radius: 999px; background: var(--dobt-accent); flex: 0 0 auto; }
.dobt-arw { display: inline-block; width: 1.25em; height: .62em; flex: 0 0 auto; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; vertical-align: middle; }

@keyframes dobtIn { 0% { opacity: 0; transform: translateY(18px); } 100% { opacity: 1; transform: none; } }
@keyframes dobtRing { 0% { transform: scale(1); opacity: .75; } 35% { transform: scale(1.9); opacity: 0; } 100% { transform: scale(1.9); opacity: 0; } }
@keyframes dobtNudge { 0%, 100% { transform: scale(1); } 6% { transform: scale(1.12); } 12% { transform: scale(.96); } 18% { transform: scale(1.04); } 24% { transform: scale(1); } }

/* reading progress: handled by the site header; hide any old plugin bar (cached pages) */
.dobt-progress, [data-dobt-progress] { display: none !important; }

/* =====================================================================
   1. HERO
   ===================================================================== */
.dobt-hero { margin: 28px var(--dobt-px) 0; margin-left: max(var(--dobt-px), calc((100% - 1440px) / 2 + var(--dobt-px))); margin-right: max(var(--dobt-px), calc((100% - 1440px) / 2 + var(--dobt-px))); /* sits inside the same 1440px box as header + footer */ animation: dobtIn .8s ease both; }
.dobt-hero__fig { position: relative; margin: 0 !important; min-height: 720px; border-radius: 4px; overflow: hidden; background: #262626; display: flex; flex-direction: column; justify-content: flex-end; }
.dobt-hero__img { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; display: block; }
.dobt-hero__shade1 { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18,18,20,.35) 0%, rgba(18,18,20,.1) 22%, rgba(18,18,20,.45) 48%, rgba(18,18,20,.86) 76%, rgba(18,18,20,.94) 100%); }
.dobt-hero__shade2 { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,18,20,.55) 0%, rgba(18,18,20,0) 65%); }
.dobt-hero__top { position: absolute; left: 56px; right: 56px; top: 36px; display: flex; align-items: center; justify-content: space-between; gap: 32px; padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,.24); font-size: 10.5px !important; line-height: 1.4; letter-spacing: .13em; text-transform: uppercase; color: rgba(255,255,255,.8); text-shadow: 0 1px 8px rgba(0,0,0,.45); z-index: 1; }
.dobt-hero__crumb, .dobt-hero__time { display: inline-flex; align-items: center; gap: 10px; }
.dobt-hero__crumb a { color: rgba(255,255,255,.8) !important; }
.dobt-hero__crumb a:hover { color: #fff !important; }
.dobt-hero__crumb .dobt-hero__cat { color: #fff !important; }
.dobt-hero__sep { color: rgba(255,255,255,.5); }
.dobt-hero__time svg { display: block; flex: 0 0 auto; }

.dobt-play { position: absolute; right: 56px; top: 112px; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 0 !important; background: none !important; border: none !important; cursor: pointer; color: #fff !important; font-size: 10.5px !important; line-height: 1.4 !important; letter-spacing: .13em !important; text-transform: uppercase !important; text-shadow: 0 1px 8px rgba(0,0,0,.45); --play-s: 1; min-height: 0 !important; }
.dobt-play:hover, .dobt-play:focus-visible { --play-s: 1.08; background: none !important; color: #fff !important; }
.dobt-play__btn { position: relative; display: flex; align-items: center; justify-content: center; width: 88px; height: 88px; transform: scale(var(--play-s, 1)); transition: transform .3s var(--dobt-ease); }
.dobt-play__ring { position: absolute; inset: 0; border-radius: 999px; border: 2px solid var(--dobt-accent-soft); animation: dobtRing 4s var(--dobt-ease) infinite; }
.dobt-play__ring--2 { animation-delay: .35s; }
.dobt-play__core { display: flex; align-items: center; justify-content: center; width: 88px; height: 88px; border-radius: 999px; background: var(--dobt-accent); box-shadow: 0 0 0 10px rgba(82,122,186,.25), 0 12px 32px rgba(0,0,0,.35); animation: dobtNudge 4s ease-in-out infinite; }
.dobt-play__core svg { display: block; transform: translateX(2px); }

.dobt-hero__body { position: relative; padding: 0 56px 48px; color: #fff; z-index: 1; }
.dobt-hero__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.dobt .dobt-pill { display: inline-block; padding: 7px 14px; border-radius: 999px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.4); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: #fff !important; font-size: 10.5px !important; line-height: 1.4; letter-spacing: .13em; text-transform: uppercase; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.dobt .dobt-pill:hover { background: #fff; color: #262626 !important; border-color: #fff; }
.dobt .dobt-hero__title { margin: 0 0 26px !important; max-width: 800px; font-size: 68px !important; line-height: 1 !important; letter-spacing: -.03em !important; font-weight: 600 !important; text-wrap: balance; color: #fff !important; text-shadow: 0 2px 24px rgba(0,0,0,.35); }
.dobt .dobt-hero__exc { margin: 0 0 36px !important; max-width: 760px; font-size: 22px !important; line-height: 1.55 !important; letter-spacing: -.02em; color: rgba(255,255,255,.92) !important; text-wrap: pretty; text-shadow: 0 1px 14px rgba(0,0,0,.35); }
.dobt-hero__meta { display: flex; align-items: center; justify-content: space-between; gap: 18px 32px; flex-wrap: wrap; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.28); }
.dobt-hero__author { display: inline-flex; align-items: center; gap: 14px; }
.dobt-hero__author img { width: 48px !important; height: 48px !important; object-fit: cover; border-radius: 999px !important; display: block; filter: grayscale(1); box-shadow: 0 0 0 2px rgba(255,255,255,.35) !important; }
.dobt-hero__who { display: flex; flex-direction: column; gap: 3px; }
.dobt-hero__who a { font-size: 15px !important; line-height: 1.3; font-weight: 600 !important; letter-spacing: -.01em; color: #fff !important; }
.dobt-hero__who a:hover { color: var(--dobt-accent-soft) !important; }
.dobt-hero__who .dobt-mono, .dobt-hero__date { font-size: 10px !important; line-height: 1.4; letter-spacing: .13em; text-transform: uppercase; color: rgba(255,255,255,.72); }
.dobt-hero__date { font-size: 10.5px !important; }

/* video modal */
.dobt-vmodal { position: fixed; inset: 0; z-index: 2147483000; background: rgba(18,18,20,.92); display: flex; align-items: center; justify-content: center; padding: 56px; opacity: 0; transition: opacity .3s ease; }
.dobt-vmodal[hidden] { display: none !important; }
.dobt-vmodal.is-shown { opacity: 1; }
.dobt-vmodal__box { position: relative; width: 100%; max-width: 1040px; aspect-ratio: 16 / 9; background: #111; border-radius: 4px; overflow: hidden; }
.dobt-vmodal__box iframe, .dobt-vmodal__box video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; background: #000; }
.dobt .dobt-vmodal__close { position: absolute; top: 24px; right: 24px; width: 44px; height: 44px; padding: 0 !important; border-radius: 999px !important; border: 1px solid rgba(255,255,255,.4) !important; background: rgba(255,255,255,.08) !important; color: #fff !important; font-size: 22px !important; line-height: 1 !important; cursor: pointer; transition: background .2s ease, color .2s ease; }
.dobt .dobt-vmodal__close:hover { background: #fff !important; color: #262626 !important; }

/* =====================================================================
   2. BODY GRID  (classes set on the Elementor containers)
   .dobt-body  → parent container   .dobt-rail-col / .dobt-main-col → children
   ===================================================================== */
.dobt-body:not(:has(> .e-con-inner)):not(:has(> .elementor-container)),
.dobt-body > .e-con-inner,
.dobt-body > .elementor-container {
	display: grid !important;
	grid-template-columns: 240px minmax(0, 760px) !important;
	gap: 0 96px !important;
	justify-content: center !important;
	align-items: start !important;
	flex-wrap: nowrap !important;
}
.dobt-body { padding: 96px var(--dobt-px) 96px !important; max-width: none; }
.dobt-body > .e-con-inner, .dobt-body > .elementor-container { max-width: none !important; width: 100% !important; padding: 0 !important; }
.dobt-rail-col, .dobt-main-col { width: auto !important; max-width: none !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.dobt-rail-col > .elementor-widget-wrap, .dobt-main-col > .elementor-widget-wrap { padding: 0 !important; display: block !important; }
.dobt-rail-col { position: sticky !important; top: var(--dobt-sticky-top) !important; align-self: start !important; max-height: calc(100vh - var(--dobt-sticky-top) - 44px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; padding-right: 14px !important; z-index: 2; }
.dobt-rail-col::-webkit-scrollbar { display: none; width: 0; height: 0; }
.dobt-rail-col .elementor-widget, .dobt-main-col .elementor-widget { margin-bottom: 0 !important; }
.dobt-main-col { padding-bottom: 0 !important; }

/* sidebar content */
.dobt-rail { display: flex; flex-direction: column; gap: 16px; }
.dobt-rail__label { display: block; font-size: 10px !important; line-height: 1.4; letter-spacing: .13em; text-transform: uppercase; color: #9A988F; padding-bottom: 12px; border-bottom: 1px solid rgba(38,38,38,.18); }
.dobt-toc { margin: 0; }
.dobt-toc > summary { list-style: none; cursor: default; pointer-events: none; }
.dobt-toc > summary::-webkit-details-marker { display: none; }
.dobt-toc__list { display: flex; flex-direction: column; gap: 16px; margin-top: 16px; }
.dobt .dobt-toc__a { display: flex; gap: 12px; font-size: 14px !important; line-height: 1.45; color: #6A6A6A !important; font-weight: 400; transition: color .25s ease; }
.dobt .dobt-toc__a:hover { color: var(--dobt-accent) !important; }
.dobt-toc__num { font-family: var(--dobt-mono) !important; font-size: 10.5px !important; padding-top: 2px; flex: 0 0 auto; color: #A8A69D; transition: color .25s ease; }
.dobt .dobt-toc__a.is-on { color: var(--dobt-ink) !important; font-weight: 600; }
.dobt-toc__a.is-on .dobt-toc__num { color: var(--dobt-accent); }
.dobt-toc__subs { display: flex; flex-direction: column; gap: 10px; margin: -4px 0 4px 11px; padding-left: 19px; border-left: 1px solid rgba(38,38,38,.14); }
.dobt .dobt-toc__sub { display: block; font-size: 13px !important; line-height: 1.4; color: #8A887F !important; font-weight: 400; transition: color .25s ease; }
.dobt .dobt-toc__sub:hover { color: var(--dobt-accent) !important; }
.dobt .dobt-toc__sub.is-on { color: var(--dobt-accent) !important; font-weight: 600; }

.dobt-box { padding: 26px 24px; border-radius: 18px; display: flex; flex-direction: column; gap: 16px; }
.dobt-box--dark { margin-top: 48px; background: #262626; color: #FBFBFA; }
.dobt-box--light { margin-top: 16px; background: #fff; border: 1px solid rgba(38,38,38,.12); gap: 14px; }
.dobt-rail__extras > .dobt-box:first-child { margin-top: 48px; }
.dobt-box__kick { display: inline-flex; align-items: center; gap: 9px; font-size: 9.5px !important; line-height: 1.4; letter-spacing: .13em; text-transform: uppercase; color: #8E8C83; }
.dobt-box--light .dobt-box__kick { color: #8A887F; }
.dobt .dobt-box__title { margin: 0 !important; font-size: 20px !important; line-height: 1.2 !important; letter-spacing: -.03em; font-weight: 600 !important; color: #FBFBFA !important; }
.dobt .dobt-box__text { margin: 0 !important; font-size: 13.5px !important; line-height: 1.6 !important; color: #A8A69D !important; }
.dobt .dobt-box__q { margin: 0 !important; font-size: 18px !important; line-height: 1.25 !important; letter-spacing: -.025em; font-weight: 600 !important; color: #262626 !important; }
.dobt .dobt-btn { align-self: stretch; margin-top: 4px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 13px 20px; border-radius: 999px; color: #fff !important; font-size: 13.5px !important; line-height: 1.2; font-weight: 600 !important; transition: gap .3s var(--dobt-ease), letter-spacing .3s var(--dobt-ease), background .3s ease, color .3s ease; }
.dobt .dobt-btn--blue { background: var(--dobt-accent); }
.dobt .dobt-btn--blue:hover { background: #FBFBFA; color: #262626 !important; gap: 15px; letter-spacing: .03em; }
.dobt .dobt-btn--dark { background: #262626; }
.dobt .dobt-btn--dark:hover { background: var(--dobt-accent); color: #fff !important; gap: 15px; letter-spacing: .03em; }

.dobt-next { margin-top: 44px; display: flex; flex-direction: column; gap: 28px; }
.dobt .dobt-next__item { display: flex; flex-direction: column; gap: 12px; color: #3C3C3C !important; }
.dobt .dobt-next__item:hover { color: var(--dobt-accent) !important; }
.dobt-next__item img { width: 100% !important; aspect-ratio: 16 / 10; height: auto !important; object-fit: cover; border-radius: 8px !important; display: block; }
.dobt-next__txt { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.dobt-next__tag { font-size: 9px !important; line-height: 1.4; letter-spacing: .13em; text-transform: uppercase; color: #9A988F; }
.dobt-next__title { font-size: 13.5px !important; line-height: 1.35; letter-spacing: -.01em; }

/* author bio */
.dobt-bio { margin-top: 88px; padding-top: 40px; border-top: 1px solid rgba(38,38,38,.18); display: grid; grid-template-columns: 112px minmax(0,1fr); gap: 32px; align-items: start; scroll-margin-top: calc(var(--dobt-sticky-top) + 10px); }
.dobt-bio > img { width: 112px !important; height: 112px !important; object-fit: cover; border-radius: 999px !important; display: block; filter: grayscale(1); }
.dobt-bio__txt { display: flex; flex-direction: column; gap: 14px; }
.dobt-bio__kick { font-size: 10.5px !important; line-height: 1.4; letter-spacing: .13em; text-transform: uppercase; color: #8A887F; }
.dobt-bio__name { display: flex; flex-direction: column; gap: 4px; }
.dobt-bio__n { font-size: 24px !important; line-height: 1.2; letter-spacing: -.025em; font-weight: 600; color: #262626; }
.dobt-bio__r { font-size: 14px !important; color: var(--dobt-accent); font-weight: 500; }
.dobt .dobt-bio p { margin: 0 !important; font-size: 16.5px !important; line-height: 1.7 !important; color: #3C3C3C !important; text-wrap: pretty; }
.dobt .dobt-bio p a { color: var(--dobt-accent) !important; border-bottom: 1px solid rgba(82,122,186,.4); }
.dobt-mobile-extras { display: none; }

/* =====================================================================
   2c. ARTICLE CONTENT STYLES  (CSS class "dobt-content" on the Post Content widget)
   ===================================================================== */
.dobt-content { font-size: 19px; line-height: 1.8; color: #333438; }
/* remove Elementor's default spacing inside the article so the template rhythm applies */
.dobt-content .e-con { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; --gap: 0px; --row-gap: 0px; --column-gap: 0px; --margin-top: 0px; --margin-bottom: 0px; }
.dobt-content .elementor-section .elementor-container, .dobt-content .elementor-column-gap-default > .elementor-column > .elementor-element-populated { padding: 0; }
.dobt-content .elementor-widget:not(:last-child) { margin-bottom: 0 !important; --kit-widget-spacing: 0px; }
.dobt-content .elementor-widget-container > :last-child { margin-bottom: 0; }

.dobt-content h2, .dobt-content h2.elementor-heading-title {
	margin: 72px 0 26px !important; font-size: 36px !important; line-height: 1.1 !important; letter-spacing: -.028em !important;
	font-weight: 600 !important; color: #262626 !important; text-transform: none !important; scroll-margin-top: calc(var(--dobt-sticky-top) + 10px);
}
.dobt-content > .elementor > :first-child h2:first-of-type, .dobt-content h2:first-child { margin-top: 0 !important; }
.dobt-content h3, .dobt-content h3.elementor-heading-title {
	margin: 0 0 28px !important; font-size: 30px !important; line-height: 1.12 !important; letter-spacing: -.025em !important;
	font-weight: 600 !important; color: #262626 !important; text-transform: none !important; scroll-margin-top: calc(var(--dobt-sticky-top) + 10px);
}
.dobt-content h4 { margin: 32px 0 14px !important; font-size: 22px !important; line-height: 1.25 !important; letter-spacing: -.02em !important; font-weight: 600 !important; color: #262626 !important; }
.dobt-content p { margin: 0 0 26px !important; font-size: 19px !important; line-height: 1.8 !important; color: #333438 !important; }
.dobt-content strong, .dobt-content b { font-weight: 600; color: #262626; }
.dobt-content a:not(.elementor-button):not([class*="dobt-"]) { color: var(--dobt-accent) !important; text-decoration: none !important; border-bottom: 1px solid rgba(82,122,186,.4); transition: border-color .2s ease, color .2s ease; }
.dobt-content a:not(.elementor-button):not([class*="dobt-"]):hover { border-bottom-color: var(--dobt-accent); }

/* bullet points: blue dots (any list in the article except Elementor icon lists / plugin parts) */
.dobt-content ul:not([class*="elementor-"]):not([class*="dobt-"]):not(.dobt-callout ul) { margin: 0 0 28px !important; padding: 0 !important; list-style: none !important; display: grid; gap: 12px; }
.dobt-content ul:not([class*="elementor-"]):not([class*="dobt-"]):not(.dobt-callout ul) > li { position: relative; margin: 0 !important; padding: 0 0 0 20px !important; font-size: 17.5px !important; line-height: 1.6 !important; color: #3C3C3C !important; list-style: none !important; background: none !important; text-indent: 0 !important; }
.dobt-content ul:not([class*="elementor-"]):not([class*="dobt-"]):not(.dobt-callout ul) > li::marker { content: none !important; }
.dobt-content ul:not([class*="elementor-"]):not([class*="dobt-"]):not(.dobt-callout ul) > li::before { content: "" !important; position: absolute; left: 0; top: .72em; width: 6px; height: 6px; border-radius: 999px; background: var(--dobt-accent); display: block; }
/* paragraphs that editors put inside list items: no extra gaps */
.dobt-content li > p, .dobt-content li > div { margin: 0 !important; font-size: inherit !important; line-height: inherit !important; color: inherit !important; }
.dobt-content li > p + p { margin-top: 8px !important; }
/* a real sub-list (item text + indented list): smaller, hollow dots, aligned under the text */
.dobt-content ul:not([class*="elementor-"]):not([class*="dobt-"]) > li > ul:not([class*="elementor-"]), .dobt-content li > ol { margin: 10px 0 2px !important; gap: 8px; }
.dobt-content li > ul:not([class*="elementor-"]) > li::before { background: transparent !important; border: 1.5px solid var(--dobt-accent); width: 6px; height: 6px; box-sizing: border-box; }
/* safety net: a list item that only wraps another list never shows its own dot */
.dobt-content li.dobt-li-wrap::before { display: none !important; }
.dobt-content li.dobt-li-wrap { padding-left: 0 !important; }
.dobt-content li.dobt-li-wrap > ul, .dobt-content li.dobt-li-wrap > ol { margin-top: 0 !important; }
.dobt-content ol { margin: 0 0 28px !important; padding-left: 1.3em !important; }
.dobt-content ol > li { margin: 0 0 10px !important; font-size: 17.5px !important; line-height: 1.6 !important; color: #3C3C3C !important; }
.dobt-content ol > li::marker { color: var(--dobt-accent); font-family: var(--dobt-mono); font-size: .8em; }

/* images & captions */
.dobt-content figure, .dobt-content .wp-caption { margin: 48px 0 !important; max-width: 100% !important; }
.dobt-content img { max-width: 100%; height: auto; display: block; border-radius: 0; }
.dobt-content .elementor-widget-image, .dobt-content .elementor-widget.elementor-widget-image { margin: 48px 0 !important; }
.dobt-content .elementor-widget-image img, .dobt-content figure img { width: 100% !important; }
.dobt-content figcaption, .dobt-content .wp-caption-text, .dobt-content .widget-image-caption {
	margin-top: 12px !important; font-size: 10.5px !important; line-height: 1.5 !important; letter-spacing: .12em !important; text-transform: uppercase !important; color: #9A988F !important; text-align: left !important; font-style: normal !important;
}

/* pull quote */
.dobt-content blockquote, .dobt-content .elementor-blockquote {
	margin: 56px 0 !important; padding: 4px 0 4px 32px !important; border: 0 !important; border-left: 3px solid var(--dobt-accent) !important; background: none !important;
	font-size: 27px !important; line-height: 1.4 !important; letter-spacing: -.028em !important; color: #262626 !important; font-style: normal !important; quotes: none;
}
.dobt-content blockquote::before, .dobt-content blockquote::after { content: none !important; }
.dobt-content blockquote p { margin: 0 !important; font-size: inherit !important; line-height: inherit !important; color: inherit !important; letter-spacing: inherit !important; }
.dobt-content blockquote cite { display: block; margin-top: 14px; font-family: var(--dobt-mono) !important; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: #9A988F; font-style: normal; }

/* divider: <hr>, Elementor Divider widget, or class "dobt-divider" */
.dobt-content hr, .dobt-content .dobt-divider { display: block; height: 0; margin: 64px 0 !important; border: 0 !important; border-top: 1px solid rgba(38,38,38,.18) !important; background: none !important; }
.dobt-content .elementor-widget-divider, .dobt-content .elementor-widget.elementor-widget-divider { margin: 64px 0 !important; --divider-border-width: 1px; --divider-color: rgba(38,38,38,.18); }
.dobt-content .elementor-widget-divider .elementor-divider { padding: 0 !important; }
.dobt-content .elementor-widget-divider .elementor-divider-separator { display: block !important; border-top: 1px solid rgba(38,38,38,.18) !important; width: 100% !important; }

/* "Method 01" block: CSS class "dobt-method" on a container (adds the divider + spacing + reveal)
   and "dobt-method-label" on the small label text */
.dobt-content .dobt-method { padding-top: 64px !important; margin-top: 64px !important; border-top: 1px solid rgba(38,38,38,.18) !important; scroll-margin-top: var(--dobt-sticky-top); }
.dobt-content .dobt-method img { width: 100% !important; height: 360px !important; object-fit: cover; margin: 0 0 32px !important; }
.dobt-content .dobt-method .elementor-widget.elementor-widget-image { margin: 0 !important; }
.dobt-content .dobt-method h3 { margin-bottom: 28px !important; }
.dobt-content .dobt-method p { margin-bottom: 24px !important; }
.dobt-content .dobt-method-label, .dobt-content .dobt-method-label :is(p, span, div, h1, h2, h3, h4, h5, h6) {
	display: inline-flex; align-items: center; gap: 12px; margin: 0 0 18px !important; font-size: 10.5px !important; line-height: 1.4 !important; letter-spacing: .13em !important; text-transform: uppercase !important; color: #8A887F !important; font-weight: 400 !important;
}
.dobt-content .dobt-method-label :is(p, span, div, h1, h2, h3, h4, h5, h6) { margin: 0 !important; }
.dobt-content .dobt-method-label :is(p, h1, h2, h3, h4, h5, h6)::before, .dobt-content p.dobt-method-label::before, .dobt-content span.dobt-method-label::before {
	content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 999px; background: var(--dobt-accent); flex: 0 0 auto;
}
.dobt-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--dobt-ease), transform .8s var(--dobt-ease); }
.dobt-reveal.is-in { opacity: 1; transform: none; }

/* callout box with stacked rows: CSS class "dobt-callout" (each paragraph = one row) */
.dobt-content .dobt-callout, .dobt-content .elementor-widget.dobt-callout { margin: 44px 0 !important; background: #fff; border: 1px solid rgba(38,38,38,.1); border-radius: 18px; overflow: hidden; }
.dobt-content .dobt-callout p, .dobt-content .dobt-callout li { margin: 0 !important; padding: 30px 32px !important; font-size: 17px !important; line-height: 1.7 !important; color: #3C3C3C !important; border-top: 1px solid rgba(38,38,38,.1); }
.dobt-content .dobt-callout :is(p, li):first-child, .dobt-content .dobt-callout .elementor-widget:first-child p:first-child { border-top: 0; }
.dobt-content .dobt-callout ul, .dobt-content .dobt-callout ol { margin: 0 !important; padding: 0 !important; list-style: none !important; display: block; }
.dobt-content .dobt-callout li { list-style: none !important; }
.dobt-content .dobt-callout li::marker { content: none; }
.dobt-content .dobt-callout li::before { display: none; }

/* tables */
.dobt-content table { width: 100%; margin: 44px 0 !important; border-collapse: separate !important; border-spacing: 0; background: #fff; border: 1px solid rgba(38,38,38,.1) !important; border-radius: 18px; overflow: hidden; font-size: 16px; line-height: 1.6; }
.dobt-content th, .dobt-content td { padding: 18px 24px !important; text-align: left; vertical-align: top; border: 0 !important; border-top: 1px solid rgba(38,38,38,.1) !important; background: #fff !important; color: #3C3C3C !important; font-size: 16px !important; }
.dobt-content thead th, .dobt-content tr:first-child > th { border-top: 0 !important; font-family: var(--dobt-mono) !important; font-size: 10.5px !important; letter-spacing: .13em; text-transform: uppercase; color: #8A887F !important; font-weight: 500; background: #FBFBFA !important; }
.dobt-content tbody tr:first-child > td { border-top-color: rgba(38,38,38,.1) !important; }
.dobt-content thead + tbody tr:first-child > td { border-top: 1px solid rgba(38,38,38,.1) !important; }

/* =====================================================================
   3. KEY TAKEAWAYS
   ===================================================================== */
/* sand takeaways, FAQ and recent insights use the same centred 1440px box as the footer */
.dobt-tk, .dobt-faq, .dobt-recent { box-sizing: border-box; width: 100%; max-width: 1440px; margin-left: auto !important; margin-right: auto !important; }
.dobt-tk { background: var(--dobt-sand); padding: 96px var(--dobt-px); margin-top: 54px; scroll-margin-top: var(--dobt-sticky-top); }
.dobt-tk__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 72px; align-items: stretch; max-width: 1384px; margin: 0 auto; }
.dobt-tk__copy { display: flex; flex-direction: column; justify-content: space-between; gap: 40px; }
.dobt-tk__head { display: flex; flex-direction: column; gap: 32px; }
.dobt-tk__kick { display: inline-flex; align-items: center; gap: 10px; font-size: 10.5px !important; line-height: 1.4; letter-spacing: .18em; text-transform: uppercase; color: #857D6D; }
.dobt-tk__kick .dobt-dot { width: 7px; height: 7px; }
.dobt .dobt-tk__title { margin: 0 !important; font-size: 54px !important; line-height: .98 !important; letter-spacing: -.045em !important; font-weight: 600 !important; text-wrap: balance; color: #262626 !important; }
.dobt-tk__body { display: flex; flex-direction: column; gap: 22px; padding-top: 28px; border-top: 1px solid rgba(38,38,38,.2); }
.dobt .dobt-tk__p { margin: 0 !important; font-size: 18px !important; line-height: 1.65 !important; color: #4A4740 !important; text-wrap: pretty; }
.dobt .dobt-tk__p--strong { color: #262626 !important; font-weight: 500 !important; }
.dobt-tk__img { position: relative; min-height: 420px; overflow: hidden; }
.dobt-tk__img img { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; display: block; }

/* =====================================================================
   4. FAQ  (also used for old [responsive_accordion_faq] content)
   ===================================================================== */
.dobt-faq { padding: 80px 56px; display: grid; grid-template-columns: .65fr 1.35fr; gap: 64px; border-bottom: 1px solid rgba(38,38,38,.08); color: #262626; scroll-margin-top: var(--dobt-sticky-top); }
.dobt-faq__kick { font-size: 11.5px !important; line-height: 1.4; letter-spacing: .14em; text-transform: uppercase; color: var(--dobt-accent); margin-bottom: 18px; }
.dobt .dobt-faq__title { margin: 0 0 22px !important; font-size: 38px !important; line-height: 1.15 !important; letter-spacing: -.03em !important; font-weight: 700 !important; color: #262626 !important; }
.dobt .dobt-faq__ask { display: inline-flex; align-items: center; gap: 10px; font-size: 15px !important; font-weight: 600; color: #262626 !important; transition: gap .3s var(--dobt-ease), color .2s ease; }
.dobt .dobt-faq__ask:hover { gap: 18px; color: var(--dobt-accent) !important; }

.dobt-acc__item { border-top: 1px solid rgba(38,38,38,.12); }
.dobt .dobt-acc__h { margin: 0 !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; letter-spacing: normal !important; }
.dobt .dobt-acc__q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 22px 0 !important; margin: 0 !important; background: none !important; border: none !important; border-radius: 0 !important; font-size: 17.5px !important; line-height: 1.35 !important; font-weight: 600 !important; letter-spacing: -.02em !important; color: #262626 !important; text-align: left; cursor: pointer; text-transform: none !important; white-space: normal; min-height: 0 !important; }
.dobt .dobt-acc__q:hover, .dobt .dobt-acc__q:focus { background: none !important; color: #262626 !important; }
.dobt .dobt-acc__q:focus-visible { outline: 2px solid var(--dobt-accent); outline-offset: 4px; }
.dobt-acc__sign { flex: 0 0 auto; font-size: 26px !important; line-height: 1; font-weight: 400; color: rgba(38,38,38,.4); transition: color .3s ease; }
.dobt-acc__item.is-open .dobt-acc__sign { color: var(--dobt-accent-2); }
.dobt-acc__body { display: grid; grid-template-rows: 0fr; opacity: 0; visibility: hidden; transition: grid-template-rows .45s var(--dobt-ease), opacity .35s ease, visibility .45s; }
.dobt-acc__item.is-open .dobt-acc__body { grid-template-rows: 1fr; opacity: 1; visibility: visible; }
.dobt-acc__body > div { min-height: 0; overflow: hidden; }
.dobt-acc__a { padding-bottom: 24px; max-width: 700px; }
.dobt .dobt-acc__a p, .dobt .dobt-acc__a li { margin: 0 0 12px !important; font-size: 15.5px !important; line-height: 1.62 !important; color: rgba(38,38,38,.7) !important; }
.dobt .dobt-acc__a > :last-child { margin-bottom: 0 !important; }
.dobt .dobt-acc__a a { color: var(--dobt-accent) !important; border-bottom: 1px solid rgba(82,122,186,.4); }
.dobt-acc__end { height: 1px; background: rgba(38,38,38,.12); }
/* inside the article (old posts) */
.dobt-content .dobt-inline-faq { margin: 40px 0 !important; }
.dobt-content .dobt-inline-faq__intro > :first-child { margin-top: 0 !important; }

/* =====================================================================
   5. RECENT INSIGHTS
   ===================================================================== */
.dobt-recent { padding: 88px 56px; background: var(--dobt-bg); border-top: 1px solid rgba(38,38,38,.08); border-bottom: 1px solid rgba(38,38,38,.08); }
.dobt-recent__head { display: flex; align-items: baseline; justify-content: space-between; gap: 32px; margin-bottom: 44px; }
.dobt .dobt-recent__title { margin: 0 !important; font-size: 38px !important; line-height: 1.15 !important; letter-spacing: -.03em !important; font-weight: 700 !important; color: #262626 !important; }
.dobt .dobt-recent__all { display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px !important; font-weight: 600; color: var(--dobt-accent) !important; white-space: nowrap; transition: gap .3s var(--dobt-ease), letter-spacing .3s var(--dobt-ease); }
.dobt .dobt-recent__all:hover { gap: 16px; letter-spacing: .04em; }
.dobt-recent__grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; }
.dobt .dobt-card { display: flex; flex-direction: column; gap: 18px; color: #262626 !important; transition: transform .4s ease; }
.dobt .dobt-card:hover { transform: translateY(-6px); color: #262626 !important; }
.dobt-card img { width: 100% !important; height: 230px !important; object-fit: cover; display: block; }
.dobt-card__tag { font-size: 10.5px !important; line-height: 1.4; letter-spacing: .13em; text-transform: uppercase; color: var(--dobt-accent); }
.dobt .dobt-card__title { margin: 0 !important; font-size: 20px !important; line-height: 1.28 !important; font-weight: 600 !important; letter-spacing: -.02em !important; color: #262626 !important; }
.dobt .dobt-card__exc { margin: 0 !important; font-size: 14.5px !important; line-height: 1.55 !important; color: rgba(38,38,38,.62) !important; }

/* =====================================================================
   6. CTA RIBBON  (same as the service pages)
   ===================================================================== */
/* full-width sections never get Elementor's default widget spacing between them */
.elementor-widget:has(.dobt-tk, .dobt-faq, .dobt-recent, .dobt-cta) { margin-block-end: 0 !important; margin-bottom: 0 !important; }
.dobt-cta { box-sizing: border-box; width: 100%; max-width: 1440px; margin: 0 auto; padding: 104px 56px; /* same 1440px box and 56px side padding as the site footer */ background: var(--dobt-accent); color: #fff; display: flex; align-items: center; justify-content: space-between; gap: 48px; flex-wrap: wrap; }
.dobt .dobt-cta__title { margin: 0 !important; font-size: 46px !important; line-height: 1.08 !important; letter-spacing: -.035em !important; font-weight: 700 !important; max-width: 720px; text-wrap: balance; color: #fff !important; }
.dobt .dobt-cta__btn { display: inline-flex; align-items: center; gap: 12px; padding: 18px 32px; border-radius: 999px; background: #fff; color: var(--dobt-accent) !important; font-size: 16px !important; line-height: 1.2; font-weight: 700 !important; transition: gap .3s var(--dobt-ease), letter-spacing .3s var(--dobt-ease), background .3s ease, color .3s ease; }
.dobt .dobt-cta__btn:hover { background: #262626; color: #fff !important; gap: 18px; letter-spacing: .03em; }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width: 1280px) {
	.dobt-body:not(:has(> .e-con-inner)):not(:has(> .elementor-container)), .dobt-body > .e-con-inner, .dobt-body > .elementor-container { gap: 0 64px !important; grid-template-columns: 220px minmax(0, 760px) !important; }
}
@media (max-width: 1080px) {
	.dobt-hero__fig { min-height: 640px; }
	.dobt-hero__top { left: 36px; right: 36px; top: 28px; }
	.dobt-hero__body { padding: 0 36px 40px; }
	.dobt-play { right: 36px; top: 96px; }
	.dobt .dobt-hero__title { font-size: 52px !important; }
	.dobt .dobt-hero__exc { font-size: 19px !important; }

	.dobt-body:not(:has(> .e-con-inner)):not(:has(> .elementor-container)), .dobt-body > .e-con-inner, .dobt-body > .elementor-container {
		grid-template-columns: minmax(0, 1fr) !important; gap: 0 !important; max-width: 760px; margin: 0 auto !important;
	}
	.dobt-body { padding-top: 56px !important; padding-bottom: 72px !important; }
	.dobt-rail-col { position: static !important; max-height: none; overflow: visible; padding-right: 0 !important; margin-bottom: 40px !important; }
	.dobt-rail__extras { display: none; }
	.dobt-toc { border: 1px solid rgba(38,38,38,.12); border-radius: 14px; background: #fff; padding: 18px 20px; }
	.dobt-toc > summary { pointer-events: auto; cursor: pointer; display: flex; align-items: center; justify-content: space-between; border-bottom: 0; padding-bottom: 0; }
	.dobt-toc > summary::after { content: "+"; font-family: var(--dobt-font); font-size: 22px; line-height: 1; color: var(--dobt-accent); letter-spacing: 0; }
	.dobt-toc[open] > summary::after { content: "\2212"; }
	.dobt-toc[open] > summary { padding-bottom: 14px; border-bottom: 1px solid rgba(38,38,38,.12); }
	.dobt-mobile-extras { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; margin-top: 48px; align-items: start; }
	.dobt-mobile-extras > .dobt-box { margin: 0 !important; }
	.dobt-mobile-extras > .dobt-next { grid-column: 1 / -1; margin-top: 24px; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
	.dobt-mobile-extras > .dobt-next > .dobt-rail__label { grid-column: 1 / -1; }

	.dobt-tk { margin-top: 24px; }
	.dobt-tk__grid { grid-template-columns: minmax(0,1fr); gap: 40px; }
	.dobt-tk__img { min-height: 0; height: 360px; }
	.dobt .dobt-tk__title { font-size: 40px !important; }
	.dobt-faq { grid-template-columns: minmax(0,1fr); gap: 32px; padding: 72px var(--dobt-px); }
	.dobt-recent { padding: 72px var(--dobt-px); }
	.dobt-recent__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.dobt-recent__grid > :nth-child(3) { display: none; }
	.dobt-cta { padding: 80px 56px; }
	.dobt .dobt-cta__title { font-size: 38px !important; }
}
@media (max-width: 900px) {
	.dobt-cta { padding: 72px 24px; } /* footer switches to 24px sides here */
}
@media (max-width: 760px) {
	.dobt-hero { margin: 12px 12px 0; }
	.dobt-hero__fig { min-height: 0; padding-top: 150px; }
	.dobt-hero__top { left: 20px; right: 20px; top: 20px; padding-bottom: 14px; font-size: 9.5px !important; gap: 12px; }
	.dobt-hero__body { padding: 0 20px 26px; }
	.dobt-play { right: 20px; top: 66px; flex-direction: row; gap: 10px; }
	.dobt-play__btn, .dobt-play__core { width: 52px; height: 52px; }
	.dobt-play__core { box-shadow: 0 0 0 6px rgba(82,122,186,.25), 0 8px 20px rgba(0,0,0,.35); }
	.dobt-play__core svg { width: 18px; height: 18px; }
	.dobt-hero__tags { margin-bottom: 18px; gap: 6px; }
	.dobt .dobt-pill { padding: 6px 11px; font-size: 9.5px !important; }
	.dobt .dobt-hero__title { font-size: 36px !important; line-height: 1.04 !important; margin-bottom: 18px !important; }
	.dobt .dobt-hero__exc { font-size: 16.5px !important; margin-bottom: 24px !important; }
	.dobt-hero__meta { padding-top: 18px; }

	.dobt-body { padding-top: 40px !important; padding-bottom: 56px !important; }
	.dobt-content p { font-size: 17px !important; line-height: 1.75 !important; margin-bottom: 22px !important; }
	.dobt-content h2, .dobt-content h2.elementor-heading-title { font-size: 28px !important; margin: 56px 0 20px !important; }
	.dobt-content h3, .dobt-content h3.elementor-heading-title { font-size: 24px !important; margin-bottom: 20px !important; }
	.dobt-content ul:not([class*="elementor-"]):not([class*="dobt-"]):not(.dobt-callout ul) > li, .dobt-content ol > li { font-size: 16.5px !important; }
	.dobt-content blockquote, .dobt-content .elementor-blockquote { font-size: 21px !important; padding-left: 20px !important; margin: 40px 0 !important; }
	.dobt-content figure, .dobt-content .wp-caption, .dobt-content .elementor-widget.elementor-widget-image { margin: 32px 0 !important; }
	.dobt-content .dobt-method { padding-top: 44px !important; margin-top: 44px !important; }
	.dobt-content .dobt-method img { height: 220px !important; margin-bottom: 22px !important; }
	.dobt-content .dobt-callout p, .dobt-content .dobt-callout li { padding: 22px 20px !important; font-size: 16px !important; }
	.dobt-content th, .dobt-content td { padding: 14px 16px !important; font-size: 15px !important; }

	.dobt-bio { margin-top: 64px; grid-template-columns: 72px minmax(0,1fr); gap: 18px; }
	.dobt-bio > img { width: 72px !important; height: 72px !important; }
	.dobt-bio__n { font-size: 20px !important; }
	.dobt-mobile-extras { grid-template-columns: minmax(0,1fr); }
	.dobt-mobile-extras > .dobt-next { grid-template-columns: minmax(0,1fr); }
	.dobt-mobile-extras .dobt-next__item { flex-direction: row; gap: 14px; align-items: center; }
	.dobt-mobile-extras .dobt-next__item img { width: 112px !important; flex: 0 0 112px; }
	.dobt-mobile-extras .dobt-next__title { font-size: 14.5px !important; }

	.dobt-tk { margin-top: 16px; padding: 64px var(--dobt-px); }
	.dobt .dobt-tk__title { font-size: 34px !important; line-height: 1.02 !important; }
	.dobt .dobt-tk__p { font-size: 16.5px !important; }
	.dobt-tk__img { height: 240px; }
	.dobt-faq { padding: 56px var(--dobt-px); }
	.dobt .dobt-faq__title { font-size: 27px !important; }
	.dobt .dobt-acc__q { font-size: 16px !important; gap: 18px; }
	.dobt-recent { padding: 56px var(--dobt-px); }
	.dobt .dobt-recent__title { font-size: 27px !important; }
	.dobt-recent__grid { grid-template-columns: minmax(0,1fr); gap: 36px; }
	.dobt-recent__grid > :nth-child(3) { display: flex; }
	.dobt-card img { height: 200px !important; }
	.dobt-cta { padding: 56px 24px; }
	.dobt .dobt-cta__title { font-size: 31px !important; }
	.dobt .dobt-cta__btn { width: 100%; justify-content: center; }
	.dobt-vmodal { padding: 16px; }
}
@media (prefers-reduced-motion: reduce) {
	.dobt *, .dobt *::before, .dobt *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.dobt-reveal { opacity: 1; transform: none; }
}
