/* Shared editorial pages: the homepage's type, gutters and material tokens. */
.editorial-page { --ed-gutter: var(--gutter); }
.editorial-main { padding: 0 8px; }
.editorial-page h1,.editorial-page h2,.editorial-page h3,.editorial-page p { margin: 0; }
.editorial-page button,.editorial-page textarea { font: inherit; }
.editorial-page button { cursor: pointer; }
.editorial-page :focus-visible { outline: 2px solid #1557ff; outline-offset: 5px; }
.editorial-page [hidden] { display: none !important; }
.editorial-page .topbar-nav a[aria-current]::after { content: ''; position: absolute; width: 4px; height: 4px; background: currentColor; border-radius: 50%; bottom: -9px; left: 50%; }
.ed-skip { position: fixed; z-index: 100; top: 12px; left: 12px; padding: 14px; background: #ededeb; border-radius: 8px; transform: translateY(-200%); }
.ed-skip:focus { transform: none; }
.ed-mono { font: 10px/1.5 'ABCDiatype Mono',monospace; letter-spacing: .04em; text-transform: uppercase; }
.ed-muted { color: #666660; }
.ed-masthead { padding: clamp(150px,13vw,210px) var(--ed-gutter) 55px; }
.ed-breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; color: #666660; font-size: 13px; margin-bottom: 36px; }
.ed-breadcrumb a:hover { color: #080808; }
.ed-masthead-row { display: grid; grid-template-columns: 1.6fr 1fr; align-items: end; gap: 45px; }
.ed-masthead h1 { font-size: clamp(48px,5.2vw,92px); line-height: 1.02; font-weight: 600; letter-spacing: -.065em; text-wrap: balance; }
.ed-masthead h1 em { font-style: normal; color: #92928b; }
.ed-masthead-copy { justify-self: end; max-width: 340px; padding-bottom: 5px; font-size: var(--body); line-height: 1.5; }
.ed-masthead-copy .ed-mono { display: block; margin-top: 24px; color: #70706a; }
.ed-rule { border: 0; border-top: 1px solid var(--line); margin: 0; }
.ed-button { display: inline-flex; justify-content: space-between; align-items: center; gap: 32px; min-height: 52px; padding: 16px 20px; background: #ededeb; border: 0; border-radius: 12px; color: #080808; font-size: 14px; font-weight: 600; transition: background .2s; }
.ed-button:hover { background: #e0e0dc; }
.ed-button span:last-child { font-size: 20px; transition: transform .25s; }
.ed-button:hover span:last-child { transform: translate(2px,-2px); }
.ed-card-button { width: min(306px,100%); min-width: 0; min-height: 122px; padding: 18px; border-radius: 15px; display: flex; flex-direction: column; align-items: stretch; justify-content: space-between; gap: 32px; border: 0; background: #ededeb; color: #080808; text-align: left; }
.ed-card-button>span { display: flex; align-items: center; justify-content: space-between; font: 600 21px/1.2 Onest,sans-serif; letter-spacing: -.045em; gap: 18px; }
.ed-card-button:hover { background: #e2e2de; }
.ed-section { padding: 48px var(--ed-gutter) 80px; }
.ed-section-title { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 30px; }
.ed-section-title h2 { font-size: var(--h3); letter-spacing: -.05em; line-height: 1.12; font-weight: 550; }
.ed-section-title>a { font-size: 14px; }
.ed-cta { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 32px; padding: 72px var(--ed-gutter); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.ed-cta h2 { font-size: var(--h2); font-weight: 500; line-height: 1.05; letter-spacing: -.065em; margin: 20px 0; }
.ed-cta p:not(.ed-mono) { color: #62625c; font-size: var(--body); max-width: 510px; line-height: 1.5; }
.editorial-page .site-footer { margin-top: 0; }

/* Contacts: quiet cards and a two-column brief. Test addresses never dial or send. */
.contact-directory { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.contact-tile { min-height: 224px; border-radius: 15px; background: #f2f2ef; padding: 25px; display: flex; flex-direction: column; align-items: start; justify-content: space-between; gap: 35px; }
.contact-tile-title { display: flex; justify-content: space-between; width: 100%; align-items: center; gap: 15px; }
.contact-tile-title h2 { font: 500 21px/1.15 Onest,sans-serif; letter-spacing: -.035em; }
.contact-tile-title>span { font-size: 25px; }
.contact-tile-value { font-size: clamp(24px,2.1vw,38px); letter-spacing: -.04em; line-height: 1.15; overflow-wrap: anywhere; }
.contact-tile-note { font-size: 13px; color: #666660; margin-top: 10px !important; line-height: 1.5; }
.contact-tile-ink { background: #1b1d1a; color: #fff; }
.contact-tile-ink .contact-tile-note { color: #bdbfb8; }
.contact-test-note { margin-top: 20px !important; color: #666660; font-size: 12px; line-height: 1.5; }
.contact-brief { display: grid; grid-template-columns: 1fr 1.5fr; gap: clamp(45px,7vw,130px); border-top: 1px solid var(--line); padding: 64px var(--ed-gutter) 90px; }
.contact-brief-copy h2 { font-size: var(--h2); line-height: 1.05; font-weight: 500; letter-spacing: -.065em; margin: 24px 0; }
.contact-brief-copy>p:not(.ed-mono) { font-size: var(--body); color: #666660; line-height: 1.5; max-width: 330px; }
.contact-steps { margin: 52px 0 0; padding: 0; list-style: none; counter-reset: contact-step; }
.contact-steps li { padding: 18px 0; border-top: 1px solid var(--line); display: flex; gap: 20px; font-size: 15px; }
.contact-steps li::before { counter-increment: contact-step; content: '0' counter(contact-step); font: 10px 'ABCDiatype Mono',monospace; color: #777770; padding-top: 4px; }
.brief-form { display: grid; gap: 26px; align-content: start; min-width: 0; }
.brief-form fieldset { border: 0; padding: 0; margin: 0 0 6px; min-width: 0; }
.brief-form legend { font-size: 14px; margin-bottom: 16px; }
.brief-topics { display: flex; flex-wrap: wrap; gap: 8px; }
.brief-topics label { display: flex; align-items: center; gap: 8px; background: #f3f3f0; border-radius: 9px; padding: 12px 14px; font-size: 13px; cursor: pointer; }
.brief-topics label:has(:checked) { background: #deded8; }
.brief-topics input { margin: 0; accent-color: #080808; width: 14px; height: 14px; }
.brief-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 24px; }
.brief-fields label { display: flex; flex-direction: column; gap: 10px; font-size: 13px; }
.brief-fields .brief-wide { grid-column: 1/-1; }
.brief-fields input,.brief-fields textarea { width: 100%; min-width: 0; background: transparent; border: 0; border-bottom: 1px solid #c8c8c1; border-radius: 0; padding: 11px 0 14px; font-size: 17px; color: #080808; }
.brief-fields textarea { resize: vertical; min-height: 112px; line-height: 1.5; }
.brief-fields input::placeholder,.brief-fields textarea::placeholder { color: #85857e; }
.brief-consent { display: flex; align-items: flex-start; gap: 10px; font-size: 12px; color: #666660; line-height: 1.5; }
.brief-consent input { margin-top: 3px; accent-color: #080808; }
.brief-form .ed-card-button { justify-self: end; }
.brief-status { background: #eff3ed; padding: 18px; border-radius: 12px; font-size: 15px; line-height: 1.5; }
.contact-details { display: grid; grid-template-columns: 1fr 1.5fr; gap: clamp(45px,7vw,130px); border-top: 1px solid var(--line); }
.contact-details h2 { font-size: var(--h3); font-weight: 500; letter-spacing: -.05em; }
.contact-details dl { margin: 0; }
.contact-details dl>div { display: grid; grid-template-columns: 1fr 1.6fr; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line); font-size: 15px; line-height: 1.5; }
.contact-details dl>div:first-child { padding-top: 0; }
.contact-details dt { color: #666660; }
.contact-details dd { margin: 0; }

/* Native editorial cover art: no heavy videos or image downloads. */
.ed-art { position: relative; overflow: hidden; min-width: 0; border-radius: 15px; aspect-ratio: 1.45; background: #e5e8df; color: #182418; isolation: isolate; }
.ed-art::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(currentColor 1px,transparent 1px),linear-gradient(90deg,currentColor 1px,transparent 1px); background-size: 48px 48px; opacity: .06; mask-image: linear-gradient(120deg,#000,transparent); }
.ed-art>small { position: absolute; top: 24px; left: 24px; font: 9px/1.4 'ABCDiatype Mono',monospace; letter-spacing: .07em; z-index: 3; }
.ed-art>strong { position: absolute; z-index: 2; left: 24px; bottom: 25px; font: 600 clamp(66px,8vw,130px)/.82 Onest,sans-serif; letter-spacing: -.08em; }
.ed-art>span { position: absolute; z-index: 3; bottom: 24px; right: 24px; font: 11px 'ABCDiatype Mono',monospace; }
.ed-art-shape { position: absolute; width: 58%; aspect-ratio: 1; right: 3%; top: 9%; border-radius: 50%; border: 1px solid currentColor; opacity: .4; box-shadow: 0 0 0 24px rgb(255 255 255 / .18),0 0 0 48px rgb(255 255 255 / .12); transform: rotate(-25deg); }
.ed-art-shape::after { content: ''; position: absolute; inset: 17%; border: 1px solid currentColor; border-radius: inherit; }
.ed-art-audit { background: radial-gradient(ellipse at 76% 25%,#c1ccaf,transparent 56%),#e5e8df; }
.ed-art-audit .ed-art-shape { width: 38%; right: 16%; top: 13%; }
.ed-art-audit .ed-art-shape::after { inset: auto; width: 65%; height: 18%; border: 0; border-bottom: 6px solid currentColor; border-radius: 2px; top: 90%; left: 80%; transform: rotate(45deg); transform-origin: left center; }
.ed-art-optimization { background: #eeeae2; color: #494236; }
.ed-art-optimization .ed-art-shape { border-radius: 8px; width: 33%; right: 12%; transform: rotate(12deg); box-shadow: 18px 18px 0 #d4cbbc,36px 36px 0 #e0d8cd; }
.ed-art-content { background: #ded9eb; color: #3d3353; }
.ed-art-content .ed-art-shape { border-radius: 4px 100% 4px 4px; right: -8%; top: -6%; width: 85%; }
.ed-art-analytics { background: #192727; color: #cfebd7; }
.ed-art-analytics .ed-art-shape { width: 55%; aspect-ratio: 1.4; top: 32%; right: 10%; border: 0; box-shadow: none; border-radius: 0; transform: none; opacity: .65; background: linear-gradient(to top,#9fbfb1 0 100%); clip-path: polygon(0 100%,0 75%,15% 75%,15% 100%,21% 100%,21% 55%,36% 55%,36% 100%,42% 100%,42% 65%,57% 65%,57% 100%,63% 100%,63% 25%,78% 25%,78% 100%,84% 100%,84% 0,100% 0,100% 100%); }
.ed-art-analytics .ed-art-shape::after { display: none; }
.ed-art-structure { background: #dce4ed; color: #344557; }
.ed-art-structure .ed-art-shape { border-radius: 3px; width: 30%; right: 15%; top: 13%; box-shadow: -28px 30px 0 #c1cddd,28px 60px 0 #bbc9d9; transform: rotate(-12deg); }
.ed-art-partner { background: #e8d9cd; color: #614a3b; }
.ed-art-partner .ed-art-shape { right: -15%; top: -10%; width: 80%; border-width: 32px; box-shadow: none; opacity: .18; }
.ed-art-partner .ed-art-shape::after { inset: 12%; border-width: 14px; }
.blog-feature { display: grid; grid-template-columns: 1.45fr 1fr; gap: clamp(28px,4vw,76px); align-items: center; padding: 0 var(--ed-gutter) 64px; }
.blog-feature-copy { padding: 20px 0; }
.blog-feature-copy h2 { font-size: clamp(28px,2.65vw,48px); font-weight: 500; letter-spacing: -.055em; line-height: 1.1; margin: 25px 0 20px; text-wrap: balance; }
.blog-feature-copy p { color: #666660; font-size: var(--body); line-height: 1.5; margin-bottom: 28px; max-width: 440px; }
.blog-feature .ed-art>strong { font-size: clamp(100px,14vw,225px); }
.blog-library { border-top: 1px solid var(--line); }
.blog-tools { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.blog-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.blog-filters button { border: 0; background: transparent; padding: 12px 15px; border-radius: 9px; font-size: 14px; }
.blog-filters button[aria-pressed=true] { background: #ededeb; }
.blog-filters button:hover { background: #f3f3f0; }
.blog-search { display: flex; align-items: center; border-bottom: 1px solid var(--line); gap: 12px; width: 240px; flex: 0 0 240px; }
.blog-search span { font-size: 20px; }
.blog-search input { width: 100%; padding: 13px 0; border: 0; border-radius: 0; background: transparent; font-size: 14px; color: inherit; min-width: 0; }
.blog-result { margin: -10px 0 25px !important; font-size: 12px; color: #666660; }
.blog-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); column-gap: 20px; row-gap: 44px; }
.blog-card { min-width: 0; }
.blog-card>a { display: flex; flex-direction: column; height: 100%; }
.blog-card .ed-art { flex-shrink: 0; }
.blog-card .ed-art>strong { font-size: clamp(66px,7vw,120px); }
.blog-card .ed-art>small { max-width: 80%; font-size: 8px; }
.blog-card-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-top: 20px; color: #686862; font: 9px/1.5 'ABCDiatype Mono',monospace; text-transform: uppercase; }
.blog-card h3 { margin: 12px 0 13px; font-size: clamp(21px,1.55vw,29px); line-height: 1.18; font-weight: 500; letter-spacing: -.045em; }
.blog-card p { font-size: 15px; line-height: 1.5; color: #686862; margin-bottom: 22px; }
.blog-card-end { margin-top: auto; display: flex; align-items: center; justify-content: space-between; padding-top: 14px; border-top: 1px solid var(--line); font-size: 12px; }
.blog-card-end span:last-child { font-size: 21px; transition: transform .25s; }
.blog-card a:hover .blog-card-end span:last-child { transform: translate(3px,-3px); }
.blog-card a:hover h3 { color: #5a6555; }
.blog-empty { padding: 50px 0; font-size: 23px; line-height: 1.4; }
.blog-empty button { margin-top: 22px; }
.blog-demo { border-top: 1px solid var(--line); padding-top: 22px; margin-top: 45px !important; font-size: 12px; color: #686862; line-height: 1.5; }

/* Reading page: sticky contents, not a scroll-pinned scene. */
.article-heading { max-width: 1060px; }
.article-heading h1 { font-size: clamp(38px,4.1vw,72px); line-height: 1.07; letter-spacing: -.055em; text-wrap: balance; font-weight: 550; margin: 23px 0 30px; }
.article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 25px; color: #686862; font-size: 12px; }
.article-cover { margin: 0 var(--ed-gutter); aspect-ratio: 3.1; }
.article-cover>strong { font-size: clamp(100px,17vw,280px); bottom: 32px; left: 32px; }
.article-cover>small { top: 28px; left: 32px; }
.article-cover .ed-art-shape { width: 24%; top: 10%; right: 24%; }
.article-cover.ed-art-optimization>strong { font-size: clamp(64px,10vw,170px); }
.article-cover.ed-art-structure>strong { font-size: clamp(66px,12vw,200px); }
.blog-card .ed-art-structure>strong { font-size: clamp(58px,5.5vw,100px); }
.article-layout { display: grid; grid-template-columns: minmax(180px,26.65%) minmax(0,1fr); gap: 40px; padding: 64px var(--ed-gutter) 80px; }
.article-sidebar { min-width: 0; }
.article-sidebar-inner { position: sticky; top: 105px; max-width: 235px; }
.article-toc { display: grid; margin-top: 22px; }
.article-toc a { padding: 13px 0 13px 15px; border-bottom: 1px solid var(--line); font-size: 13px; line-height: 1.4; color: #70706a; position: relative; }
.article-toc a[aria-current] { color: #080808; }
.article-toc a[aria-current]::before { content: ''; position: absolute; width: 4px; height: 4px; border-radius: 50%; background: #080808; left: 0; top: 20px; }
.article-share { margin-top: 24px; width: 100%; font-size: 12px; font-weight: 400; gap: 14px; }
.article-share-status { min-height: 30px; margin-top: 12px !important; font-size: 12px; line-height: 1.5; color: #666660; }
.article-copy { max-width: 760px; }
.article-lead { font-size: clamp(20px,1.65vw,28px); line-height: 1.4; letter-spacing: -.025em; }
.article-copy section { padding-top: 50px; }
.article-copy h2 { font-size: clamp(25px,2vw,35px); line-height: 1.15; font-weight: 550; letter-spacing: -.045em; margin-bottom: 22px; }
.article-copy section>p { font-size: var(--body); line-height: 1.75; margin-top: 18px; color: #40403c; }
.article-copy blockquote { margin: 44px 0 0; padding: 28px 30px; background: #eff0e9; border-radius: 15px; font: 500 clamp(23px,2vw,32px)/1.25 Onest,sans-serif; letter-spacing: -.045em; }
.article-copy .article-source { font-size: 12px; color: #72726b; }
.article-source a { text-decoration: underline; text-underline-offset: 3px; }
.article-checklist { list-style: none; padding: 0; margin: 0; }
.article-checklist li { padding: 16px 0; border-top: 1px solid var(--line); display: flex; gap: 15px; font-size: var(--body); line-height: 1.5; }
.article-checklist li::before { content: '↗'; }
.article-byline { margin-top: 45px; border-top: 1px solid var(--line); padding-top: 25px; display: flex; gap: 16px; align-items: center; }
.article-byline-mark { display: grid; place-items: center; background: #ededeb; border-radius: 50%; width: 54px; height: 54px; flex-shrink: 0; font-weight: 700; font-size: 14px; }
.article-byline p { font-size: 14px; }
.article-byline small { display: block; color: #777770; font-size: 12px; margin-top: 7px; }
.article-related { border-top: 1px solid var(--line); }
@media(max-width:1000px) {
  .ed-masthead-row { grid-template-columns: 1.3fr 1fr; gap: 32px; }
  .blog-tools { align-items: start; flex-direction: column; }
  .blog-search { width: min(100%,350px); flex-basis: auto; }
  .blog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .article-related .blog-card:last-child { display: none; }
  .contact-brief,.contact-details { gap: 40px; grid-template-columns: 1fr 1.4fr; }
  .article-layout { gap: 30px; grid-template-columns: 200px minmax(0,1fr); }
  .ed-art>small { max-width: 75%; font-size: 8px; }
}
@media(max-width:700px) {
  .editorial-main { padding: 0; }
  .ed-masthead { padding-top: 130px; padding-bottom: 36px; }
  .ed-breadcrumb { margin-bottom: 28px; }
  .ed-masthead-row { grid-template-columns: 1fr; gap: 26px; }
  .ed-masthead h1 { font-size: clamp(42px,10.7vw,70px); }
  .ed-masthead-copy { justify-self: start; max-width: 390px; }
  .ed-masthead-copy .ed-mono { margin-top: 18px; }
  .ed-section { padding-top: 32px; padding-bottom: 50px; }
  .ed-section-title { align-items: start; }
  .ed-section-title>a { flex-shrink: 0; font-size: 12px; padding-top: 6px; }
  .ed-cta { grid-template-columns: minmax(0,1fr); padding-top: 44px; padding-bottom: 44px; }
  .ed-cta h2,.contact-brief-copy h2 { font-size: 40px; }
  .ed-cta .ed-card-button { justify-self: end; }
  .ed-card-button { max-width: 100%; }
  .contact-directory { grid-template-columns: 1fr; }
  .contact-tile { min-height: 205px; padding: 22px; }
  .contact-tile-value { font-size: clamp(25px,7vw,34px); }
  .contact-brief,.contact-details { grid-template-columns: minmax(0,1fr); padding-top: 40px; padding-bottom: 50px; gap: 38px; }
  .contact-steps { margin-top: 28px; }
  .brief-fields { grid-template-columns: 1fr; }
  .contact-details dl>div { grid-template-columns: 1fr; gap: 8px; }
  .blog-feature { grid-template-columns: 1fr; gap: 0; padding-bottom: 35px; }
  .blog-feature .ed-art { aspect-ratio: 1.3; }
  .blog-feature .ed-art>strong { font-size: clamp(100px,27vw,160px); }
  .blog-feature-copy { padding-top: 25px; }
  .blog-feature-copy h2 { font-size: 29px; margin-top: 18px; }
  .blog-feature-copy p { margin-bottom: 20px; }
  .blog-filters { gap: 4px; }
  .blog-filters button { padding: 11px 12px; font-size: 13px; }
  .blog-grid { grid-template-columns: 1fr; row-gap: 36px; }
  .blog-card h3 { font-size: 24px; }
  .blog-card .ed-art>strong { font-size: clamp(90px,26vw,150px); }
  .article-heading h1 { font-size: clamp(35px,8.5vw,52px); }
  .article-cover { aspect-ratio: 1.5; }
  .article-cover>strong { font-size: 105px; left: 22px; bottom: 25px; }
  .article-cover>small { left: 22px; }
  .article-cover .ed-art-shape { width: 42%; top: 14%; right: 17%; }
  .article-layout { grid-template-columns: 1fr; padding-top: 30px; padding-bottom: 45px; gap: 35px; }
  .article-sidebar-inner { position: static; max-width: none; }
  .article-toc { margin-top: 14px; }
  .article-share { width: auto; margin-top: 18px; }
  .article-share-status:empty { display: none; }
  .article-copy section { padding-top: 36px; }
  .article-copy section>p { font-size: 17px; }
  .article-copy blockquote { margin-top: 32px; padding: 25px; }
}
@media(max-width:360px) {
  .editorial-page .wordmark-full { display: none; }
  .ed-card-button>span { font-size: 19px; }
}
@media(prefers-reduced-motion:reduce) {
  .editorial-page *, .editorial-page *::before, .editorial-page *::after { animation: none !important; }
}
