  :root{
    --teal-deep:#0F3D3E;
    --teal-mid:#155E58;
    --cream:#F7F4EA;
    --paper:#FFFDF8;
    --gold:#C9A227;
    --coral:#D9694C;
    --ink:#1F2A28;
    --ink-soft:#5B6664;
    --line:rgba(15,61,62,0.14);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    -webkit-font-smoothing:antialiased;
    text-align:left;
  }
  p,h1,h2,h3,h4,div{text-align:left;}

  .wrap{max-width:1200px;margin:0 auto;padding:0 28px;}

  /* ---------- HERO ---------- */
  .EPF-hero{
    background:
      radial-gradient(circle at 85% 0%, rgba(201,162,39,0.18), transparent 55%),
      linear-gradient(180deg, var(--teal-deep), var(--teal-mid));
    color:var(--paper);
    padding:80px 0 64px;
    position:relative;
    overflow:hidden;
  }
  .EPF-hero::after{
    content:"";
    position:absolute; inset:0;
    background-image: repeating-linear-gradient(90deg, rgba(255,255,255,0.05) 0 1px, transparent 1px 120px);
    opacity:0.5;
  }
  .eyebrow{
    font-family:'JetBrains Mono', monospace;
    font-size:12.5px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--gold);
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:22px;
  }
  .eyebrow::before{
    content:"";
    width:7px;height:7px;border-radius:50%;
    background:var(--gold);
    box-shadow:0 0 0 4px rgba(201,162,39,0.25);
  }
  h1.title{
    font-family:'Fraunces', serif;
    font-weight:600;
    font-size:clamp(34px, 5.6vw, 58px);
    line-height:1.06;
    margin:0 0 18px;
    max-width:820px;
    letter-spacing:-0.01em;
    text-align: left;
  }
  h1.title em{
    font-style:italic;
    font-weight:400;
    color:var(--gold);
  }
  .EPF-hero-sub{
    font-size:17px;
    line-height:1.65;
    max-width:600px;
    color:rgba(247,244,234,0.82);
    margin-bottom:40px;
    text-align: left;
  }

  .stat-row{
    display:flex;
    gap:34px;
    flex-wrap:wrap;
    border-top:1px solid rgba(247,244,234,0.18);
    padding-top:28px;
  }
  .stat{display:flex; flex-direction:column; gap:4px;}
  .stat .num{
    font-family:'Fraunces', serif;
    font-size:38px;
    font-weight:700;
    color:var(--paper);
    line-height:1;
  }
  .stat .num span{color:var(--gold); font-size:0.55em; font-weight:600;}
  .stat .lbl{
    font-size:12.5px;
    color:rgba(247,244,234,0.65);
    text-transform:uppercase;
    letter-spacing:0.06em;
    font-family:'JetBrains Mono', monospace;
  }

  /* ---------- SECTION SHELL ---------- */
  section{padding:64px 0;}
  .section-head{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:20px;
    margin-bottom:38px;
    border-bottom:1px solid var(--line);
    padding-bottom:18px;
  }
  .section-head h2{
    font-family:'Fraunces', serif;
    font-size:clamp(24px,3.4vw,32px);
    font-weight:600;
    margin:0;
    color:var(--teal-deep);
  }
  .section-tag{
    font-family:'JetBrains Mono', monospace;
    font-size:12px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--ink-soft);
    white-space:nowrap;
  }

  /* ---------- CATEGORY CARDS ---------- */
  .cat-group{margin-bottom:46px;}
  .cat-group-head{
    display:flex;
    align-items:center;
    gap:14px;
    margin-bottom:20px;
  }
  .cat-group-head .roman{
    font-family:'Fraunces', serif;
    font-weight:700;
    font-size:22px;
    color:var(--gold);
    border:1.5px solid var(--gold);
    width:42px; height:42px;
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
  }
  .cat-group-head h3{
    margin:0;
    font-family:'Fraunces', serif;
    font-weight:600;
    font-size:21px;
    color:var(--teal-deep);
  }
  .cat-group-head p{
    margin:2px 0 0;
    font-size:14px;
    color:var(--ink-soft);
  }

  .cards{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(230px,1fr));
    gap:18px;
  }
  .card{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:14px;
    padding:24px 22px 22px;
    position:relative;
    transition:transform .25s ease, box-shadow .25s ease;
  }
  .card:hover{
    transform:translateY(-3px);
    box-shadow:0 14px 28px -16px rgba(15,61,62,0.35);
  }
  .card h4{
    font-family:'Fraunces', serif;
    font-size:18px;
    font-weight:600;
    margin:0 0 12px;
    color:var(--ink);
  }
  .freq-badge{
    display:inline-flex;
    align-items:baseline;
    gap:6px;
    background:rgba(15,61,62,0.06);
    border:1px solid var(--line);
    border-radius:999px;
    padding:6px 13px 6px 11px;
    margin-bottom:14px;
  }
  .freq-badge .n{
    font-family:'JetBrains Mono', monospace;
    font-weight:700;
    font-size:16px;
    color:var(--teal-deep);
  }
  .freq-badge .u{
    font-size:11.5px;
    color:var(--ink-soft);
    text-transform:uppercase;
    letter-spacing:0.03em;
  }
  .card .meta{
    font-size:13.5px;
    color:var(--ink-soft);
    line-height:1.6;
    margin:0;
    text-align: left;
  }
  .card .meta strong{color:var(--ink); font-weight:600;}

  /* ---------- TABLE ---------- */
  .table-wrap{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:14px;
    overflow:hidden;
  }
  table{width:100%; border-collapse:collapse; font-size:14.5px;}
  thead th{
    text-align:left;
    font-family:'JetBrains Mono', monospace;
    font-size:11.5px;
    letter-spacing:0.05em;
    text-transform:uppercase;
    color:var(--paper);
    background:var(--teal-deep);
    padding:14px 18px;
    font-weight:500;
  }
  tbody td{
    padding:14px 18px;
    border-bottom:1px solid var(--line);
    color:var(--ink);
  }
  tbody tr:last-child td{border-bottom:none;}
  tbody tr:nth-child(even){background:rgba(15,61,62,0.035);}
  tbody td:first-child{font-weight:600; color:var(--teal-deep);}
  td.center{color:var(--gold); font-family:'JetBrains Mono', monospace; font-weight:700;}

  /* ---------- TIMELINE (HOW TO APPLY) ---------- */
  .timeline{
    display:flex;
    flex-direction:column;
    gap:0;
  }
  .tl-step{
    display:grid;
    grid-template-columns:46px 1fr;
    gap:18px;
    padding-bottom:28px;
    position:relative;
  }
  .tl-step:not(:last-child)::before{
    content:"";
    position:absolute;
    left:22px; top:46px; bottom:-4px;
    width:1px;
    background:var(--line);
  }
  .tl-num{
    font-family:'JetBrains Mono', monospace;
    font-weight:700;
    font-size:14px;
    color:var(--teal-deep);
    background:var(--paper);
    border:1.5px solid var(--teal-deep);
    width:44px;height:44px;
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    z-index:1;
  }
  .tl-content h4{
    margin:6px 0 6px;
    font-family:'Fraunces', serif;
    font-size:16.5px;
    font-weight:600;
  }

  .tl-content p{margin:0; font-size:14px; color:var(--ink-soft); line-height:1.6;text-align:left;}

  /* ---------- CHECKLIST ---------- */
  .checklist{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:14px;
  }
  .check-item{
    display:flex;
    gap:12px;
    align-items:flex-start;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:12px;
    padding:16px 18px;
  }
  .check-item .mark{
    flex-shrink:0;
    width:20px;height:20px;
    border-radius:50%;
    background:var(--teal-deep);
    color:var(--paper);
    font-size:12px;
    display:flex; align-items:center; justify-content:center;
    margin-top:2px;
  }
  .check-item p{margin:0; font-size:14px; color:var(--ink); line-height:1.55;text-align:left;}

  /* ---------- FAQ ---------- */
  .faq-item{
    border-bottom:1px solid var(--line);
  }
  .faq-item:first-child{border-top:1px solid var(--line);}
  .faq-q{
    width:100%;
    background:none;
    border:none;
    text-align:left;
    padding:20px 4px;
    font-family:'Fraunces', serif;
    font-size:16.5px;
    font-weight:600;
    color:var(--ink);
    cursor:pointer;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
  }
  .faq-q .icon{
    font-family:'JetBrains Mono', monospace;
    font-size:18px;
    color:var(--gold);
    flex-shrink:0;
    transition:transform .25s ease;
  }
  .faq-item.open .faq-q .icon{transform:rotate(45deg);}
  .faq-a{
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease;
  }
  .faq-a p{
    margin:0 4px 20px;
    font-size:14.5px;
    color:var(--ink-soft);
    line-height:1.65;
    max-width:780px;
    text-align: left;
  }

  /* ---------- BENEFITS ---------- */
  .benefit-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:18px;
  }
  .benefit{
    background:linear-gradient(160deg, var(--teal-deep), var(--teal-mid));
    border-radius:14px;
    padding:22px;
    color:var(--paper);
  }
  .benefit .glyph{
    font-family:'Fraunces', serif;
    font-size:26px;
    color:var(--gold);
    margin-bottom:10px;
    display:block;
  }
  .benefit p{margin:0; font-size:14px; line-height:1.55; color:rgba(247,244,234,0.88);text-align:left;}

  /* ---------- FOOTER NOTE ---------- */
  .note-strip{
    background:var(--paper);
    border:1px solid var(--gold);
    border-left:4px solid var(--gold);
    border-radius:10px;
    padding:20px 24px;
    font-size:14px;
    color:var(--ink);
    line-height:1.65;
  }
  .note-strip strong{color:var(--teal-deep);}

.download-btn {
  padding: 20px 50px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
}

.download-btn h2 {
  font-size: 1.1rem;
  font-weight: 600;
  color: #002867;
}

.download-btn button {
  padding: 0.7rem 1.5rem;
  background-color: #007BFF;
  color: #ffffff;
  border: none;
  border-radius: 8px;
  font-size: 1rem;
  cursor: pointer;
  transition: background-color 0.2s;
}

.download-btn button:hover {
  background-color: #0056b3;
}


  @media (max-width:640px){
    .EPF-hero{padding:56px 0 44px;}
    section{padding:46px 0;}
    .stat-row{gap:24px;}
  }

  @media (prefers-reduced-motion: reduce){
    *{transition:none !important; scroll-behavior:auto !important;}
  }
  
  
@media (max-width: 600px) {
  .download-btn button {
    width: 100%;
    text-align: center;
  }
}