/* Brand gold sampled from the supplied logo; subdued borders keep photography central. */
:root{--gold:#fdb104;--gold-soft:#fdb104;--rf-gold-border:rgb(253 177 4 / 28%)}
.home .hero-shell{background-image:none;background-color:#080909;isolation:isolate;overflow:clip}
.home .hero-shell::before{content:"";position:absolute;inset:-12px;z-index:-2;background:var(--rf-hero-image,url('hero.png')) center 40%/cover no-repeat;filter:blur(6px)}
.home .hero-shell::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(6,9,7,.76),rgba(6,9,7,.69) 55%,#080909 100%);pointer-events:none}
.home #main .hero{padding-block:clamp(64px,9vw,130px);min-height:350px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:28px}
.home #main .hero .rf-hero-message{font:600 clamp(1.65rem,3.4vw,2.75rem)/1.35 var(--heading);max-width:24ch;margin:0;color:var(--text);letter-spacing:0;text-transform:none;text-wrap:balance}
.home #main .hero-actions{margin:0}
#main .rf-gallery-branches,#main .rf-gallery-branches.is-filtered{grid-template-columns:1fr;gap:64px}
#main .rf-gallery-branch{padding:clamp(20px,3vw,40px);border:1px solid var(--rf-gold-border);border-radius:12px;background:linear-gradient(155deg,rgba(253,177,4,.035),#101311 60%)}
#main .rf-gallery-branch-heading{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}
#main .rf-gallery-branch-heading h2{font-size:clamp(1.75rem,3vw,2.5rem);margin:0}
#main .rf-gallery-branch-heading .button{border-color:var(--rf-gold-border);font-size:.875rem}
#main .rf-gallery-branch-copy{text-align:center;min-height:0;max-width:65ch;margin:0 auto}
#main .rf-branch-photo-grid,#main .is-filtered .rf-branch-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
#main .rf-branch-photo-grid .gallery-item{grid-column:auto;aspect-ratio:4/3;border:1px solid var(--rf-gold-border);padding:5px;border-radius:8px;background:#171b17;box-shadow:0 8px 24px #0003}
#main .rf-branch-photo-grid .gallery-item>img{border-radius:4px}
#main .rf-branch-photo-grid .gallery-item:hover{border-color:rgb(253 177 4 / 55%)}
#main .rf-membership-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;padding-top:12px}
#main .rf-secondary-rates{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
#main .rf-rate-group{margin-top:40px;text-align:left}
#main .rf-rate-group>h3{font:600 1.25rem/1.4 var(--heading);margin:0 0 12px}
#main .rf-rate-card{border-color:var(--rf-gold-border);border-radius:8px;padding:28px 18px;background:linear-gradient(155deg,#1b1e19,#111512);box-shadow:0 8px 24px #0002}
#main .rf-rate-card.is-featured{border-color:var(--gold);background:linear-gradient(155deg,rgba(253,177,4,.15),#181b16 80%);box-shadow:0 0 0 1px var(--gold),0 12px 32px #0004}
#main .rf-rate-badge{border-radius:4px;right:12px;font-size:.75rem}
#main .rf-rate-card h4{font:600 clamp(.9rem,1vw,1.05rem)/1.35 var(--body);white-space:normal;text-wrap:balance;overflow-wrap:normal;max-width:100%;min-height:2.7em}
#main .rf-rate-card .rf-rate-fee{min-height:1.5em}
#main .rf-secondary-rates .rf-rate-card{padding:28px;min-height:320px}
#main .rf-secondary-rates .rf-rate-card h4{min-height:2.7em;max-width:100%}
#main .rf-secondary-rates .rf-rate-card .rf-rate-price{font:600 clamp(2.25rem,2rem + .8vw,2.875rem)/1.1 var(--heading);margin:18px 0 6px}
#main .rf-secondary-rates .rf-rate-card .rf-rate-fee{margin:0;color:#d3cbb5}
#main .rf-secondary-rates .rf-rate-details{margin:22px 0 24px;line-height:1.55;color:#e7e5dc}
.rf-partner-access{display:flex;align-items:center;justify-content:space-between;gap:32px;text-align:left;margin-top:40px;padding:clamp(24px,3vw,36px);border:1px solid var(--rf-gold-border);border-radius:8px;background:linear-gradient(115deg,rgba(253,177,4,.08),#131712)}
#main .rf-partner-access h3{font:600 clamp(1.35rem,2vw,1.75rem)/1.3 var(--heading);color:var(--gold);margin:8px 0 12px}
.rf-partner-access p:not(.eyebrow){max-width:65ch;font-size:1rem;line-height:1.6;color:#c9c7bb;margin:0}
.rf-partner-access>.button{flex-shrink:0}
.trp-language-switcher img,.trp-language-switcher-container img,.trp-language-switcher-container .trp-flag-image,.trp-language-switcher .trp-flag-image,.trp-shortcode-switcher img,.header-language-switcher img{height:.85em!important;width:auto!important;max-height:.85em!important;object-fit:contain;vertical-align:middle}
.rf-trainer-gallery{grid-column:1/-1;margin-top:24px;padding-top:32px;border-top:1px solid var(--rf-gold-border)}
.rf-trainer-gallery h2{font:600 1.5rem/1.4 var(--heading);margin:0 0 24px;color:var(--gold)}
.rf-credentials-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.rf-credentials-grid figure{margin:0;padding:12px;border:1px solid var(--rf-gold-border);border-radius:8px;background:#161a16}
.rf-credentials-grid figure:only-child{grid-column:1/-1;width:min(100%,560px)}
.rf-credentials-grid .gallery-item{display:block;border:0;background:#10130f;border-radius:4px;overflow:hidden;aspect-ratio:4/3}
.rf-credentials-grid img{width:100%;height:100%;object-fit:contain}
.rf-credentials-grid figcaption{padding:16px 8px 8px;line-height:1.5;color:#c9c7bb;font-size:.9375rem}
@media(max-width:1100px){#main .rf-membership-grid{grid-template-columns:repeat(3,minmax(0,1fr))}#main .rf-secondary-rates{grid-template-columns:repeat(2,minmax(0,1fr))}.rf-partner-access{align-items:flex-start;flex-direction:column}}
@media(max-width:980px){#main .rf-secondary-rates{grid-template-columns:1fr}}
@media(max-width:760px){#main .rf-membership-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#main .rf-branch-photo-grid,#main .is-filtered .rf-branch-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}#main .rf-gallery-branches{gap:32px}#main .rf-gallery-branch{padding:20px 14px}.home #main .hero{min-height:320px;padding-block:64px}.rf-credentials-grid{gap:16px}}
@media(max-width:760px){#main .rf-secondary-rates{grid-template-columns:1fr}}
@media(max-width:480px){#main .rf-membership-grid,#main .rf-secondary-rates{grid-template-columns:1fr}#main .rf-rate-card{padding:28px 24px}#main .rf-secondary-rates .rf-rate-card{padding-inline:16px}#main .rf-rate-card h4{font-size:.8rem}.rf-credentials-grid{grid-template-columns:1fr}.rf-partner-access>.button{width:100%;white-space:normal}}
#main .rf-gallery-branch-heading{margin-bottom:24px}
#main .rf-gallery-filters{flex:0 0 auto;flex-wrap:nowrap}
#main .rf-gallery-filters .button{white-space:nowrap}
@media(max-width:760px){#main .rf-gallery-heading{flex-direction:column;align-items:stretch;gap:20px}#main .rf-gallery-heading>div{min-width:0}#main .rf-gallery-filters{display:flex;flex-wrap:nowrap;width:100%;gap:clamp(4px,1.5vw,10px)}#main .rf-gallery-filters .button{min-width:0;flex:1 1 0;padding-inline:clamp(6px,2vw,12px);font-size:clamp(.6875rem,3.2vw,.8125rem)}}
@media(max-width:760px){body:not(.home) #main .rf-branch-galleries{width:100%;padding-inline:16px;overflow:hidden}#main .rf-gallery-heading,#main .rf-gallery-branches,#main .rf-gallery-branch{min-width:0;max-width:100%}}

/* Membership offers: an inset price panel and a gold campaign header. */
#main .rf-rate-card.has-offer,
#main .rf-secondary-rates .rf-rate-card.has-offer{--offer-inset:24px;padding:0 var(--offer-inset) 24px;border-color:rgba(253,177,4,.7);background:radial-gradient(ellipse at 100% 0,rgba(253,177,4,.12),transparent 65%),linear-gradient(155deg,#1c1d17,#101410);box-shadow:0 12px 32px #0003,inset 0 0 0 1px rgba(253,177,4,.04)}
.rf-offer-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;align-self:stretch;margin:0 calc(-1 * var(--offer-inset)) 24px;padding:13px var(--offer-inset);min-height:66px;border-radius:7px 7px 0 0;background:linear-gradient(115deg,#f6ce73 0%,#fdb104 65%,#dfa00f 100%);color:#191b13;border-bottom:1px solid #ffdb82}
.rf-offer-label{min-width:0;font:700 .8125rem/1.5 var(--body);letter-spacing:.035em;text-transform:uppercase;overflow-wrap:anywhere}
.rf-offer-percent{display:inline-flex;align-items:baseline;gap:2px;flex:none;padding:5px 10px;border:1px solid #1c211b;border-radius:4px;background:#1c211b;color:#ffd36c;font:600 1.875rem/1 var(--heading);font-variant-numeric:tabular-nums;box-shadow:0 2px 4px #51370222}
.rf-offer-percent>span{font:600 .875rem/1 var(--body)}
#main .rf-rate-card.has-offer h4{min-height:2.7em}
.rf-offer-prices{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 18px;align-self:stretch;margin:20px 0 10px;padding:18px 16px;border:1px solid rgba(253,177,4,.24);border-radius:6px;background:linear-gradient(110deg,rgba(253,177,4,.10),rgba(253,177,4,.025));box-shadow:inset 3px 0 0 var(--gold)}
.rf-old-price{color:#c2beb1;font:400 1.25rem/1.5 var(--body);text-decoration-thickness:1.5px;font-variant-numeric:tabular-nums;white-space:nowrap}
#main .rf-rate-card.has-offer .rf-offer-prices .rf-rate-price{margin:0;color:#ffcb54;font-size:clamp(3.25rem,2.75rem + 1vw,3.75rem);line-height:1;white-space:nowrap}
#main .rf-rate-card.has-offer .button{border-color:rgba(253,177,4,.7);background:rgba(253,177,4,.06)}
#main .rf-rate-card.has-offer .button:hover{background:var(--gold);color:#171912}
@media(max-width:480px){#main .rf-rate-card.has-offer,#main .rf-secondary-rates .rf-rate-card.has-offer{--offer-inset:20px}.rf-offer-banner{gap:10px}.rf-offer-label{font-size:.8125rem}.rf-offer-prices{padding:16px}}

/* Internal page titles use a compact, locale-safe scale and balanced wrapping. */
body:not(.home){--rf-title:clamp(1.75rem,1.55rem + .8vw,2.625rem)}
body:not(.home) #main .rf-page-hero h1,
body:not(.home) #main .rf-page-heading h1,
body:not(.home) #main .rf-gallery-heading>div>h1{max-inline-size:38ch;line-height:1.2;text-wrap:balance}

/* Trainer specialty filter: compact on desktop, comfortably stacked on small phones. */
#main .rf-filters{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;width:min(100%,560px);margin:0 0 32px;padding:12px;border:1px solid var(--rf-gold-border);border-radius:8px;background:linear-gradient(145deg,rgba(253,177,4,.055),rgba(17,20,17,.96));box-shadow:0 10px 28px #0002}
#main .rf-filters .rf-filter-field{display:grid;gap:6px;min-width:0;width:100%}
#main .rf-filter-label{color:#d8d4c7;font-size:.75rem;font-weight:600;line-height:1.4;letter-spacing:.06em;text-transform:uppercase}
#main .rf-select-wrap{position:relative;display:block;min-width:0}
#main .rf-select-wrap::after{content:"";position:absolute;right:16px;top:50%;width:7px;height:7px;border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);pointer-events:none;transform:translateY(-70%) rotate(45deg)}
#main .rf-filters select{appearance:none;width:100%;min-height:44px;padding:9px 42px 9px 14px;overflow:hidden;border:1px solid #8d6d25;border-radius:4px;background:#0d0f0d;color:var(--text);font-size:.9375rem;line-height:1.4;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:border-color var(--ease),box-shadow var(--ease),background-color var(--ease)}
#main .rf-filters select:hover{border-color:var(--gold);background:#111410}
#main .rf-filters select:focus-visible{outline:2px solid var(--gold-soft);outline-offset:2px;border-color:var(--gold);box-shadow:0 0 0 3px rgba(253,177,4,.12)}
#main .rf-filters .rf-filter-submit{min-width:112px;margin:0;padding-inline:18px;white-space:nowrap}
@media(max-width:420px){#main .rf-filters{grid-template-columns:1fr;padding:10px}#main .rf-filters .rf-filter-submit{width:100%}}

/* The trainer directory starts with one toolbar, immediately followed by portraits. */
body:not(.home) #main .rf-trainer-catalog{padding-block:24px 40px}
#main .rf-trainer-catalog>.section-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;margin:0 0 24px;padding:0 0 20px;border-bottom:1px solid var(--rf-gold-border)}
#main .rf-trainer-catalog #trainers-title{font:600 clamp(1.375rem,1.15rem + .7vw,1.875rem)/1.3 var(--heading);color:var(--text);letter-spacing:0;margin:0;text-transform:none}
#main .rf-trainer-catalog .rf-filters{display:flex;align-items:center;gap:8px;width:auto;max-width:100%;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
#main .rf-trainer-catalog .rf-filter-field{width:280px;max-width:100%;gap:0}
#main .rf-trainer-catalog .rf-filter-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#main .rf-trainer-catalog .rf-filters select{height:44px;padding:10px 34px 10px 12px;font-size:.8125rem;border-color:#55574c;background:#11130f;border-radius:5px}
#main .rf-trainer-catalog .rf-select-wrap::after{right:14px;width:6px;height:6px}
#main .rf-trainer-catalog .is-auto-filter .rf-filter-submit{display:none}
#main .rf-trainer-catalog .trainer-card{border-radius:8px}
@media(max-width:600px){
 body:not(.home) #main .rf-trainer-catalog>.section-heading{align-items:center;gap:8px;margin-bottom:16px;padding-bottom:12px;flex-wrap:nowrap}
 #main .rf-trainer-catalog #trainers-title{font-size:1.125rem;flex-shrink:0}
 #main .rf-trainer-catalog .rf-filters{min-width:0;flex:0 1 148px}
 #main .rf-trainer-catalog .rf-filter-field{width:100%}
 #main .rf-trainer-catalog .rf-filters select{font-size:.75rem;padding-inline:8px 24px}
 #main .rf-trainer-catalog .rf-select-wrap::after{right:10px}
 body:not(.home) #main .rf-trainer-catalog{padding-top:16px}
}
@media(max-width:359px){#main .rf-trainer-catalog #trainers-title{font-size:1rem}}
body:not(.home) #main .rf-trainer-catalog .trainer-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
body:not(.home) #main .rf-trainer-catalog .trainer-info{padding:16px;text-align:left}
#main .rf-trainer-catalog .trainer-info h2{font:600 1rem/1.4 var(--body);margin:0;color:var(--text);letter-spacing:0;text-transform:none;overflow-wrap:anywhere}
#main .rf-trainer-catalog .trainer-info p{font-size:.8125rem;line-height:1.5;margin:8px 0;white-space:normal}
#main .rf-trainer-catalog .rf-trainer-branch{font-size:.75rem;margin-bottom:12px}
#main .rf-trainer-catalog .trainer-info .button{font-size:.75rem}
@media(max-width:1000px){body:not(.home) #main .rf-trainer-catalog .trainer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}
@media(max-width:700px){body:not(.home) #main .rf-trainer-catalog .trainer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}body:not(.home) #main .rf-trainer-catalog .trainer-info{padding:12px}#main .rf-trainer-catalog .trainer-info h2{font-size:.875rem}}
