/* Doctor247 Elementor Widgets — widget CSS.
   Moved here from inline <style> blocks that used to print in the BODY after
   each widget's markup, which made the page paint unstyled and then snap into
   place. Loading it in <head> removes that flash. Content is byte-identical to
   the blocks it replaces. */

/* ══════ class-hero-widget.php ══════ */
		/* ── HERO CHECKLIST ───────────────────────────────── */
		.d247-hero-cl {
			display: flex;
			flex-direction: column;
			gap: 12px;
			margin-top: 20px;
		}
		.d247-hero-cl-inline {
			flex-direction: row;
			flex-wrap: wrap;
		}
		.d247-hero-cl-item {
			display: inline-flex;
			align-items: center;
			gap: 10px;
		}
		.d247-hero-cl-icon-right .d247-hero-cl-item {
			flex-direction: row-reverse;
		}
		.d247-hero-cl-icon-top .d247-hero-cl-item {
			flex-direction: column;
			align-items: flex-start;
		}
		.d247-hero-cl-icon-wrap {
			width: 34px;
			height: 34px;
			border-radius: 10px;
			background: rgba(89,183,224,0.12);
			color: #59b7e0;
			display: flex;
			align-items: center;
			justify-content: center;
			flex-shrink: 0;
			transition: background-color 0.2s, color 0.2s;
		}
		.d247-hero-cl-icon-wrap svg { display: block; }
		:where(.d247-hero-cl-text) {
			font-family: 'Sora', sans-serif;
			font-size: 0.88rem;
			font-weight: 600;
			color: #253e5d;
			text-decoration: none !important;
			line-height: 1.4;
			transition: color 0.2s;
		}
		.d247-hero-cl-framed .d247-hero-cl-item {
			background: rgba(255,255,255,0.7);
			border: 1px solid rgba(37,62,93,0.08);
			border-radius: 12px;
			padding: 10px 14px;
			transition: background 0.2s;
		}
		.d247-hero-cl-framed .d247-hero-cl-item:hover {
			background: rgba(255,255,255,1);
			box-shadow: 0 4px 16px rgba(37,62,93,0.08);
		}

		/* ── DOCTOR SCENE ─────────────────────────── */
		/* Scene: the ring container is what dictates height.
		   We use padding = half of largest ring so rings never clip at top/bottom.
		   On mobile the scene is full-width, so we use vw-based min-height. */
		.d247-doc-scene {
			position: relative;
			display: flex;
			align-items: center;
			justify-content: center;
			width: 100%;
			min-height: calc(var(--r3, 480px) + 80px); /* always fits largest ring */
			padding: 40px;
			overflow: visible;
			box-sizing: border-box;
		}
		/* Force overflow visible all the way up */
		.d247-hero-right,
		.d247-hero-illustration {
			overflow: visible !important;
		}
		.d247-doc-circle-bg {
			width: 240px;
			height: 240px;
			border-radius: 50%;
			background: #e8f6fd;
			display: flex;
			align-items: flex-end;
			justify-content: center;
			overflow: hidden;
			position: relative;
			z-index: 3;  /* above rings (1) and pulse (2) */
			flex-shrink: 0;
			box-shadow: 0 20px 60px rgba(37,62,93,0.14);
		}
		.d247-doc-svg {
			width: 88%;
			height: auto;
			display: block;
			margin-bottom: -4px;
		}
		/* ── RINGS + ORBIT — single source of truth via CSS vars ──── */
		/*
		   KEY DESIGN: .d247-doc-scene sets --r1 / --r2 / --r3 CSS custom
		   properties. BOTH the ring divs AND the orbit-wrap divs read from
		   the same vars — so they are ALWAYS in sync at every breakpoint.
		*/
		.d247-doc-scene {
			--r1: 300px;   /* inner ring diameter  */
			--r2: 390px;   /* middle ring diameter */
			--r3: 480px;   /* outer ring diameter  */
		}

		/* Rings */
		.d247-hero-ring {
			position: absolute;
			border-radius: 50%;
			border: 1.5px dashed #59b7e0;
			top: 50%; left: 50%;
			transform: translate(-50%, -50%);
			pointer-events: none;
			z-index: 1;
		}
		.d247-hero-ring-1 {
			width: var(--r1); height: var(--r1);
			border: 1.5px dashed rgba(89,183,224,0.55);
			animation: d247-ring-pulse 3s ease-in-out infinite;
		}
		.d247-hero-ring-2 {
			width: var(--r2); height: var(--r2);
			border: 1.5px dashed rgba(89,183,224,0.35);
			animation: d247-ring-pulse 3s ease-in-out infinite 0.6s;
		}
		.d247-hero-ring-3 {
			width: var(--r3); height: var(--r3);
			border: 1px dashed rgba(128,196,34,0.25);
			animation: d247-ring-pulse 3s ease-in-out infinite 1.2s;
		}
		@keyframes d247-ring-pulse {
			0%,100% { opacity: 1; transform: translate(-50%,-50%) scale(1); }
			50%      { opacity: .35; transform: translate(-50%,-50%) scale(1.03); }
		}

		/* Orbit containers — ALWAYS same size as their ring via same var */
		.d247-orbit-wrap {
			position: absolute;
			border-radius: 50%;
			top: 50%; left: 50%;
			transform: translate(-50%,-50%) rotate(0deg);
			animation: d247-orbit-cw 10s linear infinite;
			pointer-events: none;
			z-index: 1;  /* BEHIND doctor circle (z-index 3) — dots disappear behind it */
		}
		.d247-orbit-r1 { width: var(--r1); height: var(--r1); }
		.d247-orbit-r2 { width: var(--r2); height: var(--r2); }
		.d247-orbit-r3 { width: var(--r3); height: var(--r3); }

		/* Dot sits exactly at top edge of its container circle */
		.d247-orbit-dot {
			position: absolute;
			top: 0;
			left: 50%;
			transform: translate(-50%, -50%);
			border-radius: 50%;
			border: 2.5px solid rgba(255,255,255,0.95);
			z-index: 1;
			/* Default min size so it's always visible */
			min-width: 10px;
			min-height: 10px;
		}
		@keyframes d247-orbit-cw {
			from { transform: translate(-50%,-50%) rotate(0deg); }
			to   { transform: translate(-50%,-50%) rotate(360deg); }
		}

		/* ── DOCTOR PULSE — behind the white circle ──── */
		/* .d247-doc-pulse is a sibling div placed BEFORE .d247-doc-circle-bg in DOM */
		.d247-doc-pulse-wrap {
			position: absolute;
			top: 50%; left: 50%;
			transform: translate(-50%, -50%);
			z-index: 2;          /* behind doctor (z-index 3), above rings (z-index 1) */
			pointer-events: none;
		}
		.d247-doc-pulse-ring {
			position: absolute;
			top: 50%; left: 50%;
			border-radius: 50%;
			border: 2.5px solid rgba(89,183,224,0.5);
			pointer-events: none;
			transform: translate(-50%, -50%) scale(1);
			opacity: 0;
		}
		.d247-doc-pulse-ring-1 {
			width: 100%; height: 100%;
			animation: d247-doc-pulse 2.4s ease-out infinite 0s;
			border-color: rgba(89,183,224,0.55);
		}
		.d247-doc-pulse-ring-2 {
			width: 100%; height: 100%;
			animation: d247-doc-pulse 2.4s ease-out infinite 0.8s;
			border-color: rgba(128,196,34,0.45);
		}
		.d247-doc-pulse-ring-3 {
			width: 100%; height: 100%;
			animation: d247-doc-pulse 2.4s ease-out infinite 1.6s;
			border-color: rgba(89,183,224,0.3);
		}
		@keyframes d247-doc-pulse {
			0%   { transform: translate(-50%,-50%) scale(1);    opacity: 0.8; }
			100% { transform: translate(-50%,-50%) scale(1.85); opacity: 0;   }
		}
		/* ── FLOATING CARDS ────────────────────────── */
		.d247-float-card {
			position: absolute;
			z-index: 10;
			display: flex;
			align-items: center;
			gap: 10px;
			background: #fff;
			border-radius: 14px;
			padding: 10px 14px;
			box-shadow: 0 8px 32px rgba(37,62,93,0.12), 0 2px 8px rgba(37,62,93,0.06);
			white-space: nowrap;
			animation: d247-float 4s ease-in-out infinite;
			animation-delay: var(--delay, 0s);
		}
		/* Card positions */
		.d247-fc-tl { top: 12%; left: -4%; }
		.d247-fc-tr { top: 6%;  right: -2%; }
		.d247-fc-ml { top: 44%; left: -10%; }
		.d247-fc-mr { top: 36%; right: -4%; }
		.d247-fc-bl { bottom: 26%; left: -4%; }
		.d247-fc-br { bottom: 22%; right: -2%; }
		.d247-fc-bc {
			bottom: 6%;
			left: 50%;
			transform: translateX(-50%);
			animation: d247-float-bc 4s ease-in-out infinite;
			animation-delay: var(--delay, 0s);
		}
		@keyframes d247-float-bc {
			0%,100% { transform: translateX(-50%) translateY(0); }
			50%      { transform: translateX(-50%) translateY(-8px); }
		}
		.d247-fc-icon-wrap {
			width: 36px;
			height: 36px;
			border-radius: 10px;
			display: flex;
			align-items: center;
			justify-content: center;
			flex-shrink: 0;
			position: relative;
		}
		.d247-fc-label {
			font-family: 'Sora', sans-serif;
			font-size: 0.62rem;
			font-weight: 600;
			color: #7a9ab0;
			text-transform: uppercase;
			letter-spacing: 0.05em;
			line-height: 1;
		}
		.d247-fc-title {
			font-family: 'Sora', sans-serif;
			font-size: 0.78rem;
			font-weight: 700;
			color: #253e5d;
			line-height: 1.2;
		}
		.d247-fc-sub {
			font-size: 0.7rem;
			color: #7a9ab0;
			line-height: 1.2;
			margin-top: 1px;
		}
		.d247-fc-online-dot {
			position: absolute;
			top: -3px; right: -3px;
			width: 9px; height: 9px;
			border-radius: 50%;
			border: 2px solid #fff;
			animation: d247-pulse 2s ease-in-out infinite;
		}
		.d247-fc-avail-dot {
			width: 10px; height: 10px;
			border-radius: 50%;
			flex-shrink: 0;
			animation: d247-pulse 2s ease-in-out infinite;
		}
		/* ── ECG ANIMATION ─────────────────────────── */
		.d247-ecg-polyline {
			stroke-dasharray: 120;
			stroke-dashoffset: 120;
			animation: d247-ecg 2.2s ease-in-out infinite;
		}
		.d247-ecg-dot {
			opacity: 0;
			animation: d247-pulse-dot 2.2s ease-in-out infinite;
		}
		.d247-ecg-svg { display: block; }
		@keyframes d247-ecg {
			0%   { stroke-dashoffset: 120; opacity: 0; }
			20%  { opacity: 1; }
			80%  { opacity: 1; }
			100% { stroke-dashoffset: 0; opacity: 0; }
		}
		@keyframes d247-pulse-dot {
			0%,60% { opacity: 0; }
			70%    { opacity: 1; }
			100%   { opacity: 0; }
		}
		/* ── RESPONSIVE ────────────────────────────── */
		/*
		   ONLY change --r1/--r2/--r3 on .d247-doc-scene + circle size.
		   min-height is computed from var(--r3) automatically.
		   Rings AND orbit-wraps both read the same vars → always in perfect sync.
		   Dots go BEHIND doctor (z-index: 1 < doctor z-index: 3).
		*/

		/* ─ 1200px ─ */
		@media (max-width: 1200px) {
			.d247-doc-scene {
				--r1: 275px;
				--r2: 350px;
				--r3: 425px;
				padding: 40px;
			}
			.d247-float-card { font-size: 0.85em; padding: 8px 11px; }
			.d247-fc-ml { left: -5%; }
		}

		/* ─ 1024px ─ */
		@media (max-width: 1024px) {
			.d247-doc-scene {
				--r1: 248px;
				--r2: 316px;
				--r3: 384px;
				padding: 36px;
			}
			.d247-doc-circle-bg  { width: 196px; height: 196px; }
			.d247-doc-pulse-wrap { width: 196px !important; height: 196px !important; }
			.d247-fc-tr { top: 5%;  right: 0; }
			.d247-fc-br { bottom: 12%; right: 0; }
		}

		/* ─ 768px: single column — 2 rings + 5 cards ─ */
		@media (max-width: 768px) {
			.d247-doc-scene {
				--r1: 216px;   /* ring 1 visible */
				--r2: 288px;   /* ring 2 visible */
				--r3: 0px;
				padding: 32px;
				margin-top: 32px;
			}
			/* keep 2 rings + their orbit dots */
			.d247-hero-ring-1, .d247-orbit-r1,
			.d247-hero-ring-2, .d247-orbit-r2 { display: block; }
			.d247-hero-ring-3, .d247-orbit-r3 { display: none; }
			.d247-doc-circle-bg  { width: 172px; height: 172px; }
			.d247-doc-pulse-wrap { width: 172px !important; height: 172px !important; }
			/* 5 cards: TL TR ML MR BR — compact */
			.d247-float-card   { padding: 7px 10px; gap: 7px; display: flex; }
			.d247-fc-icon-wrap { width: 30px; height: 30px; border-radius: 8px; }
			.d247-fc-title     { font-size: 0.7rem; }
			.d247-fc-sub       { font-size: 0.63rem; }
			.d247-fc-tl { top: 5%;    left:   2%;  display: flex; }
			.d247-fc-tr { top: 5%;    right:  2%;  display: flex; }
			.d247-fc-ml { top: 44%;   left:   1%;  display: flex; }
			.d247-fc-mr { top: 38%;   right:  1%;  display: flex; }
			.d247-fc-br { bottom: 12%; right: 2%;  display: flex; }
			.d247-fc-bl { display: none; }   /* bc replaces it */
			.d247-fc-bc { display: flex; bottom: 4%; }
		}

		/* ─ 600px — 2 rings + 5 cards ─ */
		@media (max-width: 600px) {
			.d247-doc-scene {
				--r1: 190px;
				--r2: 254px;
				--r3: 0px;
				padding: 28px;
			}
			.d247-hero-ring-1, .d247-orbit-r1,
			.d247-hero-ring-2, .d247-orbit-r2 { display: block; }
			.d247-doc-circle-bg  { width: 152px; height: 152px; }
			.d247-doc-pulse-wrap { width: 152px !important; height: 152px !important; }
			/* 5 cards */
			.d247-float-card   { padding: 6px 9px; gap: 6px; display: flex; }
			.d247-fc-icon-wrap { width: 27px; height: 27px; }
			.d247-fc-title     { font-size: 0.67rem; }
			.d247-fc-sub       { font-size: 0.6rem; }
			.d247-fc-tl { top: 5%;    left:   1%;  display: flex; }
			.d247-fc-tr { top: 5%;    right:  1%;  display: flex; }
			.d247-fc-ml { top: 43%;   left:   0%;  display: flex; }
			.d247-fc-mr { top: 37%;   right:  0%;  display: flex; }
			.d247-fc-br { bottom: 10%; right: 1%;  display: flex; }
			.d247-fc-bl { display: none; }
			.d247-fc-bc { display: flex; bottom: 3%; }
		}

		/* ─ 480px — 2 rings + 5 cards ─ */
		@media (max-width: 480px) {
			.d247-doc-scene {
				--r1: 168px;
				--r2: 224px;
				--r3: 0px;
				padding: 22px;
			}
			.d247-hero-ring-1, .d247-orbit-r1,
			.d247-hero-ring-2, .d247-orbit-r2 { display: block; }
			.d247-doc-circle-bg  { width: 134px; height: 134px; }
			.d247-doc-pulse-wrap { width: 134px !important; height: 134px !important; }
			/* 5 cards — tighter positions */
			.d247-float-card   { padding: 5px 8px; gap: 5px; display: flex; }
			.d247-fc-icon-wrap { width: 24px; height: 24px; border-radius: 7px; }
			.d247-fc-label     { display: none; }
			.d247-fc-title     { font-size: 0.64rem; }
			.d247-fc-sub       { font-size: 0.58rem; }
			.d247-fc-tl { top: 4%;    left:   0;    display: flex; }
			.d247-fc-tr { top: 4%;    right:  0;    display: flex; }
			.d247-fc-ml { top: 42%;   left:   0;    display: flex; }
			.d247-fc-mr { top: 36%;   right:  0;    display: flex; }
			.d247-fc-br { bottom: 8%; right:  0;    display: flex; }
			.d247-fc-bl { display: none; }
			.d247-fc-bc { display: flex; bottom: 2%; }
		}

		/* ─ 380px — 2 rings + 5 cards (very compact) ─ */
		@media (max-width: 380px) {
			.d247-doc-scene {
				--r1: 146px;
				--r2: 196px;
				--r3: 0px;
				padding: 18px;
			}
			.d247-hero-ring-1, .d247-orbit-r1,
			.d247-hero-ring-2, .d247-orbit-r2 { display: block; }
			.d247-doc-circle-bg  { width: 116px; height: 116px; }
			.d247-doc-pulse-wrap { width: 116px !important; height: 116px !important; }
			.d247-float-card     { padding: 4px 7px; gap: 4px; display: flex; }
			.d247-fc-icon-wrap   { width: 22px; height: 22px; }
			.d247-fc-sub         { display: none; }
			.d247-fc-title       { font-size: 0.62rem; }
			.d247-fc-tl { top: 3%;    left:   0; display: flex; }
			.d247-fc-tr { top: 3%;    right:  0; display: flex; }
			.d247-fc-ml { top: 41%;   left:   0; display: flex; }
			.d247-fc-mr { top: 35%;   right:  0; display: flex; }
			.d247-fc-bc { display: flex; bottom: 2%; }
			.d247-fc-br { display: none; }
			.d247-fc-bl { display: none; }
		}
				

/* ══════ class-services-widget.php ══════ */
		/* ── Service button (anchor link) ── */
		:where(.d247-book-btn) {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			background: #80c422;
			color: #fff;
			border: none;
			border-radius: 50px;
			padding: 9px 20px;
			font-family: 'Sora', sans-serif;
			font-weight: 700;
			font-size: 0.82rem;
			cursor: pointer;
			transition: background 0.2s, transform 0.2s;
			white-space: nowrap;
			text-decoration: none;
			line-height: 1.4;
		}
		.d247-book-btn:hover,
		.d247-book-btn:focus {
			background: #6aaa18;
			color: #fff;
			transform: translateY(-2px);
			text-decoration: none;
		}
		

/* ══════ class-booking-service-widget.php ══════ */
		/* ════════════════════════════════════════════════════
		   DOCTOR247 — BOOKING SERVICE WIDGET
		   All rules scoped under .d247bs-wrap
		════════════════════════════════════════════════════ */

		/* ── 1. Reset ──────────────────────────────────────── */
		.d247bs-wrap,.d247bs-wrap *,.d247bs-wrap *::before,.d247bs-wrap *::after {
			box-sizing: border-box;
		}
		.d247bs-wrap h2,.d247bs-wrap h3 { margin:0; padding:0; font-style:normal; }
		.d247bs-wrap p  { margin:0; padding:0; }
		.d247bs-wrap a  { text-decoration:none !important; }
		.d247bs-wrap ul { list-style:none; margin:0; padding:0; }
		.d247bs-wrap svg { display:block; flex-shrink:0; }

		/* ── 2. Radial bg glow (section) ───────────────────── */
		.d247bs-wrap {
			position: relative;
			overflow: hidden;
		}
		.d247bs-wrap::before {
			content: '';
			position: absolute; top: -100px; right: -100px;
			width: 500px; height: 500px;
			background: radial-gradient(circle, rgba(89,183,224,0.08) 0%, transparent 70%);
			border-radius: 50%;
			pointer-events: none;
		}

		/* ── 3. Inner container ────────────────────────────── */
		.d247bs-inner { position: relative; z-index: 1; }

		/* ── 4. Section header ─────────────────────────────── */
		.d247bs-header {
			display: flex;
			justify-content: space-between;
			align-items: flex-end;
			margin-bottom: 56px;
			flex-wrap: wrap;
			gap: 24px;
		}
		.d247bs-header-left { flex: 0 1 auto; }
		.d247bs-header-right { flex: 0 1 400px; }

		:where(.d247bs-section-tag) {
			display: inline-flex;
			align-items: center;
			gap: 8px;
			font-family: 'Sora', sans-serif;
			font-size: 0.75rem;
			font-weight: 700;
			letter-spacing: 0.12em;
			text-transform: uppercase;
			margin-bottom: 14px;
		}
		.d247bs-section-tag::before {
			content: '';
			width: 22px; height: 2px;
			display: inline-block;
		}
		:where(.d247bs-section-title) {
			font-family: 'Sora', sans-serif;
			font-size: clamp(1.8rem, 3vw, 2.6rem);
			font-weight: 800;
			line-height: 1.18;
			max-width: 560px;
		}
		:where(.d247bs-section-sub) {
			font-size: 1rem;
			line-height: 1.72;
			margin-bottom: 18px !important;
		}
		.d247bs-hdr-cta {
			display: inline-flex;
			align-items: center;
			gap: 6px;
			font-family: 'Sora', sans-serif;
			font-size: 0.9rem;
			font-weight: 600;
			transition: color 0.2s;
		}

		/* ── 5. Grid ───────────────────────────────────────── */
		.d247bs-grid {
			display: grid;
			grid-template-columns: repeat(3, 1fr);
			gap: 20px;
		}

		/* ── 6. Card base ──────────────────────────────────── */
		.d247bs-card {
			border-radius: 24px;
			overflow: hidden;
			border: 1.5px solid rgba(37,62,93,0.06);
			transition: transform 0.35s, box-shadow 0.35s, border-color 0.35s;
			cursor: pointer;
			position: relative;
			display: flex;
			flex-direction: column;
		}
		.d247bs-card:hover {
			transform: translateY(-10px);
			border-color: transparent;
		}

		/* ── 7. Card top ───────────────────────────────────── */
		.d247bs-card-top {
			padding: 32px 32px 20px;
			position: relative;
			flex: 1;
		}

		/* ── 8. Icon wrap ──────────────────────────────────── */
		.d247bs-icon-wrap {
			width: 64px; height: 64px;
			border-radius: 18px;
			display: flex;
			align-items: center;
			justify-content: center;
			margin-bottom: 22px;
			transition: transform 0.3s;
			flex-shrink: 0;
		}
		.d247bs-card:hover .d247bs-icon-wrap {
			transform: scale(1.1) rotate(-5deg);
		}

		/* ── 9. Card text ──────────────────────────────────── */
		:where(.d247bs-card-title) {
			font-family: 'Sora', sans-serif;
			font-size: 1.05rem;
			font-weight: 700;
			margin-bottom: 10px !important;
			line-height: 1.3;
		}
		:where(.d247bs-card-desc) {
			font-size: 0.88rem;
			line-height: 1.65;
		}

		/* ── 10. Card footer ───────────────────────────────── */
		.d247bs-card-footer {
			display: flex;
			align-items: center;
			justify-content: space-between;
			padding: 16px 32px 24px;
			border-top: 1px solid rgba(37,62,93,0.06);
			margin-top: auto;
		}

		/* ── 11. Price ─────────────────────────────────────── */
		:where(.d247bs-price) {
			font-family: 'Sora', sans-serif;
			font-size: 0.9rem;
			font-weight: 700;
			display: flex;
			align-items: baseline;
			gap: 4px;
		}
		.d247bs-price span {
			font-size: 0.72rem;
			font-weight: 500;
		}

		/* ── 12. Arrow button ──────────────────────────────── */
		.d247bs-arrow {
			width: 36px; height: 36px;
			border-radius: 50%;
			display: flex;
			align-items: center;
			justify-content: center;
			transition: background-color 0.25s, color 0.25s, transform 0.25s;
			flex-shrink: 0;
		}
		.d247bs-card:not(.d247bs-featured):hover .d247bs-arrow {
			transform: translateX(3px);
		}

		/* ── 13. Pill badge ────────────────────────────────── */
		:where(.d247bs-pill) {
			position: absolute;
			top: 20px; right: 20px;
			padding: 4px 10px;
			border-radius: 50px;
			font-family: 'Sora', sans-serif;
			font-size: 0.68rem;
			font-weight: 700;
			text-transform: uppercase;
			letter-spacing: 0.05em;
		}

		/* ── 14. Featured card ─────────────────────────────── */
		.d247bs-featured {
			grid-column: span 2;
			border: none !important;
			color: #ffffff;
		}
		.d247bs-feat-top {
			display: grid !important;
			grid-template-columns: 1fr 1fr;
			gap: 40px;
			align-items: center;
			padding: 40px 40px 30px !important;
		}
		.d247bs-feat-content {}
		.d247bs-feat-title { color: #ffffff !important; font-size: 1.3rem; }
		.d247bs-feat-desc  { color: rgba(255,255,255,0.65) !important; }

		.d247bs-feat-visual {
			border-radius: 20px;
			padding: 28px;
			text-align: center;
		}
		.d247bs-feat-big-num {
			font-family: 'Sora', sans-serif;
			font-size: 3.5rem;
			font-weight: 800;
			line-height: 1;
		}
		.d247bs-feat-big-label {
			font-size: 0.85rem;
			margin-top: 6px;
		}
		.d247bs-feat-sub-stats {
			display: flex;
			gap: 20px;
			margin-top: 20px;
			justify-content: center;
		}
		.d247bs-feat-sub-stat { text-align: center; }
		.d247bs-feat-sub-val {
			display: block;
			font-family: 'Sora', sans-serif;
			font-size: 1.1rem;
			font-weight: 800;
		}
		.d247bs-feat-sub-label { font-size: 0.72rem; }

		.d247bs-feat-footer {
			border-top-color: rgba(255,255,255,0.1) !important;
			padding: 18px 40px 36px !important;
		}
		.d247bs-featured .d247bs-price { color: #ffffff; }
		.d247bs-featured .d247bs-arrow {
			background: rgba(255,255,255,0.1);
			color: #ffffff;
		}
		.d247bs-featured:hover .d247bs-arrow {
			background: #80c422 !important;
			color: #ffffff !important;
		}
		.d247bs-featured .d247bs-pill {
			background: rgba(128,196,34,0.15);
			color: #80c422;
		}

		/* ── 15. Responsive ────────────────────────────────── */
		@media (max-width: 1200px) {
			.d247bs-grid { grid-template-columns: repeat(2, 1fr); }
			.d247bs-featured { grid-column: span 2; }
			.d247bs-feat-top { grid-template-columns: 1fr !important; }
		}
		@media (max-width: 768px) {
			.d247bs-grid { grid-template-columns: 1fr; }
			.d247bs-featured { grid-column: span 1; }
			.d247bs-feat-top { gap: 24px !important; padding: 28px 24px 20px !important; }
			.d247bs-header { flex-direction: column; align-items: flex-start; }
			.d247bs-header-right { flex: none; }
		}
		@media (max-width: 480px) {
			.d247bs-card-top  { padding: 24px 20px 16px !important; }
			.d247bs-card-footer { padding: 14px 20px 20px !important; }
			.d247bs-feat-footer { padding: 14px 24px 24px !important; }
		}
		

/* ══════ class-checklist-widget.php ══════ */
		/* ═══════════════════════════════════════════════
		   D247 Checklist — scoped under .d247cl-wrap
		═══════════════════════════════════════════════ */
		.d247cl-wrap,
		.d247cl-wrap *,
		.d247cl-wrap *::before,
		.d247cl-wrap *::after { box-sizing: border-box; }
		.d247cl-wrap a  { text-decoration: none !important; }
		.d247cl-wrap p  { margin: 0 !important; padding: 0 !important; }
		.d247cl-wrap svg { display: block; flex-shrink: 0; }

		/* ── Section Header (above list) ── */
		.d247cl-section-header { margin-bottom: 28px; }
		.d247cl-section-heading { margin: 0 0 8px; line-height: 1.25; }
		.d247cl-section-desc { line-height: 1.6; }

		/* ── Layout: Stacked ── */
		.d247cl-layout-stacked {
			display: flex;
			flex-direction: column;
			gap: 16px;
		}

		/* ── Layout: Inline (grid) ── */
		.d247cl-layout-inline {
			display: grid;
			grid-template-columns: repeat(var(--cl-cols, 2), 1fr);
			gap: 16px;
		}

		/* ── Item ── */
		.d247cl-item {
			transition: transform 0.2s;
		}
		.d247cl-item-inner {
			display: flex;
			gap: 14px;
			align-items: center;
		}

		/* ── Icon position: right ── */
		.d247cl-icon-right .d247cl-item-inner {
			flex-direction: row-reverse;
		}

		/* ── Icon position: top ── */
		.d247cl-icon-top .d247cl-item-inner {
			flex-direction: column;
			align-items: flex-start;
		}

		/* ── Icon wrap ── */
		.d247cl-icon-wrap {
			width: 40px;
			height: 40px;
			border-radius: 12px;
			background: rgba(89,183,224,0.12);
			color: #59b7e0;
			display: flex;
			align-items: center;
			justify-content: center;
			flex-shrink: 0;
			transition: background-color 0.25s, color 0.25s;
		}

		/* ── Content ── */
		.d247cl-content {
			display: flex;
			flex-direction: column;
			gap: 6px;
			flex: 1;
			min-width: 0;
		}

		/* ── Title ── */
		:where(.d247cl-title) {
			font-family: 'Sora', sans-serif;
			font-size: 0.95rem;
			font-weight: 700;
			color: #253e5d;
			line-height: 1.35;
			transition: color 0.2s;
		}

		/* ── Description ── */
		:where(.d247cl-desc) {
			font-family: 'DM Sans', sans-serif;
			font-size: 0.85rem;
			color: #4a6070;
			line-height: 1.6;
		}

		/* ── Link ── */
		:where(.d247cl-link) {
			font-family: 'Sora', sans-serif;
			font-size: 0.82rem;
			font-weight: 600;
			color: #59b7e0;
			display: inline-flex;
			align-items: center;
			gap: 4px;
			transition: color 0.2s;
		}
		.d247cl-link:hover { color: #253e5d; }

		/* ── Framed / Boxed view — now fully user-controlled via Item Box
		   style controls. Left empty so user's Style-tab settings (background,
		   border, radius, padding, shadow) apply cleanly to every item. ── */

		/* ── Responsive ── */
		@media (max-width: 768px) {
			.d247cl-layout-inline {
				grid-template-columns: repeat(1, 1fr);
			}
		}
		@media (max-width: 480px) {
			.d247cl-layout-inline {
				grid-template-columns: 1fr;
			}
		}
		

/* ══════ class-faq-widget.php ══════ */
		.d247-faq-section {
			position: relative;
			overflow: hidden;
		}
		.d247-faq-section::before {
			content: '';
			position: absolute; bottom: -80px; left: -80px;
			width: 400px; height: 400px;
			background: radial-gradient(circle, rgba(89,183,224,0.08) 0%, transparent 70%);
			border-radius: 50%;
			pointer-events: none;
		}
		.d247-faq-layout {
			display: grid;
			grid-template-columns: 1fr 1.8fr;
			gap: 80px;
			align-items: start;
			position: relative;
			z-index: 1;
		}
		.d247-faq-layout.d247-faq-no-left {
			grid-template-columns: 1fr;
			gap: 0;
			max-width: 880px;
			margin: 0 auto;
		}
		.d247-faq-left {
			position: sticky;
			top: 100px;
		}
		.d247-faq-tag {
			display: inline-flex;
			align-items: center;
			gap: 8px;
			font-family: 'Sora', sans-serif;
			font-size: 0.75rem;
			font-weight: 700;
			letter-spacing: 0.12em;
			text-transform: uppercase;
			color: #59b7e0;
			margin-bottom: 14px;
		}
		.d247-faq-tag::before {
			content: '';
			width: 22px;
			height: 2px;
			background: #80c422;
			display: inline-block;
		}
		:where(.d247-faq-title) {
			font-family: 'Sora', sans-serif;
			font-size: clamp(1.8rem, 3vw, 2.6rem);
			font-weight: 800;
			color: #253e5d;
			line-height: 1.18;
			margin-bottom: 14px;
		}
		.d247-faq-desc {
			font-size: 0.95rem;
			color: #4a6070;
			line-height: 1.72;
			margin-bottom: 36px;
		}
		.d247-faq-contact-card {
			border-radius: 24px;
			padding: 32px 28px;
			color: #fff;
		}
		.d247-faq-contact-card h4 {
			font-family: 'Sora', sans-serif;
			font-size: 1.05rem;
			font-weight: 700;
			margin-bottom: 8px;
		}
		.d247-faq-contact-card p {
			font-size: 0.86rem;
			line-height: 1.6;
			margin-bottom: 22px;
		}
		:where(.d247-faq-contact-btn) {
			display: inline-flex;
			align-items: center;
			gap: 8px;
			color: #fff;
			padding: 12px 22px;
			border-radius: 50px;
			font-family: 'Sora', sans-serif;
			font-weight: 700;
			font-size: 0.84rem;
			text-decoration: none;
			transition: all 0.25s;
		}
		.d247-faq-contact-btn:hover {
			transform: translateY(-2px);
		}
		.d247-faq-list {
			display: flex;
			flex-direction: column;
			gap: 10px;
		}
		.d247-faq-item {
			border-radius: 18px;
			border: 1.5px solid rgba(37,62,93,0.07);
			overflow: hidden;
			transition: all 0.3s;
		}
		.d247-faq-item:hover {
			border-color: rgba(89,183,224,0.3);
		}
		.d247-faq-item.open {
			border-color: rgba(89,183,224,0.4);
			box-shadow: 0 8px 28px rgba(37,62,93,0.08);
		}
		.d247-faq-q {
			display: flex;
			justify-content: space-between;
			align-items: center;
			padding: 22px 26px;
			cursor: pointer;
			gap: 16px;
			user-select: none;
		}
		.d247-faq-number {
			display: block;
			font-family: 'Sora', sans-serif;
			font-size: 0.7rem;
			font-weight: 800;
			color: #7a9ab0;
			letter-spacing: 0.05em;
			margin-bottom: 4px;
		}
		:where(.d247-faq-q-text) {
			font-family: 'Sora', sans-serif;
			font-size: 0.97rem;
			font-weight: 600;
			color: #253e5d;
			line-height: 1.4;
		}
		.d247-faq-icon {
			width: 32px;
			height: 32px;
			border-radius: 50%;
			background: #f4f8fb;
			flex-shrink: 0;
			display: flex;
			align-items: center;
			justify-content: center;
			transition: all 0.3s;
			color: #59b7e0;
		}
		.d247-faq-item.open .d247-faq-icon {
			background-color: #59b7e0;
			color: #fff;
		}
		.d247-faq-icon .d247-faq-icon-v {
			transition: opacity 0.25s, transform 0.25s;
			transform-origin: center;
		}
		.d247-faq-item.open .d247-faq-icon .d247-faq-icon-v {
			opacity: 0;
			transform: scaleY(0);
		}
		.d247-faq-a {
			max-height: 0;
			overflow: hidden;
			transition: max-height 0.4s ease, padding 0.3s ease;
			padding: 0 26px;
			font-size: 0.9rem;
			line-height: 1.72;
		}
		.d247-faq-a p {
			margin: 0;
		}
		.d247-faq-item.open .d247-faq-a {
			max-height: 400px;
			padding: 0 26px 22px;
		}
		/* Responsive */
		@media (max-width: 1024px) {
			.d247-faq-layout { grid-template-columns: 1fr; gap: 48px; }
			.d247-faq-left { position: static; }
		}
		@media (max-width: 768px) {
			.d247-faq-section { padding: 72px 5vw !important; }
		}
		

/* ══════ class-cta-widget.php ══════ */
		.d247-cta-wrapper {
			padding: 0 6vw 100px;
		}
		.d247-cta-wrapper.d247-cta-fullwidth {
			padding: 0 !important;
		}
		.d247-cta-widget.d247-cta-widget-fw {
			border-radius: 0 !important;
		}
		.d247-cta-widget {
			border-radius: 40px;
			overflow: hidden;
			position: relative;
		}
		.d247-cta-blob {
			position: absolute;
			border-radius: 50%;
			pointer-events: none;
		}
		.d247-cta-blob-1 {
			top: -120px; left: 40%;
			width: 400px; height: 400px;
			background: radial-gradient(circle, rgba(89,183,224,0.15) 0%, transparent 65%);
		}
		.d247-cta-blob-2 {
			bottom: -80px; right: 10%;
			width: 300px; height: 300px;
			background: radial-gradient(circle, rgba(128,196,34,0.15) 0%, transparent 65%);
		}
		.d247-cta-top {
			display: grid;
			grid-template-columns: 1fr 1fr;
			position: relative;
			z-index: 1;
		}
		.d247-cta-main {
			padding: 72px 64px;
			border-right: 1px solid rgba(255,255,255,0.07);
		}
		.d247-cta-eyebrow {
			display: inline-flex;
			align-items: center;
			gap: 8px;
			font-family: 'Sora', sans-serif;
			font-size: 0.75rem;
			font-weight: 700;
			letter-spacing: 0.12em;
			text-transform: uppercase;
			color: #80c422;
			margin-bottom: 20px;
		}
		.d247-cta-eyebrow::before {
			content: '';
			width: 20px;
			height: 2px;
			background: #80c422;
			display: inline-block;
		}
		:where(.d247-cta-heading) {
			font-family: 'Sora', sans-serif;
			font-size: clamp(1.8rem, 3vw, 2.8rem);
			font-weight: 800;
			color: #fff;
			line-height: 1.15;
			margin-bottom: 16px;
		}
		.d247-cta-heading em {
			font-style: normal;
			color: #59b7e0;
		}
		.d247-cta-desc {
			font-size: 1rem;
			color: rgba(255,255,255,0.6);
			line-height: 1.72;
			margin-bottom: 40px;
		}
		.d247-cta-btns {
			display: flex;
			gap: 14px;
			flex-wrap: wrap;
		}
		:where(.d247-cta-btn-main) {
			display: inline-flex;
			align-items: center;
			gap: 9px;
			background: #80c422;
			color: #fff;
			padding: 15px 32px;
			border-radius: 50px;
			font-family: 'Sora', sans-serif;
			font-weight: 700;
			font-size: 0.92rem;
			text-decoration: none;
			transition: all 0.25s;
			box-shadow: 0 6px 24px rgba(128,196,34,0.35);
		}
		.d247-cta-btn-main:hover {
			transform: translateY(-3px);
			box-shadow: 0 12px 36px rgba(128,196,34,0.45);
		}
		:where(.d247-cta-btn-outline) {
			display: inline-flex;
			align-items: center;
			gap: 9px;
			background: rgba(255,255,255,0.07);
			color: #fff;
			padding: 15px 30px;
			border-radius: 50px;
			font-family: 'Sora', sans-serif;
			font-weight: 600;
			font-size: 0.92rem;
			text-decoration: none;
			border: 1.5px solid rgba(255,255,255,0.2);
			transition: all 0.25s;
		}
		.d247-cta-btn-outline:hover {
			transform: translateY(-2px);
		}
		.d247-cta-side {
			padding: 64px 56px;
			display: flex;
			flex-direction: column;
			gap: 16px;
			position: relative;
			z-index: 1;
		}
		.d247-cta-side-title {
			font-family: 'Sora', sans-serif;
			font-size: 0.8rem;
			font-weight: 700;
			color: rgba(255,255,255,0.5);
			letter-spacing: 0.1em;
			text-transform: uppercase;
			margin-bottom: 4px;
		}
		.d247-cta-trust-item {
			display: flex;
			align-items: center;
			gap: 16px;
			padding: 18px 20px;
			border-radius: 16px;
			border: 1px solid rgba(255,255,255,0.07);
			transition: all 0.25s;
		}
		.d247-cta-trust-item:hover {
			transform: translateX(4px);
		}
		.d247-cta-trust-icon {
			font-size: 1.4rem;
			flex-shrink: 0;
			color: #fff;
			width: 40px;
			text-align: center;
		}
		.d247-cta-trust-title {
			font-family: 'Sora', sans-serif;
			font-size: 0.9rem;
			font-weight: 700;
		}
		.d247-cta-trust-sub {
			font-size: 0.78rem;
			margin-top: 2px;
		}
		.d247-cta-bottom {
			display: grid;
			grid-template-columns: repeat(3, 1fr);
			border-top: 1px solid rgba(255,255,255,0.07);
			position: relative;
			z-index: 1;
		}
		.d247-cta-bottom-item {
			padding: 28px 36px;
			text-align: center;
			border-right: 1px solid rgba(255,255,255,0.06);
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 14px;
		}
		.d247-cta-bottom-item:last-child {
			border-right: none;
		}
		.d247-cta-bottom-icon {
			font-size: 1.4rem;
			color: #fff;
			flex-shrink: 0;
		}
		.d247-cta-bottom-text {
			text-align: left;
		}
		.d247-cta-bottom-strong {
			display: block;
			font-family: 'Sora', sans-serif;
			font-size: 0.9rem;
			font-weight: 700;
		}
		.d247-cta-bottom-span {
			font-size: 0.76rem;
		}
		/* Responsive */
		@media (max-width: 1024px) {
			.d247-cta-top { grid-template-columns: 1fr; }
			.d247-cta-main { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.07); padding: 52px 44px; }
			.d247-cta-side { padding: 44px; }
			.d247-cta-bottom { grid-template-columns: 1fr; }
			.d247-cta-bottom-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.06); }
			.d247-cta-bottom-item:last-child { border-bottom: none; }
		}
		@media (max-width: 768px) {
			.d247-cta-wrapper { padding: 0 0 72px !important; }
			.d247-cta-widget  { border-radius: 0 !important; }
			.d247-cta-main { padding: 40px 28px; }
			.d247-cta-side { padding: 28px; }
		}
		

/* ══════ class-dual-buttons-widget.php ══════ */
		.d247-dual-btns {
			display: flex;
			flex-wrap: wrap;
			align-items: center;
			gap: 14px;
		}
		.d247-dbtn-primary,
		:where(.d247-dbtn-secondary) {
			display: inline-flex;
			align-items: center;
			gap: 8px;
			text-decoration: none;
			font-family: 'Sora', sans-serif;
			font-weight: 700;
			font-size: 0.92rem;
			transition: all 0.25s ease;
			cursor: pointer;
			white-space: nowrap;
		}
		:where(.d247-dbtn-primary) {
			background-color: #80c422;
			color: #ffffff;
			padding: 15px 32px;
			border-radius: 50px;
			border: 1px solid transparent;
			box-shadow: 0 6px 24px rgba(128,196,34,0.3);
		}
		.d247-dbtn-primary:hover {
			background-color: #6aaa18;
			transform: translateY(-3px);
			box-shadow: 0 10px 32px rgba(128,196,34,0.4);
		}
		:where(.d247-dbtn-secondary) {
			background-color: transparent;
			color: #253e5d;
			padding: 13px 30px;
			border-radius: 50px;
			border: 1px solid rgba(37,62,93,0.2);
		}
		.d247-dbtn-secondary:hover {
			background-color: #253e5d;
			color: #ffffff;
			transform: translateY(-2px);
		}
		@media (max-width: 480px) {
			.d247-dual-btns { flex-direction: column; align-items: stretch; }
			.d247-dbtn-primary, :where(.d247-dbtn-secondary) { justify-content: center; }
		}
		

/* ══════ class-section-heading-widget.php ══════ */
		/* ════════════════════════════════════════
		   D247 Section Heading — scoped styles
		════════════════════════════════════════ */
		.d247-sh-wrap {
			display: flex;
			flex-direction: column;
		}
		.d247-sh-wrap *,
		.d247-sh-wrap *::before,
		.d247-sh-wrap *::after { box-sizing: border-box; }

		/* ── Tag ── */
		:where(.d247-sh-tag) {
			display: inline-flex;
			align-items: center;
			gap: 8px;
			font-family: 'Sora', sans-serif;
			font-size: 0.72rem;
			font-weight: 700;
			letter-spacing: 0.12em;
			text-transform: uppercase;
			color: #59b7e0;
			margin-bottom: 14px;
		}
		.d247-sh-tag.d247-tag-line::before {
			content: '';
			width: 22px; height: 2px;
			background: #80c422;
			display: inline-block;
			flex-shrink: 0;
		}
		.d247-sh-tag.d247-tag-pill {
			background: rgba(89,183,224,0.1);
			border: 1px solid rgba(89,183,224,0.25);
			border-radius: 50px;
			padding: 6px 16px;
			text-transform: none;
			letter-spacing: 0.04em;
		}
		.d247-sh-tag-dot {
			width: 8px; height: 8px;
			border-radius: 50%;
			background: #80c422;
			flex-shrink: 0;
			position: relative;
			display: inline-block;
		}
		.d247-sh-tag-dot::after {
			content: '';
			position: absolute;
			inset: -4px;
			border-radius: 50%;
			background: #80c422;
			opacity: 0.25;
			animation: d247ShPulse 2s ease-in-out infinite;
		}
		@keyframes d247ShPulse {
			0%, 100% { transform: scale(1);   opacity: 0.25; }
			50%       { transform: scale(2.2); opacity: 0; }
		}

		/* ── Heading ── */
		:where(.d247-sh-heading) {
			font-family: 'Sora', sans-serif;
			font-size: clamp(1.8rem, 3.5vw, 3rem);
			font-weight: 800;
			color: #253e5d;
			line-height: 1.15;
			margin: 0 0 12px 0 !important;
			padding: 0 !important;
		}
		.d247-sh-highlight { color: #59b7e0; font-style: normal; }
		.d247-sh-accent    { color: #80c422; font-style: normal; }

		/* ── Subtitle ── */
		:where(.d247-sh-subtitle) {
			font-family: 'DM Sans', sans-serif;
			font-size: 1rem;
			color: #4a6070;
			line-height: 1.72;
			margin: 0 !important;
			padding: 0 !important;
		}

		/* ── Responsive ── */
		@media (max-width: 768px) {
			:where(.d247-sh-heading) { font-size: clamp(1.5rem, 5vw, 2.2rem); }
		}
		

/* ══════ class-features-list-widget.php ══════ */
		/* Structural only — NO colors, NO fonts, NO shadows */
		.d247-fl-wrap {
			width: 100%;
			box-sizing: border-box;
		}
		.d247-fl-wrap *, .d247-fl-wrap *::before, .d247-fl-wrap *::after {
			box-sizing: border-box;
		}
		.d247-fl-list {
			display: grid;
			grid-template-columns: 1fr;
			gap: 18px;
			width: 100%;
		}
		.d247-fl-card {
			display: flex;
			flex-direction: row;
			align-items: flex-start;
			gap: 20px;
			width: 100%;
		}
		.d247-fl-icon {
			flex: 0 0 auto;
			display: inline-flex;
			align-items: center;
			justify-content: center;
		}
		.d247-fl-icon svg,
		.d247-fl-icon i {
			display: block;
		}
		.d247-fl-content {
			flex: 1 1 auto;
			min-width: 0;
		}
		.d247-fl-title {
			margin: 0 0 6px;
			line-height: 1.25;
		}
		.d247-fl-desc {
			line-height: 1.55;
		}
		.d247-fl-desc p:last-child { margin-bottom: 0; }

		/* Responsive safety nets —
		   at very narrow widths, a horizontal card becomes vertical
		   so icon + text never collide. Users can still force a
		   specific Icon Position via the Style tab. */
		@media (max-width: 420px) {
			.d247-fl-card {
				flex-direction: column;
				align-items: flex-start;
			}
		}
		

/* ══════ class-blog-widget.php ══════ */
			.d247-blog-widget { font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif; }
			.d247-blog-widget * { box-sizing: border-box; }

			/* HEADER */
			.d247-blog-header { margin-bottom: 48px; }
			.d247-blog-tag {
				display: inline-flex;
				align-items: center;
				gap: 10px;
				font-family: 'Sora', sans-serif;
				font-size: 0.78rem;
				font-weight: 700;
				letter-spacing: 0.14em;
				text-transform: uppercase;
				color: #59b7e0;
				margin-bottom: 12px;
			}
			.d247-blog-tag::before {
				content: '';
				width: 22px;
				height: 2px;
				background: #80c422;
				display: inline-block;
			}
			.d247-blog-title-section {
				font-family: 'Sora', sans-serif;
				font-size: clamp(1.6rem, 2.8vw, 2.2rem);
				font-weight: 800;
				line-height: 1.2;
				margin: 0 0 10px 0;
				color: #253e5d;
			}
			.d247-blog-desc {
				font-size: 1rem;
				color: #4a6070;
				margin: 0;
				line-height: 1.6;
			}

			/* GRID */
			.d247-blog-grid {
				display: grid;
				gap: 28px;
			}

			/* CARD */
			.d247-blog-card {
				position: relative;
				background: #ffffff;
				border-radius: 20px;
				overflow: hidden;
				transition: transform 0.28s ease, box-shadow 0.28s ease;
				display: flex;
				flex-direction: column;
			}

			/* IMAGE */
			.d247-blog-image-wrap {
				position: relative;
				display: block;
				overflow: hidden;
				border-radius: 12px;
				margin: 0;
			}
			.d247-blog-image {
				display: block;
				width: 100%;
				height: 220px;
				background-size: cover;
				background-position: center;
				background-color: #e8eef3;
				transition: transform 0.5s ease;
			}
			.d247-blog-image.is-placeholder {
				background: linear-gradient(135deg, #e8eef3 0%, #d4dde5 100%);
			}
			.d247-blog-grid.has-image-zoom .d247-blog-card:hover .d247-blog-image {
				transform: scale(1.05);
			}

			/* BADGE */
			.d247-blog-badge {
				position: absolute;
				top: 16px;
				left: 16px;
				display: inline-flex;
				align-items: center;
				justify-content: center;
				padding: 8px 18px;
				background-color: #2e6d1f;
				color: #ffffff;
				font-family: 'Sora', sans-serif;
				font-size: 0.72rem;
				font-weight: 800;
				letter-spacing: 0.12em;
				text-transform: uppercase;
				border-radius: 50px;
				z-index: 2;
				line-height: 1.2;
			}
			.d247-blog-badge-inline {
				position: relative;
				top: 0;
				left: 0;
				margin-bottom: 12px;
				align-self: flex-start;
			}

			/* CONTENT */
			.d247-blog-content {
				padding: 0;
				display: flex;
				flex-direction: column;
				flex: 1;
			}

			/* META */
			.d247-blog-meta {
				display: flex;
				flex-wrap: wrap;
				align-items: center;
				gap: 14px;
				font-family: 'DM Sans', sans-serif;
				font-size: 13px;
				font-weight: 500;
				color: #6b7a8a;
				margin-bottom: 12px;
			}
			.d247-blog-meta-item {
				display: inline-flex;
				align-items: center;
				gap: 6px;
			}
			.d247-blog-meta-dot {
				display: inline-block;
				width: 6px;
				height: 6px;
				background: #80c422;
				border-radius: 50%;
				flex-shrink: 0;
			}
			.d247-blog-meta svg {
				color: #8598ab;
				flex-shrink: 0;
			}

			/* TITLE */
			.d247-blog-card-title {
				font-family: 'Sora', sans-serif;
				font-size: 1.4rem;
				font-weight: 800;
				line-height: 1.3;
				color: #1a1a1a;
				margin: 0 0 12px 0;
			}
			.d247-blog-card-title a {
				color: inherit;
				text-decoration: none;
				transition: color 0.18s ease;
			}
			.d247-blog-card-title a:hover {
				color: #2e6d1f;
			}

			/* EXCERPT */
			.d247-blog-excerpt {
				font-family: 'DM Sans', sans-serif;
				font-size: 0.95rem;
				line-height: 1.6;
				color: #4a6070;
				margin: 0 0 16px 0;
				display: -webkit-box;
				-webkit-box-orient: vertical;
				-webkit-line-clamp: 3;
				overflow: hidden;
			}

			/* READ MORE */
			.d247-blog-readmore {
				display: inline-flex;
				align-items: center;
				gap: 6px;
				font-family: 'DM Sans', sans-serif;
				font-size: 0.95rem;
				font-weight: 700;
				color: #2e6d1f;
				text-decoration: none;
				margin-top: auto;
				transition: color 0.18s ease, gap 0.22s ease;
			}
			.d247-blog-readmore:hover {
				color: #1a4d10;
				gap: 10px;
			}
			.d247-blog-readmore svg {
				flex-shrink: 0;
				transition: transform 0.22s ease;
			}

			/* RESPONSIVE */
			@media (max-width: 980px) {
				.d247-blog-grid { grid-template-columns: repeat(2, 1fr) !important; }
			}
			@media (max-width: 640px) {
				.d247-blog-grid { grid-template-columns: 1fr !important; }
				.d247-blog-image { height: 200px; }
				.d247-blog-card-title { font-size: 1.2rem; }
			}
		

/* ══════ class-nav-widget.php ══════ */
/* First-paint equivalents of the per-instance #uid resets that stay
   inline in the widget. Class-based, so the inline ID rules still win. */
.d247-nav ul { list-style: none; margin: 0; padding: 0; }
.d247-nav a  { text-decoration: none; }
		/* ─── NAV BAR ──────────────────────────────── */
		.d247-nav {
			position: relative;
			width: 100%;
			background: #fff;
		}
		.d247-nav-inner {
			display: flex;
			align-items: center;
			justify-content: space-between;
			gap: 16px;
			padding: 14px 40px;
			max-width: 1280px;
			margin: 0 auto;
			width: 100%;
			box-sizing: border-box;
		}

		/* ─── LOGO ─────────────────────────────────── */
		.d247-nav-logo {
			display: flex;
			align-items: center;
			gap: 8px;
			flex-shrink: 0;
			text-decoration: none;
		}
		.d247-logo-img {
			width: 140px;
			height: auto;
			display: block;
		}
		:where(.d247-logo-text) {
			font-family: 'Sora', sans-serif;
			font-weight: 800;
			font-size: 1.2rem;
			color: #253e5d;
		}

		/* ─── DESKTOP MENU ─────────────────────────── */
		.d247-nav-menu-wrap {
			display: flex;
			align-items: center;
			flex: 1;
			justify-content: center;
		}
		.d247-nav-menu {
			display: flex;
			align-items: center;
			gap: 4px;
			flex-wrap: wrap;
		}
		.d247-nav-menu > .d247-menu-item {
			position: relative;
		}
		.d247-menu-link {
			display: inline-flex;
			align-items: center;
			gap: 5px;
			font-family: 'Sora', sans-serif;
			font-weight: 600;
			font-size: 0.88rem;
			color: #253e5d;
			padding: 8px 16px;
			border-radius: 8px;
			transition: color 0.2s, background-color 0.2s;
			white-space: nowrap;
			cursor: pointer;
		}
		.d247-menu-link:hover {
			color: #59b7e0;
			background-color: rgba(89,183,224,0.07);
		}
		.d247-menu-link.d247-active {
			color: #59b7e0;
		}

		/* Chevron */
		.d247-chevron {
			stroke: #7a9ab0;
			transition: transform 0.25s;
			flex-shrink: 0;
		}
		.d247-nav-menu > .d247-menu-item:hover > .d247-menu-link .d247-chevron {
			transform: rotate(180deg);
		}

		/* ─── DROPDOWN ─────────────────────────────── */
		.d247-submenu {
			position: absolute;
			top: calc(100% + 6px);
			left: 0;
			min-width: 200px;
			background: #fff;
			border-radius: 0 14px 14px 14px;
			box-shadow: 0 8px 32px rgba(37,62,93,0.12);
			padding: 8px;
			z-index: 9999;
			opacity: 0;
			visibility: hidden;
			transform: translateY(-8px);
			transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
			pointer-events: none;
		}
		.d247-nav-menu > .d247-menu-item:hover > .d247-submenu,
		.d247-nav-menu > .d247-menu-item:focus-within > .d247-submenu {
			opacity: 1;
			visibility: visible;
			transform: translateY(0);
			pointer-events: auto;
		}
		.d247-submenu .d247-menu-item {
			display: block;
		}
		:where(.d247-submenu .d247-menu-link) {
			display: flex;
			font-size: 0.85rem;
			font-weight: 500;
			padding: 10px 16px;
			border-radius: 8px;
		}
		.d247-submenu .d247-menu-link:hover {
			background-color: rgba(89,183,224,0.07);
			color: #59b7e0;
		}

		/* ─── ACTIONS ──────────────────────────────── */
		.d247-nav-actions {
			display: flex;
			align-items: center;
			gap: 10px;
			flex-shrink: 0;
		}
		:where(.d247-nav-cta) {
			display: inline-flex;
			align-items: center;
			gap: 7px;
			background: #80c422;
			color: #fff;
			font-family: 'Sora', sans-serif;
			font-weight: 700;
			font-size: 0.85rem;
			padding: 11px 26px;
			border-radius: 50px;
			border: none;
			cursor: pointer;
			text-decoration: none;
			transition: background-color 0.2s, transform 0.2s;
			white-space: nowrap;
		}
		.d247-nav-cta:hover {
			background: #6aaa18;
			transform: translateY(-2px);
		}

		/* ─── HAMBURGER ────────────────────────────── */
		.d247-hamburger {
			display: none;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			gap: 5px;
			width: 44px;
			height: 44px;
			background: rgba(37,62,93,0.06);
			border: none;
			border-radius: 10px;
			cursor: pointer;
			padding: 0;
			flex-shrink: 0;
			transition: background-color 0.2s;
		}
		.d247-hamburger:hover { background: rgba(37,62,93,0.12); }
		.d247-hamburger span {
			display: block;
			width: 22px;
			height: 2.5px;
			background: #253e5d;
			border-radius: 3px;
			transition: transform 0.3s ease, opacity 0.3s ease, width 0.3s ease;
		}
		/* X state */
		.d247-nav.d247-menu-open .d247-hamburger span:nth-child(1) {
			transform: translateY(7.5px) rotate(45deg);
		}
		.d247-nav.d247-menu-open .d247-hamburger span:nth-child(2) {
			opacity: 0;
			transform: scaleX(0);
		}
		.d247-nav.d247-menu-open .d247-hamburger span:nth-child(3) {
			transform: translateY(-7.5px) rotate(-45deg);
		}

		/* ─── MOBILE MENU ──────────────────────────── */
		.d247-mobile-menu {
			display: block;
			overflow: hidden;
			max-height: 0;
			opacity: 0;
			transition: max-height 0.38s cubic-bezier(.4,0,.2,1), opacity 0.3s ease;
			background: #fff;
		}
		.d247-nav.d247-menu-open .d247-mobile-menu {
			max-height: 80vh;
			opacity: 1;
			overflow-y: auto;
		}
		.d247-mobile-menu-inner {
			padding: 16px 20px 20px;
		}
		.d247-mobile-nav-menu {
			display: flex;
			flex-direction: column;
		}
		.d247-mobile-nav-menu .d247-menu-item {
			border-bottom: 1px solid rgba(37,62,93,0.08);
		}
		.d247-mobile-nav-menu .d247-menu-link {
			display: flex;
			justify-content: space-between;
			align-items: center;
			font-size: 0.95rem;
			padding: 14px 8px;
			border-radius: 0;
			color: #253e5d;
			font-weight: 600;
		}
		.d247-mobile-nav-menu .d247-menu-link:hover {
			background: transparent;
			color: #59b7e0;
		}
		/* Mobile submenu */
		.d247-mobile-nav-menu .d247-submenu {
			position: static;
			opacity: 1;
			visibility: visible;
			transform: none;
			box-shadow: none;
			border-radius: 0;
			pointer-events: auto;
			background: rgba(37,62,93,0.03);
			padding: 0 0 0 16px;
			max-height: 0;
			overflow: hidden;
			transition: max-height 0.3s ease;
		}
		.d247-mobile-nav-menu .d247-menu-item.d247-open > .d247-submenu {
			max-height: 600px;
		}
		.d247-mobile-nav-menu .d247-submenu .d247-menu-link {
			font-size: 0.88rem;
			font-weight: 500;
			padding: 11px 8px;
			color: #4a6070;
		}
		/* Chevron rotate on mobile open */
		.d247-mobile-nav-menu .d247-menu-item.d247-open > .d247-menu-link .d247-chevron {
			transform: rotate(180deg);
		}
		.d247-mobile-cta-wrap {
			margin-top: 16px;
		}
		.d247-mobile-cta {
			width: 100%;
			justify-content: center;
		}

		/* ─── NO MENU MESSAGE ──────────────────────── */
		.d247-nav-no-menu {
			font-size: 0.8rem;
			color: #7a9ab0;
			padding: 8px 16px;
			background: rgba(89,183,224,0.08);
			border-radius: 8px;
		}

		/* ─── RESPONSIVE ───────────────────────────── */
		@media (max-width: 768px) {
			.d247-nav-menu-wrap { display: none; }
			.d247-hamburger     { display: flex; }
		}
		

/* ══════ class-footer-widget.php ══════ */
		/* ═════════════════════════════════════════════════════════
		   DOCTOR247 FOOTER — SCOPED STYLES
		   All rules live under .d247-footer to prevent ANY bleed
		   from themes, page builders, or other plugins.
		═════════════════════════════════════════════════════════ */

		/* ── 1. Hard Reset ───────────────────────────────────── */
		.d247-footer, .d247-footer *, .d247-footer *::before, .d247-footer *::after {
			box-sizing: border-box;
		}
		.d247-footer { position: relative; overflow: hidden; }
		.d247-footer a  { text-decoration: none !important; color: inherit; }
		.d247-footer ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
		.d247-footer p  { margin: 0 !important; padding: 0 !important; }
		.d247-footer h5 { margin: 0 !important; padding: 0 !important; border: none !important; background: none; font-style: normal; }
		.d247-footer svg { display: block; flex-shrink: 0; }
		.d247-footer button { font-family: inherit; cursor: pointer; }
		.d247-footer input  { font-family: inherit; }
		.d247-footer form   { margin: 0; padding: 0; }

		/* ── 2. Rainbow Top Border ───────────────────────────── */

		/* ── 3. Top Section ──────────────────────────────────── */
		.d247-ft-top {
			padding: 72px 60px 56px;
			border-bottom: 1px solid rgba(255,255,255,0.07);
		}
		.d247-ft-grid {
			display: grid;
			grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr;
			gap: 48px;
			align-items: start;
		}

		/* ── 4. Brand Column ─────────────────────────────────── */
		.d247-ft-brand { display: flex; flex-direction: column; gap: 18px; }
		.d247-ft-logo-wrap { display: flex; align-items: center; }
		.d247-ft-logo-link { display: inline-flex; align-items: center; gap: 10px; }
		.d247-ft-logo-img  { height: 40px; width: auto; filter: brightness(0) invert(1); }
		:where(.d247-ft-logo-text) {
			font-family: 'Sora', sans-serif;
			font-size: 1.3rem;
			font-weight: 800;
			color: #ffffff;
		}
		:where(.d247-ft-desc) {
			font-size: 0.88rem;
			line-height: 1.72;
			color: rgba(255,255,255,0.45);
			max-width: 280px;
		}

		/* ── 5. Trust Badges ─────────────────────────────────── */
		.d247-ft-trust-badges { display: flex; flex-direction: column; gap: 10px; }
		:where(.d247-ft-trust-badge) {
			display: inline-flex;
			align-items: center;
			gap: 9px;
			background: rgba(255,255,255,0.05);
			border: 1px solid rgba(255,255,255,0.1);
			padding: 9px 14px;
			border-radius: 12px;
			font-family: 'Sora', sans-serif;
			font-size: 0.78rem;
			font-weight: 600;
			color: rgba(255,255,255,0.7);
			width: fit-content;
			transition: background-color 0.2s;
		}
		.d247-ft-trust-badge:hover { background: rgba(255,255,255,0.09); }
		.d247-ft-badge-icon {
			display: inline-flex;
			align-items: center;
			color: #59b7e0;
			flex-shrink: 0;
		}

		/* ── 6. Newsletter Block ─────────────────────────────── */
		.d247-ft-nl {
			background: rgba(255,255,255,0.04);
			border: 1px solid rgba(255,255,255,0.08);
			border-radius: 18px;
			padding: 24px 22px;
		}
		:where(.d247-ft-nl-h) {
			font-family: 'Sora', sans-serif;
			font-size: 0.88rem;
			font-weight: 700;
			color: #ffffff;
			margin-bottom: 8px !important;
		}
		.d247-ft-nl-desc {
			font-size: 0.78rem;
			color: rgba(255,255,255,0.45);
			margin-bottom: 16px !important;
			line-height: 1.5;
		}
		.d247-ft-nl-form {
			display: flex;
			gap: 8px;
			align-items: center;
		}
		.d247-ft-nl-input {
			flex: 1;
			min-width: 0;
			background: rgba(255,255,255,0.07);
			border: 1px solid rgba(255,255,255,0.1);
			border-radius: 12px;
			padding: 10px 14px;
			color: #ffffff;
			font-size: 0.83rem;
			outline: none;
			transition: border-color 0.2s;
		}
		.d247-ft-nl-input::placeholder { color: rgba(255,255,255,0.3); }
		.d247-ft-nl-input:focus { border-color: rgba(89,183,224,0.5); }
		.d247-ft-nl-btn {
			flex-shrink: 0;
			background: #59b7e0;
			color: #ffffff;
			border: none;
			border-radius: 12px;
			padding: 10px 16px;
			font-family: 'Sora', sans-serif;
			font-weight: 700;
			font-size: 0.82rem;
			white-space: nowrap;
			transition: background-color 0.2s, transform 0.2s;
		}
		.d247-ft-nl-btn:hover { transform: scale(1.04); }

		/* ── 7. Nav Columns ──────────────────────────────────── */
		:where(.d247-ft-col-title) {
			font-family: 'Sora', sans-serif;
			font-size: 0.78rem;
			font-weight: 700;
			letter-spacing: 0.1em;
			text-transform: uppercase;
			color: rgba(255,255,255,0.35);
			margin-bottom: 22px !important;
		}
		.d247-ft-link-list { display: flex; flex-direction: column; gap: 11px; }
		:where(.d247-ft-link) {
			display: inline-flex;
			align-items: center;
			gap: 8px;
			font-size: 0.88rem;
			color: rgba(255,255,255,0.6);
			transition: color 0.2s;
		}
		.d247-ft-link::before {
			content: '';
			display: inline-block;
			width: 0;
			height: 1px;
			background: currentColor;
			transition: width 0.2s;
			flex-shrink: 0;
		}
		.d247-ft-link:hover::before { width: 12px; }
		.d247-ft-link-pill {
			font-family: 'Sora', sans-serif;
			font-size: 0.65rem;
			font-weight: 700;
			background: rgba(128,196,34,0.15);
			color: #80c422;
			padding: 2px 7px;
			border-radius: 50px;
			letter-spacing: 0.03em;
			flex-shrink: 0;
		}

		/* ── 8. Middle Bar ───────────────────────────────────── */
		.d247-ft-middle {
			padding: 36px 60px;
			display: flex;
			align-items: center;
			justify-content: space-between;
			border-bottom: 1px solid rgba(255,255,255,0.06);
			flex-wrap: wrap;
			gap: 24px;
		}
		.d247-ft-social-row {
			display: flex;
			align-items: center;
			gap: 10px;
			flex-wrap: wrap;
		}
		:where(.d247-ft-soc-label) {
			font-size: 0.8rem;
			color: rgba(255,255,255,0.3);
			margin-right: 4px;
		}
		.d247-ft-soc-btn {
			width: 40px;
			height: 40px;
			border-radius: 12px;
			background: rgba(255,255,255,0.06);
			border: 1px solid rgba(255,255,255,0.1);
			display: flex;
			align-items: center;
			justify-content: center;
			color: rgba(255,255,255,0.6);
			text-decoration: none !important;
			transition: background-color 0.25s, border-color 0.25s, color 0.25s, transform 0.25s;
			flex-shrink: 0;
		}
		.d247-ft-soc-btn:hover {
			background-color: var(--d247-soc-hover, #59b7e0) !important;
			border-color:     var(--d247-soc-hover, #59b7e0) !important;
			color: #ffffff !important;
			transform: translateY(-3px);
		}
		.d247-ft-certs {
			display: flex;
			gap: 16px;
			align-items: center;
			flex-wrap: wrap;
		}
		:where(.d247-ft-cert-badge) {
			display: flex;
			align-items: center;
			gap: 7px;
			font-family: 'Sora', sans-serif;
			font-size: 0.76rem;
			font-weight: 600;
			color: rgba(255,255,255,0.5);
			padding: 7px 12px;
			border-radius: 8px;
			border: 1px solid rgba(255,255,255,0.08);
		}
		.d247-ft-cert-icon {
			display: inline-flex;
			align-items: center;
			color: #59b7e0;
			flex-shrink: 0;
		}

		/* ── 9. Bottom Bar ───────────────────────────────────── */
		.d247-ft-bottom {
			padding: 26px 60px;
			display: flex;
			justify-content: space-between;
			align-items: center;
			flex-wrap: wrap;
			gap: 14px;
		}
		:where(.d247-ft-copy) {
			font-size: 0.8rem;
			color: rgba(255,255,255,0.3);
		}
		.d247-ft-bot-links { display: flex; gap: 20px; flex-wrap: wrap; }
		:where(.d247-ft-bot-link) {
			font-size: 0.8rem;
			color: rgba(255,255,255,0.35);
			text-decoration: none !important;
			transition: color 0.2s;
		}
		.d247-ft-bot-link:hover { color: #59b7e0; }

		/* ── 10. Responsive ──────────────────────────────────── */
		@media (max-width: 1200px) {
			.d247-ft-grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; }
			.d247-ft-brand { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; gap: 24px; }
			.d247-ft-brand > .d247-ft-logo-wrap { width: 100%; }
			:where(.d247-ft-desc) { max-width: 340px; }
			.d247-ft-nl   { flex: 1; min-width: 240px; }
		}
		@media (max-width: 1024px) {
			.d247-ft-top,
			.d247-ft-middle,
			.d247-ft-bottom { padding-left: 40px; padding-right: 40px; }
			.d247-ft-grid   { grid-template-columns: 1fr 1fr 1fr; }
			.d247-ft-brand  { grid-column: 1 / -1; flex-direction: column; }
			:where(.d247-ft-desc)   { max-width: 100%; }
		}
		@media (max-width: 768px) {
			.d247-ft-top    { padding: 48px 24px 40px; }
			.d247-ft-middle { padding: 24px; flex-direction: column; align-items: flex-start; }
			.d247-ft-bottom { padding: 20px 24px; flex-direction: column; align-items: flex-start; }
			.d247-ft-grid   { grid-template-columns: 1fr 1fr; gap: 32px; }
			.d247-ft-brand  { grid-column: 1 / -1; }
			.d247-ft-nl-input { width: 100%; flex: none; }
			.d247-ft-nl-form  { flex-wrap: wrap; }
		}
		@media (max-width: 480px) {
			.d247-ft-grid { grid-template-columns: 1fr; }
		}
		
