.dfn-gym-page{--dfn-red:#ef1b13;--dfn-black:#0d0d0d;--dfn-card:#1b1c1f;--dfn-gray:#f4f4f4;--dfn-line:#dedede;background:#fff;color:#111;width:100vw;max-width:none;margin-left:calc(50% - 50vw);font-family:inherit}
.dfn-gym-page *{box-sizing:border-box}.dfn-gym-shell{width:min(1000px,calc(100% - 40px));margin:0 auto}
.dfn-gym-hero{background:#0d0d0d;color:#fff;padding:34px 0 30px;background-position:center;background-size:cover;border-bottom:4px solid #fff}
.dfn-gym-hero-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(285px,.75fr);gap:30px;align-items:center}
.dfn-gym-brand{display:flex;gap:24px;align-items:center;min-width:0}.dfn-gym-logo{width:190px;height:130px;display:flex;align-items:center;justify-content:center;background:#050505;padding:12px;flex:0 0 190px;border:1px solid rgba(255,255,255,.12)}
.dfn-gym-logo img{max-width:100%;max-height:100%;object-fit:contain}.dfn-gym-logo-placeholder{font-size:38px;font-weight:900;color:#333}.dfn-gym-kicker{font-size:11px;font-weight:900;letter-spacing:2px;color:var(--dfn-red);margin-bottom:4px}.dfn-gym-brand h1{font-size:43px;line-height:.95;text-transform:uppercase;margin:0 0 10px;font-weight:900;color:#fff}.dfn-gym-location{font-size:16px;font-weight:800;margin-bottom:6px}.dfn-gym-disciplines{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#c8c8c8;font-weight:700}
.dfn-gym-contact-card{border-left:4px solid var(--dfn-red);background:rgba(0,0,0,.62);padding:14px 18px}.dfn-gym-contact-row{display:grid;grid-template-columns:74px 1fr;gap:10px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.1)}.dfn-gym-contact-row:last-of-type{border-bottom:0}.dfn-gym-contact-row span{font-size:9px;letter-spacing:1px;color:#999;font-weight:900}.dfn-gym-contact-row strong,.dfn-gym-contact-row a{font-size:12px;color:#fff;text-decoration:none;word-break:break-word}.dfn-gym-socials{display:flex;gap:12px;padding-top:10px}.dfn-gym-socials a{color:#fff;font-weight:900;text-transform:uppercase;font-size:10px;text-decoration:none}.dfn-gym-description{margin-top:20px;color:#ccc;line-height:1.6;font-size:13px}
.dfn-gym-section{padding:10px 0 20px;background:#fff}.dfn-section-title{display:flex;align-items:center;justify-content:center;margin:0 0 10px;background:#050505;color:#fff;min-height:39px;padding:0 14px;border:0}.dfn-section-title h2{font-size:25px;line-height:1;text-transform:uppercase;margin:0;font-weight:900;font-style:italic;letter-spacing:-.4px;color:#fff}.dfn-section-title-with-count{position:relative}.dfn-section-title-with-count span{position:absolute;right:12px;color:var(--dfn-red);font-size:12px;font-weight:900}
.dfn-gym-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:210px;gap:8px}.dfn-gym-gallery figure{margin:0;overflow:hidden;background:#161616}.dfn-gym-gallery figure.is-featured{grid-row:span 2}.dfn-gym-gallery.count-1{display:block}.dfn-gym-gallery.count-1 figure{height:420px}.dfn-gym-gallery img{width:100%;height:100%;object-fit:cover;display:block}.dfn-gym-empty{min-height:90px;display:flex;align-items:center;justify-content:center;background:#f2f2f2;border:1px dashed #c5c5c5;color:#777;font-weight:800;text-transform:uppercase}.dfn-gym-empty-impression{height:300px;font-size:22px;color:#aaa}
.dfn-week-schedule{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--dfn-line);border-top:1px solid var(--dfn-line);min-height:300px}.dfn-day-column{border-right:1px solid var(--dfn-line);border-bottom:1px solid var(--dfn-line);min-width:0}.dfn-day-column h3{height:38px;margin:0;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--dfn-line);font-size:10px;text-transform:uppercase;color:#111}.dfn-day-slots{padding:14px 6px;display:flex;flex-direction:column;gap:8px}.dfn-class-slot{background:#111;color:#fff;border-left:4px solid var(--dfn-red);padding:9px 7px;min-height:58px}.dfn-class-slot strong{display:block;font-size:9px;line-height:1.25;text-transform:uppercase}.dfn-class-slot span{display:block;font-size:9px;margin-top:6px;color:#ccc}
.dfn-athlete-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dfn-athlete-card{display:block;position:relative;height:330px;background:#1d1f22;color:#fff;text-decoration:none;overflow:hidden}.dfn-athlete-photo{position:absolute;inset:0;background:linear-gradient(#23252a,#17181b);overflow:hidden}.dfn-athlete-photo img{width:100%;height:100%;object-fit:contain;object-position:center bottom;display:block}.dfn-athlete-overlay{position:absolute;left:0;right:0;bottom:0;min-height:116px;padding:38px 14px 12px;background:linear-gradient(transparent 0,#111 34%,#080808 100%);border-bottom:3px solid #111}.dfn-athlete-card:hover .dfn-athlete-overlay{border-bottom-color:var(--dfn-red)}.dfn-athlete-overlay h3{font-size:17px;line-height:1;text-transform:uppercase;margin:0 38px 3px 0;color:#fff;font-weight:900}.dfn-athlete-record{font-size:12px;font-weight:900}.dfn-athlete-flag{position:absolute;right:13px;top:43px;width:28px;height:18px;object-fit:cover}.dfn-athlete-details{font-size:9px;line-height:1.45;text-transform:uppercase;margin-top:8px;color:#fff;font-weight:800}.dfn-athlete-card.is-trainer .dfn-athlete-overlay{border-bottom-color:var(--dfn-red)}
@media(max-width:900px){.dfn-gym-shell{width:min(760px,calc(100% - 30px))}.dfn-gym-hero-grid{grid-template-columns:1fr}.dfn-athlete-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dfn-week-schedule{grid-template-columns:repeat(4,minmax(0,1fr))}.dfn-gym-brand h1{font-size:36px}}
@media(max-width:600px){.dfn-gym-page{margin-left:calc(50% - 50vw)}.dfn-gym-shell{width:calc(100% - 20px)}.dfn-gym-brand{align-items:flex-start;gap:12px}.dfn-gym-logo{width:100px;height:86px;flex-basis:100px}.dfn-gym-brand h1{font-size:27px}.dfn-gym-contact-row{grid-template-columns:62px 1fr}.dfn-section-title h2{font-size:21px}.dfn-week-schedule{grid-template-columns:repeat(2,minmax(0,1fr))}.dfn-athlete-grid{grid-template-columns:1fr 1fr;gap:7px}.dfn-athlete-card{height:285px}.dfn-athlete-overlay h3{font-size:13px}.dfn-gym-gallery{grid-template-columns:1fr 1fr;grid-auto-rows:170px}.dfn-gym-gallery figure.is-featured{grid-column:span 2;grid-row:auto;height:300px}}
@media(max-width:390px){.dfn-athlete-grid{grid-template-columns:1fr}.dfn-week-schedule{grid-template-columns:1fr}.dfn-gym-brand{display:block}.dfn-gym-logo{margin-bottom:12px}}
.dfn-pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dfn-pricing-card{background:#111;color:#fff;border-left:4px solid var(--dfn-red);padding:18px 16px;min-height:130px}.dfn-pricing-card h3{margin:0 0 12px;color:#fff;font-size:16px;text-transform:uppercase;font-weight:900}.dfn-pricing-price{font-size:24px;line-height:1;font-weight:900;color:#fff;margin-bottom:10px}.dfn-pricing-details{font-size:11px;line-height:1.45;color:#bbb}.dfn-pricing-card:hover{border-left-width:7px}
@media(max-width:900px){.dfn-pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.dfn-pricing-grid{grid-template-columns:1fr}}


/* Gym roster: four clear cards, with portraits separate from their details. */
.dfn-gym-page .dfn-athlete-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:stretch}
.dfn-gym-page .dfn-athlete-card{display:flex;flex-direction:column;height:auto;min-width:0;background:#101112;color:#fff;border:1px solid #e6e6e6;transition:border-color .18s ease}
.dfn-gym-page .dfn-athlete-photo{position:relative;inset:auto;flex:none;width:100%;aspect-ratio:1.05;background:#f1f1f1;overflow:hidden}
.dfn-gym-page .dfn-athlete-photo img.dfn-fighter-cutout{position:absolute;inset:0;width:100%;height:100%;padding:10px 8px 0;object-fit:contain;object-position:center bottom;transform:none}
.dfn-gym-page .dfn-athlete-overlay{position:relative;inset:auto;flex:1;min-height:112px;padding:14px 12px 12px;background:#101112;border-bottom:3px solid transparent}
.dfn-gym-page .dfn-athlete-overlay h3{font-size:17px;line-height:1.2;margin:0 28px 6px 0;overflow-wrap:anywhere}
.dfn-gym-page .dfn-athlete-record{font-size:14px;line-height:1.2;letter-spacing:.3px}
.dfn-gym-page .dfn-athlete-flag{right:12px;top:16px;width:22px;height:14px}
.dfn-gym-page .dfn-athlete-details{font-size:9px;line-height:1.5;margin-top:9px;color:#bfc2c5}
.dfn-gym-page .dfn-athlete-card:hover,.dfn-gym-page .dfn-athlete-card:focus-visible{border-color:var(--dfn-red)}
.dfn-gym-page .dfn-athlete-card:hover .dfn-athlete-overlay{border-bottom-color:var(--dfn-red)}
.dfn-gym-page .dfn-athlete-card:focus-visible{outline:2px solid var(--dfn-red);outline-offset:3px}
.dfn-athlete-no-photo{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:#8c9196;background:radial-gradient(ellipse at center,#f7f7f7,#e4e6e8)}
.dfn-athlete-no-photo span{font-family:'Oswald',Arial,sans-serif;font-size:clamp(36px,5vw,64px);font-weight:700;line-height:1;color:#a6abb0}
.dfn-athlete-no-photo small{font-size:10px;letter-spacing:1.2px;text-transform:uppercase}
@media(max-width:900px){.dfn-gym-page .dfn-athlete-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.dfn-gym-page .dfn-athlete-grid{gap:9px}.dfn-gym-page .dfn-athlete-overlay{padding:12px 10px;min-height:108px}.dfn-gym-page .dfn-athlete-overlay h3{font-size:14px}.dfn-gym-page .dfn-athlete-flag{right:10px;top:14px;width:20px;height:13px}}
@media(max-width:390px){.dfn-gym-page .dfn-athlete-grid{grid-template-columns:1fr}}

.dfn-gym-page .dfn-athlete-photo img + .dfn-athlete-no-photo{display:none}
.dfn-gym-page .dfn-athlete-photo.has-image-error img{display:none}
.dfn-gym-page .dfn-athlete-photo.has-image-error .dfn-athlete-no-photo{display:flex}
