.tfw-banner, .tfw-banner *{ box-sizing:border-box; }
.tfw-banner{ font-family:'Bricolage Grotesque','Inter',sans-serif; }
.tfw-banner a{ color:inherit; text-decoration:none; }
.tfw-banner .container{ max-width:1440px; margin:0 auto; padding:0 40px; }
.tfw-banner .section{ padding:78px 0; }
.tfw-banner .banner{ position:relative; border-radius:20px; overflow:hidden; aspect-ratio:1360/578; }
.tfw-banner .banner > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.tfw-banner .bg-video{ position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; display:block; pointer-events:none; }
.tfw-banner .bg-video-embed{ position:absolute; top:0; left:0; width:100%; height:100%; overflow:hidden; pointer-events:none; }
.tfw-banner .bg-video-embed iframe{
  position:absolute; top:50%; left:50%; width:177.78vh; min-width:100%; height:100%; min-height:56.25vw;
  transform:translate(-50%,-50%); border:0;
}
.tfw-banner .banner-scrim{ position:absolute; inset:0; background:#000; opacity:.42; }
.tfw-banner .banner-content{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; gap:30px; padding:0 24px;
}
.tfw-banner .banner-text{ display:flex; flex-direction:column; align-items:inherit; text-align:inherit; max-width:100%; }
.tfw-banner .banner-content h2{
  font-family:'Playfair Display',Georgia,serif; color:#FFFEFB; font-size:40px; line-height:53px; font-weight:600; letter-spacing:1px;
  margin:0 0 15px;
}
.tfw-banner .banner-content h2 em{ color:#C99E43; font-style:italic; font-weight:600; }
.tfw-banner .banner-content p{ color: rgba(255,254,251,.7); font-size:18px; line-height:27px; max-width:800px; font-weight:300; margin:0; }
/* Figma "cta-primary": gold fill, 15px × 32px padding, 16px / 500 white text,
   1px tracking, 0 10px 12px rgba(0,0,0,.2) shadow — all editable in Style → Button. */
.tfw-banner a.btn-banner{
  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:#FFFFFF; border-radius:0; border:0; white-space:nowrap; cursor:pointer;
  box-shadow:0 10px 12px rgba(0,0,0,.2);
  transition: background-color .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.tfw-banner a.btn-banner:hover{ background:#B08A38; color:#FFFFFF; }

@media (max-width:980px){ .tfw-banner .container{ padding:0 24px; } }
@media (max-width:720px){
  .tfw-banner .section{ padding:32px 0; }
  /* Figma's mobile frame is 350x232 (≈1.51:1); 350/240 gives the text a
     little more breathing room under overflow:hidden. */
  .tfw-banner .banner-content{ gap:16px; }
  .tfw-banner .banner-content h2{ font-size:26px; line-height:34px; margin-bottom:10px; letter-spacing:.5px; }
  .tfw-banner .banner-content p{ font-size:14px; line-height:21px; }
  .tfw-banner a.btn-banner{ padding:14px 24px; }
}
