/* Case-study pages and dark/light project covers.
   Works with the template's theme switch: body.tt-light-style-on = light theme. */

/* Covers: dark artwork by default, light artwork in the light theme */
.cs-cover-light{display:none!important}
body.tt-light-style-on .cs-cover-dark{display:none!important}
body.tt-light-style-on .cs-cover-light{display:block!important}
.pgi-image .cs-cover-dark,.pgi-image .cs-cover-light{width:100%;height:100%;object-fit:cover}

/* Case page header */
#page-header.cs-hdr .ph-caption-title{font-size:clamp(34px,5.2vw,84px);line-height:1.08;letter-spacing:-.03em}
#page-header.cs-hdr .ph-caption{max-width:1100px}

/* Lede and meta */
.cs-lede{font-size:clamp(22px,2.4vw,36px);line-height:1.4;letter-spacing:-.02em;margin:0 0 56px}
.cs-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:28px 36px;border-top:1px solid rgba(128,128,128,.35);padding-top:28px;margin:0}
.cs-meta dt{font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.6;margin:0 0 8px}
.cs-meta dd{margin:0;font-size:15px;line-height:1.6}

/* Cover image at top of the story */
.cs-cover{max-width:1200px;margin:0 auto;padding:0 clamp(16px,4vw,48px) 110px}
.cs-cover img{display:block;width:100%;height:auto;border-radius:18px}

/* Copy sections */
.cs-copy{max-width:860px}
.cs-copy .cs-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;opacity:.6;margin-bottom:18px}
.cs-copy h2{margin-bottom:36px}
.cs-copy p{margin:0 0 26px;font-size:clamp(18px,1.7vw,24px);line-height:1.6;letter-spacing:-.01em}
.cs-copy p:first-of-type{font-size:clamp(20px,2vw,28px);line-height:1.5}
.cs-copy ul{margin:0 0 30px;padding-left:1.1em;font-size:clamp(17px,1.5vw,21px);line-height:1.6}
.cs-copy li+li{margin-top:10px}

/* Figures */
.cs-figs{max-width:1200px;margin:0 auto;padding:0 clamp(16px,4vw,48px) 100px}
.cs-fig{margin:0 0 40px}
.cs-fig img{display:block;width:100%;height:auto;border-radius:14px;border:1px solid rgba(128,128,128,.25)}
.cs-fig figcaption{position:static!important;right:auto!important;bottom:auto!important;background:none!important;color:inherit!important;font-style:normal!important;margin-top:14px;padding:0!important;font-size:13px;line-height:1.7;opacity:.65;max-width:760px}
.cs-fig-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:24px;align-items:start;margin-bottom:40px}
.cs-fig-row .cs-fig{margin:0}

/* Metrics */
.cs-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:36px;margin:30px 0 0}
.cs-metric{border-top:1px solid rgba(128,128,128,.35);padding-top:20px}
.cs-metric b{display:block;font-size:clamp(26px,3vw,40px);line-height:1.15;letter-spacing:-.02em;font-weight:600;margin-bottom:8px}
.cs-metric span{display:block;font-size:14px;line-height:1.5}
.cs-metric small{display:block;margin-top:10px;font-size:12px;line-height:1.6;opacity:.6}
.cs-metric small i{display:block;margin-top:4px}

@media (max-width:768px){
  .cs-lede{margin-bottom:40px}
  .cs-cover{padding-bottom:70px}
  .cs-figs{padding-bottom:70px}
}

/* ---------- Content blocks (HTML instead of images) ---------- */
body{--cs-fg:#f3f1ea;--cs-muted:rgba(243,241,234,.62);--cs-line:rgba(255,255,255,.13);--cs-card:rgba(255,255,255,.035);--cs-card2:rgba(255,255,255,.06);--cs-accent:#8ea2ff}
body.tt-light-style-on{--cs-fg:#141414;--cs-muted:rgba(20,20,20,.62);--cs-line:rgba(0,0,0,.12);--cs-card:rgba(0,0,0,.03);--cs-card2:rgba(0,0,0,.05)}
.cs-blocks{max-width:1200px;margin:0 auto;padding:0 clamp(16px,4vw,48px) 40px}
.cs-block{margin:0 0 80px}
.cs-bh{font-size:clamp(20px,1.8vw,26px);margin:0 0 10px;color:var(--cs-fg)}
.cs-bt{font-size:16px;line-height:1.65;color:var(--cs-muted);max-width:760px;margin:0 0 28px}
.cs-tag{display:inline-block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--cs-accent);margin-bottom:12px}
.cs-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.cs-card{background:var(--cs-card);border:1px solid var(--cs-line);border-radius:18px;padding:26px 24px}
.cs-card h5{font-size:19px;line-height:1.35;margin:0 0 10px;color:var(--cs-fg)}
.cs-card p{font-size:15px;line-height:1.65;color:var(--cs-muted);margin:0}
.cs-card ul{margin:6px 0 14px;padding-left:1.1em;font-size:14px;line-height:1.6;color:var(--cs-muted)}
.cs-card li+li{margin-top:4px}
.cs-num{display:inline-block;font-size:12px;font-weight:600;color:var(--cs-accent);border:1px solid var(--cs-accent);border-radius:99px;padding:2px 9px;margin-bottom:16px}
.cs-goal{font-style:italic;margin-bottom:14px!important}
.cs-sub{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--cs-fg);opacity:.75;margin-top:10px}
.cs-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--cs-line);border-radius:16px}
.cs-journey,.cs-table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.55;min-width:760px}
.cs-journey th,.cs-journey td,.cs-table th,.cs-table td{border-bottom:1px solid var(--cs-line);padding:14px 16px;text-align:left;vertical-align:top;color:var(--cs-muted)}
.cs-journey thead th,.cs-table thead th{color:var(--cs-fg);font-weight:600;background:var(--cs-card2);font-size:13px;letter-spacing:.02em}
.cs-journey tbody th{color:var(--cs-fg);font-weight:600;white-space:nowrap;background:var(--cs-card)}
.cs-journey tr:last-child td,.cs-journey tr:last-child th,.cs-table tr:last-child td{border-bottom:0}
.cs-row-pain td{color:#f08b7a}
.cs-row-opportunity td{color:var(--cs-accent)}
body.tt-light-style-on .cs-row-pain td{color:#b4432f}
.cs-tree{border:1px solid var(--cs-line);border-radius:18px;padding:28px;background:var(--cs-card)}
.cs-tree-root{display:inline-block;background:var(--cs-accent);color:#0b0b0c;font-weight:600;border-radius:10px;padding:10px 18px;margin-bottom:26px}
.cs-tree-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:18px;position:relative}
.cs-tree-col{border-top:2px solid var(--cs-accent);padding-top:14px}
.cs-tree-node{font-weight:600;color:var(--cs-fg);margin-bottom:10px;font-size:15px}
.cs-tree-leaf{font-size:13px;color:var(--cs-muted);padding:6px 0 6px 12px;border-left:1px solid var(--cs-line)}
.cs-flow{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:14px;counter-reset:f}
.cs-flow li{counter-increment:f;position:relative;flex:1 1 170px;background:var(--cs-card);border:1px solid var(--cs-line);border-radius:16px;padding:18px 18px 16px}
.cs-flow li::before{content:counter(f,decimal-leading-zero);display:block;font-size:12px;color:var(--cs-accent);margin-bottom:8px;font-weight:600}
.cs-flow li b{display:block;color:var(--cs-fg);font-size:16px;margin-bottom:6px}
.cs-flow li span{display:block;font-size:13px;line-height:1.55;color:var(--cs-muted)}
.cs-flow li.is-added{border-style:dashed;border-color:#e0a23a}
.cs-flow li em{display:inline-block;margin-top:10px;font-style:normal;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#e0a23a}
.cs-compare{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:stretch}
.cs-cmp{border:1px solid var(--cs-line);border-radius:18px;padding:24px;background:var(--cs-card)}
.cs-cmp.is-after{border-color:var(--cs-accent)}
.cs-cmp h5{color:var(--cs-fg);font-size:18px;margin:0 0 10px}
.cs-cmp ul{margin:0;padding-left:1.1em;font-size:15px;line-height:1.65;color:var(--cs-muted)}
.cs-cmp-arrow{align-self:center;font-size:28px;color:var(--cs-accent)}
.cs-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;margin-bottom:30px}
.cs-sw{border:1px solid var(--cs-line);border-radius:14px;overflow:hidden;background:var(--cs-card)}
.cs-sw i{display:block;height:70px}
.cs-sw b,.cs-sw span{display:block;padding:0 12px;font-size:13px;color:var(--cs-fg)}
.cs-sw b{padding-top:10px}.cs-sw span{color:var(--cs-muted);padding-bottom:12px;font-family:ui-monospace,Menlo,monospace;font-size:12px}
.cs-typescale{border:1px solid var(--cs-line);border-radius:16px;margin-bottom:24px}
.cs-ts{display:grid;grid-template-columns:220px 1fr;gap:20px;align-items:baseline;padding:16px 20px;border-bottom:1px solid var(--cs-line)}
.cs-ts:last-child{border-bottom:0}
.cs-ts-meta{font-size:12px;color:var(--cs-muted);font-family:ui-monospace,Menlo,monospace}
.cs-ts-sample{color:var(--cs-fg);line-height:1.2;font-family:Inter,system-ui,sans-serif}
.cs-chips{display:flex;flex-wrap:wrap;gap:10px}
.cs-chips span{border:1px solid var(--cs-line);border-radius:99px;padding:7px 14px;font-size:13px;color:var(--cs-fg);background:var(--cs-card)}
.cs-callout{border-left:3px solid #e0a23a;background:var(--cs-card);border-radius:0 14px 14px 0;padding:20px 24px}
.cs-callout p{margin:0;font-size:16px;line-height:1.65;color:var(--cs-fg)}
.cs-img img{display:block;width:100%;height:auto;border-radius:14px;border:1px solid var(--cs-line)}
.cs-cap,.cs-gcap{font-size:13px;line-height:1.6;color:var(--cs-muted);margin:12px 0 0}
.cs-gallery-head{max-width:1104px;margin:0 auto 34px}
.cs-gallery .tt-gallery-image img{border-radius:14px}
.cs-metric b{color:var(--cs-fg)}
@media (max-width:768px){
 .cs-compare{grid-template-columns:1fr}.cs-cmp-arrow{transform:rotate(90deg);justify-self:center}
 .cs-ts{grid-template-columns:1fr;gap:6px}
 .cs-block{margin-bottom:56px}
}
.cs-hero-shot{margin:0 0 40px}
.cs-gallery .tt-wrap.max-width-1200 .cs-gallery-head{max-width:none}
/* Phone galleries: fixed-width phones aligned to the text column */
.cs-phones{display:flex;flex-wrap:wrap;gap:28px 24px;align-items:flex-start}
.cs-phone{margin:0;width:calc((100% - 72px)/4);max-width:250px}
.cs-phone img{display:block;width:100%;height:auto;border-radius:22px;border:1px solid var(--cs-line)}
.cs-phone .cs-gcap{margin-top:12px}
@media (max-width:768px){.cs-phone{width:calc((100% - 24px)/2)}}
/* One shared column: copy, blocks and galleries start on the same left edge */
.cs-col,.cs-blocks{max-width:1200px;margin:0 auto;padding-left:clamp(16px,4vw,48px);padding-right:clamp(16px,4vw,48px)}
.cs-col .cs-copy,.cs-col .cs-lede{max-width:860px}
.cs-gallery-head{max-width:860px!important;margin:0 0 34px!important}
.cs-shots{display:grid;grid-template-columns:1fr 1fr;gap:36px 28px;align-items:start}
.cs-shot{margin:0}.cs-shot.is-hero{grid-column:1/-1}
.cs-shot img{display:block;width:100%;height:auto;border-radius:14px;border:1px solid var(--cs-line)}
@media (max-width:768px){.cs-shots{grid-template-columns:1fr}}
/* Palette: brand / neutrals / status */
.cs-pal{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:28px;margin-bottom:28px}
.cs-pal-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--cs-muted);margin:0 0 12px}
.cs-pal-hero{border-radius:18px;padding:22px;min-height:220px;display:flex;flex-direction:column;justify-content:flex-end;gap:2px}
.cs-pal-hero .cs-pal-aa{font-size:64px;line-height:1;font-weight:600;margin-bottom:auto;letter-spacing:-.02em}
.cs-pal-hero b{font-size:17px}.cs-pal-hero span{font-family:ui-monospace,Menlo,monospace;font-size:13px;opacity:.8}
.cs-pal-sub{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-top:12px}
.cs-pal-chip{display:flex;align-items:center;gap:10px;border:1px solid var(--cs-line);border-radius:12px;padding:10px;background:var(--cs-card)}
.cs-pal-chip i{width:28px;height:28px;border-radius:8px;flex:none;border:1px solid var(--cs-line)}
.cs-pal-chip b{font-size:13px;color:var(--cs-fg);display:block}.cs-pal-chip span{display:block;font-size:11px;color:var(--cs-muted);font-family:ui-monospace,Menlo,monospace}
.cs-pal-chip>b,.cs-pal-chip>span{flex:1}
.cs-ramp{display:flex;border:1px solid var(--cs-line);border-radius:16px;overflow:hidden;margin-bottom:24px}
.cs-ramp-step{flex:1;min-width:0}
.cs-ramp-step i{display:block;height:92px}
.cs-ramp-step b,.cs-ramp-step span{display:block;padding:0 10px;font-size:12px;color:var(--cs-fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-ramp-step b{padding-top:10px}.cs-ramp-step span{color:var(--cs-muted);font-family:ui-monospace,Menlo,monospace;font-size:11px;padding-bottom:10px}
.cs-pal-status{display:flex;flex-wrap:wrap;gap:10px}
.cs-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--cs-line);border-radius:99px;padding:7px 14px;font-size:13px;color:var(--cs-fg);background:var(--cs-card)}
.cs-pill i{width:10px;height:10px;border-radius:50%}.cs-pill em{font-style:normal;color:var(--cs-muted);font-family:ui-monospace,Menlo,monospace;font-size:11px}
@media (max-width:900px){.cs-pal{grid-template-columns:1fr}}
.cs-pal-chip>div{min-width:0}.cs-pal-chip>div b,.cs-pal-chip>div span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-pal-status{margin-bottom:22px}

/* creative-2 grid: after every 4 cards both columns end at the same height, so packery's pick
   depends on sub-pixel rounding and a card can jump to the right. Keep the right column 2px taller. */
@media (min-width:768px){.tt-grid.ttgr-layout-creative-2 .tt-grid-item:nth-of-type(4n+4){margin-bottom:2px}}
