.tf-section{padding:30px 0 46px}.tf-heading{margin-bottom:28px}.tf-heading>span{color:#ff5875;font-size:13px}.tf-heading h2{font-size:clamp(26px,3vw,39px);margin:10px 0;line-height:1.7}.tf-heading h2 em{font-style:normal;color:#ff3158}.tf-heading p{color:#b9aeb3;font-size:15px}.tf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.tf-card{position:relative;display:block;width:100%;min-width:0;padding:0;text-align:right;font:inherit;color:#fff;background:#130c11;border:1px solid #572030;border-radius:22px;cursor:pointer;overflow:hidden;isolation:isolate;transition:transform .35s,box-shadow .35s}.tf-card:hover{transform:translateY(-7px);box-shadow:0 20px 50px #0008}.tf-card:focus-visible,.tb-cta:focus-visible{outline:3px solid #ff8199;outline-offset:5px}.tf-media{position:relative;display:block;aspect-ratio:4/5;overflow:hidden}.tf-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s}.tf-card:hover img{transform:scale(1.045)}.tf-wash{position:absolute;inset:0;background:linear-gradient(0deg,#130c11 0%,transparent 38%,#0003)}.tf-play{position:absolute;left:calc(50% - 28px);top:calc(50% - 28px);display:grid;place-items:center;width:56px;height:56px;border:1px solid #ffffff90;border-radius:50%;background:#f20c35cc;box-shadow:0 0 0 10px #f20c3517;font:20px Arial;color:white;backdrop-filter:blur(8px)}.tf-index{position:absolute;top:17px;right:18px;font-size:13px;letter-spacing:2px;color:#fff9}.tf-caption{display:block;padding:0 24px 24px;min-height:145px}.tf-subtitle{display:block;color:#d5aab6;font-size:12px;margin-bottom:9px}.tf-caption strong{display:block;font-size:21px;line-height:1.8}.tf-watch{display:flex;align-items:center;justify-content:space-between;margin-top:20px;font-size:12px;color:#eee}.tf-watch>span{font-size:22px;color:#ff4e72}.tf-cinema .tf-play{animation:tf-pulse 3s ease-out infinite}.tf-cinema .tf-media:after{content:'';position:absolute;inset:13px;border:1px solid #ffffff30;border-radius:13px;pointer-events:none}.tf-spotlight{border-radius:55px 20px 20px 20px;background:#200d19}.tf-spotlight .tf-wash{background:linear-gradient(0deg,#200d19,transparent 50%)}.tf-spotlight .tf-media:after{content:'';position:absolute;inset:-60%;background:linear-gradient(110deg,transparent 44%,#ffcada24 50%,transparent 56%);transform:translateX(-50%);animation:tf-sweep 7s ease-in-out infinite;pointer-events:none}.tf-spotlight .tf-play{border-radius:18px;transform:rotate(-8deg)}.tf-orbit{border-radius:20px 20px 65px 20px;border-color:#9f3153}.tf-orbit .tf-media{margin:15px 15px 0;border-radius:50% 50% 20px 20px;aspect-ratio:4/5.2}.tf-orbit .tf-wash{background:linear-gradient(0deg,#130c11,transparent 45%)}.tf-orbit .tf-play:after{content:'';position:absolute;inset:-13px;border:1px dashed #ffb5c6aa;border-radius:50%;animation:tf-orbit 16s linear infinite}.tb-banner{position:relative;isolation:isolate;display:flex;align-items:center;min-height:420px;overflow:hidden;margin:10px 0 58px;border-radius:36px 10px 36px 10px;background:linear-gradient(115deg,#320a19,#100b10 58%);border:1px solid #7b213c;box-shadow:0 25px 65px #0006}.tb-copy{position:relative;z-index:3;width:57%;padding:48px 45px}.tb-kicker{display:inline-block;color:#ff8ca6;font-size:15px;letter-spacing:0;border-right:3px solid #f20c35;padding-right:13px}.tb-copy h2{font-size:clamp(31px,3.8vw,52px);font-weight:900;line-height:1.6;margin:18px 0}.tb-copy h2 em{font-style:normal;color:#ff3158}.tb-copy p{font-size:16px;color:#ddced5;line-height:2.1}.tb-cta{display:inline-flex;align-items:center;gap:22px;padding:14px 22px;background:#f20c35;border:1px solid #ff6b89;border-radius:10px;color:white;text-decoration:none;font-size:14px;font-weight:800;margin-top:15px;box-shadow:7px 7px 0 #730c29;transition:transform .2s}.tb-cta:hover{transform:translateY(-3px)}.tb-cta span{font-size:23px}.tb-visual{position:absolute;inset:0 auto 0 0;width:46%;z-index:2;clip-path:polygon(0 0,100% 0,82% 100%,0 100%);background:#781633;border-right:8px solid #f20c35}.tb-visual img{width:100%;height:100%;object-fit:cover;object-position:center 35%;filter:saturate(.75)}.tb-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#380619bb,transparent 50%)}.tb-ribbon{position:absolute;width:170px;height:650px;left:39%;top:-110px;transform:rotate(24deg);z-index:1;border:2px solid #ed174b;background:linear-gradient(90deg,#ff174b20,#a50930aa);box-shadow:14px 0 0 #f20c3522}.tb-ribbon-two{left:29%;width:85px;transform:rotate(24deg);border-color:#ff688555;background:transparent}.tb-number{position:absolute;z-index:0;right:25%;top:-35px;font:900 200px/1.2 Tahoma;letter-spacing:-20px;color:transparent;-webkit-text-stroke:1px #c82c522b;transform:rotate(-8deg);pointer-events:none}.tf-dialog{width:min(920px,94vw);max-height:94dvh;padding:0;border:1px solid #8d2b45;border-radius:18px;background:#110b10;color:white;overflow:auto}.tf-dialog::backdrop{background:#000d;backdrop-filter:blur(8px)}.tf-dialog-bar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;gap:15px}.tf-dialog-bar h2{font:700 17px/1.8 Tahoma;margin:0}.tf-dialog-bar button{width:44px;height:44px;background:#2d1521;border:1px solid #74354b;border-radius:10px;color:white;cursor:pointer;font-size:22px}.tf-dialog video{display:block;width:100%;max-height:76dvh;background:#000}
@keyframes tf-pulse{0%,100%{box-shadow:0 0 0 0 #f20c3550}70%{box-shadow:0 0 0 19px #f20c3500}}@keyframes tf-sweep{0%,35%{transform:translateX(-55%)}80%,100%{transform:translateX(55%)}}@keyframes tf-orbit{to{transform:rotate(360deg)}}
@media(max-width:900px){.tf-grid{gap:15px}.tf-caption{padding-inline:16px}.tf-caption strong{font-size:18px}.tb-copy{padding:32px 26px}.tb-copy h2{font-size:34px}.tb-copy p{font-size:14px}.tb-cta{font-size:12px;padding:12px;gap:12px}}
@media(max-width:600px){.tf-grid{grid-template-columns:minmax(0,1fr);gap:26px;max-width:410px;margin:auto}.tf-media{aspect-ratio:4/4.3}.tf-orbit .tf-media{aspect-ratio:4/4.5}.tf-caption{min-height:0;padding:5px 24px 25px}.tf-caption strong{font-size:22px}.tb-banner{display:flex;flex-direction:column;min-height:0;border-radius:26px 8px 26px 8px}.tb-visual{position:relative;inset:auto;order:0;width:100%;height:320px;clip-path:polygon(0 0,100% 0,100% 85%,0 100%);border:0;border-bottom:6px solid #f20c35}.tb-visual img{object-position:center 33%}.tb-copy{order:1;width:100%;padding:16px 25px 34px}.tb-copy h2{font-size:33px}.tb-copy p{font-size:14px}.tb-ribbon{left:5%;top:140px}.tb-ribbon-two{left:28%}.tb-number{top:auto;bottom:60px;right:15%;font-size:160px}.tb-cta{font-size:12px;max-width:100%;gap:12px}.tf-heading h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){.tf-section *,.tb-banner *{animation:none!important;transition:none!important}.tf-card:hover,.tf-card:hover img{transform:none}}
/* Preserve the banner's graphic composition as the viewport narrows. */
@media(max-width:600px){
 .tb-banner{display:flex;flex-direction:row;min-height:0;aspect-ratio:1.95/1;border-radius:18px 6px 18px 6px;margin-block:10px 35px}
 .tb-visual{position:absolute;inset:0 auto 0 0;width:45%;height:100%;clip-path:polygon(0 0,100% 0,83% 100%,0 100%);border:0}
 .tb-visual img{object-position:48% 35%}
 .tb-copy{width:58%;padding:clamp(12px,3vw,20px);margin-left:auto}
 .tb-kicker{font-size:clamp(9px,2.4vw,13px);padding-right:7px;border-right-width:2px}
 .tb-copy h2{font-size:clamp(19px,5vw,30px);line-height:1.55;margin:8px 0}
 .tb-copy p{font-size:clamp(10px,2.5vw,14px);line-height:1.85;margin:7px 0}
 .tb-cta{gap:7px;font-size:clamp(9px,2.2vw,12px);line-height:1.7;padding:7px 9px;margin-top:7px;box-shadow:3px 3px 0 #730c29;border-radius:6px}
 .tb-cta span{font-size:15px;flex-shrink:0}
 .tb-ribbon{left:37%;top:-75px;width:65px;height:400px;transform:rotate(20deg)}
 .tb-ribbon-two{left:25%;width:35px}
 .tb-number{right:22%;top:0;bottom:auto;font-size:90px;letter-spacing:-10px}
 .tf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:none}
 .tf-card:first-child{grid-column:1/-1}
 .tf-card:first-child .tf-media{aspect-ratio:1.2/1}
 .tf-card:first-child .tf-media img{object-position:center 30%}
 .tf-card:not(:first-child) .tf-media{aspect-ratio:1/1.15}
 .tf-orbit .tf-media{margin:8px 8px 0}
 .tf-card{border-radius:18px}
 .tf-spotlight{border-radius:30px 15px 15px 15px}
 .tf-orbit{border-radius:16px 16px 30px 16px}
 .tf-caption{padding:5px 13px 15px;min-height:0}
 .tf-subtitle{font-size:10px;margin-bottom:6px}
 .tf-caption strong{font-size:clamp(13px,3.6vw,18px);line-height:1.8}
 .tf-card:first-child .tf-caption strong{font-size:21px}
 .tf-watch{margin-top:12px;font-size:10px}
 .tf-play{width:40px;height:40px;left:calc(50% - 20px);top:calc(50% - 20px);font-size:15px}
 .tf-card:first-child .tf-play{width:54px;height:54px;left:calc(50% - 27px);top:calc(50% - 27px);font-size:20px}
 .tf-index{font-size:10px;top:12px;right:12px}
 .tf-heading{margin-bottom:20px}.tf-heading h2{font-size:24px}.tf-heading p{font-size:13px}
}
@media(max-width:360px){.tb-banner{aspect-ratio:auto;min-height:235px}.tb-copy{padding:12px;width:60%}.tb-copy h2{font-size:19px}.tb-copy p{font-size:10px}.tb-cta{font-size:9px}}
@media(max-width:600px){.tb-banner{aspect-ratio:auto;min-height:235px}.tf-card:first-child .tf-media img{object-fit:contain;background:#0b080c}.tb-copy{padding-block:16px}}

.tf-empty{cursor:default}.tf-empty .tf-media{background:radial-gradient(ellipse at 35% 25%,#82214066,transparent 65%),linear-gradient(145deg,#25101c,#0b080d)}.tf-placeholder-art{position:absolute;inset:20%;border:1px solid #ff527744;transform:rotate(-18deg);border-radius:30px;background:linear-gradient(135deg,#f20c3515,transparent)}.tf-spotlight .tf-placeholder-art{border-radius:50%;transform:none;border:1px solid #ff84ad55;inset:18%}.tf-orbit .tf-placeholder-art{border-radius:40% 10% 40% 10%;transform:rotate(18deg)}.tf-empty .tf-caption{min-height:100px}.tf-empty .tf-subtitle{margin-top:12px;color:#bd9eaa}.tf-empty:hover{transform:none;box-shadow:none}

/* Compact course-banner composition: one photo, one short headline. */
.tb-banner.tb-compact{display:flex;position:relative;align-items:center;width:100%;aspect-ratio:1.8/1;height:auto;min-height:0;max-height:none;overflow:hidden;background:#252525;border:0;border-radius:26px;margin:12px 0 45px;box-shadow:none;color:#fff;text-decoration:none}
.tb-compact .tb-art{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;display:block}
.tb-banner.tb-compact .tb-copy{position:relative;z-index:2;flex:none;order:0;width:53%;padding:5%;margin:0;text-align:right;background:none}
.tb-compact .tb-kicker{border:0;padding:0;color:#b7afb2;font-size:clamp(9px,1.15vw,15px);line-height:1.7;display:block;letter-spacing:0}
.tb-compact .tb-copy h2{font-size:clamp(25px,4.2vw,54px);line-height:1.55;margin:10px 0;font-weight:900;letter-spacing:0}
.tb-compact .tb-copy h2 em{color:#ff3158;font-style:normal}
.tb-tagline{display:block;font-size:clamp(11px,1.55vw,20px);color:#dfd9dc;line-height:1.9}
.tb-more{display:block;margin-top:20px;color:#ed6d88;font-size:clamp(10px,1.2vw,15px)}
.tb-compact:focus-visible{outline:3px solid #ff8199;outline-offset:5px}
@media(max-width:600px){.tb-banner.tb-compact{aspect-ratio:1.8/1;min-height:0;border-radius:18px;margin-bottom:35px}.tb-banner.tb-compact .tb-copy{width:53%;padding:4%;margin:0}.tb-compact .tb-copy h2{font-size:clamp(21px,5.6vw,33px);line-height:1.5;margin:5px 0}.tb-compact .tb-kicker{font-size:clamp(8px,2vw,12px)}.tb-tagline{font-size:clamp(9px,2.5vw,14px);line-height:1.8}.tb-more{font-size:clamp(9px,2.3vw,13px);margin-top:10px}}

/* User-supplied 16:9 artwork: show it whole, with live copy in the empty left half. */
.tb-banner.tb-compact{aspect-ratio:16/9;background:transparent;border-radius:0;overflow:visible}
.tb-compact .tb-art{object-fit:contain}
.tb-banner.tb-compact .tb-copy{width:46%;margin-right:auto;margin-left:0;padding:5%;text-align:center}
.tb-compact .tb-copy h2{font-size:clamp(25px,4.1vw,52px)}
@media(max-width:600px){.tb-banner.tb-compact{aspect-ratio:16/9;border-radius:0;min-height:0}.tb-banner.tb-compact .tb-copy{width:46%;padding:3%;margin-right:auto;margin-left:0}.tb-compact .tb-copy h2{font-size:clamp(19px,5.3vw,30px);line-height:1.5;margin:3px 0}.tb-compact .tb-kicker{font-size:clamp(7px,1.9vw,11px)}.tb-compact .tb-tagline{font-size:clamp(8px,2.1vw,12px)}.tb-compact .tb-more{font-size:clamp(8px,2vw,11px);margin-top:7px}}

/* Tighten only the space surrounding the approved lower banner. */
.tf-section{padding-bottom:10px}
.tb-banner.tb-compact{margin-top:-14px;margin-bottom:-20px}
main>.wrap>.gallery{padding-top:10px}
@media(max-width:600px){.tb-banner.tb-compact{margin-top:-14px;margin-bottom:-20px}.tf-section{padding-bottom:10px}}
/* Balanced, positive gaps around the approved lower banner. */
.tf-section{padding-bottom:24px}
.tb-banner.tb-compact{margin-top:0;margin-bottom:12px}
main>.wrap>.gallery{padding-top:16px}
@media(max-width:600px){.tf-section{padding-bottom:24px}.tb-banner.tb-compact{margin-top:0;margin-bottom:12px}}

/* Two identical, static cards at every viewport size. */
.tf-section .tf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:none;margin-inline:0}
.tf-section .tf-card,.tf-section .tf-card:first-child{grid-column:auto;border-radius:20px;transform:none!important;transition:none!important;box-shadow:none}
.tf-section .tf-card *,.tf-section .tf-card :before,.tf-section .tf-card :after{animation:none!important;transition:none!important}
.tf-section .tf-card .tf-media,.tf-section .tf-card:first-child .tf-media{aspect-ratio:4/5;margin:0;border-radius:0}
.tf-section .tf-card .tf-placeholder-art{border-radius:25px;transform:none;inset:22%;background:none;border:1px solid #ff527730}
.tf-section .tf-play{box-shadow:none;background:#b91538;border-radius:50%}
.tf-section .tf-card .tf-caption{min-height:0;padding:14px 25px 25px}
.tf-section .tf-card .tf-caption strong,.tf-section .tf-card:first-child .tf-caption strong{font-size:23px;line-height:1.8}
@media(max-width:600px){.tf-section .tf-grid{gap:14px}.tf-section .tf-card,.tf-section .tf-card:first-child{border-radius:16px}.tf-section .tf-card .tf-media,.tf-section .tf-card:first-child .tf-media{aspect-ratio:4/5}.tf-section .tf-card .tf-caption{padding:8px 12px 16px}.tf-section .tf-card .tf-caption strong,.tf-section .tf-card:first-child .tf-caption strong{font-size:15px}.tf-section .tf-card .tf-subtitle{font-size:10px;line-height:1.8;margin-top:7px}.tf-section .tf-card .tf-play,.tf-section .tf-card:first-child .tf-play{width:40px;height:40px;left:calc(50% - 20px);top:calc(50% - 20px);font-size:15px}}
