/* =====================================================================================
   BLOG  (/blog and /blog/<article>)  — editorial layout in the Dove Contracting design system
   Brand: navy #182e65 · gold #c39747 · text #1f2937 · typeface DM Sans (as declared in style.css)
   All classes start with bl-.
   ===================================================================================== */
:root{--bl-navy:#182e65;--bl-navy-d:#0f2350;--bl-gold:#c39747;--bl-gold-d:#7a5a1c;--bl-ink:#1f2937;--bl-muted:#4b5563;--bl-line:#e3e8ef;--bl-bg:#f5f7fb;--bl-r:12px}
.bl-page [hidden]{display:none!important}
.bl-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.bl-page a:focus-visible,.bl-page button:focus-visible,.bl-page summary:focus-visible,.bl-page .bl-table-wrap:focus-visible{outline:3px solid rgba(195,151,71,.9);outline-offset:3px;border-radius:4px}

/* ---------- hero (the site header floats over the top of the page, as on every other banner) ---------- */
.bl-hero{background:linear-gradient(110deg,var(--bl-navy-d) 0%,var(--bl-navy) 62%,#244283 100%);color:#fff;padding:164px 0 64px}
.bl-hero--article{padding-bottom:140px}
.bl-crumbs ol{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-wrap:wrap;gap:6px 0;font-size:14px;color:#dbe4f6}
.bl-crumbs li{display:inline-flex;align-items:center;max-width:100%}
.bl-crumbs li+li::before{content:"/";margin:0 10px;opacity:.7}
.bl-crumbs a{color:#fff;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.45)}
.bl-crumbs a:hover{text-decoration-color:#fff;color:#fff}
.bl-crumbs li[aria-current]{color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bl-hero h1{margin:0 0 14px;font-size:clamp(32px,4.4vw,48px);line-height:1.12;font-weight:700;color:#fff;letter-spacing:-.01em}
.bl-hero__intro{margin:0;max-width:700px;font-size:18px;line-height:1.6;color:#e6ecf7}
.bl-hero--article .bl-hero__title{max-width:940px;font-size:clamp(28px,3.9vw,44px);line-height:1.17}
.bl-hero__cat{margin:0 0 14px}
.bl-byline{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 28px;color:#e6ecf7;font-size:15px}
.bl-byline li{display:inline-flex;align-items:center;gap:8px}
.bl-byline i{color:var(--bl-gold)}

.bl-badge{display:inline-block;background:#fbf3e2;color:#6b4f12;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 12px;border-radius:99px;line-height:1.3}
.bl-badge--on-dark{background:var(--bl-gold);color:#1b2433}

/* ---------- main ---------- */
.bl-main{background:#fff;padding:40px 0 70px;color:var(--bl-ink)}
.bl-main a{color:var(--bl-navy)}
.bl-filters{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 30px}
html:not(.js) .bl-filters{display:none}
.bl-chip{appearance:none;-webkit-appearance:none;background:#fff;color:var(--bl-ink);border:1px solid #cdd5e1;border-radius:99px;padding:9px 18px;font:600 15px/1.2 inherit;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background .15s,border-color .15s,color .15s}
.bl-chip:hover{border-color:var(--bl-navy)}
.bl-chip.is-on{background:var(--bl-navy);border-color:var(--bl-navy);color:#fff}
.bl-chip__n{font-size:12px;font-weight:700;background:#eef2f9;color:var(--bl-navy);border-radius:99px;min-width:22px;padding:2px 7px;text-align:center}
.bl-chip.is-on .bl-chip__n{background:rgba(255,255,255,.2);color:#fff}

/* featured article */
.bl-feature{display:grid;grid-template-columns:1.15fr 1fr;background:#fff;border:1px solid var(--bl-line);border-radius:16px;overflow:hidden;box-shadow:0 6px 28px rgba(15,35,80,.08);margin:0 0 54px}
.bl-feature__img{position:relative;display:block;min-height:360px;background:#e9eef6}
.bl-feature__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bl-feature__body{padding:40px 44px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.bl-feature__flag{margin:0 0 14px;display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.bl-feature__tag{font-size:13px;font-weight:700;color:var(--bl-muted);letter-spacing:.04em;text-transform:uppercase}
.bl-feature__title{margin:0 0 14px;font-size:clamp(24px,2.6vw,32px);line-height:1.22;font-weight:700}
.bl-feature__title a{color:var(--bl-navy-d);text-decoration:none}
.bl-feature__title a:hover{text-decoration:underline;text-underline-offset:4px}
.bl-feature__excerpt{margin:0 0 18px;font-size:17px;line-height:1.65;color:var(--bl-muted)}
.bl-meta{margin:0 0 18px;font-size:14px;color:var(--bl-muted)}
.bl-card .bl-meta{margin:auto 0 0}
.bl-btn{display:inline-flex;align-items:center;gap:10px;background:var(--bl-navy);color:#fff!important;padding:13px 24px;border-radius:8px;font-size:15.5px;font-weight:700;text-decoration:none!important;border:2px solid var(--bl-navy);transition:background .15s,transform .15s;line-height:1.2}
.bl-btn:hover{background:var(--bl-navy-d);border-color:var(--bl-navy-d);color:#fff}
.bl-btn--gold{background:var(--bl-gold);border-color:var(--bl-gold);color:#1b2433!important}
.bl-btn--gold:hover{background:#d4aa5c;border-color:#d4aa5c;color:#1b2433!important}
.bl-btn--ghost{background:transparent;border-color:rgba(255,255,255,.75);color:#fff!important}
.bl-btn--ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}

.bl-section-title{margin:0 0 24px;font-size:26px;font-weight:700;color:var(--bl-navy-d)}
.bl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.bl-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--bl-line);border-radius:var(--bl-r);overflow:hidden;transition:box-shadow .2s,transform .2s}
.bl-card:hover{box-shadow:0 12px 32px rgba(15,35,80,.12);transform:translateY(-2px)}
.bl-card__img{display:block;aspect-ratio:16/9;background:#e9eef6;overflow:hidden}
.bl-card__img img{width:100%;height:100%;object-fit:cover;display:block}
.bl-card__body{display:flex;flex-direction:column;gap:11px;padding:20px 22px 24px;flex:1;align-items:flex-start}
.bl-card__title{margin:0;font-size:19px;line-height:1.32;font-weight:700}
.bl-card__title a{color:var(--bl-navy-d);text-decoration:none}
.bl-card__title a:hover{text-decoration:underline;text-underline-offset:3px}
.bl-card__excerpt{margin:0;font-size:15px;line-height:1.6;color:var(--bl-muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.bl-soon{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;min-height:280px;padding:32px 24px;border:2px dashed #c3ccda;border-radius:var(--bl-r);color:var(--bl-muted);background:#fafbfd}
.bl-soon i{font-size:30px;color:#8a97ad;margin-bottom:6px}
.bl-soon p{margin:0;font-size:15px}.bl-soon__title{font-size:17px!important;font-weight:700;color:var(--bl-ink)}
.bl-empty{text-align:center;padding:56px 20px;color:var(--bl-muted);border:1px dashed #c3ccda;border-radius:var(--bl-r);background:#fafbfd}
.bl-empty i{font-size:34px;color:#8a97ad;margin-bottom:10px}.bl-empty p{margin:0 0 6px}.bl-empty__title{font-size:20px;font-weight:700;color:var(--bl-ink)}
.bl-band{margin-top:60px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;background:linear-gradient(110deg,var(--bl-navy-d),var(--bl-navy));color:#fff;border-radius:16px;padding:32px 38px}
.bl-band h2{margin:0 0 6px;font-size:24px;font-weight:700;color:#fff}.bl-band p{margin:0;color:#dbe4f6;font-size:16px}
.bl-band__btns{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- article ---------- */
.bl-main--article{padding-top:0}
.bl-cover{position:relative;z-index:2;margin:-96px auto 46px;max-width:1100px;border-radius:16px;overflow:hidden;box-shadow:0 22px 56px rgba(15,35,80,.28);background:#e9eef6;aspect-ratio:2.25/1}
.bl-cover img{width:100%;height:100%;object-fit:cover;display:block}
.bl-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:60px;max-width:1100px;margin:0 auto;align-items:start}
.bl-aside{align-self:stretch}
.bl-toc{position:sticky;top:104px;max-height:calc(100vh - 128px);overflow-y:auto;padding:2px 8px 12px 0;scrollbar-width:thin}
.bl-toc__summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px;cursor:default}
.bl-toc__summary::-webkit-details-marker{display:none}
.bl-toc__summary i{display:none;transition:transform .15s}
.bl-toc__title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--bl-muted)}
.bl-toc ol,.bl-toc ul{list-style:none;margin:0;padding:0}
.bl-toc__list>li>a{display:block;padding:7px 0 7px 14px;border-left:2px solid var(--bl-line);font-size:14.5px;line-height:1.4;color:var(--bl-muted);text-decoration:none;transition:color .15s,border-color .15s}
.bl-toc__list a:hover{color:var(--bl-navy)}
.bl-toc__list a.is-active{color:var(--bl-navy);font-weight:700;border-left-color:var(--bl-gold)}
.bl-toc__sub a{display:block;padding:5px 0 5px 28px;border-left:2px solid var(--bl-line);font-size:13.5px;line-height:1.4;color:var(--bl-muted);text-decoration:none}
.js .bl-toc__sub{display:none}.js .bl-toc__item.is-open>.bl-toc__sub{display:block}

.bl-prose{max-width:740px;font-size:18.5px;line-height:1.78;color:var(--bl-ink)}
.bl-prose p{margin:0 0 1.3em}
.bl-prose .bl-lead{font-size:21.5px;line-height:1.65;color:#111827}
.bl-prose h2{margin:2.1em 0 .65em;font-size:clamp(25px,3vw,33px);line-height:1.25;font-weight:700;color:var(--bl-navy-d);scroll-margin-top:112px;letter-spacing:-.01em}
.bl-prose h3{margin:1.8em 0 .55em;font-size:clamp(20px,2.2vw,23px);line-height:1.32;font-weight:700;color:#111827;scroll-margin-top:112px}
.bl-prose h2:focus,.bl-prose h3:focus{outline:none}
.bl-prose a{color:var(--bl-navy);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:rgba(24,46,101,.45)}
.bl-prose a:hover{color:var(--bl-gold-d);text-decoration-color:currentColor}
.bl-prose ul{list-style:disc;margin:0 0 1.4em;padding-left:1.35em}
.bl-prose ol{list-style:decimal;margin:0 0 1.4em;padding-left:1.5em}
.bl-prose li{margin:0 0 .6em;padding-left:.2em}
.bl-prose li::marker{color:var(--bl-gold-d);font-weight:700}
.bl-prose strong{color:#111827}
.bl-prose ol.bl-steps{list-style:none;padding:0;counter-reset:bl-step}
.bl-prose ol.bl-steps>li{counter-increment:bl-step;position:relative;padding:2px 0 0 54px;margin-bottom:1.1em;min-height:38px}
.bl-prose ol.bl-steps>li::before{content:counter(bl-step);position:absolute;left:0;top:0;width:36px;height:36px;border-radius:50%;background:var(--bl-navy);color:#fff;font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:center}
.bl-prose ul.bl-checklist{list-style:none;padding:0}
.bl-prose ul.bl-checklist>li{position:relative;padding-left:38px}
.bl-prose ul.bl-checklist>li::before{content:"\f00c";font-family:FontAwesome;position:absolute;left:0;top:2px;width:26px;height:26px;border-radius:50%;background:#fbf3e2;color:var(--bl-gold-d);font-size:13px;display:flex;align-items:center;justify-content:center}
.bl-takeaways{margin:1.8em 0 2em;padding:24px 28px;background:#f3f6fc;border-left:5px solid var(--bl-gold);border-radius:0 12px 12px 0}
.bl-takeaways__title{margin:0 0 10px!important;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--bl-navy)}
.bl-takeaways ul{margin:0!important;font-size:17px;line-height:1.65}.bl-takeaways li:last-child{margin-bottom:0}
.bl-callout{margin:1.9em 0;padding:22px 26px;background:#fff8e8;border:1px solid #f0dfb4;border-left:5px solid var(--bl-gold);border-radius:0 12px 12px 0}
.bl-callout__title{margin:0 0 6px!important;font-weight:700;color:#4a3711;font-size:16px;text-transform:uppercase;letter-spacing:.05em}
.bl-callout p:last-child{margin-bottom:0}
.bl-prose blockquote.bl-pull{margin:2.1em 0;padding:6px 0 6px 28px;border:0;border-left:5px solid var(--bl-gold);background:none}
.bl-prose blockquote.bl-pull p{margin:0;font-size:clamp(22px,2.7vw,28px);line-height:1.4;font-weight:700;color:var(--bl-navy);letter-spacing:-.01em}
.bl-figure{margin:2.2em 0}
.bl-figure img{display:block;width:100%;height:auto;border-radius:12px;background:#e9eef6}
.bl-figure figcaption{margin-top:12px;font-size:15px;line-height:1.5;color:var(--bl-muted)}
.bl-related-line{margin:-.2em 0 1.6em!important;padding:13px 18px;font-size:16px!important;line-height:1.5!important;background:var(--bl-bg);border:1px solid var(--bl-line);border-radius:10px}
.bl-table-wrap{margin:1.9em 0;overflow-x:auto;border:1px solid var(--bl-line);border-radius:12px;-webkit-overflow-scrolling:touch}
.bl-table{width:100%;min-width:560px;border-collapse:collapse;font-size:15.5px;line-height:1.55;margin:0;background:#fff}
.bl-table caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.bl-table thead th{background:var(--bl-navy);color:#fff;text-align:left;font-weight:700;padding:14px 18px;font-size:14.5px}
.bl-table tbody th,.bl-table tbody td{padding:14px 18px;text-align:left;vertical-align:top;border-top:1px solid var(--bl-line)}
.bl-table tbody th{font-weight:700;color:var(--bl-navy-d);background:#f8fafd;width:26%}
.bl-table tbody tr:nth-child(even) td{background:#fcfdff}

.bl-services{margin:3.2em 0 2em;padding:28px 30px;background:#f8fafd;border:1px solid var(--bl-line);border-radius:14px}
.bl-services__title{margin:0 0 16px;font-size:22px;font-weight:700;color:var(--bl-navy-d)}
.bl-services ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.bl-services li a{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid var(--bl-line);border-radius:10px;padding:13px 16px;font-weight:700;font-size:15.5px;color:var(--bl-navy);text-decoration:none}
.bl-services li a:hover{border-color:var(--bl-gold);box-shadow:0 4px 14px rgba(15,35,80,.08)}
.bl-author{display:flex;gap:18px;padding:26px 0 0;margin-top:2em;border-top:1px solid var(--bl-line);max-width:740px}
.bl-author__ico{flex:0 0 54px;width:54px;height:54px;border-radius:50%;background:var(--bl-navy);color:var(--bl-gold);display:flex;align-items:center;justify-content:center;font-size:24px}
.bl-author p{margin:0 0 6px;font-size:16px;line-height:1.6;color:var(--bl-muted)}.bl-author .bl-author__name{font-weight:700;color:var(--bl-ink);font-size:17px}

.bl-article>.bl-services,.bl-article>.bl-author{max-width:740px}

.bl-cta{margin:68px auto 0;max-width:1100px;display:grid;grid-template-columns:1.5fr 1fr;gap:36px;background:linear-gradient(110deg,var(--bl-navy-d),var(--bl-navy) 70%,#244283);color:#fff;border-radius:18px;padding:48px 52px}
.bl-cta__eyebrow{margin:0 0 10px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#f0d9a3}
.bl-cta h2{margin:0 0 14px;font-size:clamp(25px,3vw,33px);line-height:1.22;font-weight:700;color:#fff}
.bl-cta p{color:#dbe4f6;font-size:17px;line-height:1.65;margin:0 0 22px}
.bl-cta__btns{display:flex;flex-wrap:wrap;gap:12px}
.bl-cta__list{align-self:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:24px 26px}
.bl-cta__listtitle{margin:0 0 12px!important;font-size:15px!important;font-weight:700;color:#fff!important}
.bl-cta__list ul{list-style:none;margin:0;padding:0}.bl-cta__list li{position:relative;padding:0 0 10px 26px;color:#e6ecf7;font-size:15.5px;line-height:1.5}
.bl-cta__list li::before{content:"\f00c";font-family:FontAwesome;position:absolute;left:0;top:1px;color:var(--bl-gold);font-size:13px}
.bl-related{margin:68px auto 0;max-width:1100px}
.bl-related-empty{border:2px dashed #c3ccda;border-radius:var(--bl-r);background:#fafbfd;padding:34px 30px;color:var(--bl-muted)}.bl-related-empty p{margin:0 0 6px;font-size:16px}.bl-related-empty .bl-soon__title{color:var(--bl-ink)}

/* ---------- tablet / phone ---------- */
@media (max-width:991px){
  .bl-hero{padding-bottom:54px}.bl-hero--article{padding-bottom:110px}
  .bl-feature{grid-template-columns:1fr}.bl-feature__img{min-height:0;aspect-ratio:16/9}.bl-feature__body{padding:30px 28px 34px}
  .bl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bl-layout{grid-template-columns:minmax(0,1fr);gap:0}
  .bl-cta{grid-template-columns:1fr;padding:38px 30px}
  .bl-cover{margin-top:-80px;aspect-ratio:16/8}
}
@media (max-width:767px){
  .bl-hero{padding:118px 0 40px}.bl-hero--article{padding-bottom:84px}
  .bl-crumbs li[aria-current]{flex:0 0 100%}.bl-crumbs li[aria-current]::before{content:none}
  .bl-hero__intro{font-size:16.5px}.bl-byline{gap:6px 20px;font-size:14.5px}
  .bl-main{padding:28px 0 52px}
  .bl-main .container,.bl-hero .container{padding-right:56px}        /* keeps content clear of the site's floating Call / Enquire buttons */
  .bl-cover{margin:-58px auto 30px;aspect-ratio:16/10;border-radius:12px}
  .bl-grid{grid-template-columns:minmax(0,1fr)}
  .bl-prose{font-size:17.5px;line-height:1.75}.bl-prose .bl-lead{font-size:19.5px}
  .bl-takeaways,.bl-callout{padding:20px 20px}.bl-services{padding:22px 18px}.bl-services ul{grid-template-columns:1fr}
  .bl-cta{padding:30px 22px;margin-top:48px}.bl-band{padding:26px 22px}.bl-feature__body{padding:24px 20px 28px}
  .bl-prose ol.bl-steps>li{padding-left:48px}.bl-table{font-size:14.5px}
  .bl-btn{width:100%;justify-content:center}
}
@media (max-width:991px){
  .bl-toc{position:static;max-height:none;overflow:visible;margin:0 0 30px;padding:0;border:1px solid var(--bl-line);border-radius:12px;background:#f8fafd}
  .bl-toc__summary{margin:0;padding:15px 18px;cursor:pointer;min-height:48px}
  .bl-toc__summary i{display:inline-block;color:var(--bl-navy);font-size:20px}
  .bl-toc[open] .bl-toc__summary i{transform:rotate(180deg)}
  .bl-toc__title{font-size:16px;letter-spacing:0;text-transform:none;color:var(--bl-navy-d)}
  .bl-toc nav{padding:0 18px 14px}
  .bl-toc__list>li>a{padding:9px 0 9px 14px;font-size:15.5px}
  .js .bl-toc:not([data-ready])>nav{display:none}      /* until the script has set the open/closed state, so the page does not jump */
}
@media (prefers-reduced-motion:reduce){.bl-card,.bl-chip,.bl-btn{transition:none!important}.bl-card:hover{transform:none}}
/* ---------- responsive pictures and the (optional) photo gallery ---------- */
.bl-page picture{display:contents}
.bl-prose .bl-gallery{margin:2.2em 0}
.bl-prose .bl-gallery ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.bl-prose .bl-gallery li{margin:0;padding:0}
.bl-prose .bl-gallery li::marker{content:""}
.bl-gallery img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:10px;background:#e9eef6}
.bl-gallery figcaption{margin-top:12px;font-size:15px;line-height:1.5;color:var(--bl-muted)}
@media (max-width:575px){.bl-prose .bl-gallery ul{grid-template-columns:repeat(2,minmax(0,1fr))}.bl-prose .bl-gallery li:last-child:nth-child(odd){grid-column:1/-1}.bl-prose .bl-gallery li:last-child:nth-child(odd) img{aspect-ratio:16/9}}
