/* Shared editorial brand alignment for articles, topic hubs, and the price catalogue. */
.blog-theme {
  --ed-ink: #0c5845;
  --ed-muted: #405d4c;
  --ed-paper: #fcfcfd;
  --ed-line: #dce7e1;
  --ed-orange: #e15935;
  background: #fcfcfd;
  color: #242424;
  font-family: 'Montserrat', Arial, sans-serif;
  color-scheme: light;
}
.blog-theme :is(h1,h2,h3,h4,p,span,a,button,input,summary,time,li,td,th,caption),
.blog-theme .article-content, .blog-theme .sc-copy, .blog-theme .sc-shell {
  font-family: 'Montserrat', Arial, sans-serif;
}
.blog-theme .ed-wrap, .blog-theme .single-article-page, .blog-theme.sc-public-page .sc-shell {
  max-width: 1536px;
}
.blog-theme .ed-kicker, .blog-theme .sc-eyebrow {
  color: #e15935;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
}
.blog-theme .ed-hero {
  background: linear-gradient(135deg, #fcfcfd, #e7eeec);
  border-bottom: 0;
  padding: 40px 0 44px;
}
.blog-theme .ed-hero-top { margin-bottom: 26px; }
.blog-theme .ed-hero-grid { grid-template-columns: 1.15fr 1fr; gap: 56px; align-items: center; }
.blog-theme .ed-hero h1 {
  font-family: 'Montserrat', Arial, sans-serif;
  font-weight: 800;
  font-size: clamp(36px, 4vw, 54px);
  letter-spacing: -.035em;
  line-height: 1.16;
  color: #0c5845;
}
.blog-theme .ed-hero h1 em { font-style: normal; font-weight: 800; color: #e15935; }
.blog-theme .ed-hero-aside { padding: 0; border: 0; margin-top: 24px; }
.blog-theme .ed-hero-aside p { font-size: 16px; line-height: 1.8; color: #405d4c; }
.blog-theme .ed-hero-aside .ed-text-link {
  background: #e15935; border: 0; border-radius: 999px; padding: 14px 24px;
  color: #fff; font-weight: 700; box-shadow: 0 6px 16px rgb(225 89 53 / 14%);
}
.blog-theme .ed-hero-aside .ed-text-link:hover { background: #cb502a; }
.blog-hero-visual { display: flex; align-items: center; justify-content: center; }
.blog-hero-visual img { display: block; width: 100%; max-width: 460px; height: auto; max-height: 380px; object-fit: contain; }
.blog-theme .ed-search { padding-top: 28px; }
.blog-theme .ed-search-row { background: #e7eeec; padding: 22px 24px; border-radius: 20px; }
.blog-theme .ed-search label { color: #0c5845; font-size: 13px; }
.blog-theme .ed-search-field { border-radius: 12px; border-color: #c9d9d1; }
.blog-theme .ed-search button, .blog-theme .ed-button, .blog-theme .sc-button {
  border-radius: 999px; background: #0c5845; border-color: #0c5845; font-weight: 700;
}
.blog-theme .ed-search button:hover, .blog-theme .ed-button:hover { background: #083e30; }
.blog-theme .ed-topics { padding-top: 4px; }
.blog-theme .ed-topics a { background: #fff; border-color: #d4e1d9; font-weight: 600; }
.blog-theme .ed-topics a:hover, .blog-theme .ed-topics a[aria-current] { background: #0c5845; color: #fff; }
.blog-theme .ed-section-heading h2, .blog-theme .ed-callout h2,
.blog-theme.sc-public-page .sc-shell h2, .blog-theme .article-contact h2 {
  font-family: 'Montserrat', Arial, sans-serif; font-weight: 700; letter-spacing: -.025em;
  font-size: 30px; line-height: 1.35;
}
.blog-theme .ed-section-heading h2 { color: #242424; }
.blog-theme .ed-card {
  background: #fff; border: 1px solid #e1e9e4; border-radius: 20px;
  overflow: hidden; box-shadow: 0 6px 22px rgb(12 88 69 / 6%);
}
.blog-theme .ed-card-art { border: 0; border-radius: 0; background: #e7eeec; }
.blog-theme .ed-card-art img { object-fit: contain; }
.blog-theme .ed-card-copy { padding: 22px; }
.blog-theme .ed-card h3 {
  font-family: 'Montserrat', Arial, sans-serif; font-weight: 700; font-size: 21px;
  line-height: 1.45; letter-spacing: -.02em; color: #0c5845;
}
.blog-theme .ed-card-lead h3 { font-size: 26px; }
.blog-theme .ed-card-small { padding: 18px; gap: 18px; grid-template-columns: 38% minmax(0,1fr); align-items: stretch; }
.blog-theme .ed-card-small .ed-card-copy { padding: 0; align-self: stretch; min-height: 0; }
.blog-theme .ed-card-small .ed-card-art { border-radius: 12px; align-self: start; aspect-ratio: 16/9; }
.blog-theme .ed-card-small h3 { font-size: 18px; }
.blog-theme .ed-card-small .ed-card-meta { align-items: center; margin-bottom: 10px; }
.blog-theme .ed-card-small .ed-card-excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 12px; line-height: 1.65; margin: 0 0 14px; }
.blog-theme .ed-card-small .ed-card-end { border-top: 1px solid #e1e9e4; padding-top: 12px; margin-top: auto; }
.blog-theme .ed-feature-stack-3 { gap: 18px; grid-template-rows: repeat(3,minmax(min-content,1fr)); }
.blog-theme .ed-feature-stack-3 .ed-card-small { padding: 14px; gap: 14px; grid-template-columns: 36% minmax(0,1fr); }
.blog-theme .ed-feature-stack-3 .ed-card-small h3 { font-size: 15px; line-height: 1.35; margin-bottom: 7px; }
.blog-theme .ed-feature-stack-3 .ed-card-small .ed-card-meta { font-size: 8px; margin-bottom: 8px; }
.blog-theme .ed-feature-stack-3 .ed-card-small .ed-card-excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 11px; line-height: 1.55; margin: 0 0 8px; }
.blog-theme .ed-feature-stack-3 .ed-card-small .ed-card-end { padding-top: 8px; }
.blog-theme .ed-card-excerpt { font-size: 14px; color: #405d4c; }
.blog-theme .ed-card-end a { color: #0c5845; }
.blog-theme .ed-card-meta > span:first-child { color: #e15935; }
.blog-theme .ed-art-placeholder { background: #e7eeec; }
.blog-theme .ed-art-placeholder strong { font-family: 'Montserrat',Arial,sans-serif; font-weight: 700; }
.blog-theme .ed-feed { border-top: 0; }
.blog-theme .ed-pagination a { border-radius: 12px; background: #fff; }
.blog-theme .ed-pagination a[aria-current] { background: #0c5845; color: #fff; }
.blog-theme .ed-callout { background: #0c5845; border-radius: 24px; padding: 40px; }
.blog-theme .ed-callout h2, .blog-theme .article-contact h2 { color: #fff; }
.blog-theme .ed-callout .ed-kicker, .blog-theme .article-contact .ed-kicker { color: #dfca96; }
.blog-theme .ed-callout p, .blog-theme .article-contact p:not(.ed-kicker) { color: #e7eeec; }
.blog-theme .ed-callout .ed-button, .blog-theme .article-contact .ed-button {
  background: #e15935; border-color: #e15935; color: #fff;
}
.blog-theme .ed-callout .ed-button:hover, .blog-theme .article-contact .ed-button:hover { background: #cb502a; }
/* Single article: same brand, retaining uncropped artwork and readable measures. */
.blog-theme .article-card { background: #fff; border: 1px solid #e1e9e4; border-radius: 24px; padding: 30px; }
.blog-theme .article-heading h1 {
  font-family: 'Montserrat',Arial,sans-serif; font-weight: 750; font-size: clamp(29px,3vw,40px);
  color: #0c5845; line-height: 1.3; letter-spacing: -.03em;
}
.blog-theme .article-heading .ed-kicker { color: #e15935; }
.blog-theme .article-cover { border-radius: 14px; background: #e7eeec; }
.blog-theme .article-cover img { width: 100%; height: auto; object-fit: contain; }
.blog-theme .article-content { font-size: 16px; line-height: 1.9; color: #405d4c; }
.blog-theme .article-content h2 { font: 700 27px/1.4 'Montserrat',Arial,sans-serif; color: #0c5845; }
.blog-theme .article-content h3 { font: 700 20px/1.5 'Montserrat',Arial,sans-serif; }
.blog-theme .article-takeaway { background: #e7eeec; border-left-color: #0c5845; border-radius: 0 14px 14px 0; }
.blog-theme .article-sidebar .article-toc { padding: 20px; background: #fff; border: 1px solid #e1e9e4; border-radius: 16px; }
.blog-theme .article-rail-note { background: #0c5845; border-radius: 18px; }
.blog-theme .article-rail-note h2 { font: 700 24px/1.4 'Montserrat',Arial,sans-serif; }
.blog-theme .article-rail-note .ed-kicker { color: #dfca96; }
.blog-theme .article-contact { background: #0c5845; border-radius: 20px; }
.blog-theme .article-body > .sc-context { background: #e7eeec; border-radius: 16px; }
.blog-theme .article-body > .sc-context h2 { font: 700 21px/1.4 'Montserrat',Arial,sans-serif; }
/* Topic hubs and future campaign articles inherit the same visual language. */
.blog-theme.sc-public-page .sc-hero {
  background: linear-gradient(135deg,#fcfcfd,#e7eeec); border-radius: 24px; padding: 36px;
  max-width: none; margin: 20px 0 28px;
}
.blog-theme.sc-public-page .sc-hero h1 { font: 800 clamp(32px,3.7vw,48px)/1.2 'Montserrat',Arial,sans-serif; color: #0c5845; }
.blog-theme.sc-public-page .sc-link-card { background: #fff; border-radius: 20px; box-shadow: 0 6px 20px rgb(12 88 69 / 5%); }
.blog-theme.sc-public-page .sc-link-card h3 { font: 700 22px/1.4 'Montserrat',Arial,sans-serif; color: #0c5845; }
.blog-theme.sc-public-page .sc-copy h2 { font: 700 27px/1.4 'Montserrat',Arial,sans-serif; }
.blog-theme.sc-public-page .sc-answer { background: #e7eeec; border-color: #0c5845; }
.blog-theme .hub-editorial-feature > div > h2 { font-family: 'Montserrat',Arial,sans-serif; font-weight: 700; font-size: 30px!important; }
.blog-theme.sc-public-page .ed-card h3 { font: 700 24px/1.4 'Montserrat',Arial,sans-serif; }
.blog-theme .sc-secondary { background: #fff; }
/* Price catalogue: retain the official content while matching the main brand system. */
.price-catalog-page .ed-hero-grid { grid-template-columns: 1.2fr .8fr; }
.price-catalog-page .ed-hero-aside {
  margin: 0; padding: 26px 28px; background: rgb(255 255 255 / 82%);
  border: 1px solid #dce7e1; border-radius: 20px;
}
.price-catalog-page .ed-issue { color: #0c5845; font-weight: 700; }
.price-catalog-page .ed-topics { padding-top: 28px!important; padding-bottom: 14px; gap: 10px; }
.price-catalog-page .ed-topics a { border-radius: 999px; padding: 10px 16px; }
.price-catalog-page .price-intro-wrap { padding-top: 26px; }
.price-catalog-page .price-intro {
  max-width: 820px; margin: 0; padding: 18px 20px; background: #e7eeec;
  border-left: 4px solid #0c5845; border-radius: 0 14px 14px 0;
}
.price-catalog-page .official-prices { padding-top: 50px; padding-bottom: 24px; }
.price-catalog-page .ed-section-heading { padding-bottom: 20px; border-bottom: 1px solid #dce7e1; }
.price-catalog-page .ed-section-heading > span { color: #405d4c; font-size: 12px; font-weight: 600; }
.price-catalog-page .price-grid { gap: 24px; }
.price-catalog-page .price-card {
  padding: 28px; border-color: #e1e9e4; border-radius: 20px;
  box-shadow: 0 7px 24px rgb(12 88 69 / 6%);
}
.price-catalog-page .price-label {
  align-self: flex-start; padding: 7px 10px; margin-bottom: 18px!important;
  background: #fcece7; border-radius: 999px;
}
.price-catalog-page .price-card h3 {
  font-family: 'Montserrat',Arial,sans-serif; font-size: 21px; line-height: 1.42;
  font-weight: 700; letter-spacing: -.02em; color: #0c5845;
}
.price-catalog-page .price-card > p:not(.price-label) { font-size: 13px; color: #405d4c; }
.price-catalog-page .price-card .price-condition { border-color: #e1e9e4; }
.price-catalog-page .price-amount { padding: 22px 0; }
.price-catalog-page .price-amount strong { color: #0c5845; font-size: 24px; }
.price-catalog-page .price-actions { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: 10px; }
.price-catalog-page .price-detail, .price-catalog-page .price-cta {
  min-width: 0; align-items: center; justify-content: space-between; padding: 13px 15px;
  border: 1px solid #0c5845; border-radius: 999px; font-size: 11px; font-weight: 700;
  line-height: 1.3; text-decoration: none;
}
.price-catalog-page .price-detail { display: flex; background: #fff; color: #0c5845; }
.price-catalog-page .price-detail:hover { background: #e7eeec; }
.price-catalog-page .price-cta { background: #e15935; border-color: #e15935; color: #fff; }
.price-catalog-page .price-cta:hover { background: #cb502a; }
.price-catalog-page .ed-callout { margin-top: 48px; }
@media(max-width:1000px) {
  .blog-theme .ed-hero-grid { gap: 28px; }
  .blog-theme .ed-card-small { grid-template-columns: minmax(0,1fr); }
  .blog-theme .ed-card-small .ed-card-art { display: none; }
  .blog-theme .ed-feature-stack-3 .ed-card-small { grid-template-columns: minmax(0,1fr); }
  .blog-theme .ed-feature-stack-3 .ed-card-small .ed-card-art { display: none; }
  .price-catalog-page .ed-hero-grid { grid-template-columns: 1fr 1fr; }
}
@media(max-width:640px) {
  .blog-theme .ed-hero { padding: 28px 0 32px; }
  .blog-theme .ed-hero-grid { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .blog-theme .ed-hero h1 { font-size: 36px; }
  .blog-theme .ed-hero-aside p { font-size: 14px; }
  .blog-hero-visual { display: none; }
  .blog-theme .ed-search-row { padding: 18px 16px; border-radius: 16px; }
  .blog-theme .ed-search label { font-size: 12px; }
  .blog-theme .ed-search button { padding: 12px 16px; }
  .blog-theme .ed-card-copy { padding: 20px; }
  .blog-theme .ed-card-small { grid-template-columns: 90px minmax(0,1fr); padding: 16px; gap: 14px; }
  .blog-theme .ed-card-small .ed-card-art { display: block; }
  .blog-theme .ed-feature-stack-3 .ed-card-small { grid-template-columns: 90px minmax(0,1fr); padding: 16px; gap: 14px; }
  .blog-theme .ed-feature-stack-3 .ed-card-small .ed-card-art { display: block; }
  .blog-theme .ed-feature-stack-3 .ed-card-small .ed-card-excerpt { display: none; }
  .blog-theme .ed-card-small h3 { font-size: 16px; }
  .blog-theme .ed-card-small .ed-card-excerpt { display: none; }
  .blog-theme .ed-card-lead h3 { font-size: 23px; }
  .blog-theme .ed-section-heading h2 { font-size: 25px; }
  .blog-theme .ed-section-heading > span { max-width: 110px; text-align: right; }
  .blog-theme .ed-callout { padding: 28px 24px; }
  .blog-theme .ed-callout h2, .blog-theme .article-contact h2 { font-size: 25px; }
  .blog-theme .article-card { padding: 20px 16px; border-radius: 18px; }
  .blog-theme .article-heading h1 { font-size: 28px; }
  .blog-theme .article-content { font-size: 15px; }
  .blog-theme .article-content h2 { font-size: 23px; }
  .blog-theme .article-content h3 { font-size: 19px; }
  .blog-theme.sc-public-page .sc-hero { padding: 26px 22px; border-radius: 20px; }
  .blog-theme.sc-public-page .sc-hero h1 { font-size: 32px; }
  .blog-theme.sc-public-page .sc-link-card h3 { font-size: 20px; }
  .price-catalog-page .ed-hero-grid { grid-template-columns: minmax(0,1fr); }
  .price-catalog-page .ed-hero-aside { padding: 20px; }
  .price-catalog-page .price-intro-wrap { padding-top: 18px; }
  .price-catalog-page .price-intro { padding: 16px; font-size: 13px; }
  .price-catalog-page .official-prices { padding-top: 38px; }
  .price-catalog-page .price-card { padding: 22px; }
  .price-catalog-page .price-actions { grid-template-columns: minmax(0,1fr); }
}
