
:root{--red:#DC0B16;--black:#060606;--ink:#121212;--muted:#666;--off:#f5f5f5}
*{box-sizing:border-box}body{overflow-x:hidden}.rk-wrap{max-width:1320px;margin:auto;padding:0 24px}.rk-eyebrow{color:var(--red);text-transform:uppercase;letter-spacing:2px;font-size:14px;font-weight:800}.rk-title{font-family:"Odibee Sans",sans-serif;text-transform:uppercase;line-height:.95;font-size:64px;margin:10px 0 18px}.rk-copy{font-family:"DM Sans",sans-serif;color:#666;line-height:1.8}.rk-btn{display:inline-flex;align-items:center;gap:10px;background:var(--red);color:#fff!important;padding:16px 27px;text-transform:uppercase;font-weight:800;clip-path:polygon(8% 0,100% 0,92% 100%,0 100%)}
.rk-top{background:#050505;color:#fff;font:13px "DM Sans",sans-serif}.rk-top .rk-wrap{display:flex;justify-content:space-between;align-items:center;min-height:42px}.rk-social,.rk-details{display:flex;align-items:center;gap:22px}.rk-top a{color:#fff}.rk-top svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}.rk-head{background:#fff;box-shadow:0 3px 20px rgba(0,0,0,.07);position:relative;z-index:30}.rk-head .rk-wrap{height:92px;display:grid;grid-template-columns:180px 1fr 180px;align-items:center}.rk-logo img{width:88px;height:88px;object-fit:contain}.rk-nav{display:flex;justify-content:center;gap:38px}.rk-nav a{font:800 15px "DM Sans",sans-serif;color:#111;text-transform:uppercase;position:relative}.rk-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-10px;height:3px;background:var(--red);transition:.25s}.rk-nav a:hover:after,.rk-nav a.active:after{right:0}.rk-head-cta{justify-self:end}.rk-menu{display:none;border:0;background:var(--red);color:#fff;width:48px;height:48px;font-size:22px}
.rk-hero{min-height:690px;background:url('../img/client/rooikraal-multipurpose-range.webp') center/cover;position:relative;display:flex;align-items:center;color:#fff}.rk-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.45) 55%,rgba(0,0,0,.18))}.rk-hero .rk-wrap{position:relative;width:100%}.rk-hero h4{font:700 15px "DM Sans";text-transform:uppercase;letter-spacing:3px;color:var(--red)}.rk-hero h1{font-family:"Odibee Sans";font-size:88px;line-height:.87;text-transform:uppercase;max-width:760px;margin:18px 0 28px}.rk-hero p{max-width:820px;color:#fff;line-height:1.7;margin-bottom:30px}.rk-actions{display:flex;gap:16px;flex-wrap:wrap}.rk-btn.alt{background:#fff;color:#111!important}.rk-hero-mark{position:absolute;width:230px;right:8%;bottom:8%;opacity:.45}
.rk-benefits{background-color:#f9f9f9;color:#111;background-image:linear-gradient(rgba(17,17,17,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(17,17,17,.045) 1px,transparent 1px);background-size:32px 32px}.rk-benefits .rk-wrap{display:grid;grid-template-columns:repeat(4,1fr)}.rk-benefit{padding:34px 22px;border:0;text-align:center;background:transparent;transition:background-color .3s ease,box-shadow .3s ease,transform .3s ease;position:relative;z-index:1}.rk-benefit:hover{background:#fff;box-shadow:0 16px 38px rgba(17,17,17,.12);transform:translateY(-6px);z-index:2}.rk-benefit:last-child{border:0}.rk-icon{width:58px;height:58px;border:1px solid var(--red);border-radius:50%;display:grid;place-items:center;margin:0 auto 15px;color:var(--red)}.rk-icon svg{width:27px;height:27px;stroke:currentColor;fill:none;stroke-width:1.8}.rk-benefit h3{font-family:"Odibee Sans";text-transform:uppercase;font-size:25px;margin:0 0 8px;color:#111}.rk-benefit p{font:14px/1.6 "DM Sans";color:#666;margin:0}
.rk-section{padding:105px 0}.rk-about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:80px;align-items:center}.rk-collage{position:relative;min-height:590px}.rk-collage .large{width:78%;height:500px;object-fit:cover}.rk-collage .small{position:absolute;right:0;bottom:0;width:48%;height:280px;object-fit:cover;border:12px solid #fff}.rk-years{position:absolute;left:18px;bottom:18px;background:var(--red);color:#fff;padding:22px 26px;clip-path:polygon(10% 0,100% 0,90% 100%,0 100%)}.rk-years strong{font:60px/1 "Odibee Sans";display:block}.rk-years span{font:700 12px "DM Sans";text-transform:uppercase}.rk-checks{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:25px 0}.rk-checks span{font:700 14px "DM Sans";display:flex;gap:10px;align-items:center}.rk-checks svg{width:18px;stroke:var(--red);fill:none;stroke-width:3}
.rk-precision{background:#f5f5f5;position:relative;overflow:hidden}.rk-precision:after{content:"";position:absolute;width:260px;height:260px;border:1px solid #ddd;border-radius:50%;right:-100px;bottom:-100px}.rk-center{text-align:center;max-width:760px;margin:0 auto 52px}.rk-path{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.rk-path-card{text-align:center;position:relative}.rk-path-card:not(:last-child):after{content:"";position:absolute;top:38px;right:-25%;width:50%;height:1px;background:#d6d6d6}.rk-path-card .rk-icon{background:#fff;width:78px;height:78px}.rk-path-card h3{font-family:"Odibee Sans";font-size:28px;text-transform:uppercase;margin:18px 0 8px}.rk-path-card p{font:14px/1.7 "DM Sans";color:#777}
.rk-cta-split{background:url('../img/client/rooikraal-plan-your-visit-background.webp') center/cover;color:#fff;position:relative}.rk-cta-split:before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.75)}.rk-cta-split .rk-wrap{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.rk-cta-split .rk-title{color:#fff}.rk-cta-pics{display:grid;grid-template-columns:1fr 1fr;gap:16px;transform:rotate(-3deg)}.rk-cta-pics img{width:100%;height:300px;object-fit:cover;border:8px solid #fff}.rk-stat{font-family:"Odibee Sans";font-size:38px;color:#fff;margin-top:24px}.rk-stat span{color:var(--red)}
.rk-testimonials{text-align:center}.rk-test-card{max-width:670px;margin:auto;background:var(--red);color:#fff;padding:58px 70px;position:relative}.rk-test-card:before,.rk-test-card:after{content:"";position:absolute;top:50%;width:78px;height:130px;background:#fff;border:1px solid #ddd;transform:translateY(-50%)}.rk-test-card:before{left:-110px}.rk-test-card:after{right:-110px}.rk-test-card p{font:18px/1.8 "DM Sans";margin-bottom:22px}.rk-test-card h4{font:28px "Odibee Sans";text-transform:uppercase;margin:0}.rk-test-card span{font:12px "DM Sans";text-transform:uppercase}.rk-test-logo{width:66px;height:66px;object-fit:contain;border-radius:50%;background:#fff;padding:3px;margin:0 auto 18px}
.rk-full-cta{background:url('../img/client/rooikraal-contact-cta-background.webp') center/cover;position:relative;color:#fff;text-align:center;padding:92px 20px}.rk-full-cta:before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.73)}.rk-full-cta>div{position:relative}.rk-full-cta h2{font:64px/.95 "Odibee Sans";text-transform:uppercase;margin:8px 0 16px}.rk-full-cta p{max-width:650px;margin:0 auto 28px;color:#fff;line-height:1.7}
.rk-faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.rk-faq-col{background:#fff;box-shadow:0 12px 35px rgba(0,0,0,.08);padding:18px 32px}.rk-faq{border-bottom:1px solid #e8e8e8}.rk-faq button{width:100%;background:none;border:0;padding:23px 0;display:flex;justify-content:space-between;text-align:left;font:700 15px "DM Sans"}.rk-faq button span{color:var(--red);font-size:22px}.rk-faq .answer{display:none;padding:0 0 22px;color:#777;line-height:1.7}.rk-faq.open .answer{display:block}
.rk-banner{height:310px;background:url('../img/client/rooikraal-tactical-shop.webp') center/cover;position:relative;color:#fff;display:flex;align-items:center;text-align:center}.rk-banner:before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.68)}.rk-banner .rk-wrap{position:relative}.rk-banner h1{font:72px/.9 "Odibee Sans";text-transform:uppercase;margin:0 0 12px}.rk-breadcrumb{font:13px "DM Sans";text-transform:uppercase}.rk-breadcrumb a{color:#fff}.rk-breadcrumb span{color:var(--red)}
.rk-story{display:grid;grid-template-columns:1fr 1fr;gap:65px}.rk-story-card{background:#f5f5f5;padding:48px}.rk-story-card.red{background:var(--red);color:#fff}.rk-story-card.red .rk-copy{color:#fff}.rk-statement-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:26px}.rk-statement{border-left:4px solid var(--red);padding:20px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.06)}.rk-statement h3{font:28px "Odibee Sans";text-transform:uppercase}.rk-strip{background:#060606;color:#fff;padding:25px 0;overflow:hidden}.rk-strip-track{white-space:nowrap;font:38px "Odibee Sans";text-transform:uppercase;letter-spacing:2px}.rk-strip-track span{color:var(--red);padding:0 18px}
.rk-service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.rk-service{background:#fff;box-shadow:0 12px 35px rgba(0,0,0,.08);overflow:hidden;position:relative}.rk-service img{width:100%;height:240px;object-fit:cover;transition:.35s}.rk-service:hover img{transform:scale(1.04)}.rk-service-body{padding:28px}.rk-service .rk-icon{margin:-57px 0 18px;background:var(--red);color:#fff;border:0;border-radius:0;position:relative}.rk-service h3{font-family:"Montserrat",sans-serif;font-size:24px;font-weight:800;line-height:1.15;text-transform:uppercase;margin:0 0 9px;white-space:normal}.rk-service p{font:14px/1.7 "DM Sans";color:#777}
.rk-coming{text-align:center;max-width:850px;margin:auto;padding:120px 20px}.rk-coming .scope{width:95px}.rk-coming h2{font:76px/.9 "Odibee Sans";text-transform:uppercase;margin:20px 0}.rk-contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:-55px;position:relative;z-index:3}.rk-contact-card{background:#fff;padding:35px;text-align:center;box-shadow:0 12px 35px rgba(0,0,0,.1)}.rk-contact-card .rk-icon{margin:auto auto 16px}.rk-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:stretch}.rk-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.rk-form input,.rk-form textarea{width:100%;padding:16px;border:1px solid #ddd;font:14px "DM Sans"}.rk-form textarea{grid-column:1/-1;min-height:150px}.rk-form button{border:0}.rk-map iframe{width:100%;height:100%;min-height:510px;border:0}
.rk-footer{background:#060606 url('../img/client/rooikraal-contact-cta-background.webp') center/cover;color:#fff;position:relative;padding-top:80px}.rk-footer:before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.88)}.rk-footer .rk-wrap{position:relative}.rk-footer-grid{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:60px;padding-bottom:55px}.rk-footer img{width:105px;height:105px;object-fit:contain;background:#fff}.rk-footer h3{font:28px "Odibee Sans";text-transform:uppercase}.rk-footer p,.rk-footer a{font:14px/1.8 "DM Sans";color:#bbb}.rk-footer ul{padding:0;list-style:none}.rk-bottom{border-top:1px solid #333;padding:20px 0;text-align:center;font-size:13px}.rk-bottom a{color:#fff}
@media(max-width:991px){.rk-head .rk-wrap{grid-template-columns:1fr auto}.rk-nav,.rk-head-cta{display:none}.rk-menu{display:block}.rk-nav.open{display:flex;position:absolute;top:92px;left:0;right:0;background:#fff;flex-direction:column;padding:25px;gap:20px;box-shadow:0 15px 30px rgba(0,0,0,.12)}.rk-hero h1{font-size:70px}.rk-benefits .rk-wrap,.rk-path,.rk-service-grid{grid-template-columns:repeat(2,1fr)}.rk-about-grid,.rk-cta-split,.rk-story,.rk-contact-grid{grid-template-columns:1fr}.rk-path-card:nth-child(2):after{display:none}.rk-contact-cards{grid-template-columns:1fr;margin-top:30px}.rk-footer-grid{grid-template-columns:1fr 1fr}.rk-title{font-size:54px}.rk-top .rk-wrap{justify-content:center}.rk-details{display:none}}
@media(max-width:640px){.rk-social{gap:14px}.rk-hero{min-height:610px}.rk-hero h1{font-size:52px}.rk-hero-mark{display:none}.rk-benefits .rk-wrap,.rk-path,.rk-service-grid,.rk-faq-grid,.rk-statement-grid,.rk-footer-grid{grid-template-columns:1fr}.rk-benefit{border:0}.rk-about-grid{gap:35px}.rk-collage{min-height:420px}.rk-collage .large{height:370px;width:88%}.rk-collage .small{height:190px}.rk-checks,.rk-form{grid-template-columns:1fr}.rk-form textarea{grid-column:auto}.rk-test-card{padding:45px 25px}.rk-test-card:before,.rk-test-card:after{display:none}.rk-full-cta h2{font-size:48px}.rk-banner h1{font-size:56px}.rk-coming h2{font-size:58px}.rk-section{padding:75px 0}}

/* v4 visual corrections */
body{margin:0!important;padding:0!important}
.rk-head{margin:0!important}.rk-head .rk-wrap{height:82px}.rk-logo img{width:68px;height:68px}
.rk-btn{clip-path:none!important;border-radius:0;padding:15px 28px;transition:background .25s,color .25s,transform .25s}.rk-btn:hover{background:#111;color:#fff!important;transform:translateY(-2px)}.rk-btn.alt:hover{background:var(--red);color:#fff!important}
.rk-eyebrow{display:flex;align-items:center;justify-content:flex-start;gap:10px}.rk-eyebrow:before{content:"";width:25px;height:25px;background:url('../img/shooting-target-icon.webp') center/contain no-repeat;display:inline-block}.rk-center .rk-eyebrow,.rk-full-cta .rk-eyebrow{justify-content:center}
.rk-banner{overflow:hidden}.rk-banner:after{content:"";position:absolute;left:50%;top:50%;width:380px;height:380px;transform:translate(-50%,-50%);background:url('../img/shooting-range-banner-target.webp') center/contain no-repeat;opacity:.18;pointer-events:none}.rk-banner .rk-wrap{z-index:1}
.rk-hero .rk-wrap{max-width:1320px;text-align:center}.rk-hero h1{max-width:1320px;margin-left:auto;margin-right:auto}.rk-hero p{margin-left:auto;margin-right:auto}.rk-actions{justify-content:center}.rk-hero-mark{right:50%;transform:translateX(50%);opacity:.18}
.rk-benefit h3{color:#111!important}
.rk-path{gap:0}.rk-path-card{padding:25px 28px 30px;transition:.3s;background:transparent}.rk-path-card:hover{background:#fff;box-shadow:0 15px 45px rgba(0,0,0,.09);transform:translateY(-8px)}.rk-path-card:hover .rk-icon{background:var(--red);color:#fff}.rk-path-card .rk-icon{transition:.3s}.rk-path-card:not(:last-child):after{right:-1px;width:1px;height:75px;top:35px;background:#ddd}
.rk-cta-split .rk-copy{margin-bottom:28px!important}.rk-cta-pics{position:relative;display:block;min-height:360px;transform:none}.rk-cta-pics img{position:absolute;width:62%;height:270px;border:10px solid #fff;box-shadow:0 18px 45px rgba(0,0,0,.35)}.rk-cta-pics img:first-child{left:0;top:10px;transform:rotate(-5deg)}.rk-cta-pics img:last-child{right:0;bottom:0;transform:rotate(5deg)}
.rk-full-cta h2{color:#fff!important}
.rk-faq-section{background:#fff!important}.rk-faq-col{box-shadow:none!important;padding:0 28px!important}.rk-faq-grid{gap:40px;border-top:1px solid #eee;border-bottom:0;padding:12px 0}.rk-faq button{font-family:"DM Sans",sans-serif}.rk-faq button:hover{color:var(--red)}
@keyframes rkMarquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.rk-footer{background:#090909!important;padding-top:65px}.rk-footer:before{display:none}.rk-footer-grid{grid-template-columns:1.15fr .7fr .8fr 1.25fr;gap:42px}.rk-footer img{width:100px;height:100px}.rk-footer h3{font-size:25px;margin-bottom:18px}.rk-footer p,.rk-footer a{color:#c8c8c8}.rk-footer-social{display:flex;gap:8px;margin-top:18px}.rk-footer-social a{width:34px;height:34px;background:var(--red);display:grid;place-items:center;color:#fff}.rk-footer-social svg,.rk-footer-contact svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}.rk-footer-contact li{display:flex;gap:10px;margin-bottom:10px}.rk-bottom{background:#030303;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-left:24px;padding-right:24px}
.rk-about-intro{display:grid;grid-template-columns:1fr 1fr 1fr;gap:34px;align-items:center}.rk-about-intro .rk-who{padding-right:12px}.rk-about-intro .rk-main-photo img{width:100%;height:470px;object-fit:cover}.rk-about-intro .rk-offers{display:flex;flex-direction:column;gap:20px}.rk-offer{display:grid;grid-template-columns:55px 1fr;gap:16px;align-items:start}.rk-offer .rk-icon{width:50px;height:50px;margin:0}.rk-offer h3{font:27px "Odibee Sans";text-transform:uppercase;margin:0 0 4px}.rk-offer p{font:13px/1.6 "DM Sans";color:#777;margin:0}.rk-about-counters{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;margin-top:55px;border-top:1px solid #eee;padding-top:30px}.rk-about-counter{text-align:center}.rk-about-counter strong{display:block;font:48px "Odibee Sans";color:var(--red)}.rk-about-counter span{font:12px "DM Sans";text-transform:uppercase;font-weight:700}
@media(max-width:991px){.rk-footer-grid{grid-template-columns:1fr 1fr}.rk-about-intro{grid-template-columns:1fr 1fr}.rk-about-intro .rk-offers{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,1fr)}.rk-hero .rk-wrap{text-align:left}.rk-actions{justify-content:flex-start}.rk-hero h1,.rk-hero p{margin-left:0}.rk-path{gap:20px}.rk-path-card:not(:last-child):after{display:none}}
@media(max-width:640px){.rk-footer-grid,.rk-about-intro,.rk-about-intro .rk-offers,.rk-about-counters{grid-template-columns:1fr}.rk-cta-pics{min-height:430px}.rk-cta-pics img{width:80%;height:240px}.rk-path-card{padding:25px}.rk-eyebrow{justify-content:flex-start}.rk-center .rk-eyebrow{justify-content:center}}

/* v5 heading target treatment */
.rk-heading-mark{position:relative;display:inline-block;isolation:isolate;margin-bottom:2px}
.rk-heading-mark:before{content:"";position:absolute;left:50%;top:-18px;bottom:-14px;width:1px;background:rgba(239,27,35,.28);transform:translateX(-50%);z-index:-1;pointer-events:none}
.rk-heading-mark:after{content:"";position:absolute;left:50%;top:46%;width:28px;height:28px;border:1px solid rgba(239,27,35,.24);border-radius:50%;transform:translate(-50%,-50%);z-index:-1;pointer-events:none}
.rk-heading-mark .rk-eyebrow,.rk-heading-mark .rk-title,.rk-heading-mark h1,.rk-heading-mark h2,.rk-heading-mark h3{position:relative;z-index:1}
.rk-center .rk-heading-mark{display:inline-block;max-width:100%}
.rk-full-cta .rk-heading-mark{display:block;width:max-content;max-width:100%;margin-left:auto;margin-right:auto}
.rk-full-cta .rk-heading-mark:before,.rk-full-cta .rk-heading-mark:after{opacity:.7}
.rk-heading-mark + .rk-copy{margin-top:10px}

/* About page requested classic layout */
.rk-about-classic{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.95fr);gap:72px;align-items:start}
.rk-about-classic-copy .rk-heading-mark{margin-bottom:8px}
.rk-about-classic-copy .rk-title{font-size:58px}
.rk-about-classic-copy .rk-btn{margin-top:8px}
.rk-about-visual>img{display:block;width:100%;height:465px;object-fit:cover}
.rk-about-visual .rk-about-counters{margin-top:0;padding-top:26px;border-top:0;gap:14px}
.rk-about-visual .rk-about-counter strong{font-size:40px}
.rk-about-visual .rk-about-counter span{font-size:9px;line-height:1.45;display:block}
.rk-about-statements{margin-top:50px}
.rk-btn{clip-path:none;border-radius:0}

/* continuous, evenly spaced brand strip */
.rk-strip{padding:0;overflow:hidden}
.rk-strip-track{display:flex;width:max-content;white-space:nowrap;animation:rkMarquee 28s linear infinite;will-change:transform;font:26px "Odibee Sans";letter-spacing:1px}
.rk-strip-group{display:flex;align-items:center;flex-shrink:0;padding:17px 0}
.rk-strip-item{color:#fff!important;padding:0 20px!important}
.rk-strip-star{color:var(--red)!important;padding:0 4px!important;font-size:18px;line-height:1}
.rk-strip-track::before,.rk-strip-track::after{content:none!important;display:none!important}
.rk-strip-group>*{display:inline-flex;align-items:center;justify-content:center;line-height:1}
.rk-strip-track,.rk-strip-group{height:60px}
.rk-strip-group{box-sizing:border-box}
@keyframes rkMarquee{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.rk-strip-track{animation-play-state:paused}}

@media(max-width:991px){.rk-about-classic{grid-template-columns:1fr;gap:44px}.rk-about-visual>img{height:500px}}
@media(max-width:640px){.rk-heading-mark:before{top:-10px;bottom:-8px}.rk-heading-mark:after{width:22px;height:22px}.rk-about-classic-copy .rk-title{font-size:46px}.rk-about-visual>img{height:360px}.rk-about-visual .rk-about-counters{grid-template-columns:repeat(2,1fr)}.rk-about-statements{margin-top:36px}.rk-strip-track{font-size:22px}}

/* v7 clean section-heading target treatment */
.rk-eyebrow{
  display:flex;
  align-items:center;
  gap:10px;
}
.rk-eyebrow:before{
  content:"";
  flex:0 0 24px;
  width:24px;
  height:24px;
  background:url('../svg/target-red.svg') center/contain no-repeat;
}
.rk-heading-mark{
  position:relative;
  display:inline-block;
  margin-bottom:2px;
  isolation:auto;
}
.rk-heading-mark:before,
.rk-heading-mark:after{
  content:none!important;
  display:none!important;
}
.rk-heading-mark .rk-eyebrow,
.rk-heading-mark .rk-title,
.rk-heading-mark h1,
.rk-heading-mark h2,
.rk-heading-mark h3{
  position:static;
  z-index:auto;
}
.rk-center .rk-heading-mark,
.rk-full-cta .rk-heading-mark{
  max-width:100%;
}
.rk-full-cta .rk-heading-mark{
  width:auto;
}
@media(max-width:640px){
  .rk-eyebrow:before{width:21px;height:21px;flex-basis:21px}
}

/* v8: place the target above centred small headings */
.rk-center .rk-eyebrow,
.rk-full-cta .rk-eyebrow{
  flex-direction:column;
  justify-content:center;
  gap:7px;
  text-align:center;
}
.rk-center .rk-eyebrow:before,
.rk-full-cta .rk-eyebrow:before{
  flex-basis:24px;
  margin:0 auto;
}

/* Home hero small heading uses the same centred target treatment */
.rk-hero h4{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:9px;
  text-align:center;
}
.rk-hero h4:before{
  content:"";
  display:block;
  width:28px;
  height:28px;
  background:url('../svg/target-red.svg') center/contain no-repeat;
}

@media(max-width:991px){
  .rk-hero h4{
    align-items:flex-start;
    text-align:left;
  }
  .rk-hero h4:before{margin-left:0}
}

@media(max-width:640px){
  .rk-center .rk-eyebrow:before,
  .rk-full-cta .rk-eyebrow:before{flex-basis:21px}
  .rk-hero h4:before{width:24px;height:24px}
}

/* v9: Match all button typography to the main navigation */
.rk-btn,
button.rk-btn,
a.rk-btn,
.rk-form button,
.rk-header .rk-contact-btn,
.rk-mobile-menu a.rk-btn {
  font-family: "DM Sans", sans-serif !important;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0;
}

/* Footer readability fixes */
.rk-footer h3{
  color:#fff!important;
}
.rk-bottom,
.rk-bottom p,
.rk-bottom a{
  font-family:"DM Sans",sans-serif!important;
  font-size:13px!important;
  font-weight:400!important;
  line-height:1.6!important;
  letter-spacing:0!important;
  text-transform:none!important;
}

/* Footer contact icon alignment */
.rk-footer-contact li{
  align-items:flex-start;
}
.rk-footer-contact li svg{
  flex:0 0 16px;
  width:16px;
  height:16px;
  margin-top:4px;
}
.rk-footer-contact li a{
  display:block;
  line-height:1.55;
}

/* Keep the custom Rooikraal header compact and prevent the template's global header spacing from applying. */
header.rk-head{
  position:relative;
  width:100%;
  padding-top:0!important;
  margin:0!important;
}
header.rk-head .rk-wrap{
  height:82px;
  min-height:82px;
  padding-top:0;
  padding-bottom:0;
}

/* v13: Sticky main header and back-to-top button */
header.rk-head{
  position:sticky;
  top:0;
  z-index:1000;
  background:#fff;
  box-shadow:0 4px 18px rgba(0,0,0,.10);
}

.rk-back-to-top{
  position:fixed;
  right:24px;
  bottom:24px;
  width:48px;
  height:48px;
  border:0;
  border-radius:0;
  background:#f51b25;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(12px);
  transition:opacity .25s ease,transform .25s ease,visibility .25s ease,background .25s ease;
  z-index:1100;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
}
.rk-back-to-top.show{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.rk-back-to-top:hover,
.rk-back-to-top:focus-visible{
  background:#060606;
}
.rk-back-to-top svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
@media(max-width:640px){
  .rk-back-to-top{
    right:16px;
    bottom:16px;
    width:44px;
    height:44px;
  }
}

/* v14: Reliable sticky header fallback for browsers/layouts where position: sticky is blocked. */
header.rk-head{
  position:relative;
  top:auto;
  left:auto;
  right:auto;
  transition:box-shadow .2s ease;
}
header.rk-head.rk-head-fixed{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  z-index:99999!important;
  background:#fff!important;
  box-shadow:0 4px 18px rgba(0,0,0,.14);
}
.rk-head-spacer{
  display:none;
  width:100%;
}
.rk-head-spacer.active{
  display:block;
}

/* v15: About page counters float over the Who We Are image */
.rk-about-visual {
  position: relative;
  padding-bottom: 58px;
}

.rk-about-visual .rk-about-counters {
  position: absolute;
  left: 5%;
  right: 5%;
  bottom: 0;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 25px 18px 23px;
  background: #fff;
  border: 0;
  box-shadow: 0 18px 42px rgba(0, 0, 0, .14);
}

.rk-about-visual .rk-about-counter {
  position: relative;
  padding: 0 13px;
}

.rk-about-visual .rk-about-counter:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 7px;
  right: 0;
  width: 1px;
  height: calc(100% - 14px);
  background: #e8e8e8;
}

.rk-about-visual .rk-about-counter strong {
  margin-bottom: 4px;
}

@media (max-width: 767px) {
  .rk-about-visual {
    padding-bottom: 128px;
  }

  .rk-about-visual .rk-about-counters {
    left: 20px;
    right: 20px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 22px;
    padding: 22px 12px;
  }

  .rk-about-visual .rk-about-counter:nth-child(2)::after,
  .rk-about-visual .rk-about-counter:last-child::after {
    display: none;
  }

  .rk-about-visual .rk-about-counter:nth-child(-n+2) {
    padding-bottom: 18px;
    border-bottom: 1px solid #e8e8e8;
  }
}

@media (max-width: 420px) {
  .rk-about-visual > img {
    height: 320px;
  }

  .rk-about-visual .rk-about-counters {
    left: 12px;
    right: 12px;
  }
}

/* v16: align floating About counters with the Services button */
@media (min-width: 992px) {
  .rk-about-classic {
    align-items: stretch;
  }

  .rk-about-visual {
    height: 100%;
    padding-bottom: 0;
  }

  .rk-about-visual .rk-about-counters {
    bottom: 0;
  }

  .rk-about-statements {
    margin-top: 82px;
  }
}

@media (max-width: 991px) {
  .rk-about-statements {
    margin-top: 68px;
  }
}

/* v17: extend the About image behind the floating counters */
@media (min-width: 992px) {
  .rk-about-visual {
    position: relative;
    height: 100%;
    min-height: 0;
    padding-bottom: 0;
    overflow: visible;
  }

  .rk-about-visual > img {
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
  }

  .rk-about-visual .rk-about-counters {
    bottom: 0;
    transform: translateY(0);
  }

  .rk-about-statements {
    margin-top: 96px;
  }
}

/* v18: keep the counter card floating over the image while aligning its bottom with the copy button */
@media (min-width: 992px) {
  .rk-about-classic {
    align-items: stretch;
  }

  .rk-about-visual {
    position: relative;
    height: 100%;
    min-height: 0;
    padding-bottom: 0;
    overflow: visible;
  }

  .rk-about-visual > img {
    display: block;
    width: 100%;
    height: calc(100% - 60px);
    min-height: 0;
    object-fit: cover;
  }

  .rk-about-visual .rk-about-counters {
    bottom: 0;
    transform: none;
  }

  .rk-about-statements {
    margin-top: 96px;
  }
}

/* v78: let the Who We Are image column match the taller text column */
@media (min-width: 992px) {
  .rk-about-classic {
    align-items: stretch;
  }

  .rk-about-visual {
    height: auto;
    min-height: 0;
  }

  .rk-about-visual > img {
    height: calc(100% - 60px);
    min-height: 0;
    object-fit: cover;
  }

  .rk-about-visual .rk-about-counters {
    bottom: 0;
  }
}


/* v21 continuous marquee: each loop group is wider than the viewport, preventing empty gaps */
.rk-strip-track{
  display:flex;
  width:max-content;
  animation:rkMarquee 42s linear infinite;
}
.rk-strip-group{
  display:flex;
  align-items:center;
  flex:0 0 auto;
  min-width:max-content;
  padding:0;
}
.rk-strip-group>*{flex:0 0 auto;}
@keyframes rkMarquee{
  from{transform:translate3d(0,0,0);}
  to{transform:translate3d(-50%,0,0);}
}

/* v22: remove decorative circle from the About page Why Rooikraal section */
.rk-precision::after{display:none!important;content:none!important}


/* v23: decorative target behind the About page collage */
.rk-precision .rk-collage{
  position:relative;
  isolation:isolate;
}
.rk-precision .rk-collage:before{
  content:"";
  position:absolute;
  width:320px;
  height:320px;
  right:95px;
  top:54%;
  transform:translateY(-50%);
  background:url('../img/shooting-range-banner-target.webp') center/contain no-repeat;
  opacity:.16;
  pointer-events:none;
  z-index:0;
}
.rk-precision .rk-collage .large,
.rk-precision .rk-collage .small{
  position:relative;
  z-index:1;
}
@media(max-width:1199px){
  .rk-precision .rk-collage:before{
    width:280px;
    height:280px;
    right:72px;
  }
}
@media(max-width:991px){
  .rk-precision .rk-collage:before{
    width:250px;
    height:250px;
    right:50%;
    top:46%;
    transform:translate(50%,-50%);
    opacity:.14;
  }
}
@media(max-width:640px){
  .rk-precision .rk-collage:before{
    width:210px;
    height:210px;
  }
}

/* v24: restore collage positioning and add a visible red target behind the images */
.rk-precision .rk-collage{
  position:relative;
  isolation:isolate;
}
.rk-precision .rk-collage::before{
  content:"";
  position:absolute;
  left:62%;
  top:48%;
  width:330px;
  height:330px;
  transform:translate(-50%,-50%);
  background:url('../svg/target-red.svg') center/contain no-repeat;
  opacity:.34;
  pointer-events:none;
  z-index:0;
}
.rk-precision .rk-collage .large{
  position:relative;
  z-index:1;
}
.rk-precision .rk-collage .small{
  position:absolute!important;
  right:0!important;
  bottom:0!important;
  z-index:2;
}
@media(max-width:1199px){
  .rk-precision .rk-collage::before{
    left:60%;
    width:290px;
    height:290px;
  }
}
@media(max-width:991px){
  .rk-precision .rk-collage::before{
    left:61%;
    top:46%;
    width:250px;
    height:250px;
    transform:translate(-50%,-50%);
    opacity:.28;
  }
}
@media(max-width:640px){
  .rk-precision .rk-collage::before{
    width:210px;
    height:210px;
  }
}


/* v25: thinner red target behind collage, shifted right for visibility */
.rk-precision .rk-collage::before{
  left:74%;
  top:50%;
  width:390px;
  height:390px;
  background:url('../svg/target-red.svg') center/contain no-repeat;
  opacity:.46;
}
@media(max-width:1199px){
  .rk-precision .rk-collage::before{
    left:71%;
    width:340px;
    height:340px;
    opacity:.42;
  }
}
@media(max-width:991px){
  .rk-precision .rk-collage::before{
    left:67%;
    top:48%;
    width:280px;
    height:280px;
    opacity:.36;
  }
}
@media(max-width:640px){
  .rk-precision .rk-collage::before{
    left:64%;
    width:220px;
    height:220px;
    opacity:.30;
  }
}


/* v26: move the decorative red target slightly further right and slightly upward */
.rk-precision .rk-collage::before{
  left:77%;
  top:46%;
}
@media(max-width:1199px){
  .rk-precision .rk-collage::before{
    left:74%;
    top:46%;
  }
}
@media(max-width:991px){
  .rk-precision .rk-collage::before{
    left:69%;
    top:45%;
  }
}
@media(max-width:640px){
  .rk-precision .rk-collage::before{
    left:66%;
    top:44%;
  }
}


/* v27: correct the centred Membership coming-soon heading treatment */
.rk-coming .scope{
  display:none!important;
}
.rk-coming .rk-heading-mark{
  display:block;
  width:100%;
  margin:0 auto 18px;
  text-align:center;
}
.rk-coming .rk-eyebrow{
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:7px;
  text-align:center;
}
.rk-coming .rk-eyebrow::before{
  flex-basis:24px;
  width:24px;
  height:24px;
  margin:0 auto;
}
.rk-coming .rk-heading-mark h2{
  margin:14px 0 0;
  text-align:center;
}


/* v28: ensure all small-heading target icons render as solid red, not faded */
.rk-eyebrow::before,
.rk-eyebrow:before,
.rk-coming .rk-eyebrow::before,
.rk-center .rk-eyebrow::before,
.rk-full-cta .rk-eyebrow::before,
.rk-hero h4::before{
  background-image:url('../svg/target-red.svg') !important;
  background-size:contain !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
  opacity:1 !important;
  filter:none !important;
}

/* v29: dedicated high-contrast target for small section headings */
.rk-eyebrow::before,
.rk-eyebrow:before,
.rk-coming .rk-eyebrow::before,
.rk-center .rk-eyebrow::before,
.rk-full-cta .rk-eyebrow::before,
.rk-hero h4::before{
  background-image:url('../svg/target-heading.svg') !important;
  opacity:1 !important;
  filter:none !important;
}


/* v31: three evenly spaced About page counters */
.rk-about-visual .rk-about-counters{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
@media(max-width:767px){
  .rk-about-visual{
    padding-bottom:78px;
  }
  .rk-about-visual .rk-about-counters{
    grid-template-columns:repeat(3,minmax(0,1fr));
    row-gap:0;
    padding:20px 8px;
  }
  .rk-about-visual .rk-about-counter{
    padding:0 7px!important;
    border-bottom:0!important;
  }
  .rk-about-visual .rk-about-counter:not(:last-child)::after{
    display:block;
  }
  .rk-about-visual .rk-about-counter:last-child::after{
    display:none;
  }
}
@media(max-width:480px){
  .rk-about-visual{
    padding-bottom:250px;
  }
  .rk-about-visual .rk-about-counters{
    grid-template-columns:1fr;
    gap:16px;
  }
  .rk-about-visual .rk-about-counter{
    padding:0 0 16px!important;
  }
  .rk-about-visual .rk-about-counter:not(:last-child){
    border-bottom:1px solid #e8e8e8!important;
  }
  .rk-about-visual .rk-about-counter::after{
    display:none!important;
  }
}


/* v32: use a full SVG target for all inner hero sections without changing layout */
.rk-banner:after{
  background:url('../svg/banner-scope.svg') center/contain no-repeat !important;
}


/* v33: enlarge inner hero target and lower its centre to match desired reference */
.rk-banner:after{
  width: 500px !important;
  height: 500px !important;
  top: 58% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
}


/* v34: make inner hero target larger and intentionally off-centre to match reference */
.rk-banner:after{
  width: 640px !important;
  height: 640px !important;
  top: 62% !important;
  left: 56% !important;
  transform: translate(-50%, -50%) !important;
}

@media (max-width: 1199px){
  .rk-banner:after{
    width: 560px !important;
    height: 560px !important;
    top: 61% !important;
    left: 55% !important;
  }
}

@media (max-width: 991px){
  .rk-banner:after{
    width: 460px !important;
    height: 460px !important;
    top: 60% !important;
    left: 54% !important;
  }
}

@media (max-width: 767px){
  .rk-banner:after{
    width: 360px !important;
    height: 360px !important;
    top: 59% !important;
    left: 53% !important;
  }
}


/* v35: keep the vertical offset, but centre the inner hero target horizontally */
.rk-banner:after{
  left: 50% !important;
}

@media (max-width: 1199px){
  .rk-banner:after{left:50% !important;}
}

@media (max-width: 991px){
  .rk-banner:after{left:50% !important;}
}

@media (max-width: 767px){
  .rk-banner:after{left:50% !important;}
}


/* v36: make the complete contact information cards clickable */
.rk-contact-card-link{
  display:block;
  color:#111!important;
  text-decoration:none!important;
  cursor:pointer;
  transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease;
}
.rk-contact-card-link h3,
.rk-contact-card-link span{color:inherit;}
.rk-contact-card-link span{display:block;font:13px/1.55 "DM Sans",sans-serif;}
.rk-contact-card-link:hover,
.rk-contact-card-link:focus-visible{
  color:#111!important;
  transform:translateY(-6px);
  box-shadow:0 18px 45px rgba(0,0,0,.14);
}
.rk-contact-card-link:hover .rk-icon,
.rk-contact-card-link:focus-visible .rk-icon{background:var(--red);color:#fff;}
.rk-contact-card-link:focus-visible{outline:3px solid rgba(239,27,35,.35);outline-offset:4px;}


/* v37: use one consistent solid overlay colour on the Home hero */
.rk-hero::before{
  background:rgba(0,0,0,.58) !important;
}


/* v38: balanced Home hero buttons */
.rk-hero .rk-actions .rk-btn{
  min-width:190px;
  justify-content:center;
  text-align:center;
}
@media(max-width:480px){
  .rk-hero .rk-actions{width:100%;}
  .rk-hero .rk-actions .rk-btn{
    width:100%;
    min-width:0;
  }
}

/* v41: centre the Home hero image on both axes */
.rk-hero{
  background-position:center center !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;
}


/* v42: position the Home hero image at the top centre */
.rk-hero{
  background-position:center top !important;
}


/* v43: correct Home hero focal point for the portrait-oriented client photo */
.rk-hero{
  background-position:center 38% !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;
}
@media(max-width:991px){
  .rk-hero{background-position:center 40% !important;}
}
@media(max-width:640px){
  .rk-hero{background-position:center 42% !important;}
}


/* v44: content-only entrance animations */
html.rk-motion-enabled .rk-reveal{
  opacity:0;
  transform:translate3d(0,26px,0);
  transition:
    opacity .72s cubic-bezier(.22,.61,.36,1),
    transform .72s cubic-bezier(.22,.61,.36,1);
  transition-delay:var(--rk-delay,0ms);
  will-change:opacity,transform;
}
html.rk-motion-enabled .rk-reveal.rk-from-left{
  transform:translate3d(-34px,0,0);
}
html.rk-motion-enabled .rk-reveal.rk-from-right{
  transform:translate3d(34px,0,0);
}
html.rk-motion-enabled .rk-reveal.rk-scale-in{
  transform:scale(.965);
}
html.rk-motion-enabled .rk-reveal.rk-visible{
  opacity:1;
  transform:none;
}

/* Hero and inner-page hero content enter on page load; backgrounds stay static. */
html.rk-motion-enabled .rk-hero .rk-reveal,
html.rk-motion-enabled .rk-banner .rk-reveal{
  transition-duration:.82s;
}

@media(max-width:767px){
  html.rk-motion-enabled .rk-reveal,
  html.rk-motion-enabled .rk-reveal.rk-from-left,
  html.rk-motion-enabled .rk-reveal.rk-from-right{
    transform:translate3d(0,20px,0);
  }
}

@media(prefers-reduced-motion:reduce){
  html.rk-motion-enabled .rk-reveal{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
}


/* v46: apply the first animation frame before the page paints */
html.rk-motion-enabled.rk-motion-loading .rk-hero h4,
html.rk-motion-enabled.rk-motion-loading .rk-hero h1,
html.rk-motion-enabled.rk-motion-loading .rk-hero p,
html.rk-motion-enabled.rk-motion-loading .rk-hero .rk-actions,
html.rk-motion-enabled.rk-motion-loading .rk-banner h1,
html.rk-motion-enabled.rk-motion-loading .rk-banner .rk-breadcrumb,
html.rk-motion-enabled.rk-motion-loading .rk-benefit,
html.rk-motion-enabled.rk-motion-loading .rk-heading-mark,
html.rk-motion-enabled.rk-motion-loading .rk-copy,
html.rk-motion-enabled.rk-motion-loading .rk-checks,
html.rk-motion-enabled.rk-motion-loading .rk-collage,
html.rk-motion-enabled.rk-motion-loading .rk-about-visual,
html.rk-motion-enabled.rk-motion-loading .rk-main-photo,
html.rk-motion-enabled.rk-motion-loading .rk-cta-pics,
html.rk-motion-enabled.rk-motion-loading .rk-map,
html.rk-motion-enabled.rk-motion-loading .rk-path-card,
html.rk-motion-enabled.rk-motion-loading .rk-service,
html.rk-motion-enabled.rk-motion-loading .rk-statement,
html.rk-motion-enabled.rk-motion-loading .rk-offer,
html.rk-motion-enabled.rk-motion-loading .rk-about-counter,
html.rk-motion-enabled.rk-motion-loading .rk-contact-card,
html.rk-motion-enabled.rk-motion-loading .rk-test-card,
html.rk-motion-enabled.rk-motion-loading .rk-coming,
html.rk-motion-enabled.rk-motion-loading .rk-form,
html.rk-motion-enabled.rk-motion-loading .rk-faq,
html.rk-motion-enabled.rk-motion-loading .rk-full-cta > div{
  opacity:0;
}

@media(prefers-reduced-motion:reduce){
  html.rk-motion-enabled.rk-motion-loading .rk-hero h4,
  html.rk-motion-enabled.rk-motion-loading .rk-hero h1,
  html.rk-motion-enabled.rk-motion-loading .rk-hero p,
  html.rk-motion-enabled.rk-motion-loading .rk-hero .rk-actions,
  html.rk-motion-enabled.rk-motion-loading .rk-banner h1,
  html.rk-motion-enabled.rk-motion-loading .rk-banner .rk-breadcrumb,
  html.rk-motion-enabled.rk-motion-loading .rk-benefit,
  html.rk-motion-enabled.rk-motion-loading .rk-heading-mark,
  html.rk-motion-enabled.rk-motion-loading .rk-copy,
  html.rk-motion-enabled.rk-motion-loading .rk-checks,
  html.rk-motion-enabled.rk-motion-loading .rk-collage,
  html.rk-motion-enabled.rk-motion-loading .rk-about-visual,
  html.rk-motion-enabled.rk-motion-loading .rk-main-photo,
  html.rk-motion-enabled.rk-motion-loading .rk-cta-pics,
  html.rk-motion-enabled.rk-motion-loading .rk-map,
  html.rk-motion-enabled.rk-motion-loading .rk-path-card,
  html.rk-motion-enabled.rk-motion-loading .rk-service,
  html.rk-motion-enabled.rk-motion-loading .rk-statement,
  html.rk-motion-enabled.rk-motion-loading .rk-offer,
  html.rk-motion-enabled.rk-motion-loading .rk-about-counter,
  html.rk-motion-enabled.rk-motion-loading .rk-contact-card,
  html.rk-motion-enabled.rk-motion-loading .rk-test-card,
  html.rk-motion-enabled.rk-motion-loading .rk-coming,
  html.rk-motion-enabled.rk-motion-loading .rk-form,
  html.rk-motion-enabled.rk-motion-loading .rk-faq,
  html.rk-motion-enabled.rk-motion-loading .rk-full-cta > div{
    opacity:1!important;
  }
}


/* v47: enlarge Plan Your Visit images by 35% on hover */
.rk-cta-pics img{
  transition: transform .35s ease, box-shadow .35s ease, z-index 0s;
  transform-origin:center center;
  will-change:transform;
}
.rk-cta-pics img:first-child:hover{
  transform:rotate(-5deg) scale(1.35) !important;
  z-index:5;
  box-shadow:0 24px 60px rgba(0,0,0,.45);
}
.rk-cta-pics img:last-child:hover{
  transform:rotate(5deg) scale(1.35) !important;
  z-index:5;
  box-shadow:0 24px 60px rgba(0,0,0,.45);
}
@media (hover:none){
  .rk-cta-pics img:first-child:hover{transform:rotate(-5deg) !important;}
  .rk-cta-pics img:last-child:hover{transform:rotate(5deg) !important;}
}


/* v49: transparent Home header over the hero, solid when sticky */
.rk-home-page header.rk-head:not(.rk-head-fixed){
  position:absolute!important;
  top:42px!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  background:transparent!important;
  box-shadow:none!important;
  z-index:1000!important;
  transition:background-color .25s ease,box-shadow .25s ease,color .25s ease;
}
.rk-home-page header.rk-head:not(.rk-head-fixed) .rk-nav a{
  color:#fff!important;
  text-shadow:0 1px 4px rgba(0,0,0,.35);
}
.rk-home-page header.rk-head:not(.rk-head-fixed) .rk-logo img{
  background:#fff;
}
.rk-home-page header.rk-head.rk-head-fixed{
  background:#fff!important;
  box-shadow:0 4px 18px rgba(0,0,0,.14)!important;
}
.rk-home-page header.rk-head.rk-head-fixed .rk-nav a{
  color:#111!important;
  text-shadow:none;
}
.rk-home-page .rk-head-spacer{
  display:none!important;
  height:0!important;
}
@media(max-width:991px){
  .rk-home-page header.rk-head:not(.rk-head-fixed) .rk-nav.open{
    background:#fff!important;
  }
  .rk-home-page header.rk-head:not(.rk-head-fixed) .rk-nav.open a{
    color:#111!important;
    text-shadow:none;
  }
}


/* v50: transparent header over every inner hero; solid white once sticky */
.rk-inner-page header.rk-head:not(.rk-head-fixed){
  position:absolute!important;
  top:42px!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  background:transparent!important;
  box-shadow:none!important;
  z-index:1000!important;
  transition:background-color .25s ease,box-shadow .25s ease,color .25s ease;
}
.rk-inner-page header.rk-head:not(.rk-head-fixed) .rk-nav a{
  color:#fff!important;
  text-shadow:0 1px 4px rgba(0,0,0,.35);
}
.rk-inner-page header.rk-head:not(.rk-head-fixed) .rk-logo img{
  background:#fff;
}
.rk-inner-page header.rk-head.rk-head-fixed{
  background:#fff!important;
  box-shadow:0 4px 18px rgba(0,0,0,.14)!important;
}
.rk-inner-page header.rk-head.rk-head-fixed .rk-nav a{
  color:#111!important;
  text-shadow:none;
}
.rk-inner-page .rk-head-spacer{
  display:none!important;
  height:0!important;
}
@media(max-width:991px){
  .rk-inner-page header.rk-head:not(.rk-head-fixed) .rk-nav.open{
    background:#fff!important;
  }
  .rk-inner-page header.rk-head:not(.rk-head-fixed) .rk-nav.open a{
    color:#111!important;
    text-shadow:none;
  }
}

/* v52: consistent button borders without an outer outline */
.rk-btn,
.rk-form button,
.rk-back-to-top,
.rk-menu {
  box-sizing:border-box;
  border:2px solid var(--red) !important;
  outline:none !important;
}

/* Secondary white buttons keep a white border in their normal state. */
.rk-btn.alt {
  border-color:#fff !important;
}

/* Hover and keyboard-focus state: black fill with a red border. */
.rk-btn:hover,
.rk-btn:focus-visible,
.rk-btn.alt:hover,
.rk-btn.alt:focus-visible,
.rk-form button:hover,
.rk-form button:focus-visible,
.rk-back-to-top:hover,
.rk-back-to-top:focus-visible,
.rk-menu:hover,
.rk-menu:focus-visible {
  background:#111 !important;
  color:#fff !important;
  border-color:var(--red) !important;
  outline:none !important;
}


/* v53: three-card, five-testimonial autoplay carousel */
.rk-testimonials{overflow:hidden}
.rk-testimonial-carousel{position:relative;max-width:1180px;margin:0 auto}
.rk-testimonial-viewport{overflow:hidden;padding:16px 6px 28px}
.rk-testimonial-track{display:flex;gap:24px;will-change:transform;transition:transform .65s cubic-bezier(.22,.61,.36,1)}
.rk-testimonial-carousel .rk-test-card{
  flex:0 0 calc((100% - 48px)/3);
  max-width:none;
  margin:0;
  min-height:360px;
  padding:42px 34px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  box-shadow:0 14px 38px rgba(0,0,0,.10);
}
.rk-testimonial-carousel .rk-test-card:before,
.rk-testimonial-carousel .rk-test-card:after{display:none!important}
.rk-testimonial-carousel .rk-test-card p{font-size:16px;line-height:1.75;flex:1;display:flex;align-items:center;margin:0 0 22px}
.rk-testimonial-carousel .rk-test-card h4{margin-top:auto}
.rk-testimonial-dots{display:flex;justify-content:center;gap:9px;margin-top:6px}
.rk-testimonial-dot{width:9px;height:9px;border-radius:50%;border:1px solid var(--red);background:transparent;padding:0;cursor:pointer;transition:background .25s,transform .25s}
.rk-testimonial-dot.active{background:var(--red);transform:scale(1.18)}
.rk-testimonial-carousel:hover .rk-testimonial-track{transition-duration:.7s}
@media(max-width:991px){
  .rk-testimonial-carousel .rk-test-card{flex-basis:calc((100% - 24px)/2)}
}
@media(max-width:640px){
  .rk-testimonial-track{gap:16px}
  .rk-testimonial-carousel .rk-test-card{flex-basis:100%;min-height:330px;padding:38px 24px}
}
@media(prefers-reduced-motion:reduce){
  .rk-testimonial-track{transition:none!important}
}


/* v54: refined testimonial cards and arrow navigation */
.rk-testimonials,
.rk-testimonials .rk-wrap,
.rk-testimonial-carousel,
.rk-testimonial-viewport{
  background:transparent!important;
  box-shadow:none!important;
}
.rk-testimonial-carousel{
  padding:0 58px;
}
.rk-testimonial-viewport{
  padding:18px 8px 34px;
}
.rk-testimonial-carousel .rk-test-card{
  background:#fff!important;
  color:#333!important;
  border:1px solid #f0f0f0;
  box-shadow:0 14px 36px rgba(0,0,0,.10)!important;
}
.rk-testimonial-carousel .rk-test-card p{
  color:#555!important;
}
.rk-testimonial-carousel .rk-test-card h4{
  color:var(--red)!important;
}
.rk-testimonial-carousel .rk-test-card span{
  color:#111!important;
  font-weight:700;
}
.rk-testimonial-carousel .rk-test-logo{
  border:3px solid var(--red);
  box-shadow:0 6px 18px rgba(0,0,0,.08);
}
.rk-testimonial-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:5;
  width:46px;
  height:46px;
  border:1px solid var(--red);
  border-radius:50%;
  background:#fff;
  color:var(--red);
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:background .25s,color .25s,transform .25s;
}
.rk-testimonial-arrow:hover,
.rk-testimonial-arrow:focus-visible{
  background:var(--red);
  color:#fff;
  transform:translateY(-50%) scale(1.06);
  outline:none;
}
.rk-testimonial-arrow svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.rk-testimonial-prev{left:0}
.rk-testimonial-next{right:0}
@media(max-width:767px){
  .rk-testimonial-carousel{padding:0 44px}
  .rk-testimonial-arrow{width:40px;height:40px}
}
@media(max-width:480px){
  .rk-testimonial-carousel{padding:0 34px}
  .rk-testimonial-arrow{width:34px;height:34px}
}

/* v55: final testimonial layout cleanup */
.rk-testimonials,
.rk-testimonials .rk-wrap,
.rk-testimonial-carousel,
.rk-testimonial-viewport,
.rk-testimonial-track{
  background:#fff !important;
  background-image:none !important;
  box-shadow:none !important;
}

.rk-testimonial-carousel{
  width:100%;
  max-width:none;
  padding:0 72px;
}

.rk-testimonial-viewport{
  overflow:hidden;
  padding:20px 8px 30px;
}

.rk-testimonial-track{
  gap:30px;
}

.rk-testimonial-carousel .rk-test-card{
  flex-basis:calc((100% - 60px)/3);
  border:1px solid #eeeeee;
  box-shadow:0 10px 26px rgba(0,0,0,.075) !important;
}

.rk-testimonial-carousel .rk-test-logo{
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  background:transparent !important;
}

.rk-testimonial-prev{left:0 !important;}
.rk-testimonial-next{right:0 !important;}

@media(max-width:991px){
  .rk-testimonial-carousel{padding:0 58px;}
  .rk-testimonial-track{gap:24px;}
  .rk-testimonial-carousel .rk-test-card{
    flex-basis:calc((100% - 24px)/2);
  }
}

@media(max-width:640px){
  .rk-testimonial-carousel{padding:0 46px;}
  .rk-testimonial-track{gap:16px;}
  .rk-testimonial-carousel .rk-test-card{flex-basis:100%;}
}

/* v56: cleaner, tighter testimonial card shadows */
.rk-testimonial-viewport{
  padding-top:12px !important;
  padding-bottom:22px !important;
}
.rk-testimonial-carousel .rk-test-card{
  border:1px solid #ececec !important;
  box-shadow:0 6px 16px rgba(0,0,0,.045) !important;
  transition:transform .3s ease, box-shadow .3s ease !important;
}
.rk-testimonial-carousel .rk-test-card:hover{
  transform:translateY(-4px);
  box-shadow:0 10px 22px rgba(0,0,0,.065) !important;
}


/* v57: transparent header logo without a forced white block */
.rk-logo img,
.rk-home-page header.rk-head:not(.rk-head-fixed) .rk-logo img,
.rk-inner-page header.rk-head:not(.rk-head-fixed) .rk-logo img{
  background:transparent!important;
}


/* v58: transparent footer logo */
.rk-footer img{
  background:transparent!important;
  padding:0!important;
  object-fit:contain;
}


/* v59 policy pages */
.rk-policy-section{background:#fff;}
.rk-policy-content{max-width:980px;margin:0 auto;font-family:"DM Sans",sans-serif;color:#666;line-height:1.85;}
.rk-policy-content .rk-policy-updated{margin:0 0 26px;color:#222;}
.rk-policy-content h2{font-family:"Odibee Sans",sans-serif;font-size:38px;line-height:1;text-transform:uppercase;color:#111;margin:42px 0 14px;}
.rk-policy-content p{margin:0 0 18px;}
.rk-policy-content a{color:var(--red);font-weight:700;}
.rk-policy-content a:hover{text-decoration:underline;}
@media(max-width:640px){.rk-policy-content h2{font-size:32px;margin-top:34px;}}

/* v60: align policy content with the wider site content area */
.rk-policy-content{
  width:100%;
  max-width:1160px;
  margin-left:auto;
  margin-right:auto;
}

/* v61: align policy content directly with the main site container */
.rk-policy-content{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
}

/* v62: make the Home hero fill the visible screen beneath the top contact bar */
.rk-home-page .rk-hero{
  min-height:calc(100vh - 42px) !important;
  min-height:calc(100svh - 42px) !important;
  min-height:calc(100dvh - 42px) !important;
}

@media(max-width:640px){
  .rk-home-page .rk-hero{
    min-height:calc(100vh - 42px) !important;
    min-height:calc(100svh - 42px) !important;
    min-height:calc(100dvh - 42px) !important;
  }
}

/* v63: red top contact bar */
.rk-top{
  background:var(--red) !important;
  color:#fff !important;
}
.rk-top a,
.rk-top svg{
  color:#fff !important;
}


/* v82: dark contact bar and light patterned Home feature strip */
.rk-top{
  background:#111111 !important;
}
.rk-benefits{
  background-color:#f9f9f9 !important;
  background-image:
    linear-gradient(rgba(17,17,17,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(17,17,17,.045) 1px, transparent 1px) !important;
  background-size:32px 32px !important;
  color:#111 !important;
}
.rk-benefit{
  background:transparent !important;
  border:0 !important;
}
.rk-benefit h3{
  color:#111 !important;
}
.rk-benefit p{
  color:#666 !important;
}

/* v67: set the Home hero overlay to 35% opacity */
.rk-home-page .rk-hero::before{
  background:rgba(0,0,0,.35) !important;
}


/* v66: full supplied video as the Home hero background */
.rk-home-page .rk-hero{
  overflow:hidden;
  background-position:center 42%;
}
.rk-home-page .rk-hero-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  z-index:0;
  pointer-events:none;
}
.rk-home-page .rk-hero::before{
  z-index:1;
}
.rk-home-page .rk-hero > .rk-wrap{
  position:relative;
  z-index:2;
}
@media (prefers-reduced-motion: reduce){
  .rk-home-page .rk-hero-video{display:none;}
}


/* v68: use Montserrat throughout the website */
html,
body,
button,
input,
textarea,
select,
a,
p,
span,
li,
label,
small,
strong,
.rk-copy,
.rk-top,
.rk-top a,
.rk-nav a,
.rk-btn,
.rk-head .rk-contact-btn,
.rk-breadcrumb,
.rk-faq button,
.rk-faq .answer,
.rk-form input,
.rk-form textarea,
.rk-form button,
.rk-footer p,
.rk-footer a,
.rk-bottom,
.rk-bottom p,
.rk-bottom a,
.rk-benefit p,
.rk-path-card p,
.rk-test-card p,
.rk-test-card span,
.rk-about-counter span,
.rk-years span{
  font-family:"Montserrat",sans-serif !important;
}

h1,h2,h3,h4,h5,h6,
.rk-title,
.rk-hero h1,
.rk-banner h1,
.rk-benefit h3,
.rk-path-card h3,
.rk-service h3,
.rk-statement h3,
.rk-coming h2,
.rk-full-cta h2,
.rk-footer h3,
.rk-test-card h4,
.rk-about-counter strong,
.rk-years strong,
.rk-stat,
.rk-strip-track{
  font-family:"Montserrat",sans-serif !important;
  font-weight:800;
}

/* v69: reduce heading sizes across the website */
.rk-hero h1{font-size:74px !important;}
.rk-title{font-size:54px !important;}
.rk-banner h1{font-size:60px !important;}
.rk-full-cta h2{font-size:54px !important;}
.rk-coming h2{font-size:64px !important;}
.rk-path-card h3,
.rk-statement h3,
.rk-footer h3{font-size:24px !important;}
.rk-stat{font-size:32px !important;}

@media(max-width:991px){
  .rk-hero h1{font-size:60px !important;}
  .rk-title{font-size:46px !important;}
  .rk-banner h1{font-size:52px !important;}
}

@media(max-width:640px){
  .rk-hero h1{font-size:44px !important;}
  .rk-title{font-size:40px !important;}
  .rk-banner h1{font-size:46px !important;}
  .rk-full-cta h2{font-size:42px !important;}
  .rk-coming h2{font-size:50px !important;}
}

/* v70: standardise all main section content to the 1320px header width */
.rk-wrap,
.rk-hero .rk-wrap{
  width:100%;
  max-width:1320px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:24px;
  padding-right:24px;
}

/* Full-width sections without an .rk-wrap use the same content boundary. */
.rk-full-cta > div,
.rk-coming{
  width:100%;
  max-width:1320px;
  margin-left:auto;
  margin-right:auto;
  padding-left:24px;
  padding-right:24px;
}

@media(max-width:640px){
  .rk-wrap,
  .rk-hero .rk-wrap,
  .rk-full-cta > div,
  .rk-coming{
    padding-left:20px;
    padding-right:20px;
  }
}


/* v72: definitive service-card heading sizing */
.rk-service h3{
  font-size:24px !important;
  line-height:1.15 !important;
}
@media(max-width:640px){
  .rk-service h3{font-size:22px !important;}
}

/* v77: clearer spacing between consecutive paragraphs */
p + p{
  margin-top:20px;
}

/* v79: labelled contact form with clearer spacing and a natural-width button */
.rk-contact-intro{
  margin-bottom:30px !important;
}
.rk-form-field{
  display:flex;
  flex-direction:column;
  gap:9px;
  min-width:0;
}
.rk-form-field-full{
  grid-column:1 / -1;
}
.rk-form-field label{
  color:#111;
  font-size:14px;
  font-weight:700;
  line-height:1.4;
}
.rk-form-field label span{
  color:var(--red);
}
.rk-form-field input,
.rk-form-field textarea{
  display:block;
}
.rk-form-field textarea{
  min-height:150px;
}
.rk-form > .rk-btn{
  width:auto;
  min-width:190px;
  justify-self:start;
  padding-left:28px;
  padding-right:28px;
}
@media(max-width:640px){
  .rk-form-field-full{
    grid-column:auto;
  }
  .rk-form > .rk-btn{
    width:100%;
    justify-self:stretch;
  }
}

/* v80: site-wide contact enquiry modal */
body.rk-modal-open{overflow:hidden;}
.rk-contact-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(0,0,0,.72);
  opacity:0;
  visibility:hidden;
  transition:opacity .25s ease,visibility .25s ease;
}
.rk-contact-modal.is-open{opacity:1;visibility:visible;}
.rk-contact-modal-panel{
  position:relative;
  width:min(1120px,100%);
  max-height:calc(100vh - 48px);
  overflow:auto;
  display:grid;
  grid-template-columns:370px minmax(0,1fr);
  background:#fff;
  box-shadow:0 28px 80px rgba(0,0,0,.32);
  transform:translateY(18px) scale(.985);
  transition:transform .25s ease;
}
.rk-contact-modal.is-open .rk-contact-modal-panel{transform:none;}
.rk-contact-modal-close{
  position:absolute;
  top:16px;
  right:16px;
  z-index:3;
  width:44px;
  height:44px;
  border:0;
  background:#f21f26;
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
}
.rk-contact-modal-info{
  background:#111;
  color:#fff;
  padding:58px 42px 48px;
  display:flex;
  flex-direction:column;
}
.rk-contact-modal-info img{
  width:94px;
  height:94px;
  object-fit:contain;
  margin-bottom:26px;
}
.rk-contact-modal-eyebrow{
  color:var(--red);
  font-size:13px;
  font-weight:800;
  letter-spacing:2px;
  text-transform:uppercase;
  margin-bottom:12px;
}
.rk-contact-modal-info h2{
  color:#fff;
  font-size:34px;
  line-height:1.12;
  margin:0 0 16px;
}
.rk-contact-modal-info > p{
  color:#c7c7c7;
  font-size:14px;
  line-height:1.75;
  margin:0 0 30px;
}
.rk-contact-modal-details{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:18px;
}
.rk-contact-modal-details li{
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  gap:12px;
  align-items:start;
}
.rk-contact-modal-details svg{
  width:22px;
  height:22px;
  margin-top:2px;
  fill:none;
  stroke:var(--red);
  stroke-width:2;
}
.rk-contact-modal-details span{
  display:block;
  color:#8f8f8f;
  font-size:11px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  margin-bottom:4px;
}
.rk-contact-modal-details a{
  color:#fff;
  font-size:13px;
  line-height:1.55;
  overflow-wrap:anywhere;
}
.rk-contact-modal-form-wrap{padding:58px 58px 50px;}
.rk-contact-modal-form-wrap h2{
  color:#111;
  font-size:38px;
  line-height:1.12;
  margin:0 54px 12px 0;
}
.rk-contact-modal-form-wrap > p{
  color:#777;
  font-size:14px;
  line-height:1.7;
  margin:0 0 26px;
}
.rk-contact-modal-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.rk-contact-modal-form .rk-form-field input,
.rk-contact-modal-form .rk-form-field textarea{
  width:100%;
  border:1px solid #dedede;
  padding:14px 15px;
  font-size:13px;
  background:#fff;
}
.rk-contact-modal-form .rk-form-field textarea{min-height:125px;resize:vertical;}
.rk-contact-modal-form .rk-btn{
  width:auto;
  min-width:190px;
  justify-self:start;
  border:0;
}
@media(max-width:850px){
  .rk-contact-modal-panel{grid-template-columns:1fr;}
  .rk-contact-modal-info{padding:40px 34px;}
  .rk-contact-modal-info img{display:none;}
  .rk-contact-modal-form-wrap{padding:42px 34px 38px;}
}
@media(max-width:640px){
  .rk-contact-modal{padding:12px;align-items:flex-start;}
  .rk-contact-modal-panel{max-height:calc(100vh - 24px);}
  .rk-contact-modal-info{padding:34px 24px 30px;}
  .rk-contact-modal-info h2{font-size:28px;}
  .rk-contact-modal-form-wrap{padding:34px 24px 28px;}
  .rk-contact-modal-form-wrap h2{font-size:30px;margin-right:46px;}
  .rk-contact-modal-form{grid-template-columns:1fr;}
  .rk-contact-modal-form .rk-form-field-full{grid-column:auto;}
  .rk-contact-modal-form .rk-btn{width:100%;justify-self:stretch;}
}


/* v81: white descriptions in hero and CTA sections */
.rk-home-page .rk-hero p,
.rk-cta-split .rk-copy,
.rk-full-cta p{
  color:#fff !important;
}


/* v83: borderless feature cards with white lift-on-hover */
.rk-benefits .rk-benefit{
  border:0 !important;
  transition:background-color .3s ease,box-shadow .3s ease,transform .3s ease;
}
.rk-benefits .rk-benefit:hover{
  background:#fff !important;
  box-shadow:0 16px 38px rgba(17,17,17,.12);
  transform:translateY(-6px);
}
@media (hover:none){
  .rk-benefits .rk-benefit:hover{
    background:transparent !important;
    box-shadow:none;
    transform:none;
  }
}

/* v87: white Home hero marker and clean inner-banner breadcrumbs */
.rk-home-page .rk-hero h4{
  color:#fff !important;
}
.rk-home-page .rk-hero h4::before{
  filter:brightness(0) invert(1) !important;
}
.rk-banner .rk-breadcrumb{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:0;
  color:#fff !important;
  background:transparent;
  border:0;
  border-radius:0;
  text-shadow:0 2px 5px rgba(0,0,0,.95);
}
.rk-banner .rk-breadcrumb a,
.rk-banner .rk-breadcrumb span{
  color:#fff !important;
}

/* Membership landing page - v94 phase 4 */
.rk-membership-intro,.rk-membership-feature{padding:100px 0;background:#fff}.rk-membership-split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.rk-membership-image{position:relative}.rk-membership-image:after{content:"";position:absolute;right:-16px;bottom:-16px;width:55%;height:55%;border-right:6px solid #dc0b16;border-bottom:6px solid #dc0b16;z-index:0}.rk-membership-image img{width:100%;height:430px;object-fit:cover;position:relative;z-index:1}.rk-heading-left{text-align:left;margin-left:0}.rk-membership-intro p,.rk-membership-feature p{font-size:15px;line-height:1.8;color:#555}.rk-membership-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.rk-btn-outline{background:transparent!important;color:#111!important;border:2px solid #111}.rk-btn-outline:hover{background:#111!important;color:#fff!important}.rk-membership-benefits{padding:100px 0;background:#f7f7f7}.rk-membership-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:45px}.rk-membership-grid article{background:#fff;padding:32px 25px;border-bottom:4px solid transparent;transition:.25s}.rk-membership-grid article:hover{transform:translateY(-5px);border-color:#dc0b16;box-shadow:0 15px 35px rgba(0,0,0,.08)}.rk-membership-grid span{font-size:12px;font-weight:800;color:#dc0b16;letter-spacing:.1em}.rk-membership-grid h3{font-size:18px;margin:15px 0 12px}.rk-membership-grid p{font-size:13px;line-height:1.7;color:#666;margin:0}.rk-membership-process{padding:100px 0;background:#111;color:#fff}.rk-membership-process h2{color:#fff}.rk-process-row{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:48px}.rk-process-row article{position:relative}.rk-process-row article>div{width:54px;height:54px;display:grid;place-items:center;border:2px solid #dc0b16;color:#fff;font-weight:800;font-size:18px}.rk-process-row h3{color:#fff;font-size:17px;margin:18px 0 10px}.rk-process-row p{color:#aaa;font-size:13px;line-height:1.7}.rk-membership-reverse .rk-membership-image:after{right:auto;left:-16px;border-right:0;border-left:6px solid #dc0b16}.rk-membership-cta{padding:65px 0;background:#dc0b16;color:#fff}.rk-membership-cta>.rk-wrap{display:flex;align-items:center;justify-content:space-between;gap:35px}.rk-membership-cta h2{color:#fff;margin:5px 0 8px}.rk-membership-cta p{margin:0}.rk-membership-cta .rk-membership-actions{margin:0;flex-shrink:0}.rk-membership-cta .rk-btn{background:#111}.rk-membership-cta .rk-btn-light{background:#fff;color:#111}.rk-membership-cta .rk-eyebrow{color:#fff}.rk-membership-cta .rk-eyebrow:before{background:#fff}
@media(max-width:1000px){.rk-membership-grid,.rk-process-row{grid-template-columns:repeat(2,1fr)}.rk-membership-split{gap:40px}.rk-membership-image img{height:370px}}
@media(max-width:767px){.rk-membership-intro,.rk-membership-feature,.rk-membership-benefits,.rk-membership-process{padding:70px 0}.rk-membership-split{grid-template-columns:1fr}.rk-membership-reverse .rk-membership-image{order:2}.rk-membership-grid,.rk-process-row{grid-template-columns:1fr}.rk-membership-image img{height:300px}.rk-membership-cta>.rk-wrap{display:block}.rk-membership-cta .rk-membership-actions{margin-top:25px}}


/* v102: separate Login and Join Now header actions */
.rk-head .rk-wrap{
  grid-template-columns:180px minmax(0,1fr) auto;
}
.rk-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  white-space:nowrap;
}
.rk-head-login{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:13px 24px;
  border:2px solid #111;
  background:transparent;
  color:#111!important;
  font-weight:800;
  text-transform:uppercase;
  transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease;
}
.rk-head-login:hover,
.rk-head-login:focus-visible{
  background:#111!important;
  color:#fff!important;
  border-color:var(--red)!important;
  transform:translateY(-2px);
  outline:none;
}
.rk-head-actions .rk-head-cta{
  justify-self:auto;
  min-height:52px;
}
.rk-nav-mobile-action{
  display:none!important;
}
.rk-inner-page header.rk-head:not(.rk-head-fixed) .rk-head-login,
.rk-home-page header.rk-head:not(.rk-head-fixed) .rk-head-login{
  border-color:#fff;
  color:#fff!important;
  text-shadow:0 1px 4px rgba(0,0,0,.35);
}
.rk-inner-page header.rk-head:not(.rk-head-fixed) .rk-head-login:hover,
.rk-inner-page header.rk-head:not(.rk-head-fixed) .rk-head-login:focus-visible,
.rk-home-page header.rk-head:not(.rk-head-fixed) .rk-head-login:hover,
.rk-home-page header.rk-head:not(.rk-head-fixed) .rk-head-login:focus-visible{
  background:#111!important;
  border-color:var(--red)!important;
  color:#fff!important;
}
@media(max-width:1180px){
  .rk-nav{gap:24px}
  .rk-head-login{padding-left:18px;padding-right:18px}
  .rk-head-actions .rk-head-cta{padding-left:22px;padding-right:22px}
}
@media(max-width:991px){
  .rk-head-actions{display:none}
  .rk-nav-mobile-action{display:block!important}
  .rk-nav-mobile-join{
    background:var(--red);
    color:#fff!important;
    border:2px solid var(--red);
    padding:13px 18px;
    text-align:center;
  }
  .rk-nav-mobile-action:not(.rk-nav-mobile-join){
    border:2px solid #111;
    padding:13px 18px;
    text-align:center;
  }
  .rk-inner-page header.rk-head:not(.rk-head-fixed) .rk-nav.open .rk-nav-mobile-join,
  .rk-home-page header.rk-head:not(.rk-head-fixed) .rk-nav.open .rk-nav-mobile-join{
    color:#fff!important;
  }
}

/* v103: wider, visually centred desktop header */
@media (min-width: 1201px){
  .rk-head > .rk-wrap{
    width:100%;
    max-width:1500px !important;
    grid-template-columns:240px minmax(0,1fr) 240px;
  }
  .rk-head .rk-logo{
    justify-self:start;
  }
  .rk-head .rk-nav{
    justify-self:center;
    width:max-content;
  }
  .rk-head .rk-head-actions{
    justify-self:end;
    width:240px;
  }
}
@media (min-width: 1201px) and (max-width: 1399px){
  .rk-head > .rk-wrap{
    grid-template-columns:205px minmax(0,1fr) 205px;
  }
  .rk-head .rk-nav{
    gap:24px;
  }
  .rk-head .rk-head-actions{
    width:205px;
    gap:9px;
  }
  .rk-head-login{
    padding-left:16px;
    padding-right:16px;
  }
  .rk-head-actions .rk-head-cta{
    padding-left:19px;
    padding-right:19px;
  }
}

/* v133: align the top contact bar with the wider desktop main header */
@media (min-width: 1201px){
  .rk-top > .rk-wrap{
    width:100%;
    max-width:1500px !important;
  }
}

/* v137: keep all standard public action labels perfectly centred */
.rk-btn,
a.rk-btn,
button.rk-btn,
.rk-head-login,
.rk-nav-mobile-action,
.rk-head-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}

/* Floating WhatsApp contact button */
.rk-whatsapp-button{position:fixed;right:24px;bottom:92px;z-index:990;display:inline-flex;align-items:center;gap:9px;padding:12px 16px;border-radius:999px;background:#25d366;color:#fff!important;text-decoration:none;font-family:Montserrat,Arial,sans-serif;font-size:13px;font-weight:800;box-shadow:0 10px 28px rgba(0,0,0,.22);transition:transform .2s ease,box-shadow .2s ease}
.rk-whatsapp-button:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.28)}.rk-whatsapp-button svg{width:23px;height:23px;fill:currentColor;flex:0 0 auto}
.rk-form-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.rk-contact-form-message{grid-column:1/-1;padding:12px 14px;border-radius:6px;font-size:13px;font-weight:600}.rk-contact-form-message.ok{background:#e9f8ee;color:#176b35;border:1px solid #bfe5ca}.rk-contact-form-message.err{background:#fff0f1;color:#a4161e;border:1px solid #f1c1c4}
@media(max-width:650px){.rk-whatsapp-button{right:16px;bottom:78px;padding:12px}.rk-whatsapp-button span{display:none}}

/* Trustindex Google Reviews integration */
.rk-google-reviews-host{width:100%;margin-top:34px}
.rk-google-reviews-frame{display:block;width:100%;height:420px;border:0;background:transparent;transition:height .2s ease}
@media(max-width:767px){.rk-google-reviews-host{margin-top:24px}.rk-google-reviews-frame{height:520px}}

/* v153: Branded vertical WhatsApp tab using the supplied WhatsApp SVG. */
.rk-whatsapp-button{
  position:fixed;
  right:24px;
  bottom:82px;
  z-index:1095;
  width:48px;
  height:126px;
  padding:12px 0 10px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:9px;
  box-sizing:border-box;
  border:0;
  border-radius:3px;
  background:#25d366;
  color:#fff!important;
  text-decoration:none;
  font-family:Montserrat,Arial,sans-serif;
  font-size:12px;
  font-weight:800;
  line-height:1;
  box-shadow:0 8px 22px rgba(0,0,0,.16);
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
}
.rk-whatsapp-button > span:first-child{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  white-space:nowrap;
  letter-spacing:.01em;
}
.rk-whatsapp-button .rk-whatsapp-icon{
  width:26px;
  height:26px;
  flex:0 0 26px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
}
.rk-whatsapp-button .rk-whatsapp-icon svg{
  width:25px;
  height:25px;
  display:block;
  fill:currentColor;
}
.rk-whatsapp-button:hover,
.rk-whatsapp-button:focus-visible{
  background:#1fbd5b;
  color:#fff!important;
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(0,0,0,.22);
  outline:none;
}
@media(max-width:640px){
  .rk-whatsapp-button{
    right:16px;
    bottom:70px;
    width:44px;
    height:116px;
    padding:10px 0 9px;
    gap:8px;
    font-size:11px;
  }
  .rk-whatsapp-button .rk-whatsapp-icon{
    width:24px;
    height:24px;
    flex-basis:24px;
  }
  .rk-whatsapp-button .rk-whatsapp-icon svg{
    width:23px;
    height:23px;
  }
}

/* v193: preserve rich-text formatting on public policy pages despite global list resets */
.rk-policy-content strong,.rk-policy-content b{font-weight:800;color:inherit}
.rk-policy-content em,.rk-policy-content i{font-style:italic}
.rk-policy-content u{text-decoration:underline;text-underline-offset:2px}
.rk-policy-content ul{list-style:disc outside!important;padding-left:28px!important;margin:8px 0 18px!important}
.rk-policy-content ol{list-style:decimal outside!important;padding-left:28px!important;margin:8px 0 18px!important}
.rk-policy-content ul li,.rk-policy-content ol li{display:list-item!important;margin:5px 0;font-family:inherit}
