/* EGE Blog template. GENERATED by scripts/build_plugin_css.py from mockups/blog-post.css and
   plugin/src/the7-integration.css. Edit those, then rebuild; do not edit this file. */

body.ege-blog-c {
  --ege-navy: #131a46;
  --ege-nav: #222c6a;
  --ege-red: #ec1c2d;
  --ege-red-btn: #e01b2b;
  --ege-red-dark: #b3121f;     /* red text on light tints: passes WCAG AA where #ec1c2d does not */
  --ege-blue: #69a6d5;
  --ege-text: #323233;
  --ege-meta: #5c5d5e;         /* darker than the site's #797a7a so small text passes WCAG AA */
  --ege-shell: #f7f7f7;
  --ege-line: #e3e5ec;
  --ege-tint: #eef1f8;
  --tap: 44px;                 /* minimum touch target (Apple HIG 44pt; Material 48dp; WCAG 2.2 floor 24px) */
  --bar-h: 64px;
  --rv: #6d28d9;
}

.ege-blog *, .ege-blog-bar * { box-sizing: border-box; }
body.ege-blog-c { padding-bottom: calc(var(--bar-h) + env(safe-area-inset-bottom)); }
.ege-blog { color: var(--ege-text); font: 400 16px/1.6 Roboto, Arial, sans-serif; }
.ege-blog img { max-width: 100%; height: auto; display: block; }

/* ---- Phone (base) -------------------------------------------------------------------------- */
.ege-blog { max-width: 1240px; margin: 0 auto; padding: 0 16px; }
.ege-blog a { color: var(--ege-nav); }

.ege-blog__head { padding-top: 12px; }
.ege-blog__crumbs { font-size: 15px; }
.ege-blog__back { display: inline-flex; align-items: center; min-height: var(--tap); padding-right: 12px; font-weight: 500; text-decoration: none; }
.ege-blog__back::before { content: "‹"; font-size: 24px; line-height: 1; margin-right: 6px; color: var(--ege-red); }
.ege-blog__crumbs-full { display: none; }
.ege-blog h1 { font: 600 clamp(29px, 4.2vw + 13px, 44px)/1.15 Oswald, sans-serif; color: var(--ege-navy); margin: 4px 0 16px; letter-spacing: 0.2px; }

.ege-blog__byline { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px 12px; padding: 12px 0; border-top: 1px solid var(--ege-line); border-bottom: 1px solid var(--ege-line); }
.ege-blog__byline p { margin: 0; font-size: 14px; line-height: 1.45; }
.ege-blog__byline-text { display: grid; gap: 1px; }
.ege-blog__by { color: var(--ege-meta); }
.ege-blog__byline a { font-weight: 500; text-decoration: none; }
.ege-blog__meta { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; color: var(--ege-meta); }
.ege-blog__meta > span + span::before { content: ""; display: inline-block; width: 4px; height: 4px; border-radius: 50%; background: var(--ege-red); margin: 0 10px 3px; }
.ege-blog__avatar { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--ege-navy); color: #fff; font: 600 15px/1 Oswald, sans-serif; flex: none; }
.ege-blog__avatar--lg { width: 52px; height: 52px; font-size: 18px; }
.ege-blog__avatar--red { background: var(--ege-red); }

.ege-blog__copy { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; min-height: var(--tap); background: #fff; border: 1px solid var(--ege-line); border-radius: 4px; padding: 0 14px; font: 500 14px/1 Roboto, Arial, sans-serif; color: var(--ege-navy); cursor: pointer; }
.ege-blog__copy::after { content: "↗"; }
.ege-blog__copy--inline { margin-left: auto; width: var(--tap); padding: 0; justify-content: center; font-size: 18px; }
.ege-blog__copy--inline .ege-blog__copy-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ege-blog__copy.is-copied::after { content: "✓"; color: #1d7a3a; }

.ege-blog__grid { display: block; padding-top: 20px; }
.ege-blog__article { min-width: 0; }
.ege-blog__lead { display: flex; flex-direction: column; }
.ege-blog__hero { margin: 0 0 24px; }
.ege-blog__hero img { width: 100%; border-radius: 4px; }

.ege-blog__quick { background: var(--ege-tint); border-left: 5px solid var(--ege-navy); padding: 16px 16px 8px 18px; margin: 0 0 20px; border-radius: 0 4px 4px 0; }
.ege-blog__quick-label { font: 600 15px/1 Oswald, sans-serif !important; text-transform: uppercase; letter-spacing: 1.2px; color: var(--ege-red-dark) !important; margin: 0 0 10px !important; }
.ege-blog__quick ul { margin: 0; padding-left: 18px; }
.ege-blog__quick li { font-size: clamp(16px, 0.4vw + 15px, 17px); line-height: 1.55; margin: 0 0 8px; }
.ege-blog__quick li::marker { color: var(--ege-red); }

.ege-blog__toc { background: #fff; border: 1px solid var(--ege-line); border-radius: 4px; }
.ege-blog__toc-label, .ege-blog__toc summary { font: 600 15px/1 Oswald, sans-serif; text-transform: uppercase; letter-spacing: 1.2px; color: var(--ege-navy); }
.ege-blog__toc ol { list-style: none; margin: 0; padding: 0; counter-reset: toc; }
.ege-blog__toc li { counter-increment: toc; }
.ege-blog__toc li { border-top: 1px solid #eef0f4; }
.ege-blog__toc a { display: flex; align-items: center; min-height: var(--tap); padding: 8px 0 8px 12px; font-size: 15px; line-height: 1.35; color: var(--ege-text); text-decoration: none; border-left: 3px solid transparent; }
.ege-blog__toc a:hover, .ege-blog__toc a[aria-current] { color: var(--ege-navy); border-left-color: var(--ege-red); font-weight: 500; }
.ege-blog__toc--inline { margin: 0 0 24px; scroll-margin-top: 12px; }
.ege-blog__toc--inline summary { min-height: var(--tap); padding: 0 16px; display: flex; align-items: center; justify-content: space-between; cursor: pointer; list-style: none; }
.ege-blog__toc--inline summary::-webkit-details-marker { display: none; }
.ege-blog__toc--inline summary::after { content: "+"; font-size: 22px; color: var(--ege-red); }
.ege-blog__toc--inline[open] summary::after { content: "–"; }
.ege-blog__toc--inline ol { padding: 0 16px 8px; }

.ege-blog__body { font-size: clamp(17px, 0.25vw + 16px, 18px); line-height: 1.7; }
.ege-blog__body p { margin: 0 0 18px; }
.ege-blog__body { counter-reset: sec; }
.ege-blog__body h2 { font: 600 clamp(24px, 1.6vw + 18px, 30px)/1.2 Oswald, sans-serif; color: var(--ege-navy); margin: 44px 0 14px; padding-top: 22px; border-top: 1px solid #dfe2ea; scroll-margin-top: 16px; counter-increment: sec; }
/* Opening line of each section: usually DJ's direct answer, set a step larger for skimmers. */
.ege-blog__body h2 + p { font-size: clamp(18px, 0.4vw + 17px, 20px); line-height: 1.6; color: var(--ege-navy); font-weight: 500; }

/* Pull quote: one of DJ's sentences repeated large as a pause. aria-hidden in the markup. */
.ege-blog__pull { margin: 28px 0 30px; padding: 4px 0 4px 20px; border-left: 4px solid var(--ege-red); }
.ege-blog__pull p { margin: 0 !important; font: 500 clamp(22px, 1.4vw + 17px, 28px)/1.3 Oswald, sans-serif; color: var(--ege-navy); letter-spacing: 0.2px; }

/* Related-service card: one optional inline link to a service page */
.ege-blog__svc-card { display: grid; gap: 2px; background: #fff; border: 1px solid var(--ege-line); border-left: 5px solid var(--ege-red); border-radius: 0 4px 4px 0; padding: 12px 16px 6px; margin: 6px 0 26px; }
.ege-blog__svc-card-label { font: 600 13px/1 Oswald, sans-serif; text-transform: uppercase; letter-spacing: 1.2px; color: var(--ege-red-dark); }
.ege-blog__svc-card a { display: flex; align-items: center; gap: 8px; min-height: var(--tap); font: 600 19px/1.25 Oswald, sans-serif; color: var(--ege-navy); text-decoration: none; }
.ege-blog__svc-card a span { color: var(--ege-red); transition: transform .15s; }
.ege-blog__svc-card a:hover span { transform: translateX(3px); }
.ege-blog__quick li strong { color: var(--ege-navy); }

/* Photo slot for a real EGE job photo */
.ege-blog__photo { margin: 30px 0 34px; }
.ege-blog__photo-slot { aspect-ratio: 3 / 2; display: grid; place-items: center; padding: 24px; text-align: center; border-radius: 4px; font-size: 15px; line-height: 1.5;
                        background: repeating-linear-gradient(135deg, #e9ecf3 0 12px, #f1f3f8 12px 24px); border: 1px dashed #b9c0d3; }
.ege-blog__photo figcaption { font-size: 14px; color: var(--ege-meta); margin-top: 8px; }
.ege-blog__body h3 { font: 600 clamp(18px, 0.6vw + 16px, 20px)/1.3 Oswald, sans-serif; color: var(--ege-navy); margin: 0 0 8px; }
.ege-blog__body strong { color: var(--ege-navy); }
.ege-blog__rooms { list-style: none; padding: 0; margin: 0 0 18px; display: grid; gap: 10px; }
.ege-blog__rooms li { background: #fff; border: 1px solid var(--ege-line); border-left: 4px solid var(--ege-blue); padding: 12px 14px; border-radius: 0 4px 4px 0; font-size: 16px; line-height: 1.6; }

/* Table: stacked rows on a phone, a real grid from 640px */
.ege-blog__table { margin: 8px 0 28px; }
.ege-blog__table table { width: 100%; border-collapse: collapse; font-size: 16px; line-height: 1.5; }
.ege-blog__table caption { text-align: left; font: 600 18px/1.3 Oswald, sans-serif; color: var(--ege-navy); padding-bottom: 10px; }
.ege-blog__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ege-blog__table tr { display: block; background: #fff; border: 1px solid var(--ege-line); border-top: 3px solid var(--ege-navy); border-radius: 4px; padding: 12px 14px; margin-bottom: 10px; }
.ege-blog__table th, .ege-blog__table td { display: block; padding: 0; text-align: left; }
.ege-blog__table tbody th { color: var(--ege-navy); font-weight: 700; margin-bottom: 4px; }

.ege-blog__callout { background: #fff4f4; border: 1px solid #f6c9cc; border-left: 5px solid var(--ege-red); padding: 14px 16px 2px; margin: 0 0 22px; border-radius: 0 4px 4px 0; }
.ege-blog__callout-label { font: 600 14px/1 Oswald, sans-serif !important; text-transform: uppercase; letter-spacing: 1.2px; color: var(--ege-red-dark); margin: 0 0 10px !important; }

.ege-blog__field { background: var(--ege-navy); color: #fff; padding: 18px; margin: 8px 0 28px; border-radius: 4px; }
.ege-blog__field-label { font: 600 14px/1 Oswald, sans-serif !important; text-transform: uppercase; letter-spacing: 1.2px; color: #ff8d96; margin: 0 0 12px !important; }
.ege-blog__field blockquote { margin: 0 0 12px; font-size: 18px; line-height: 1.6; font-style: italic; }
.ege-blog__field blockquote p { margin: 0; }
.ege-blog__field-who { font-size: 15px; color: #d4d8ea; margin: 0 !important; }

.ege-blog__faq { margin-top: 40px; }
.ege-blog__faq-item { background: #fff; border: 1px solid var(--ege-line); border-radius: 4px; padding: 16px 16px 2px; margin-bottom: 12px; }
.ege-blog__faq-item p { font-size: 16px; line-height: 1.6; }

.ege-blog__sources { border-top: 1px solid var(--ege-line); margin-top: 36px; padding-top: 18px; }
.ege-blog__body .ege-blog__sources h2 { font: 600 20px/1.2 Oswald, sans-serif; color: var(--ege-navy); margin: 0 0 6px; padding-top: 0; border-top: 0; }
.ege-blog__sources ol { margin: 0; padding-left: 22px; font-size: 15px; line-height: 1.5; }
.ege-blog__sources li { padding: 4px 0; }
.ege-blog__sources li a { display: inline-flex; align-items: center; min-height: var(--tap); font-weight: 500; }
.ege-blog__sources-pub { color: var(--ege-meta); margin-left: 8px; }

.ege-blog__services { background: #fff; border: 1px solid var(--ege-line); border-top: 4px solid var(--ege-red); border-radius: 4px; padding: 20px 18px; margin: 36px 0 28px; }
.ege-blog__services h2, .ege-blog__related h2 { font: 600 clamp(22px, 0.8vw + 19px, 24px)/1.2 Oswald, sans-serif; color: var(--ege-navy); margin: 0 0 10px; }
.ege-blog__services ul { list-style: none; margin: 0 0 16px; padding: 0; }
.ege-blog__services li { border-top: 1px solid #eef0f4; }
.ege-blog__services ul a { display: flex; align-items: center; min-height: var(--tap); padding: 6px 0; font-weight: 500; font-size: 16px; line-height: 1.35; }
.ege-blog__services-cta { display: grid; gap: 8px; }
.ege-blog__btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; background: var(--ege-red-btn); color: #fff !important; font: 600 16px/1 Oswald, sans-serif; text-transform: uppercase; letter-spacing: 0.6px; text-decoration: none; padding: 0 22px; border-radius: 2px; }
.ege-blog__btn:hover { background: var(--ege-red-dark); }
.ege-blog__phone { display: inline-flex; align-items: center; justify-content: center; min-height: var(--tap); font-weight: 500; text-decoration: none; }

.ege-blog__people { display: grid; gap: 12px; margin: 0 0 36px; }
.ege-blog__author { font-weight: 500; color: var(--ege-nav); }
.ege-blog__person { display: flex; gap: 14px; background: #fff; border: 1px solid var(--ege-line); border-radius: 4px; padding: 16px; }
.ege-blog__person p { margin: 0 0 4px; font-size: 15px; }
.ege-blog__person-role { color: var(--ege-meta); font-size: 13px !important; text-transform: uppercase; letter-spacing: 0.8px; }
.ege-blog__person-name { font: 600 18px/1.3 Oswald, sans-serif; color: var(--ege-navy); }

.ege-blog__cards { display: grid; gap: 12px; }
.ege-blog__card { display: grid; grid-template-columns: 120px 1fr; align-items: center; background: #fff; border: 1px solid var(--ege-line); border-radius: 4px; overflow: hidden; text-decoration: none; color: var(--ege-navy) !important; font: 500 16px/1.3 Oswald, sans-serif; }
.ege-blog__card img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; height: auto; }
.ege-blog__card span { display: block; padding: 10px 12px; }

.ege-blog__side { display: none; }

/* Phone bar: Call, Request a Quote, Contents. Fixed in the thumb zone; hidden from 980px. */
.ege-blog-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: grid; grid-template-columns: 1fr 1.6fr 1fr; gap: 8px;
                padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--ege-line); box-shadow: 0 -4px 16px rgb(19 26 70 / 0.10); }
.ege-blog-bar__item { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-height: 48px; border: 1px solid var(--ege-line); border-radius: 4px; background: #fff; color: var(--ege-navy); font: 500 13px/1.1 Roboto, Arial, sans-serif; text-decoration: none; cursor: pointer; }
.ege-blog-bar__icon { font-size: 18px; line-height: 1; margin-bottom: 3px; color: var(--ege-red); }
.ege-blog-bar__item--quote { background: var(--ege-red-btn); border-color: var(--ege-red-btn); color: #fff; font: 600 15px/1 Oswald, sans-serif; text-transform: uppercase; letter-spacing: 0.5px; }

/* Placeholders EGE fills in */

/* ---- Tablet, 640px and up ------------------------------------------------------------------ */
@media (min-width: 640px) {
  .ege-blog { padding: 0 24px; }
  .ege-blog__head { padding-top: 24px; }
  .ege-blog__back { display: none; }
  .ege-blog__crumbs-full { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; color: var(--ege-meta); padding: 8px 0; }
  .ege-blog__crumbs-full a { color: var(--ege-meta); text-decoration: none; }
  .ege-blog__crumbs-full > span:last-child { color: var(--ege-text); }
  .ege-blog__byline { grid-template-columns: auto 1fr auto; padding: 16px 0; }
  .ege-blog__byline p { font-size: 15px; }
  .ege-blog__meta { grid-column: auto; }
  .ege-blog__avatar { width: 44px; height: 44px; font-size: 16px; }
  .ege-blog__quick { padding: 22px 26px 12px; }
  .ege-blog__table thead { position: static; width: auto; height: auto; overflow: visible; clip: auto; display: table-header-group; }
  .ege-blog__table table { background: #fff; border: 1px solid var(--ege-line); }
  .ege-blog__table tr { display: table-row; border: 0; padding: 0; margin: 0; background: none; }
  .ege-blog__table th, .ege-blog__table td { display: table-cell; padding: 14px 16px; border-top: 1px solid var(--ege-line); }
  .ege-blog__table thead th { background: var(--ege-navy); color: #fff; font: 500 14px/1.2 Roboto, Arial, sans-serif; text-transform: uppercase; letter-spacing: 0.8px; padding: 12px 16px; }
  .ege-blog__table tbody th { width: 34%; vertical-align: top; margin: 0; }
  .ege-blog__table tbody tr:nth-child(even) { background: #fafbfd; }
  .ege-blog__field { padding: 24px 28px; }
  .ege-blog__services { padding: 24px 28px; }
  .ege-blog__services-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
  .ege-blog__people { grid-template-columns: minmax(0, 560px); gap: 16px; }
  .ege-blog__cards { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .ege-blog__card { display: block; }
  .ege-blog__card span { padding: 12px 14px 16px; }
}

/* ---- Desktop, 980px and up ----------------------------------------------------------------- */
@media (min-width: 980px) {
  body.ege-blog-c { padding-bottom: 0; }
  .ege-blog-bar { display: none; }
  .ege-blog__head { padding-top: 40px; }
  .ege-blog__head h1, .ege-blog__byline { max-width: 860px; }
  .ege-blog h1 { margin: 14px 0 22px; }
  .ege-blog__copy--inline { display: none; }
  .ege-blog__grid { display: grid; grid-template-columns: minmax(0, 660px) 300px; gap: 80px; align-items: start; padding-top: 28px; }
  .ege-blog__head { max-width: 1040px; }
  .ege-blog__lead-img { order: -1; }
  .ege-blog__hero { margin-bottom: 28px; }
  .ege-blog__quick { margin-bottom: 32px; }
  .ege-blog__toc--inline { display: none; }
  .ege-blog__side { display: grid; gap: 16px; align-content: start; align-self: stretch; }   /* full article height, so the sticky list can travel */
  .ege-blog__sticky { position: sticky; top: 24px; display: grid; gap: 16px; }
  .ege-blog__side .ege-blog__toc { padding: 18px 20px; }
  .ege-blog__toc-label { margin: 0 0 10px; }
  .ege-blog__side .ege-blog__toc ol { max-height: calc(100vh - 150px); overflow-y: auto; }
  .ege-blog__side .ege-blog__toc a { min-height: 0; padding: 6px 0 6px 10px; font-size: 13.5px; line-height: 1.4; }
  .ege-blog__body h2 { margin-top: 56px; padding-top: 26px; scroll-margin-top: 24px; }
  .ege-blog__contact { background: var(--ege-navy); color: #fff; border-radius: 4px; padding: 20px; }
  .ege-blog__contact p { margin: 0 0 12px; font-size: 15px; }
  .ege-blog__contact-h { font: 600 20px/1.2 Oswald, sans-serif; margin-bottom: 6px !important; }
  .ege-blog__contact .ege-blog__phone { display: block; color: #fff; margin-top: 4px; font: 600 18px/1 Oswald, sans-serif; min-height: 0; }
}

.ege-blog__secbar, .ege-blog__midcta { display: none; }

/* ---- Concept C: centered column, symmetric breakouts, full-width bands, sticky section bar ----- */
@media (min-width: 980px) {
  html:has(body.ege-blog-c) { overflow-x: clip; }
  body.ege-blog-c .ege-blog { max-width: none; padding: 0; }
  body.ege-blog-c .ege-blog__head { max-width: 1088px; margin: 0 auto; padding-left: 24px; padding-right: 24px; }
  body.ege-blog-c .ege-blog__head h1 { max-width: 900px; }
  body.ege-blog-c .ege-blog__head .ege-blog__byline { max-width: none; }   /* rules and byline span the full content width, edge to edge with the image */
  body.ege-blog-c .ege-blog__grid { display: block; padding-top: 36px; }
  body.ege-blog-c .ege-blog__article {
    display: grid;
    grid-template-columns: [full-start] minmax(24px, 1fr) [wide-start] minmax(0, 190px) [text-start] minmax(0, 660px) [text-end] minmax(0, 190px) [wide-end] minmax(24px, 1fr) [full-end];
  }
  body.ege-blog-c .ege-blog__article > * { grid-column: text; }
  body.ege-blog-c .ege-blog__article > .ege-blog__lead { grid-column: wide; }
  body.ege-blog-c .ege-blog__lead-quick { width: 100%; max-width: 660px; margin: 0 auto; }
  body.ege-blog-c .ege-blog__body { grid-column: full; display: grid; grid-template-columns: subgrid; }
  body.ege-blog-c .ege-blog__body > * { grid-column: text; }
  body.ege-blog-c .ege-blog__body > .ege-blog__table,
  body.ege-blog-c .ege-blog__body > .ege-blog__photo,
  body.ege-blog-c .ege-blog__body > .ege-blog__faq,
  body.ege-blog-c .ege-blog__body > .ege-blog__pull,
  body.ege-blog-c .ege-blog__article > .ege-blog__people { grid-column: wide; }
  body.ege-blog-c .ege-blog__photo-slot { aspect-ratio: 21 / 9; }
  body.ege-blog-c .ege-blog__pull { border-left: 0; border-top: 3px solid var(--ege-red); border-bottom: 1px solid #dfe2ea; padding: 26px 0 28px; text-align: center; }
  body.ege-blog-c .ege-blog__pull p { font-size: 32px; max-width: 820px; margin: 0 auto !important; }
  body.ege-blog-c .ege-blog__faq { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
  body.ege-blog-c .ege-blog__faq > h2 { grid-column: 1 / -1; }
  body.ege-blog-c .ege-blog__body h2 { scroll-margin-top: 76px; }

  /* Sticky section bar */
  body.ege-blog-c .ege-blog__secbar { display: block; grid-column: wide; position: sticky; top: 0; z-index: 20; margin: 0 0 8px; background: #fff; border: 1px solid var(--ege-line); border-radius: 0 0 4px 4px; box-shadow: 0 6px 16px rgb(19 26 70 / 0.06); }
  body.ege-blog-c .ege-blog__secbar summary { display: flex; align-items: center; gap: 16px; min-height: 52px; padding: 0 20px; cursor: pointer; list-style: none; }
  body.ege-blog-c .ege-blog__secbar summary::-webkit-details-marker { display: none; }
  body.ege-blog-c .ege-blog__secbar summary::after { content: "Contents ▾"; margin-left: auto; font: 500 14px/1 Roboto, Arial, sans-serif; color: var(--ege-nav); }
  body.ege-blog-c .ege-blog__secbar[open] summary::after { content: "Close ▴"; }
  body.ege-blog-c .ege-blog__secbar-label { font: 600 13px/1 Oswald, sans-serif; text-transform: uppercase; letter-spacing: 1.2px; color: var(--ege-red-dark); }
  body.ege-blog-c .ege-blog__secbar-current { font: 500 16px/1.2 Oswald, sans-serif; color: var(--ege-navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  body.ege-blog-c .ege-blog__secbar ol { list-style: none; margin: 0; padding: 4px 20px 14px; columns: 2; column-gap: 32px; counter-reset: toc; border-top: 1px solid var(--ege-line); }
  body.ege-blog-c .ege-blog__secbar li { counter-increment: toc; break-inside: avoid; }
  body.ege-blog-c .ege-blog__secbar a { display: flex; gap: 8px; padding: 8px 0; font-size: 14px; line-height: 1.35; color: var(--ege-text); text-decoration: none; }
  body.ege-blog-c .ege-blog__secbar a:hover { color: var(--ege-red-dark); }

  /* Contact band halfway down: full width */
  body.ege-blog-c .ege-blog__midcta { display: flex; grid-column: full; align-items: center; justify-content: center; gap: 40px; flex-wrap: wrap; background: var(--ege-navy); color: #fff; padding: 36px 24px; margin: 24px 0 8px; }
  body.ege-blog-c .ege-blog__midcta p { margin: 0 !important; font-size: 17px; color: #d4d8ea; }
  body.ege-blog-c .ege-blog__midcta .ege-blog__midcta-h { font: 600 28px/1.2 Oswald, sans-serif; color: #fff; margin-bottom: 4px !important; }
  body.ege-blog-c .ege-blog__midcta-actions { display: flex; align-items: center; gap: 20px; }
  body.ege-blog-c .ege-blog__midcta .ege-blog__phone { color: #fff; font: 600 20px/1 Oswald, sans-serif; }

  /* Full-width bands for services and related posts */
  body.ege-blog-c .ege-blog__article > .ege-blog__services { grid-column: full; display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 40px; margin: 48px 0 0; border: 0; border-radius: 0; background: var(--ege-navy); color: #fff;
                                                      padding: 44px max(24px, calc((100% - 1040px) / 2)); }
  body.ege-blog-c .ege-blog__services h2 { grid-column: 1 / -1; color: #fff; }
  body.ege-blog-c .ege-blog__services ul { margin: 0; display: flex; flex-wrap: wrap; gap: 0 28px; }
  body.ege-blog-c .ege-blog__services li { border: 0; }
  body.ege-blog-c .ege-blog__services ul a { color: #fff; }
  body.ege-blog-c .ege-blog__services .ege-blog__phone { color: #fff; }
  body.ege-blog-c .ege-blog__article > .ege-blog__people { margin-top: 40px; }
  body.ege-blog-c .ege-blog__article > .ege-blog__related { grid-column: full; background: #fff; border-top: 1px solid var(--ege-line); padding: 44px max(24px, calc((100% - 1040px) / 2)) 52px; margin-top: 8px; }
}

/* ---- The7 integration (EGE Blog posts only) ------------------------------------------------------ */
/* The plugin switches The7's Fancy Title and sidebar off through their post options. These rules are
   the fallback, plus the single-post extras this template replaces. */
body.ege-blog-c #fancy-header { display: none; }
body.ege-blog-c #main { padding-top: 0; padding-bottom: 0; }
/* The7 sets .wf-wrap to a fixed 1300px width capped by max-width: 100%. Both must go together, or the column
   stays 1300px on phones and is clipped (found on the live test post 2026-10-14). */
body.ege-blog-c #main > .wf-wrap { width: 100% !important; max-width: none; padding-left: 0; padding-right: 0; }
body.ege-blog-c #main .wf-container-main { width: 100% !important; max-width: none; margin: 0; }
body.ege-blog-c #content { width: 100% !important; max-width: none; padding: 0; margin: 0; float: none; }
body.ege-blog-c .single-postlike > .post-thumbnail,
body.ege-blog-c .single-postlike > .post-meta,
body.ege-blog-c .single-share-box,
body.ege-blog-c .post-navigation,
body.ege-blog-c .author-info,
body.ege-blog-c .single-related-posts { display: none; }
body.ege-blog-c .single-postlike, body.ege-blog-c .entry-content { margin: 0; padding: 0; }

/* Real photos in the body. */
.ege-blog__photo img { width: 100%; height: auto; border-radius: 4px; }
.ege-blog__photo.wp-caption { width: auto !important; max-width: none; }
.ege-blog__photo .wp-caption-text { font-size: 14px; color: var(--ege-meta); margin-top: 8px; text-align: left; }

/* Tables DJ builds with plain cells: on a phone the first cell of each row reads as the row's label. */
.ege-blog__table tbody td:first-child { color: var(--ege-navy); font-weight: 700; margin-bottom: 4px; }
@media (min-width: 640px) {
  .ege-blog__table tbody td:first-child { width: 34%; vertical-align: top; margin: 0; }
}

/* HubSpot's chat bubble sits above the phone bar (same fix as ege-jobs-plugin). */
@media (max-width: 979px) {
  body.ege-blog-c #hubspot-messages-iframe-container { bottom: 72px !important; }
  /* Chat and cookie settings buttons above the bar, same size, 80% solid, blog posts on phones only (0.1.7).
     The chat returns to full size and fully solid while it is open. */
  html:not(.hs-messages-widget-open) body.ege-blog-c #hubspot-messages-iframe-container { transform: scale(0.83); transform-origin: bottom right; opacity: 0.8; }
  body.ege-blog-c #hu-revoke { top: auto !important; bottom: calc(82px + env(safe-area-inset-bottom)) !important; left: 8px !important; opacity: 0.8 !important; } /* important: its fade-in animation otherwise keeps it at 1 */
}

/* Theme resets: The7 (like most themes) styles buttons and blockquotes globally. */
.ege-blog button.ege-blog__copy, .ege-blog-bar button.ege-blog-bar__item { background: #fff !important; color: var(--ege-navy) !important; border: 1px solid var(--ege-line) !important; box-shadow: none !important; text-transform: none; letter-spacing: normal; }
.ege-blog .ege-blog__field blockquote { padding: 0; border: 0; background: none; quotes: none; color: #fff; }
.ege-blog .ege-blog__field blockquote::before, .ege-blog .ege-blog__field blockquote::after { content: none; display: none; }

/* The7 styles h1.entry-title at its H2 size and capitalizes headings sitewide. In the template, headings
   keep the mockup's size and show exactly as typed. */
body.ege-blog-c .ege-blog h1.entry-title { font: 600 clamp(29px, 4.2vw + 13px, 44px)/1.15 Oswald, sans-serif; letter-spacing: 0.2px; text-transform: none; }
body.ege-blog-c .ege-blog h2:not(.ege-blog__quick-label), body.ege-blog-c .ege-blog h3 { text-transform: none; }

/* Posts with no section headings have no contents list, so the phone bar drops its Contents button (0.1.6). */
.ege-blog-bar.ege-blog-bar--two { grid-template-columns: 1fr 1.6fr; }

/* Older posts embed videos at their source width (a 1920px HTML5 video in 2024). The video plugin's own
   styles normally size them; this keeps them inside the column if those styles are missing (0.1.6). */
.ege-blog__body video, .ege-blog__body iframe, .ege-blog__body embed { max-width: 100%; }
.ege-blog__body video { height: auto; }

/* Short banner for plain photos (0.1.6, Curtis 2026-10-21): cropped low, 2:1 on phones, 3:1 from tablet up. */
.ege-blog__hero--banner img { width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; object-position: 50% 50%; }
.ege-blog__hero--top img { object-position: 50% 20%; }
.ege-blog__hero--bottom img { object-position: 50% 80%; }
@media (min-width: 640px) {
  .ege-blog__hero--banner img { aspect-ratio: 3 / 1; }
}
