/* J.I.M Rochedale - purpose-built sections. Tokens from design-system/colors_and_type.css. Scoped under .jim to sit beside Breakdance chrome. */
.jim{--brand:#EF4030;--brand-hover:#D22B1C;--blush:#F0B7B5;--ink:#111;--ink2:#242424;--off:#FBFBFB;--beige:#F6EDE6;--border:#E3E3E3;--muted:#787E8B;font-family:Futura,system-ui,sans-serif;color:var(--ink);line-height:1.5}
.jim *{box-sizing:border-box}
/* beat Breakdance's global heading/link colours */
.breakdance .jim h1,.breakdance .jim h2,.breakdance .jim h3,.breakdance .jim p{color:inherit}
.breakdance .jim a{color:inherit;text-decoration:none}
.breakdance .jim .btn{color:#fff}.breakdance .jim .btn.ghost{color:inherit}
.breakdance .jim .eyebrow{color:var(--brand)}.breakdance .jim .hero .eyebrow{color:#fff}.breakdance .jim .blush .eyebrow{color:#111}
.breakdance .jim .muted{color:var(--muted)}.breakdance .jim .dark .muted{color:#C5C5C5}
.breakdance .jim .price div{color:var(--ink)}
.jim section{padding:56px 20px;background:#fff;color:var(--ink)}
.jim .wrap{max-width:1120px;margin:0 auto}
.jim .narrow{max-width:720px;margin:0 auto}
.jim h1,.jim h2,.jim h3{font-family:Futura,system-ui,sans-serif;font-weight:700;text-transform:uppercase;line-height:1.08;margin:0 0 14px}
.jim h1{font-size:clamp(30px,8vw,52px)}
.jim h2{font-size:clamp(24px,6vw,38px)}
.jim h3{font-size:17px;margin-bottom:6px}
.jim p{margin:0 0 12px;font-size:16px}
.jim .eyebrow{display:inline-block;font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin-bottom:12px}
.jim .lead{font-size:18px}
.jim .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 24px;border-radius:50px;background:var(--brand);color:#fff;font-weight:500;text-transform:uppercase;font-size:14px;letter-spacing:.03em;text-decoration:none;border:1px solid transparent;transition:background .3s}
.jim .btn:hover{background:var(--brand-hover)}
.jim .btn.ghost{background:transparent;color:inherit;border-color:currentColor}
.jim .btn.dark{background:var(--ink)}
.jim .btns{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.jim .btns .btn{width:100%}
.jim .dark{background:var(--ink);color:#fff}
.jim .brand{background:var(--brand);color:#fff}
.jim .blush{background:var(--blush)}
.jim .beige{background:var(--beige)}
.jim .off{background:var(--off)}
.jim .muted{color:var(--muted)}
.jim .dark .muted{color:#C5C5C5}
/* hero */
.jim .hero{position:relative;padding:0;min-height:min(88vh,720px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--ink)}
.jim .hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.jim .hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,17,17,.15) 0%,rgba(17,17,17,.35) 40%,rgba(17,17,17,.92) 100%)}
.jim .hero .wrap{position:relative;z-index:1;padding:110px 20px 36px;width:100%}
.jim .hero .eyebrow{color:#fff;background:var(--brand);padding:6px 10px;border-radius:4px}
.jim .hero p{font-size:17px;max-width:560px}
.jim .trust{font-size:13px;color:#C5C5C5;margin-top:18px}
/* facts */
.jim .facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border)}
.jim .facts div{background:#fff;padding:18px 10px;text-align:center}
.jim .facts b{display:block;font-size:26px;font-weight:700;text-transform:uppercase;line-height:1}
.jim .facts span{display:block;font-size:12px;color:var(--muted);margin-top:6px;text-transform:uppercase;letter-spacing:.04em}
/* video */
.jim lite-youtube{max-width:100%;border-radius:7px;overflow:hidden;margin:18px 0 0}
/* steps */
.jim .photo{width:100%;height:220px;object-fit:cover;border-radius:7px;display:block;margin-bottom:24px}
.jim .steps{display:grid;gap:14px;counter-reset:s}
.jim .step{display:grid;grid-template-columns:44px 1fr;gap:12px;background:#fff;color:var(--ink);border:1px solid var(--border);border-radius:7px;padding:16px}
.jim .step::before{counter-increment:s;content:counter(s);width:44px;height:44px;border-radius:50%;background:var(--brand);color:#fff;font-weight:700;font-size:18px;display:flex;align-items:center;justify-content:center}
.jim .step p{margin:0;font-size:15px}
.jim .bring{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.jim .bring span{border:1px solid var(--border);border-radius:50px;padding:6px 12px;font-size:13px;background:#fff;color:var(--ink)}
/* benefits */
.jim .grid8{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:20px}
.jim .grid8 div{text-align:center;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.02em}
.jim .grid8 img{width:56px;height:56px;display:block;margin:0 auto 8px}
/* memberships teaser */
.jim .price{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}
.jim .price div{background:#fff;color:var(--ink);border-radius:7px;padding:16px}
.jim .price b{display:block;font-size:28px;text-transform:uppercase;line-height:1}
.jim .price small{display:block;font-size:12px;color:var(--muted);margin-top:6px;text-transform:uppercase;letter-spacing:.03em}
/* find us */
.jim .findus{display:grid;gap:16px}
.jim .addr{font-size:17px;line-height:1.4}
.jim .social{display:flex;gap:10px;margin-top:8px}
.jim .social a{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:50px;padding:8px 14px;color:inherit;text-decoration:none;font-size:13px;font-weight:500}
.jim .apps{display:flex;gap:10px;margin-top:10px}
.jim .apps img{height:40px}
.jim .map{border-radius:7px;overflow:hidden;min-height:260px}
/* forms / widgets */
.jim .formwrap{background:#fff;color:var(--ink);border-radius:7px;padding:8px}
.jim .formwrap iframe{min-height:640px;width:100%;display:block}
/* book page */
.jim .tabs{display:flex;gap:8px;position:sticky;top:0;z-index:5;background:#fff;padding:12px 20px;border-bottom:1px solid var(--border)}
.breakdance .jim .tabs a{flex:1;text-align:center;border:1px solid var(--border);border-radius:50px;padding:10px;color:var(--ink);background:#fff;text-decoration:none;font-size:13px;font-weight:500;text-transform:uppercase}
.breakdance .jim .tabs a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.jim .widget{background:#fff;color:var(--ink);border-radius:7px;padding:8px;min-height:300px;overflow-x:auto}
/* bottom tab bar (phones) */
.jim-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:repeat(4,1fr);background:#111;border-top:1px solid #333;padding-bottom:env(safe-area-inset-bottom)}
.jim-tabbar a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 4px 8px;color:#C5C5C5;text-decoration:none;font:500 10px/1 Futura,system-ui,sans-serif;text-transform:uppercase;letter-spacing:.04em}
.jim-tabbar a svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.jim-tabbar a.cta{color:#fff}.jim-tabbar a.cta svg{stroke:var(--brand,#EF4030)}
.jim-tabbar a.on{color:#fff}
body.has-tabbar{padding-bottom:68px}
@media(min-width:900px){
  .jim-tabbar{display:none}body.has-tabbar{padding-bottom:0}
  .jim section{padding:96px 20px}
  .jim .btns{flex-direction:row}.jim .btns .btn{width:auto}
  .jim .hero{min-height:min(78vh,820px)}.jim .hero .wrap{padding:160px 20px 72px}.jim .hero p{font-size:20px}
  .jim .facts b{font-size:34px}
  .jim .two{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
  .jim .photo{height:100%;min-height:380px;margin:0}
  .jim .grid8{grid-template-columns:repeat(8,1fr)}.jim .grid8 img{width:64px;height:64px}
  .jim .price{grid-template-columns:1fr 1fr;max-width:560px}
  .jim .findus{grid-template-columns:1fr 1.2fr;gap:40px}
  .jim .tabs{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--border);justify-content:center;padding:12px 20px}.breakdance .jim .tabs a{flex:0 0 auto;padding:10px 24px}
}
/* book-now */
.jim .bn{padding-top:96px;background:var(--off)}
.jim .bn-grid{display:grid;gap:28px}
.jim .bn-right{order:-1}
.jim .h3{font-size:18px;margin-top:28px}
.jim .ticks{list-style:none;padding:0;margin:0 0 8px;display:grid;gap:8px}
.jim .ticks li{padding-left:28px;position:relative;font-size:15px}
.jim .ticks li::before{content:"✓";position:absolute;left:0;top:2px;width:18px;height:18px;border-radius:50%;background:var(--brand);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
.jim .bn-form,.jim .bn-done{background:#fff;color:var(--ink);border:1px solid var(--border);border-radius:7px;padding:22px}
.jim .bn-form h2,.jim .bn-done h2{font-size:24px;margin-bottom:6px}
.jim .bn-form label{display:block;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:14px 0 0}
.jim .bn-form input,.jim .bn-form select{display:block;width:100%;margin-top:6px;padding:13px 14px;border:1px solid var(--border);border-radius:7px;font:inherit;font-size:16px;color:var(--ink);background:#fff;text-transform:none;letter-spacing:0}
.jim .bn-form input:focus,.jim .bn-form select:focus{outline:2px solid var(--brand);outline-offset:0;border-color:var(--brand)}
.jim .bn-form .btn{width:100%;margin-top:18px;border:0;cursor:pointer}
.jim .bn-form .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.jim .fine{font-size:12px;color:var(--muted);margin:10px 0 0;text-align:center}
.jim .err{background:#FEF2F2;color:#B91C1C;border:1px solid #FECACA;border-radius:7px;padding:10px 12px;font-size:13px;margin-top:12px}
.jim .bn-done .steps{gap:10px}
@media(min-width:900px){
  .jim .bn{padding-top:140px}
  .jim .bn-grid{grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
  .jim .bn-right{order:0;position:sticky;top:96px}
  .jim .bn-form,.jim .bn-done{padding:30px}
}

/* book page without hero: tabs sit straight under the header */
.jim .tabs-top{padding-top:14px}
.jim #timetable{padding-top:32px}
@media(min-width:900px){.jim .tabs-top{padding-top:20px}.jim #timetable{padding-top:48px}}
.jim .tt-only{padding-top:32px}
@media(min-width:900px){.jim .tt-only{padding-top:48px}}
