:root {
  --blog-ink: #191919;
  --blog-muted: #606060;
  --blog-line: #e1e1e1;
  --blog-paper: #ffffff;
  --blog-wash: #f6f6f6;
  --blog-orange: #ff5c00;
  --blog-orange-dark: #cc4a00;
  --blog-peach: #ffdecc;
  --blog-green: #dff3df;
}

body.blog-page {
  min-width: 320px;
  background: var(--blog-paper);
  color: var(--blog-ink);
  font-family: Helvetica, Arial, sans-serif;
}

.blog-shell {
  width: min(100% - 32px, 1472px);
  margin-inline: auto;
  border-inline: 1px solid var(--blog-line);
}

.blog-header {
  position: fixed;
  z-index: 60;
  inset: 0 0 auto;
  border-bottom: 1px solid var(--blog-line);
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(8px);
}

.blog-header__inner {
  min-height: 56px;
  padding: 8px clamp(16px, 4vw, 64px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.blog-brand {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}

.blog-brand img {
  display: block;
  width: auto;
  height: 34px;
}

.blog-nav {
  position: absolute;
  left: 50%;
  display: flex;
  align-items: center;
  transform: translateX(-50%);
}

.blog-nav a {
  position: relative;
  padding: 10px 16px;
  border-radius: 12px;
  color: #4a4a4a;
  font-size: 16px;
  line-height: 1.2;
  letter-spacing: -0.015em;
  transition: color 160ms ease, background-color 160ms ease;
}

.blog-nav a:hover,
.blog-nav a:focus-visible {
  color: var(--blog-ink);
  background: var(--blog-wash);
}

.blog-nav a[aria-current="page"] {
  color: var(--blog-ink);
  font-weight: 500;
}

.blog-nav a[aria-current="page"]::after {
  content: "";
  position: absolute;
  right: 16px;
  bottom: 3px;
  left: 16px;
  height: 1px;
  background: var(--blog-ink);
}

.blog-header__actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.blog-button-well {
  height: 39px;
  padding-bottom: 4px;
  border-radius: 12px;
  background: #626262;
}

.blog-button-well--orange {
  background: var(--blog-orange-dark);
}

.blog-button {
  height: 100%;
  min-width: 74px;
  padding: 0 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: var(--blog-ink);
  color: white;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.015em;
  transition: transform 120ms ease, background-color 160ms ease;
}

.blog-button--orange {
  min-width: 119px;
  background: var(--blog-orange);
}

.blog-button:hover { background: #4a4a4a; }
.blog-button--orange:hover { background: #ff7d33; }
.blog-button:active { transform: translateY(4px); }

.blog-menu-button {
  width: 38px;
  height: 38px;
  display: none;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: transparent;
  color: var(--blog-ink);
  cursor: pointer;
}

.blog-menu-button:hover { background: var(--blog-wash); }

.blog-mobile-nav {
  display: none;
  border-top: 1px solid var(--blog-line);
  background: rgba(255, 255, 255, 0.96);
}

.blog-mobile-nav[data-open="true"] { display: grid; }

.blog-mobile-nav a {
  padding: 16px 24px;
  border-bottom: 1px solid var(--blog-line);
  color: #4a4a4a;
  font-size: 16px;
}

.blog-mobile-nav a[aria-current="page"] {
  color: var(--blog-orange);
  font-weight: 500;
}

/* clears the shared site header: 44px logo + 8px padding top/bottom + 1px border */
.blog-main { padding-top: 61px; }

.blog-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--blog-orange);
  font-family: Helvetica, Arial, sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.blog-kicker::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 2px;
  background: currentColor;
  transform: rotate(45deg);
}

.blog-hero {
  overflow: hidden;
  border-bottom: 1px solid var(--blog-line);
  background:
    linear-gradient(90deg, transparent calc(50% - .5px), rgba(225,225,225,.72) 50%, transparent calc(50% + .5px)),
    linear-gradient(#fff, #fff);
}

.blog-hero__inner {
  min-height: 460px;
  padding: clamp(80px, 11vw, 160px) clamp(24px, 8vw, 128px) 72px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.blog-hero h1 {
  max-width: 950px;
  margin-top: 26px;
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(58px, 8vw, 118px);
  font-weight: 500;
  line-height: .88;
  letter-spacing: -.055em;
}

.blog-hero h1 em {
  color: var(--blog-orange);
  font-family: Helvetica, Arial, sans-serif;
  font-weight: 400;
}

.blog-hero p {
  max-width: 630px;
  margin-top: 30px;
  color: #4a4a4a;
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.35;
  letter-spacing: -.025em;
}

.blog-filters {
  border-bottom: 1px solid var(--blog-line);
}

.blog-filters__inner {
  min-height: 86px;
  padding: 18px clamp(20px, 4vw, 64px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.blog-filters__label {
  color: #7b7b7b;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.blog-filter-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.blog-filter {
  padding: 9px 14px;
  border: 1px solid var(--blog-line);
  border-radius: 999px;
  background: white;
  color: #4a4a4a;
  font-size: 14px;
  line-height: 1;
}

.blog-filter--active {
  border-color: var(--blog-ink);
  background: var(--blog-ink);
  color: white;
}

/* 9px of padding gives these a 31px box, well under the 44px a finger needs.
   The padding grows rather than the type, so the row looks the same. */
@media (pointer: coarse) {
  .blog-filter {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
}

.blog-feature-wrap {
  padding: clamp(32px, 6vw, 88px) clamp(20px, 4vw, 64px) clamp(72px, 9vw, 136px);
}

.blog-section-heading {
  margin-bottom: 24px;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}

.blog-section-heading h2 {
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(34px, 4vw, 56px);
  font-weight: 500;
  letter-spacing: -.045em;
}

.blog-section-heading span {
  color: #7b7b7b;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 12px;
}

.blog-feature {
  min-height: 560px;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(440px, 1.1fr);
  overflow: hidden;
  border: 1px solid var(--blog-line);
  border-radius: 28px;
  background: white;
  box-shadow: 0 14px 40px rgba(25,25,25,.06);
  transition: transform 260ms ease, box-shadow 260ms ease;
}

.blog-feature:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 56px rgba(25,25,25,.1);
}

.blog-feature__copy {
  padding: clamp(30px, 5vw, 72px);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.blog-feature__copy h3 {
  max-width: 660px;
  margin-top: auto;
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(42px, 5vw, 70px);
  font-weight: 500;
  line-height: .98;
  letter-spacing: -.048em;
}

.blog-feature__copy p {
  max-width: 580px;
  margin-top: 24px;
  color: #4a4a4a;
  font-size: 18px;
  line-height: 1.42;
  letter-spacing: -.02em;
}

.blog-meta {
  margin-top: 32px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  color: #606060;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 12px;
}

.blog-meta i {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #a3a3a3;
}

.blog-read-link {
  margin-top: 28px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--blog-orange);
  font-size: 16px;
  font-weight: 500;
}

.blog-read-link span {
  transition: transform 180ms ease;
}

.blog-feature:hover .blog-read-link span { transform: translateX(5px); }

.blog-feature__art {
  position: relative;
  min-height: 560px;
  overflow: hidden;
  border-left: 1px solid var(--blog-line);
  background:
    radial-gradient(circle at 20% 16%, rgba(255,255,255,.7) 0 6%, transparent 6.2%),
    linear-gradient(135deg, #ff8b4b 0%, #ff5c00 54%, #e84b00 100%);
}

.blog-feature__art::before,
.blog-feature__art::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 50%;
}

.blog-feature__art::before {
  width: 520px;
  height: 520px;
  top: -190px;
  right: -90px;
}

.blog-feature__art::after {
  width: 360px;
  height: 360px;
  left: -170px;
  bottom: -150px;
}

.blog-art-card {
  position: absolute;
  z-index: 2;
  width: min(70%, 470px);
  aspect-ratio: 4 / 5;
  top: 50%;
  left: 50%;
  padding: clamp(24px, 4vw, 46px);
  display: flex;
  flex-direction: column;
  transform: translate(-50%, -50%) rotate(4deg);
  border-radius: 8px;
  background: #fffaf4;
  box-shadow: 18px 28px 70px rgba(93,29,0,.28);
}

.blog-art-card::before {
  content: "";
  position: absolute;
  inset: 13px;
  border: 1px solid #efdbcd;
  pointer-events: none;
}

.blog-art-card img {
  width: 46px;
  height: 46px;
  object-fit: contain;
}

.blog-art-card__number {
  margin-top: auto;
  color: var(--blog-orange);
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(72px, 9vw, 126px);
  line-height: .75;
}

.blog-art-card__title {
  max-width: 300px;
  margin-top: 28px;
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(25px, 3vw, 40px);
  font-weight: 500;
  line-height: .98;
  letter-spacing: -.045em;
}

.blog-art-card__rule {
  width: 100%;
  height: 1px;
  margin-top: 24px;
  background: #efdbcd;
}

.blog-art-card__note {
  margin-top: 14px;
  color: #8b6c5b;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 11px;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.blog-newsletter {
  padding: clamp(52px, 8vw, 104px) clamp(24px, 7vw, 112px);
  border-top: 1px solid var(--blog-line);
  background: var(--blog-wash);
  text-align: center;
}

.blog-newsletter h2 {
  max-width: 720px;
  margin-inline: auto;
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(40px, 5vw, 68px);
  font-weight: 500;
  line-height: .98;
  letter-spacing: -.048em;
}

.blog-newsletter p {
  max-width: 510px;
  margin: 20px auto 0;
  color: var(--blog-muted);
  font-size: 17px;
  line-height: 1.45;
}

.blog-newsletter__form {
  width: min(100%, 490px);
  margin: 30px auto 0;
  padding: 5px;
  display: flex;
  border: 1px solid #d3d3d3;
  border-radius: 14px;
  background: white;
  box-shadow: 0 8px 24px rgba(25,25,25,.05);
}

.blog-newsletter__form input {
  min-width: 0;
  flex: 1;
  padding: 0 16px;
  background: transparent;
  color: var(--blog-ink);
  font: inherit;
  outline: none;
}

.blog-newsletter__form input::placeholder { color: #939393; }

/* `font: inherit` lands this field on 14px, and iOS Safari zooms the whole
   page in whenever a field under 16px takes focus -- and does not zoom back
   out afterwards. The narrow-screen override further down keeps 16px too. */
.blog-newsletter__form input { font-size: 16px; }

.blog-newsletter__form button {
  min-height: 44px;
  padding: 0 18px;
  border-radius: 10px;
  background: var(--blog-orange);
  color: white;
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
}

.blog-newsletter__form button:hover { background: #ff7d33; }

/* Why an address was not saved. Shown only on failure; success is the button. */
.blog-newsletter .blog-newsletter__status {
  margin-top: 12px;
  color: #b42318;
  font-size: 14px;
}

/* The .blog-footer rules below are no longer matched by anything. /blog and
 * /learn now take the site footer from site/partials/footer.html, spliced by
 * tools/build-footer.js, because this one was only ever styled here and the
 * learn pages do not load blog.css: their copy shipped unstyled. Kept rather
 * than cut, so the old footer can be restored from one place if wanted. */
.blog-footer {
  border-top: 1px solid var(--blog-line);
  background: var(--blog-wash);
}

.blog-footer__grid {
  display: grid;
  grid-template-columns: 1.3fr repeat(3, 1fr);
}

.blog-footer__brand,
.blog-footer__column {
  min-height: 250px;
  padding: 34px;
  border-right: 1px solid var(--blog-line);
}

.blog-footer__column:last-child { border-right: 0; }

/* The brand cell carries the stacked lockup over its founding line, centred in
   the cell, the same pair the main site footer carries. */
.blog-footer__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
}

.blog-footer__brand img {
  width: auto;
  height: 42px;
}

/* The stacked lockup is taller than it is wide, so it is sized on width. The
   rule above is left as it was for the horizontal one it replaced. */
.blog-footer__brand .blog-footer__lockup {
  width: 160px;
  height: auto;
}

.blog-footer__brand p {
  max-width: 280px;
  margin-top: 24px;
  color: #606060;
  font-size: 15px;
  line-height: 1.45;
}

.blog-footer__brand .blog-footer__established {
  max-width: none;
  margin-top: 0;
  color: #7b7b7b;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: -.18px;
  text-transform: uppercase;
}

.blog-footer__column h2 {
  margin-bottom: 18px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -.01em;
}

.blog-footer__column nav { display: grid; gap: 4px; }

.blog-footer__column a {
  padding: 8px;
  margin-left: -8px;
  border-radius: 8px;
  color: #606060;
  font-size: 15px;
  transition: color 160ms ease, background-color 160ms ease;
}

.blog-footer__column a:hover {
  color: var(--blog-ink);
  background: #e8e8e8;
}

.blog-footer__bottom {
  padding: 24px 34px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-top: 1px solid var(--blog-line);
  color: #606060;
  font-size: 13px;
  cursor: pointer;
}

.blog-filter:hover,
.blog-filter:focus-visible {
  border-color: #a8a8a8;
  color: #191919;
}

.blog-footer__legal { display: flex; flex-wrap: wrap; gap: 22px; }
.blog-footer__legal a { transition: color 160ms ease; }
.blog-footer__legal a:hover { color: var(--blog-ink); }

.article-hero {
  border-bottom: 1px solid var(--blog-line);
  background: #fffaf4;
}

.article-hero__inner {
  min-height: 650px;
  padding: clamp(70px, 9vw, 132px) clamp(24px, 8vw, 128px) 70px;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
  align-items: center;
  gap: clamp(42px, 8vw, 120px);
}

.article-breadcrumbs {
  margin-bottom: 28px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  color: #777;
  font-size: 13px;
}

.article-breadcrumbs a:hover { color: var(--blog-orange); }

.article-hero h1 {
  max-width: 900px;
  margin-top: 20px;
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(54px, 6.2vw, 92px);
  font-weight: 500;
  line-height: .94;
  letter-spacing: -.055em;
}

.article-dek {
  max-width: 700px;
  margin-top: 28px;
  color: #4a4a4a;
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(19px, 2vw, 25px);
  line-height: 1.42;
}

.article-byline {
  margin-top: 34px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  color: #606060;
  font-size: 13px;
}

.article-author-mark {
  width: 38px;
  height: 38px;
  padding: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #f0b693;
  border-radius: 50%;
  background: white;
}

.article-author-mark img { width: 100%; height: 100%; object-fit: contain; }

.article-hero__visual {
  position: relative;
  min-height: 430px;
}

.article-hero__visual::before {
  content: "";
  position: absolute;
  width: min(100%, 430px);
  aspect-ratio: 1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: var(--blog-orange);
  box-shadow: 0 24px 70px rgba(255,92,0,.28);
}

.article-checklist {
  position: absolute;
  z-index: 2;
  width: min(78%, 330px);
  top: 50%;
  left: 50%;
  padding: 28px;
  transform: translate(-50%, -50%) rotate(3deg);
  border: 1px solid #eadfd6;
  border-radius: 8px;
  background: white;
  box-shadow: 12px 20px 40px rgba(91,34,7,.22);
}

.article-checklist__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.article-checklist__top img { width: 38px; height: 38px; object-fit: contain; }

.article-checklist__top span {
  color: #8b6c5b;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.article-checklist h2 {
  margin-top: 35px;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 34px;
  font-weight: 500;
  line-height: .98;
  letter-spacing: -.045em;
}

.article-checklist ul {
  margin-top: 26px;
  display: grid;
  gap: 14px;
  list-style: none;
}

.article-checklist li {
  padding-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid #eee4dd;
  color: #4a4a4a;
  font-size: 13px;
}

.article-checklist li::before {
  content: "✓";
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--blog-peach);
  color: var(--blog-orange);
  font-size: 12px;
  font-weight: 700;
}

.article-layout {
  padding: clamp(48px, 7vw, 100px) clamp(24px, 7vw, 112px) clamp(88px, 10vw, 150px);
  display: grid;
  grid-template-columns: 220px minmax(0, 760px);
  justify-content: center;
  gap: clamp(50px, 8vw, 128px);
}

.article-toc {
  align-self: start;
  position: sticky;
  top: 94px;
}

.article-toc p {
  color: #7b7b7b;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.article-toc nav {
  margin-top: 16px;
  display: grid;
  border-top: 1px solid var(--blog-line);
}

.article-toc a {
  padding: 12px 4px;
  border-bottom: 1px solid var(--blog-line);
  color: #606060;
  font-size: 13px;
  line-height: 1.3;
}

.article-toc a:hover { color: var(--blog-orange); }

.article-prose {
  min-width: 0;
  font-family: Helvetica, Arial, sans-serif;
  color: #302f2d;
  font-size: 19px;
  line-height: 1.7;
}

.article-prose > p:first-child {
  color: var(--blog-ink);
  font-size: 23px;
  line-height: 1.55;
}

.article-prose > p:first-child::first-letter {
  margin: .11em .12em 0 0;
  float: left;
  color: var(--blog-orange);
  font-family: Helvetica, Arial, sans-serif;
  font-size: 4.7em;
  line-height: .72;
}

.article-prose h2 {
  margin: 74px 0 24px;
  scroll-margin-top: 100px;
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(38px, 5vw, 58px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.048em;
}

.article-prose h3 {
  margin: 42px 0 14px;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.025em;
}

.article-prose p + p { margin-top: 24px; }
.article-prose a { color: var(--blog-orange); text-decoration: underline; text-underline-offset: 3px; }

.article-prose ul,
.article-prose ol {
  margin: 22px 0 0 24px;
  display: grid;
  gap: 12px;
}

.article-callout {
  margin: 48px 0;
  padding: 30px 32px;
  border: 1px solid #f1c5aa;
  border-radius: 18px;
  background: #fff7f2;
  font-family: Helvetica, Arial, sans-serif;
}

.article-callout span {
  color: var(--blog-orange);
  font-family: Helvetica, Arial, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.article-callout p {
  margin-top: 12px;
  color: #3c3734;
  font-size: 17px;
  line-height: 1.5;
}

.article-table-wrap {
  margin: 34px 0 48px;
  overflow-x: auto;
  border: 1px solid var(--blog-line);
  border-radius: 18px;
}

.article-table {
  width: 100%;
  min-width: 650px;
  border-collapse: collapse;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.45;
}

.article-table th,
.article-table td {
  padding: 18px;
  border-right: 1px solid var(--blog-line);
  border-bottom: 1px solid var(--blog-line);
  text-align: left;
  vertical-align: top;
}

.article-table th:last-child,
.article-table td:last-child { border-right: 0; }
.article-table tr:last-child td { border-bottom: 0; }

.article-table th {
  background: var(--blog-wash);
  color: #4a4a4a;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.article-table td:first-child { font-weight: 600; color: var(--blog-ink); }

.article-quote {
  margin: 58px 0;
  padding: 8px 0 8px 30px;
  border-left: 3px solid var(--blog-orange);
  color: var(--blog-ink);
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(27px, 3.2vw, 38px);
  line-height: 1.25;
}

.article-faq {
  margin-top: 32px;
  border-top: 1px solid var(--blog-line);
  font-family: Helvetica, Arial, sans-serif;
}

.article-faq details { border-bottom: 1px solid var(--blog-line); }

.article-faq summary {
  padding: 20px 4px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  color: var(--blog-ink);
  font-size: 17px;
  font-weight: 500;
  list-style: none;
  cursor: pointer;
}

.article-faq summary::-webkit-details-marker { display: none; }
.article-faq summary::after { content: "+"; color: var(--blog-orange); font-size: 24px; font-weight: 400; }
.article-faq details[open] summary::after { content: "−"; }

.article-faq details p {
  padding: 0 40px 22px 4px;
  color: #606060;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
}

.article-disclaimer {
  margin-top: 64px;
  padding-top: 20px;
  border-top: 1px solid var(--blog-line);
  color: #7b7b7b;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 12px;
  line-height: 1.55;
}

.article-cta {
  padding: clamp(40px, 6vw, 80px);
  border-top: 1px solid var(--blog-line);
  background: var(--blog-wash);
}

.article-cta__card {
  min-height: 360px;
  padding: clamp(34px, 6vw, 76px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  overflow: hidden;
  border-radius: 28px;
  background:
    radial-gradient(circle at 88% 30%, rgba(255,255,255,.17) 0 9%, transparent 9.3%),
    var(--blog-orange);
  color: white;
}

.article-cta h2 {
  max-width: 720px;
  color: white;
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(46px, 6vw, 78px);
  font-weight: 500;
  line-height: .95;
  letter-spacing: -.05em;
}

.article-cta p {
  max-width: 650px;
  margin-top: 20px;
  color: rgba(255,255,255,.88);
  font-size: 18px;
  line-height: 1.45;
}

.article-cta__button {
  min-width: 180px;
  min-height: 56px;
  padding: 0 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: var(--blog-ink);
  color: white;
  font-size: 17px;
  font-weight: 500;
  box-shadow: 0 5px 0 #000;
  white-space: nowrap;
}

.article-cta__button:active { transform: translateY(4px); box-shadow: 0 1px 0 #000; }

@media (max-width: 1100px) {
  .blog-nav { display: none; }
  .blog-menu-button { display: inline-flex; }
  .blog-feature { grid-template-columns: 1fr 1fr; }
  .blog-footer__grid { grid-template-columns: 1fr 1fr; }
  .blog-footer__brand, .blog-footer__column { border-bottom: 1px solid var(--blog-line); }
  .blog-footer__column:nth-child(2) { border-right: 0; }
  .article-hero__inner { grid-template-columns: 1fr .7fr; }
}

@media (max-width: 820px) {
  .blog-shell { width: calc(100% - 24px); }
  .blog-header__inner { padding-inline: 12px; }
  .blog-button-well:not(.blog-button-well--orange) { display: none; }
  .blog-button--orange { min-width: auto; padding-inline: 12px; }
  .blog-hero__inner { min-height: 390px; padding-inline: 20px; }
  .blog-filters__inner { align-items: flex-start; flex-direction: column; }
  .blog-feature { grid-template-columns: 1fr; }
  .blog-feature__copy { min-height: 490px; }
  .blog-feature__art { min-height: 480px; border-top: 1px solid var(--blog-line); border-left: 0; }
  .article-hero__inner { grid-template-columns: 1fr; }
  .article-hero__visual { min-height: 400px; }
  .article-layout { grid-template-columns: 1fr; }
  .article-toc { position: static; }
  .article-toc nav { grid-template-columns: 1fr 1fr; }
  .article-cta__card { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 560px) {
  .blog-brand img { height: 30px; }
  .blog-header__actions { gap: 5px; }
  .blog-button-well { height: 36px; }
  .blog-button { font-size: 14px; }
  .blog-menu-button { width: 34px; height: 36px; }
  .blog-hero h1 { font-size: clamp(52px, 17vw, 78px); }
  .blog-filter { font-size: 12px; }
  .blog-section-heading { align-items: flex-start; flex-direction: column; }
  .blog-feature__copy { min-height: 430px; }
  .blog-feature__art { min-height: 420px; }
  .blog-art-card { width: 74%; }
  .blog-footer__grid { grid-template-columns: 1fr; }
  .blog-footer__brand, .blog-footer__column { min-height: auto; border-right: 0; }
  .blog-footer__bottom { align-items: flex-start; flex-direction: column; }
  .blog-newsletter__form { padding: 0; overflow: hidden; border-radius: 12px; }
  /* 16px, not 14: iOS Safari zooms the whole page in whenever a field with
     text under 16px takes focus, and does not zoom back out afterwards. */
  .blog-newsletter__form input { padding-inline: 12px; font-size: 16px; }
  .blog-newsletter__form button { border-radius: 0; }
  .article-hero__inner { padding-inline: 22px; }
  .article-hero h1 { font-size: clamp(48px, 14vw, 70px); }
  .article-hero__visual { min-height: 360px; }
  .article-layout { padding-inline: 20px; }
  .article-toc nav { grid-template-columns: 1fr; }
  .article-prose { font-size: 18px; }
  .article-prose > p:first-child { font-size: 20px; }
  .article-callout { padding: 24px; }
  .article-cta { padding: 20px; }
  .article-cta__card { border-radius: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Quiet editorial treatment: keep the established PikaGuard system while
   reducing the campaign-style scale of the first blog concept. */
body.blog-page {
  background: #fff;
}

.blog-shell {
  width: min(100% - 40px, 1180px);
}

.blog-hero {
  background: #fff;
}

.blog-hero__inner {
  min-height: 0;
  padding: 104px 48px 72px;
  align-items: flex-start;
  text-align: left;
}

.blog-hero h1 {
  max-width: 760px;
  margin-top: 18px;
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(44px, 6vw, 68px);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -.045em;
}

.blog-hero p {
  max-width: 620px;
  margin-top: 20px;
  font-size: 19px;
  line-height: 1.5;
  letter-spacing: -.015em;
}

.blog-kicker {
  gap: 7px;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 11px;
  letter-spacing: .07em;
}

.blog-kicker::before {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  transform: none;
}

.blog-filters__inner {
  min-height: 72px;
  padding: 14px 32px;
}

.blog-filter {
  padding: 8px 13px;
  border-radius: 8px;
  font-size: 13px;
}

.blog-feature-wrap {
  padding: 56px 32px 88px;
}

.blog-section-heading h2 {
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(28px, 3vw, 36px);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -.035em;
}

.blog-feature {
  min-height: 0;
  grid-template-columns: minmax(0, 1fr) 330px;
  border-radius: 14px;
  box-shadow: none;
}

.blog-feature:hover {
  transform: none;
  border-color: #c8c8c8;
  box-shadow: 0 8px 24px rgba(25,25,25,.05);
}

.blog-feature__copy {
  min-height: 330px;
  padding: 40px;
}

.blog-feature__copy h3 {
  margin-top: 26px;
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(30px, 3.4vw, 44px);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -.04em;
}

.blog-feature__copy p {
  margin-top: 18px;
  font-size: 16px;
  line-height: 1.55;
}

.blog-meta,
.blog-read-link {
  margin-top: 22px;
}

/* left bottom, not center: everywhere else this picture is a full-bleed band
   behind white type, so its empty middle is the point. Cropped into a card-
   sized panel a centred cover lands on that middle and the panel reads as a
   flat grey slab -- which is what it did at every width, phone worst of all.
   The network pattern is densest in the bottom-left corner, so anchoring there
   keeps it in frame whether the panel is tall (desktop column) or wide (the
   band it becomes under 820px). */
.blog-feature__art {
  min-height: 330px;
  background:
    linear-gradient(rgba(246,246,246,.25), rgba(246,246,246,.25)),
    url('/assets/cta-background-institutional-02-network.png') left bottom / cover no-repeat,
    #f6f6f6;
}

.blog-feature__art::before,
.blog-feature__art::after,
.blog-art-card {
  display: none;
}

.blog-article-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.blog-article-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--blog-line);
  border-radius: 12px;
  background: #fff;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.blog-article-card:hover {
  border-color: #c8c8c8;
  box-shadow: 0 8px 24px rgba(25,25,25,.05);
  transform: translateY(-2px);
}

.blog-article-card__image {
  position: relative;
  min-height: 180px;
  padding: 20px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  border-bottom: 1px solid var(--blog-line);
  background: #f6f6f6;
}

.blog-article-card__image::before,
.blog-article-card__image::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(25,25,25,.14);
  border-radius: 50%;
}

.blog-article-card__image::before {
  width: 190px;
  height: 190px;
  top: -74px;
  right: -38px;
}

.blog-article-card__image::after {
  width: 120px;
  height: 120px;
  right: 38px;
  bottom: -72px;
}

.blog-article-card__image--deductible { background: #eef4ee; }
.blog-article-card__image--mitigation { background: #fff2ea; }
.blog-article-card__image--range { background: #eef1f7; }

.blog-article-card__image span {
  position: relative;
  z-index: 1;
  color: #191919;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 42px;
  font-weight: 500;
  letter-spacing: -.05em;
}

.blog-article-card__body {
  padding: 24px;
  display: flex;
  flex: 1;
  flex-direction: column;
}

.blog-article-card h3 {
  margin-top: 16px;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -.035em;
}

.blog-article-card p {
  margin-top: 14px;
  color: #606060;
  font-size: 15px;
  line-height: 1.5;
}

.blog-article-card .blog-meta {
  margin-top: auto;
  padding-top: 24px;
  gap: 8px;
  font-size: 11px;
}

.blog-empty-state {
  margin-top: 24px;
  padding: 48px 24px;
  border: 1px dashed #d2d2d2;
  border-radius: 12px;
  color: #606060;
  text-align: center;
}

[data-article][hidden] {
  display: none !important;
}

/* ── the risk library ─────────────────────────────────────
 *
 * The same 28-article register as /learn, generated into this page by
 * tools/build-learn.js and styled by /learn/learn.css. These rules only
 * place the block: everything inside .learn-embed comes from there. */
.blog-library {
  padding: clamp(32px, 6vw, 88px) clamp(20px, 4vw, 64px) clamp(72px, 9vw, 136px);
  border-top: 1px solid var(--blog-line);
  /* The site header is fixed, so the hero's #risk-library link would otherwise
     drop the heading behind it. */
  scroll-margin-top: 100px;
}

.blog-library__lede {
  /* The register's own measure. It sits outside .learn-embed, so --lrn-measure
     is not in scope here and the length is written out; the rows it introduces
     take the same 690px from learn.css. */
  max-width: 690px;
  margin: 0 0 8px;
  color: var(--blog-muted);
  font-size: clamp(16px, 1.8vw, 19px);
  line-height: 1.6;
}

/* The register opens with 56px of its own padding above the first part, so
   the lede does not need a bottom margin of its own. */
.blog-library .learn-part:first-child {
  padding-top: 40px;
}

/* .blog-kicker sets display:inline-flex, which would beat the UA [hidden] rule. */
.blog-kicker[hidden] {
  display: none !important;
}

.blog-newsletter {
  padding: 64px 24px;
  text-align: left;
}

.blog-newsletter > * {
  margin-left: auto;
  margin-right: auto;
}

.blog-newsletter h2 {
  max-width: 620px;
  margin-top: 14px;
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(30px, 4vw, 42px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -.04em;
  text-align: center;
}

.blog-newsletter .blog-kicker {
  display: flex;
  width: max-content;
}

.blog-newsletter p {
  margin-top: 14px;
  text-align: center;
}

.article-hero {
  background: #fff;
}

.article-hero__inner {
  min-height: 0;
  padding: 86px 48px 68px;
  display: block;
}

.article-hero__inner > div:first-child {
  max-width: 850px;
}

.article-hero h1 {
  margin-top: 16px;
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(44px, 5.4vw, 66px);
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -.05em;
}

.article-dek {
  max-width: 760px;
  margin-top: 22px;
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(19px, 2vw, 23px);
  line-height: 1.5;
}

.article-byline {
  margin-top: 28px;
}

.article-hero__visual {
  display: none;
}

.article-layout {
  padding: 64px 48px 104px;
  grid-template-columns: 190px minmax(0, 700px);
  gap: 72px;
}

.article-prose {
  font-size: 18px;
  line-height: 1.72;
}

.article-prose > p:first-child {
  font-size: 21px;
  line-height: 1.62;
}

.article-prose > p:first-child::first-letter {
  margin: 0;
  float: none;
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

.article-prose h2 {
  margin: 62px 0 20px;
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(30px, 4vw, 40px);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -.04em;
}

.article-prose h3 {
  font-size: 20px;
}

.article-callout {
  margin: 40px 0;
  padding: 24px 26px;
  border-radius: 10px;
}

.article-table-wrap {
  border-radius: 10px;
}

.article-quote {
  margin: 48px 0;
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(24px, 3vw, 31px);
  line-height: 1.35;
}

.article-cta {
  padding: 56px 24px;
  background: #f6f6f6;
}

.article-cta__card {
  width: min(100%, 1060px);
  min-height: 0;
  margin-inline: auto;
  padding: 48px;
  border: 1px solid #e1e1e1;
  border-radius: 14px;
  background: #fff;
  color: #191919;
}

.article-cta h2 {
  max-width: 680px;
  color: #191919;
  font-family: Helvetica, Arial, sans-serif;
  font-size: clamp(30px, 4vw, 42px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -.04em;
}

.article-cta p {
  margin-top: 14px;
  color: #606060;
  font-size: 16px;
}

.article-cta__button {
  min-width: 170px;
  min-height: 48px;
  border-radius: 10px;
  background: #ff5c00;
  font-size: 15px;
  box-shadow: 0 4px 0 #cc4a00;
}

@media (max-width: 820px) {
  .blog-feature {
    grid-template-columns: 1fr;
  }

  .blog-feature__art {
    min-height: 220px;
    border-top: 1px solid var(--blog-line);
    border-left: 0;
  }

  .article-layout {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .blog-article-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 560px) {
  .blog-shell {
    width: calc(100% - 24px);
  }

  .blog-hero__inner,
  .article-hero__inner {
    padding: 78px 20px 52px;
  }

  .blog-filters__inner,
  .blog-feature-wrap,
  .article-layout {
    padding-left: 20px;
    padding-right: 20px;
  }

  .blog-feature__copy {
    min-height: 0;
    padding: 28px;
  }

  .blog-article-grid {
    grid-template-columns: 1fr;
  }

  .article-cta__card {
    padding: 30px;
  }
}

/* Pointer from the blog hero to /learn — the structured 28-article series.
   The blog keeps one-off pieces and company news. */
.blog-hero__pointer {
  margin-top: 14px;
  font-size: 15px;
  line-height: 1.6;
  color: #4a4a4a;
}
.blog-hero__pointer a {
  color: #ff5c00;
  text-decoration: underline;
  text-underline-offset: 2px;
}
