/* Shared editorial language for article and case study detail pages. */
.editorial-page { --ed-ink:#172f42; --ed-muted:#68716e; --ed-paper:#faf8f3; --ed-line:#dedfd7; --ed-accent:#ac591e; background:var(--ed-paper); color:var(--ed-ink); padding-bottom:72px; }
.editorial-page *, .ad-related * { box-sizing:border-box; }
.ed-back { display:inline-flex; color:#52635d; font: .8rem 'Montserrat-Medium',sans-serif; margin-bottom:36px; text-decoration:none; gap:10px; }
.ed-back:hover { color:#ac591e; }
.ad-header,.csd-hero { padding:48px 24px 40px; background:radial-gradient(ellipse at 95% 0%,#ebece0,transparent 65%),#faf8f3; }
.ad-header-inner,.csd-hero .container { max-width:1120px; margin:auto; padding:0; }
.ad-meta,.csd-hero-label { display:flex; align-items:center; flex-wrap:wrap; gap:10px; color:#686f65; font:.72rem 'Montserrat-Medium',sans-serif; letter-spacing:.09em; text-transform:uppercase; margin-bottom:22px; }
.ad-meta a { color:#ac591e; text-decoration:none; }
.ad-dot,.csd-hero-label .sep { color:#b6b6a8; }
.ad-title,.csd-hero h1 { font:500 clamp(2.3rem,4.7vw,4.6rem)/1.09 'Source Serif 4',Georgia,serif; letter-spacing:-.035em; max-width:1060px; margin:0 0 28px; color:#172f42; overflow-wrap:anywhere; text-wrap:balance; }
.ad-byline { color:#68716e; font:.85rem/1.7 'Montserrat-Regular',sans-serif; margin:0; }
.ad-byline strong { color:#172f42; }
.ed-deck { font:400 clamp(1.1rem,1.8vw,1.4rem)/1.6 'Source Serif 4',Georgia,serif; color:#52635d; max-width:800px; margin:0; }
.ad-hero-wrap,.csd-hero-img-wrap { max-width:1168px; padding:0 24px; margin:0 auto; }
.ad-hero-img,.csd-hero-img { width:100%; max-height:620px; aspect-ratio:1.95; object-fit:cover; display:block; border-radius:4px 4px 40px 4px; }
.csd-page > .container { max-width:1168px; padding:0 24px; }
.ed-reading-layout { display:grid; grid-template-columns:210px minmax(0,740px); justify-content:space-between; gap:64px; max-width:1120px; margin:60px auto 0; padding:0 24px; }
.csd-page .ed-reading-layout { padding:0; }
.ed-sidebar { align-self:start; position:sticky; top:120px; min-width:0; font:.8rem/1.6 'Montserrat-Regular',sans-serif; }
.ed-eyebrow { font:.68rem/1.5 'Montserrat-Bold',sans-serif; text-transform:uppercase; letter-spacing:.13em; color:#68716e; margin-bottom:18px; }
.ed-toc-list { list-style:none; padding:0; margin:0 0 32px; }
.ed-toc-list li { border-bottom:1px solid #dedfd7; }
.ed-toc-list a { display:block; padding:12px 0; color:#52635d; text-decoration:none; overflow-wrap:anywhere; }
.ed-toc-list a:hover,.ed-toc-list a[aria-current] { color:#ac591e; }
.ed-share { border-top:2px solid #bca16e; padding-top:20px; }
.ed-share a,.ed-copy { display:flex; justify-content:space-between; width:100%; background:none; border:0; padding:8px 0; color:#172f42; text-decoration:none; font:inherit; text-align:left; }
.ed-copy-status { display:block; color:#52635d; font-size:.75rem; }
.editorial-page :focus-visible,.ad-related :focus-visible { outline:2px solid #ac591e; outline-offset:5px; }
.ad-body-wrap,.ed-reading-content { min-width:0; padding:0; }
.ad-body,.csd-section .rich-content,.csd-about-us .rich-content { font:400 1.16rem/1.9 'Source Serif 4',Georgia,serif; color:#36433e; overflow-wrap:anywhere; }
.ad-body *, .csd-page .rich-content * { font-family:inherit !important; }
.ad-body p,.rich-content p { margin:0 0 1.4em; }
.ad-body h2,.ad-body h3,.ad-body h4,.csd-section h2,.rich-content h2,.rich-content h3 { font-family:'Source Serif 4',Georgia,serif; font-weight:600; line-height:1.25; color:#172f42; margin:1.8em 0 .75em; scroll-margin-top:120px; }
.ad-body h2,.csd-section h2,.rich-content h2 { font-size:1.9rem; letter-spacing:-.02em; }
.ad-body h3,.rich-content h3 { font-size:1.45rem; }
.ad-body blockquote,.csd-section blockquote { border-left:3px solid #bca16e; padding:12px 0 12px 28px; margin:40px 0; font-size:1.65rem; font-style:italic; line-height:1.5; color:#172f42; }
.ad-body blockquote.tnyi-testimonial-quote,
.csd-page .rich-content blockquote.tnyi-testimonial-quote {
  position:relative;
  margin:2.5em 0;
  padding:32px 36px 30px;
  border:0;
  border-radius:4px 32px 4px 4px;
  background:linear-gradient(135deg,#203e40 0%,#163d47 100%);
  box-shadow:0 18px 40px -28px rgba(19,31,69,.7);
  color:#fff;
  font-style:normal;
}
.ad-body blockquote.tnyi-testimonial-quote::before,
.csd-page .rich-content blockquote.tnyi-testimonial-quote::before {
  content:'“';
  position:absolute;
  top:4px;
  right:26px;
  color:#f7e6c6;
  font:700 5.5rem/.8 'Source Serif 4',Georgia,serif;
  opacity:.88;
}
.ad-body blockquote.tnyi-testimonial-quote .tnyi-testimonial-quote__text,
.csd-page .rich-content blockquote.tnyi-testimonial-quote .tnyi-testimonial-quote__text {
  position:relative;
  z-index:1;
  margin:0;
  color:#fff;
  font:400 clamp(1.25rem,2.2vw,1.7rem)/1.55 'Source Serif 4',Georgia,serif;
}
.ad-body blockquote.tnyi-testimonial-quote .tnyi-testimonial-quote__author,
.csd-page .rich-content blockquote.tnyi-testimonial-quote .tnyi-testimonial-quote__author {
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px 12px;
  margin:20px 0 0;
  color:#d4ddd4;
  font:400 .82rem/1.5 'Montserrat-Regular',sans-serif;
}
.ad-body blockquote.tnyi-testimonial-quote .tnyi-testimonial-quote__author strong,
.csd-page .rich-content blockquote.tnyi-testimonial-quote .tnyi-testimonial-quote__author strong {
  color:#fff;
  font-family:'Montserrat-Bold',sans-serif;
}
.ad-body blockquote.tnyi-testimonial-quote .tnyi-testimonial-quote__author span::before,
.csd-page .rich-content blockquote.tnyi-testimonial-quote .tnyi-testimonial-quote__author span::before { content:'·'; margin-right:12px; color:#f7e6c6; }
.ad-body img,.csd-page .rich-content img { max-width:100%; height:auto !important; border-radius:8px; }
.ad-body iframe,.csd-page .rich-content iframe,.rich-content video { max-width:100%; }
.ad-body table,.csd-page .rich-content table { display:block; max-width:100%; overflow-x:auto; }
.ad-body a,.rich-content a { color:#ac591e; text-underline-offset:4px; }
.ad-body ul,.ad-body ol,.rich-content ul,.rich-content ol { padding-left:1.4em; }
.ad-body li,.rich-content li { margin-bottom:.6em; }
.ad-tags { border-top:1px solid #dedfd7; padding-top:24px; margin-top:40px; display:flex; flex-wrap:wrap; gap:8px; }
.ad-tag,.badge-tag { border:1px solid #d9ddd1; border-radius:50px; padding:7px 14px; color:#52635d; font:.72rem/1.5 'Montserrat-Medium',sans-serif; }
.csd-meta-bar { padding-top:24px; }
.csd-meta-bar .breadcrumb { display:flex; gap:8px; color:#68716e; font-size:.75rem; }
.csd-meta-bar .breadcrumb a { color:#52635d; }
.csd-meta-row { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:20px 0 28px; border-bottom:1px solid #dedfd7; }
.csd-client-chip { display:flex; align-items:center; gap:10px; font-size:.85rem; }
.csd-client-chip img { height:28px; max-width:100px; object-fit:contain; }
.csd-meta-row .stat { font-size:.75rem; color:#68716e; }
.csd-meta-row .csd-share { display:none; }
.csd-snapshot { padding:28px; margin-bottom:40px; background:#eeeee3; border-radius:4px 24px 4px 4px; }
.csd-snapshot h2 { font:600 1.25rem 'Source Serif 4',Georgia,serif; margin:0 0 24px; }
.csd-snapshot-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.snap-item { display:flex; flex-direction:column; gap:6px; }
.snap-label { font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; color:#68716e; }
.snap-value { font-size:.88rem; overflow-wrap:anywhere; }
.csd-section { margin-bottom:40px; }
.csd-testimonial { margin:48px 0; padding:36px; border-radius:4px 32px 4px 4px; background:#203e40; color:#fff; }
.csd-testimonial blockquote { font:400 1.6rem/1.55 'Source Serif 4',Georgia,serif; }
.testi-author { font-size:.8rem; color:#d4ddd4; margin:24px 0 0; }
.testi-author strong { display:block; color:#fff; }
.csd-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.csd-gallery img { width:100%; height:200px; object-fit:cover; border-radius:8px; cursor:zoom-in; }
.csd-about-us { border-top:1px solid #dedfd7; padding-top:32px; margin-top:40px; }
.csd-about-us h2 { font:600 1.5rem 'Source Serif 4',Georgia,serif; }
.csd-cta-box { background:#203e40; color:#fff; padding:40px; border-radius:4px 32px 4px 4px; margin:48px 0 0; }
.csd-cta-icon { margin-bottom:20px; }
.csd-cta-box h2 { font:500 2rem/1.2 'Source Serif 4',Georgia,serif; color:#fff; }
.csd-cta-box p { color:#d4ddd4; font-size:.9rem; line-height:1.8; }
.csd-cta-box .btn-cta { display:inline-flex; align-items:center; gap:16px; background:#f7e6c6; color:#203e40; padding:14px 24px; border-radius:40px; text-decoration:none; font-size:.85rem; }
.ad-related { background:#eeeee3; padding:72px 24px; }
.ad-related-inner { max-width:1120px; margin:auto; }
.ad-related-label { color:#ac591e; text-transform:uppercase; letter-spacing:.1em; font-size:.7rem; }
.ad-related-heading,.csd-related h2 { font:500 2.3rem/1.2 'Source Serif 4',Georgia,serif; color:#172f42; margin-bottom:32px; }
.csd-related { border-top:1px solid #dedfd7; margin-top:72px; padding-top:48px; }
.ad-related-grid,.csd-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.ad-rel-card,.csd-rel-card { min-width:0; }
.ad-rel-card img,.csd-rel-card img { width:100%; height:210px; object-fit:cover; border-radius:4px 4px 20px 4px; transition:filter .2s; }
.ad-rel-card:hover img,.csd-rel-card:hover img { filter:brightness(.93); }
.rel-body { padding:20px 0; }
.rel-meta { font-size:.68rem; color:#ac591e; text-transform:uppercase; letter-spacing:.05em; }
.ad-rel-card h3,.csd-rel-card h4 { font:500 1.4rem/1.35 'Source Serif 4',Georgia,serif; color:#172f42; }
.rel-body p { color:#68716e; font-size:.85rem; line-height:1.7; }
.rel-link { text-decoration:none; }
.csd-rel-card a { color:#ac591e; font-size:.8rem; }
.cs-lightbox { display:none; position:fixed; inset:0; background:#000e; z-index:9999; align-items:center; justify-content:center; }
.cs-lightbox.active { display:flex; }
.cs-lightbox img { max-width:90vw; max-height:90vh; }
.close-lb { position:fixed; top:20px; right:24px; color:#fff; font-size:2rem; cursor:pointer; }
@media(max-width:991px) { .ed-reading-layout { grid-template-columns:170px minmax(0,1fr); gap:32px; } .ad-related-grid,.csd-related-grid { gap:20px; } }
@media(max-width:767px) { .ad-header,.csd-hero { padding:28px 20px 32px; } .ed-back { margin-bottom:28px; } .ad-title,.csd-hero h1 { font-size:clamp(2rem,8vw,3.2rem); } .ad-hero-wrap,.csd-hero-img-wrap { padding:0 20px; } .ad-hero-img,.csd-hero-img { aspect-ratio:1.4; border-bottom-right-radius:24px; } .ed-reading-layout { display:flex; flex-direction:column; gap:32px; margin-top:36px; padding:0 20px; } .ed-sidebar { position:static; width:100%; } .ed-toc-list { margin-bottom:24px; } .ed-share { display:flex; gap:12px; flex-wrap:wrap; align-items:center; } .ed-share .ed-eyebrow { width:100%; margin-bottom:0; } .ed-share a,.ed-copy { width:auto; gap:8px; } .ed-copy-status { width:100%; } .ad-body,.csd-section .rich-content { font-size:1.08rem; line-height:1.8; } .ad-related-grid,.csd-related-grid { grid-template-columns:1fr; gap:24px; } .ad-related { padding:48px 20px; } .csd-page > .container { padding:0 20px; } .csd-snapshot,.csd-cta-box,.csd-testimonial { padding:24px; } .csd-gallery img { height:140px; } .ad-body blockquote.tnyi-testimonial-quote,.csd-page .rich-content blockquote.tnyi-testimonial-quote { padding:26px 22px 24px; border-radius:4px 24px 4px 4px; } .ad-body blockquote.tnyi-testimonial-quote::before,.csd-page .rich-content blockquote.tnyi-testimonial-quote::before { right:18px; font-size:4.4rem; } .ad-body blockquote.tnyi-testimonial-quote .tnyi-testimonial-quote__text,.csd-page .rich-content blockquote.tnyi-testimonial-quote .tnyi-testimonial-quote__text { font-size:1.2rem; } }
@media(prefers-reduced-motion:reduce) { .editorial-page *,.ad-related * { scroll-behavior:auto !important; transition:none !important; } }

/* Layer the same cover photo behind the navbar-navy hero and in the foreground. */
.ed-hero-stage { position:relative; isolation:isolate; padding-bottom:64px; }
.ed-hero-backdrop { position:absolute; inset:0; z-index:-1; overflow:hidden; background:var(--tnyi-navy, #131F45); clip-path:polygon(0 0,100% 0,100% 88%,0 100%); }
.ed-hero-backdrop img { width:100%; height:100%; object-fit:cover; filter:blur(18px); transform:scale(1.08); opacity:.72; }
.ed-hero-backdrop::after { content:''; position:absolute; inset:0; background:linear-gradient(165deg,rgba(19,31,69,.68),rgba(19,31,69,.82) 50%,var(--tnyi-navy, #131F45) 100%); }
.ed-hero-stage--photo { padding-bottom:0; }
.ed-hero-stage--photo .ed-hero-backdrop { bottom:100px; }
.ed-hero-stage .ad-header,.ed-hero-stage .csd-hero { background:none; padding-top:48px; padding-bottom:48px; }
.ed-hero-stage .ad-title,.ed-hero-stage .csd-hero h1 { color:#fff; font-family:'Montserrat-Bold',sans-serif; font-weight:700; font-size:clamp(2.2rem,4.4vw,4.2rem); line-height:1.2; letter-spacing:-.035em; max-width:1120px; }
.ed-hero-stage .ed-back,.ed-hero-stage .ad-meta,.ed-hero-stage .ad-meta a,.ed-hero-stage .csd-hero-label,.ed-hero-stage .ad-byline,.ed-hero-stage .ad-byline strong,.ed-hero-stage .ed-deck { color:#fff; }
.ed-hero-stage .ed-back { margin-bottom:44px; }
.ed-hero-stage .ad-dot,.ed-hero-stage .csd-hero-label .sep { color:#a9bdf7; }
.ed-hero-stage .ed-back:hover,.ed-hero-stage .ad-meta a:hover { color:#d7e2ff; }
.ed-hero-stage :focus-visible { outline-color:#d7e2ff; }
.ed-hero-stage .ad-hero-wrap,.ed-hero-stage .csd-hero-img-wrap { max-width:1168px; }
.ed-hero-stage .ad-hero-img,.ed-hero-stage .csd-hero-img { width:78%; max-height:none; height:auto; aspect-ratio:auto; border:1px solid rgba(255,255,255,.4); border-radius:24px 24px 56px 24px; box-shadow:0 28px 60px -24px rgba(19,31,69,.32),0 8px 20px -12px rgba(19,31,69,.2); }
@media(max-width:767px) {
  .ed-hero-stage .ad-header,.ed-hero-stage .csd-hero { padding-top:28px; padding-bottom:32px; }
  .ed-hero-stage .ed-back { margin-bottom:30px; }
  .ed-hero-stage .ad-title,.ed-hero-stage .csd-hero h1 { font-size:clamp(1.9rem,7vw,3.2rem); }
  .ed-hero-stage .ad-hero-img,.ed-hero-stage .csd-hero-img { width:92%; border-radius:18px 18px 32px 18px; }
  .ed-hero-stage--photo .ed-hero-backdrop { bottom:36px; }
}
