.tfw-cta, .tfw-cta *{ box-sizing:border-box; }
.tfw-cta{ font-family:'Bricolage Grotesque','Inter',sans-serif; }
.tfw-cta a{ color:inherit; text-decoration:none; }
.tfw-cta .container{ max-width:1440px; margin:0 auto; padding:0 40px; }
.tf-cta-full .tfw-cta .container{ max-width:none; padding:0; }
.tfw-cta .section{ padding:0; }

/* Figma: 161.84° green gradient box, 72px/112px padding, two columns
   (text | glass calendar card) separated by a 76.8px gap. */
.tfw-cta .cta-band{
  background-image: linear-gradient(161.84deg, #07270F 0%, #0F5420 100%);
  color:#fff; padding:72px 72px;
}
.tfw-cta .cta-grid{ max-width:1296px; margin-left:auto; margin-right:auto; display:grid; grid-template-columns:minmax(0,1fr); gap:76.8px; align-items:center; }
.tfw-cta .cta-grid.has-card{ grid-template-columns:minmax(0,1fr) minmax(0,var(--tf-cta-card-w,36.8%)); }
.tfw-cta .cta-grid.card-left .cta-copy{ order:2; }
.tfw-cta .cta-grid.card-left .cta-card{ order:1; }
.tfw-cta .cta-grid.card-left.has-card{ grid-template-columns:minmax(0,var(--tf-cta-card-w,36.8%)) minmax(0,1fr); }

.tfw-cta .cta-copy{ text-align:left; }
.tfw-cta .cta-eyebrow{ display:flex; align-items:center; gap:10px; margin:0 0 14px; color:#E6CE92; font-size:12px; line-height:18px; font-weight:500; letter-spacing:2px; text-transform:uppercase; }
.tfw-cta .cta-eyebrow .line{ display:block; width:28px; height:1.5px; background:#E6CE92; flex-shrink:0; }
.tfw-cta .cta-copy h2{
  font-family:'Playfair Display',Georgia,serif; color:#fff; font-size:40px; line-height:53px; font-weight:500; letter-spacing:1px; margin:0 0 16px;
}
.tfw-cta .cta-copy h2 em{ color:#E6CE92; font-style:italic; font-weight:500; }
.tfw-cta .cta-copy p{ color:#F0DFDC; font-size:18px; line-height:27px; font-weight:300; max-width:465px; margin:0 0 26px; }
.tfw-cta .cta-copy[style*="center"] p{ margin-left:auto; margin-right:auto; }

/* Figma gold button — every value editable in Style → Button. */
.tfw-cta a.btn-cta{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 32px; font-size:16px; font-weight:500; line-height:24px; letter-spacing:1px; text-transform:none;
  background:#C99E43; color:#FFFEFB; border-radius:0; border:0; white-space:nowrap; cursor:pointer;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.tfw-cta a.btn-cta:hover{ background:#B08A38; color:#FFFEFB; }
.tfw-cta a.btn-cta .arrow{ display:block; flex-shrink:0; width:14px; height:14px; transition: transform .25s ease; }
.tfw-cta a.btn-cta:hover .arrow{ transform:translateX(3px); }

/* ---- calendar glass card ---- */
.tfw-cta .cta-card{
  display:grid; grid-template-columns:minmax(0,1fr); gap:12px; padding:20px;
  background:rgba(255,251,242,.08); border:.8px solid rgba(255,251,242,.18);
}
.tfw-cta .cta-row{
  display:flex; align-items:center; gap:14px; padding:14px 16px;
  background:rgba(255,251,242,.95); color:#0F0F0F; text-decoration:none; transition: background-color .2s ease, opacity .2s ease;
}
.tfw-cta .cta-row.is-pending{ opacity:.55; }
.tfw-cta .cta-date{
  flex:0 0 auto; width:52px; padding:6px 0; background:#F0E0BD; color:#232323;
  display:flex; flex-direction:column; align-items:center; text-align:center;
}
.tfw-cta .cta-day{ display:block; font-family:'Playfair Display',Georgia,serif; font-size:22.4px; line-height:24.64px; font-weight:500; color:#232323; }
.tfw-cta .cta-weekday{ display:block; font-family:'Inter','Bricolage Grotesque',sans-serif; font-size:10.5px; line-height:11.55px; font-weight:600; letter-spacing:1.05px; text-transform:uppercase; color:#232323; margin-top:2px; }
.tfw-cta .cta-rtext{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; }
.tfw-cta .cta-rtitle{ font-size:16px; line-height:24px; font-weight:500; color:#0F0F0F; }
.tfw-cta .cta-rsub{ font-size:14px; line-height:21px; font-weight:300; color:#676767; }
.tfw-cta .cta-status{ flex:0 0 auto; margin-left:auto; display:flex; color:#0F0F0F; }
.tfw-cta .cta-status svg{ width:20px; height:20px; display:block; }

@media (max-width:980px){
  .tfw-cta .container{ padding:0 24px; }
  .tfw-cta .cta-band{ padding:56px 40px; }
  .tfw-cta .cta-grid, .tfw-cta .cta-grid.has-card, .tfw-cta .cta-grid.card-left.has-card{ grid-template-columns:minmax(0,1fr); gap:40px; }
  .tfw-cta .cta-grid.card-left .cta-copy{ order:1; }
  .tfw-cta .cta-grid.card-left .cta-card{ order:2; }
  .tfw-cta .cta-copy h2{ font-size:34px; line-height:44px; }
}
@media (max-width:720px){
  .tfw-cta .cta-band{ padding:40px 20px; }
  .tfw-cta .cta-grid{ gap:32px; }
  .tfw-cta .cta-copy h2{ font-size:28px; line-height:38px; }
  .tfw-cta .cta-copy p{ font-size:15px; line-height:23px; }
  .tfw-cta .cta-card{ padding:14px; }
  .tfw-cta .cta-row{ padding:12px; }
  .tfw-cta .cta-date{ width:46px; }
  .tfw-cta .cta-rtitle{ font-size:15px; line-height:22px; }
  .tfw-cta .cta-rsub{ font-size:13px; line-height:19px; }
}
