/* J Perl Blog Tools — front-end styles (theme-independent).
   Design tokens mirror the Elementor global kit (navy #0C4A6E, teal #0F766E,
   gold #B27A1E, Inter body / Poppins headings). Uses .jbt- prefix only. */

.jbt-single, .jbt-archive { --jbt-navy:#0C4A6E; --jbt-navy-dark:#08344D; --jbt-gold:#B27A1E;
	--jbt-teal:#0F766E; --jbt-text:#16202A; --jbt-muted:#54606C; --jbt-border:#E1E8EF;
	--jbt-bg:#F7FAFC; --jbt-alt:#ECF3F8; --jbt-white:#FFFFFF; --jbt-accent:#0C4A6E; }

/* Accessibility helper (in case the active theme omits it) */
.screen-reader-text{ position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
	overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }

/* ---------- HERO ---------- */
.jbt-hero{ position:relative; overflow:hidden; border-radius:0; min-height:300px;
	display:flex; align-items:flex-end; background:var(--jbt-navy); isolation:isolate; }
.jbt-hero__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.jbt-hero__overlay{ position:absolute; inset:0; z-index:1; }
.jbt-hero--image .jbt-hero__overlay{
	background:linear-gradient(180deg, rgba(8,52,77,.15) 0%, rgba(8,52,77,.55) 55%, rgba(8,52,77,.82) 100%); }
.jbt-hero--branded{ background:
	radial-gradient(120% 140% at 12% 12%, color-mix(in srgb, var(--jbt-accent) 55%, #08344D) 0%, #08344D 60%, #062639 100%); }
.jbt-hero--branded .jbt-hero__overlay{
	background:linear-gradient(120deg, transparent 55%, color-mix(in srgb, var(--jbt-gold) 30%, transparent) 100%); }
.jbt-hero__inner{ position:relative; z-index:2; width:100%; max-width:900px; margin:0 auto;
	padding:44px 24px; color:#fff; }
.jbt-hero__cat{ display:inline-block; font-family:'Poppins',system-ui,sans-serif; font-weight:600;
	font-size:.74rem; letter-spacing:.09em; text-transform:uppercase; color:#fff;
	background:var(--jbt-accent); padding:6px 14px; border-radius:999px; text-decoration:none; margin-bottom:16px; }
a.jbt-hero__cat:hover, a.jbt-hero__cat:focus-visible{ background:#fff; color:var(--jbt-accent); }
.jbt-hero__title{ font-family:'Poppins',system-ui,sans-serif; font-weight:700; color:#fff;
	font-size:clamp(1.8rem,4.4vw,2.85rem); line-height:1.12; margin:0 0 14px; max-width:20ch; }
.jbt-hero__meta{ font-family:'Inter',system-ui,sans-serif; font-size:.95rem; color:#e6eef5;
	display:flex; gap:10px; align-items:center; margin:0; }

/* ---------- ARTICLE BODY WRAP ---------- */
.jbt-article{ max-width:760px; margin:0 auto; padding:40px 24px 8px; font-family:'Inter',system-ui,sans-serif;
	color:var(--jbt-text); font-size:1.075rem; line-height:1.75; }
.jbt-lead{ font-size:1.2rem; line-height:1.6; color:var(--jbt-muted); font-weight:500;
	border-left:3px solid var(--jbt-accent,#0C4A6E); padding-left:18px; margin:0 0 8px; }

/* Post content typography (applies to Elementor Post Content inside .jbt-article) */
.jbt-article :where(h2){ font-family:'Poppins',system-ui,sans-serif; font-weight:700; color:var(--jbt-navy,#0C4A6E);
	font-size:1.55rem; line-height:1.25; margin:1.9em 0 .5em; }
.jbt-article :where(h3){ font-family:'Poppins',system-ui,sans-serif; font-weight:600; color:var(--jbt-navy-dark,#08344D);
	font-size:1.25rem; line-height:1.3; margin:1.6em 0 .4em; }
.jbt-article :where(p){ margin:0 0 1.15em; }
.jbt-article :where(ul,ol){ margin:0 0 1.25em; padding-left:1.4em; }
.jbt-article :where(li){ margin:0 0 .5em; }
.jbt-article :where(a){ color:#0369A1; text-decoration:underline; text-underline-offset:2px; }
.jbt-article :where(a:hover){ color:var(--jbt-navy-dark,#08344D); }
.jbt-article :where(blockquote){ border-left:4px solid var(--jbt-gold,#B27A1E); background:var(--jbt-alt,#ECF3F8);
	margin:1.6em 0; padding:14px 20px; border-radius:0 8px 8px 0; font-style:italic; color:var(--jbt-navy-dark,#08344D); }
.jbt-article :where(table){ width:100%; border-collapse:collapse; margin:1.5em 0; font-size:.97rem; }
.jbt-article :where(th,td){ border:1px solid var(--jbt-border,#E1E8EF); padding:10px 12px; text-align:left; }
.jbt-article :where(th){ background:var(--jbt-alt,#ECF3F8); font-family:'Poppins',sans-serif; }
.jbt-article :where(img){ max-width:100%; height:auto; border-radius:8px; }

/* ---------- SUPPORTING FIGURE ---------- */
.jbt-figure{ margin:26px 0; }
.jbt-figure__img{ width:100%; height:auto; border-radius:10px; display:block;
	box-shadow:0 8px 24px rgba(8,52,77,.10); }
.jbt-figure__cap{ font-family:'Inter',sans-serif; font-size:.88rem; color:var(--jbt-muted,#54606C);
	margin-top:8px; text-align:center; font-style:italic; }

/* ---------- RELATED RESOURCES ---------- */
.jbt-resources{ max-width:760px; margin:32px auto; background:var(--jbt-alt,#ECF3F8);
	border:1px solid var(--jbt-border,#E1E8EF); border-radius:12px; padding:22px 26px; }
.jbt-resources__title{ font-family:'Poppins',sans-serif; font-weight:600; color:var(--jbt-navy,#0C4A6E);
	font-size:1.12rem; margin:0 0 12px; }
.jbt-resources__list{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px 14px; }
.jbt-resources__list a{ display:inline-block; font-family:'Inter',sans-serif; font-weight:600; font-size:.95rem;
	color:var(--jbt-navy,#0C4A6E); text-decoration:none; background:#fff; border:1px solid var(--jbt-border,#E1E8EF);
	padding:8px 14px; border-radius:999px; }
.jbt-resources__list a:hover, .jbt-resources__list a:focus-visible{ background:var(--jbt-navy,#0C4A6E); color:#fff; border-color:var(--jbt-navy,#0C4A6E); }

/* ---------- DISCLAIMER ---------- */
.jbt-disclaimer{ max-width:760px; margin:26px auto 0; font-family:'Inter',sans-serif; font-size:.9rem;
	line-height:1.6; color:var(--jbt-muted,#54606C); background:#fbfaf6; border:1px solid #ece3cf;
	border-left:4px solid var(--jbt-gold,#B27A1E); padding:14px 18px; border-radius:0 8px 8px 0; }
.jbt-disclaimer strong{ color:var(--jbt-navy-dark,#08344D); }

/* ---------- BUTTONS ---------- */
.jbt-btn{ display:inline-block; font-family:'Poppins',sans-serif; font-weight:600; font-size:1rem;
	color:#fff; background:var(--jbt-navy,#0C4A6E); padding:14px 30px; border-radius:8px; text-decoration:none;
	transition:transform .15s ease, background .15s ease; border:2px solid transparent; }
.jbt-btn:hover{ background:var(--jbt-navy-dark,#08344D); color:#fff; transform:translateY(-2px); }
.jbt-btn--light{ background:#fff; color:var(--jbt-accent,#0C4A6E); }
.jbt-btn--light:hover{ background:var(--jbt-gold,#B27A1E); color:#fff; }

/* ---------- CTA BAND ---------- */
.jbt-cta{ margin:44px 0 0; background:
	linear-gradient(120deg, var(--jbt-navy-dark,#08344D) 0%, var(--jbt-accent,#0C4A6E) 100%); color:#fff; }
.jbt-cta__inner{ max-width:820px; margin:0 auto; padding:52px 24px; text-align:center; }
.jbt-cta__heading{ font-family:'Poppins',sans-serif; font-weight:700; color:#fff;
	font-size:clamp(1.5rem,3.4vw,2.1rem); line-height:1.2; margin:0 0 12px; }
.jbt-cta__copy{ font-family:'Inter',sans-serif; font-size:1.08rem; line-height:1.6; color:#eaf1f7;
	max-width:60ch; margin:0 auto 24px; }

/* ---------- RELATED POSTS ---------- */
.jbt-related{ max-width:1120px; margin:56px auto 8px; padding:0 24px; }
.jbt-related__title{ font-family:'Poppins',sans-serif; font-weight:700; color:var(--jbt-navy,#0C4A6E);
	font-size:1.5rem; margin:0 0 22px; text-align:center; }
.jbt-related__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }

/* ---------- ARCHIVE INTRO / NAV ---------- */
.jbt-archive{ font-family:'Inter',system-ui,sans-serif; }
.jbt-arch__title{ font-family:'Poppins',sans-serif; font-weight:700; color:var(--jbt-navy,#0C4A6E);
	font-size:clamp(1.9rem,4vw,2.6rem); line-height:1.15; margin:0 0 12px; }
.jbt-arch__lead{ font-family:'Inter',sans-serif; font-size:1.12rem; line-height:1.6; color:var(--jbt-muted,#54606C);
	max-width:64ch; margin:0; }
.jbt-catnav{ margin:6px 0 4px; }
.jbt-catnav__list{ list-style:none; display:flex; flex-wrap:wrap; gap:10px; margin:0; padding:0; }
.jbt-catnav__link{ display:inline-block; font-family:'Poppins',sans-serif; font-weight:600; font-size:.92rem;
	color:var(--jbt-navy,#0C4A6E); text-decoration:none; background:#fff; border:1px solid var(--jbt-border,#E1E8EF);
	padding:9px 18px; border-radius:999px; }
.jbt-catnav__link:hover, .jbt-catnav__link:focus-visible{ background:var(--jbt-alt,#ECF3F8); }
.jbt-catnav__link.is-current{ background:var(--jbt-navy,#0C4A6E); color:#fff; border-color:var(--jbt-navy,#0C4A6E); }

/* ---------- CARDS + GRID ---------- */
.jbt-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin:8px 0 0; }
.jbt-grid--two{ grid-template-columns:repeat(2,minmax(0,1fr)); max-width:820px; }
.jbt-grid--single{ grid-template-columns:minmax(0,720px); justify-content:start; }
.jbt-grid--single .jbt-card{ display:grid; grid-template-columns:44% 56%; }
.jbt-grid--single .jbt-card__media{ padding-top:0; height:100%; min-height:230px; }

.jbt-card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--jbt-border,#E1E8EF);
	border-radius:14px; overflow:hidden; box-shadow:0 6px 20px rgba(8,52,77,.06);
	transition:transform .15s ease, box-shadow .15s ease; }
.jbt-card:hover{ transform:translateY(-4px); box-shadow:0 14px 32px rgba(8,52,77,.13); }
.jbt-card:focus-within{ box-shadow:0 0 0 3px #fff, 0 0 0 6px var(--jbt-accent,#0C4A6E); }
.jbt-card__media{ position:relative; display:block; padding-top:58%; background:var(--jbt-alt,#ECF3F8);
	overflow:hidden; text-decoration:none; }
.jbt-card__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.jbt-card__fallback{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
	background:linear-gradient(135deg, var(--jbt-navy-dark,#08344D) 0%, var(--jbt-accent,#0C4A6E) 100%); }
.jbt-card__fallback-mark{ font-family:'Poppins',sans-serif; font-weight:700; color:#fff; text-align:center;
	font-size:1.05rem; letter-spacing:.02em; line-height:1.25; opacity:.92;
	border:2px solid rgba(255,255,255,.5); border-radius:8px; padding:12px 16px; }
.jbt-card__body{ display:flex; flex-direction:column; gap:8px; padding:20px 22px 22px; flex:1; }
.jbt-card__cat{ align-self:flex-start; font-family:'Poppins',sans-serif; font-weight:600; font-size:.68rem;
	letter-spacing:.08em; text-transform:uppercase; color:#fff; background:var(--jbt-accent,#0C4A6E);
	padding:4px 11px; border-radius:999px; }
.jbt-card__title{ font-family:'Poppins',sans-serif; font-weight:600; line-height:1.28; margin:2px 0 0; font-size:1.2rem; }
.jbt-card__title a{ color:var(--jbt-navy-dark,#08344D); text-decoration:none; }
.jbt-card__title a:hover{ color:var(--jbt-accent,#0C4A6E); }
.jbt-card__excerpt{ font-family:'Inter',sans-serif; color:var(--jbt-muted,#54606C); font-size:.97rem;
	line-height:1.6; margin:0; }
.jbt-card__foot{ display:flex; align-items:center; justify-content:space-between; gap:12px;
	margin-top:auto; padding-top:12px; border-top:1px solid var(--jbt-border,#E1E8EF); }
.jbt-card__foot time{ font-family:'Inter',sans-serif; font-size:.85rem; color:var(--jbt-muted,#54606C); }
.jbt-card__more{ font-family:'Poppins',sans-serif; font-weight:600; font-size:.9rem; color:var(--jbt-accent,#0C4A6E);
	text-decoration:none; white-space:nowrap; }
.jbt-card__more:hover{ color:var(--jbt-navy-dark,#08344D); text-decoration:underline; }

/* ---------- PAGINATION ---------- */
.jbt-pagination{ margin:36px 0 0; }
.jbt-pagination .page-numbers{ list-style:none; display:flex; flex-wrap:wrap; gap:8px; justify-content:center; padding:0; }
.jbt-pagination a.page-numbers, .jbt-pagination span.page-numbers{ display:inline-flex; min-width:42px; height:42px;
	align-items:center; justify-content:center; padding:0 12px; border-radius:8px; text-decoration:none;
	font-family:'Poppins',sans-serif; font-weight:600; border:1px solid var(--jbt-border,#E1E8EF);
	color:var(--jbt-navy,#0C4A6E); background:#fff; }
.jbt-pagination .page-numbers.current{ background:var(--jbt-navy,#0C4A6E); color:#fff; border-color:var(--jbt-navy,#0C4A6E); }
.jbt-pagination a.page-numbers:hover{ background:var(--jbt-alt,#ECF3F8); }

/* ---------- EMPTY STATE ---------- */
.jbt-empty{ text-align:center; background:var(--jbt-alt,#ECF3F8); border:1px solid var(--jbt-border,#E1E8EF);
	border-radius:16px; padding:56px 28px; max-width:640px; margin:8px auto 0; }
.jbt-empty__title{ font-family:'Poppins',sans-serif; font-weight:700; color:var(--jbt-navy,#0C4A6E);
	font-size:1.5rem; margin:0 0 12px; }
.jbt-empty__copy{ font-family:'Inter',sans-serif; color:var(--jbt-muted,#54606C); font-size:1.02rem;
	line-height:1.6; max-width:48ch; margin:0 auto 24px; }

/* ---------- FOCUS VISIBILITY (accessibility) ---------- */
.jbt-single a:focus-visible, .jbt-archive a:focus-visible, .jbt-btn:focus-visible,
.jbt-card__more:focus-visible, .jbt-catnav__link:focus-visible{
	outline:3px solid var(--jbt-gold,#B27A1E); outline-offset:2px; border-radius:4px; }

/* ---------- RESPONSIVE ---------- */
@media (max-width:1024px){
	.jbt-grid, .jbt-related__grid{ grid-template-columns:repeat(2,1fr); }
	.jbt-grid--single .jbt-card{ grid-template-columns:1fr; }
	.jbt-grid--single .jbt-card__media{ padding-top:56%; min-height:0; }
}
@media (max-width:680px){
	.jbt-grid, .jbt-related__grid, .jbt-grid--two{ grid-template-columns:1fr; max-width:520px; margin-left:auto; margin-right:auto; }
	.jbt-hero__inner{ padding:34px 20px; }
	.jbt-article{ padding:30px 20px 8px; font-size:1.02rem; }
	.jbt-resources, .jbt-disclaimer, .jbt-lead{ margin-left:0; margin-right:0; }
}

/* ---------- REDUCED MOTION ---------- */
@media (prefers-reduced-motion:reduce){
	.jbt-card, .jbt-btn{ transition:none; }
	.jbt-card:hover, .jbt-btn:hover{ transform:none; }
}

/* Wrapper-independent focus visibility (robust to Elementor class handling) */
.jbt-card a:focus-visible, .jbt-resources a:focus-visible, .jbt-hero__cat:focus-visible, .jbt-pagination a:focus-visible, .jbt-related a:focus-visible, .jbt-card__title a:focus-visible{ outline:3px solid #B27A1E; outline-offset:2px; border-radius:4px; }

/* === JBT COLOR HARDENING === Force brand colors over theme/Elementor global kit (higher-specificity) heading & link styles. */
body{ --jbt-navy:#0C4A6E; --jbt-navy-dark:#08344D; --jbt-gold:#B27A1E; --jbt-teal:#0F766E; --jbt-text:#16202A; --jbt-muted:#54606C; --jbt-border:#E1E8EF; --jbt-bg:#F7FAFC; --jbt-alt:#ECF3F8; --jbt-white:#FFFFFF; --jbt-accent:#0C4A6E; }
.jbt-hero__title{ color:#fff !important; }
.jbt-hero__cat{ color:#fff !important; }
a.jbt-hero__cat:hover, a.jbt-hero__cat:focus-visible{ color:var(--jbt-accent,#0C4A6E) !important; }
.jbt-hero__meta, .jbt-hero__meta time, .jbt-hero__meta span{ color:#e6eef5 !important; }
.jbt-cta__heading{ color:#fff !important; }
.jbt-cta__copy{ color:#eaf1f7 !important; }
.jbt-btn{ color:#fff !important; }
.jbt-btn--light{ color:var(--jbt-accent,#0C4A6E) !important; }
.jbt-btn--light:hover{ color:#fff !important; }
.jbt-arch__title{ color:#0C4A6E !important; }
.jbt-related__title, .jbt-resources__title, .jbt-empty__title{ color:#0C4A6E !important; }
.jbt-card__title a{ color:#08344D !important; }
.jbt-card__title a:hover{ color:#0C4A6E !important; }
.jbt-card__cat{ color:#fff !important; }
.jbt-card__more{ color:#0C4A6E !important; }
.jbt-catnav__link.is-current{ color:#fff !important; }
