/* TFM Case Study — Heating Oil Delivery
   All rules are scoped under .tfm-cs so the theme is never affected. */

.tfm-cs{
  --tfm-indigo:#283088;
  --tfm-peri:#A8A0D8;
  --tfm-peri-lt:#E6E4F2;
  --tfm-ink:#1A1A1A;
  --tfm-offwhite:#F8F8F8;
  --tfm-green:#3DB54A;

  font-family:'Inter',Arial,sans-serif;
  color:var(--tfm-ink);
  background:#fff;
  line-height:1.6;
  font-size:16px;
}
.tfm-cs *,.tfm-cs *::before,.tfm-cs *::after{margin:0;padding:0;box-sizing:border-box}
.tfm-cs h1,.tfm-cs h2,.tfm-cs h3,.tfm-cs .tfm-stat-num{font-family:'Poppins',Montserrat,Arial,sans-serif;color:inherit}
.tfm-cs ul{list-style:none}
.tfm-cs a{text-decoration:none}

.tfm-cs .tfm-wrap{max-width:1040px;margin:0 auto;padding:0 32px}

/* ---------- hero ---------- */
.tfm-cs .tfm-hero{position:relative;background:var(--tfm-indigo);color:#fff;overflow:hidden;padding:88px 0 72px}
.tfm-cs .tfm-hero .tfm-dots{position:absolute;top:0;right:0;width:280px;height:190px;pointer-events:none}
.tfm-cs .tfm-eyebrow{color:var(--tfm-peri);font-family:'Poppins',sans-serif;font-weight:500;font-size:.8rem;letter-spacing:.35em;text-transform:uppercase;margin-bottom:18px}
.tfm-cs .tfm-hero h1{font-weight:700;line-height:1.08;font-size:clamp(2rem,5vw,3.4rem);color:#fff}
.tfm-cs .tfm-hero h1 .tfm-big{display:block;font-size:clamp(2.4rem,6vw,4.2rem)}
.tfm-cs .tfm-hero .tfm-sub{color:var(--tfm-offwhite);max-width:560px;margin-top:22px;font-size:1.05rem}

/* ---------- buttons ---------- */
.tfm-cs .tfm-btn{display:inline-block;font-family:'Poppins',sans-serif;font-weight:600;font-size:.95rem;text-decoration:none;padding:13px 28px;transition:transform .15s ease,background .15s ease;border:0}
.tfm-cs .tfm-btn-light{background:#fff;color:var(--tfm-indigo)}
.tfm-cs .tfm-btn-light:hover{background:var(--tfm-offwhite);color:var(--tfm-indigo);transform:translateY(-2px)}
.tfm-cs .tfm-btn-indigo{background:var(--tfm-indigo);color:#fff}
.tfm-cs .tfm-btn-indigo:hover{background:#1f2670;color:#fff;transform:translateY(-2px)}

/* ---------- main two-column ---------- */
.tfm-cs .tfm-main{padding:64px 0 24px}
.tfm-cs .tfm-cols{display:grid;grid-template-columns:1fr 300px;gap:56px;align-items:start}
.tfm-cs .tfm-section-label{color:var(--tfm-indigo);font-family:'Poppins',sans-serif;font-weight:700;font-size:1.05rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px}
.tfm-cs .tfm-body-copy p{margin-bottom:16px;font-size:.98rem}
.tfm-cs .tfm-body-copy{margin-bottom:40px}
.tfm-cs ul.tfm-funnel{margin:6px 0 16px}
.tfm-cs ul.tfm-funnel li{position:relative;padding-left:22px;margin-bottom:10px;font-size:.98rem}
.tfm-cs ul.tfm-funnel li::before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;background:var(--tfm-indigo)}
.tfm-cs ul.tfm-funnel li strong{color:var(--tfm-indigo)}
.tfm-cs .tfm-aside-note{font-style:italic;color:#444}

/* ---------- results rail ---------- */
.tfm-cs .tfm-results-head{background:#000;color:#fff;text-align:center;font-family:'Poppins',sans-serif;font-weight:700;letter-spacing:.08em;padding:10px 0;font-size:.95rem}
.tfm-cs .tfm-stat{background:var(--tfm-indigo);color:#fff;text-align:center;padding:26px 16px 22px;margin-top:14px}
.tfm-cs .tfm-stat-num{font-weight:700;font-size:2.9rem;line-height:1}
.tfm-cs .tfm-stat-label{color:var(--tfm-offwhite);font-family:'Poppins',sans-serif;font-weight:500;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;margin-top:10px;line-height:1.7}

/* ---------- strategy ---------- */
.tfm-cs .tfm-strategy{padding:40px 0 8px}
.tfm-cs .tfm-strategy h2{color:var(--tfm-indigo);font-weight:700;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.15;margin-bottom:32px;max-width:520px}
.tfm-cs .tfm-seasons{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:56px}
.tfm-cs .tfm-season{background:var(--tfm-peri-lt);border-top:6px solid var(--tfm-indigo);padding:22px 20px 24px}
.tfm-cs .tfm-season h3{color:var(--tfm-indigo);font-size:.95rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.tfm-cs .tfm-season .tfm-months{color:#6A63A8;font-family:'Poppins',sans-serif;font-weight:500;font-size:.75rem;letter-spacing:.12em;margin:4px 0 14px}
.tfm-cs .tfm-season p{font-size:.88rem;line-height:1.65}

/* ---------- targeting ---------- */
.tfm-cs .tfm-targeting{margin-bottom:56px}
.tfm-cs ul.tfm-targets li{position:relative;padding-left:22px;margin-bottom:10px;font-size:.96rem}
.tfm-cs ul.tfm-targets li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;background:var(--tfm-indigo)}

/* ---------- comparison table ---------- */
.tfm-cs .tfm-compare{margin-bottom:64px}
.tfm-cs .tfm-compare-table{width:100%;border-collapse:collapse;border:0}
.tfm-cs .tfm-compare-table th{font-family:'Poppins',sans-serif;font-weight:700;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:#fff;text-align:left;padding:12px 16px;border:0}
.tfm-cs .tfm-compare-table th:first-child{background:#000}
.tfm-cs .tfm-compare-table th:last-child{background:var(--tfm-indigo)}
.tfm-cs .tfm-compare-table td{padding:12px 16px;font-size:.92rem;border:0;border-left:2px solid #fff}
.tfm-cs .tfm-compare-table tr:nth-child(odd) td{background:var(--tfm-peri-lt)}
.tfm-cs .tfm-compare-table td.tfm-owned{font-weight:600}
.tfm-cs .tfm-compare-table td.tfm-owned::before{content:"\2713";color:var(--tfm-green);font-weight:700;margin-right:10px}

/* ---------- mid-page CTA ---------- */
.tfm-cs .tfm-mid-cta{background:var(--tfm-peri-lt);padding:26px 28px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin-bottom:64px}
.tfm-cs .tfm-mid-cta p{font-size:1rem;max-width:560px;margin:0}
.tfm-cs .tfm-mid-cta p strong{color:var(--tfm-indigo)}

/* ---------- math block ---------- */
.tfm-cs .tfm-math{position:relative;background:var(--tfm-indigo);color:var(--tfm-offwhite);padding:40px 44px 44px;overflow:hidden;margin-bottom:48px}
.tfm-cs .tfm-math::after{content:"";position:absolute;right:0;bottom:0;width:0;height:0;border-style:solid;border-width:0 0 110px 110px;border-color:transparent transparent #000 transparent}
.tfm-cs .tfm-math h2{color:#fff;font-weight:700;font-size:1.15rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:16px}
.tfm-cs .tfm-math p{font-family:'Poppins',sans-serif;font-weight:400;font-size:.98rem;line-height:1.8;max-width:820px;margin-bottom:12px}
.tfm-cs .tfm-math .tfm-kicker{font-weight:600;color:#fff}

/* ---------- close ---------- */
.tfm-cs .tfm-close-line{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline;padding-bottom:24px}
.tfm-cs .tfm-close-line .tfm-lbl{color:var(--tfm-indigo);font-family:'Poppins',sans-serif;font-weight:700;font-size:.9rem;letter-spacing:.05em;text-transform:uppercase}
.tfm-cs .tfm-close-line .tfm-ch{font-size:.95rem}
.tfm-cs .tfm-cta-close{position:relative;background:var(--tfm-indigo);color:#fff;text-align:center;padding:64px 32px 72px;overflow:hidden;margin-top:24px}
.tfm-cs .tfm-cta-close h2{font-weight:700;font-size:clamp(1.5rem,3.5vw,2.2rem);margin-bottom:12px;color:#fff}
.tfm-cs .tfm-cta-close p{color:var(--tfm-offwhite);max-width:520px;margin:0 auto 28px;font-size:1rem}
.tfm-cs .tfm-cta-close .tfm-dots{position:absolute;top:0;right:0;width:220px;height:150px;pointer-events:none}

@media (max-width:820px){
  .tfm-cs .tfm-cols{grid-template-columns:1fr}
  .tfm-cs .tfm-seasons{grid-template-columns:1fr}
  .tfm-cs .tfm-hero .tfm-dots{width:180px;height:130px}
  .tfm-cs .tfm-math{padding:32px 26px 40px}
  .tfm-cs .tfm-compare-table td,.tfm-cs .tfm-compare-table th{padding:10px 12px}
}
@media (prefers-reduced-motion:no-preference){
  .tfm-cs .tfm-stat{transition:transform .2s ease}
  .tfm-cs .tfm-stat:hover{transform:translateY(-3px)}
}
@media (prefers-reduced-motion:reduce){
  .tfm-cs .tfm-btn{transition:none}
}

/* ---------- theme-conflict guards ----------
   Some themes apply card backgrounds, rounded corners, and shadows to inner
   containers. These rules pin the case study to its intended look. */
.tfm-cs .tfm-wrap{background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.tfm-cs .tfm-hero,.tfm-cs .tfm-math,.tfm-cs .tfm-cta-close,.tfm-cs .tfm-mid-cta,.tfm-cs .tfm-season,.tfm-cs .tfm-stat{border-radius:0!important;box-shadow:none!important}
.tfm-cs .tfm-hero{background:var(--tfm-indigo)!important}
.tfm-cs .tfm-hero h1{color:#fff!important;text-shadow:none}
.tfm-cs .tfm-hero .tfm-sub{color:var(--tfm-offwhite)!important}
.tfm-cs .tfm-eyebrow{color:var(--tfm-peri)!important}
.tfm-cs .tfm-hero .tfm-wrap>*{background:none!important}
.tfm-cs .tfm-btn,.tfm-cs a.tfm-btn{border-radius:0!important;border:0!important;box-shadow:none!important;text-decoration:none!important}
.tfm-cs a.tfm-btn-light{background:#fff!important;color:var(--tfm-indigo)!important}
.tfm-cs a.tfm-btn-light:hover{background:var(--tfm-offwhite)!important;color:var(--tfm-indigo)!important}
.tfm-cs a.tfm-btn-indigo{background:var(--tfm-indigo)!important;color:#fff!important}
.tfm-cs a.tfm-btn-indigo:hover{background:#1f2670!important;color:#fff!important}
.tfm-cs .tfm-stat-num,.tfm-cs .tfm-stat-label,.tfm-cs .tfm-results-head{color:#fff!important}
.tfm-cs .tfm-math h2,.tfm-cs .tfm-cta-close h2{color:#fff!important}
.tfm-cs .tfm-math p,.tfm-cs .tfm-cta-close p{color:var(--tfm-offwhite)!important}

/* ---------- closing CTA: force centering ---------- */
.tfm-cs .tfm-cta-close{text-align:center!important}
.tfm-cs .tfm-cta-close h2{text-align:center!important;max-width:640px;margin-left:auto!important;margin-right:auto!important}
.tfm-cs .tfm-cta-close p{text-align:center!important;margin-left:auto!important;margin-right:auto!important}
.tfm-cs .tfm-cta-close .tfm-btn{margin-left:auto;margin-right:auto}

/* ---------- hero: extra left/right breathing room ---------- */
.tfm-cs .tfm-hero .tfm-wrap{padding-left:72px!important;padding-right:72px!important}
@media (max-width:820px){
  .tfm-cs .tfm-hero .tfm-wrap{padding-left:28px!important;padding-right:28px!important}
}
