/* Revolution Yoga: mobile navigation + global responsive safety net.
   Loaded on every public page next to /css/a11y.css. Paired with /js/mobile-nav.js.
   Everything that could affect layout is scoped to max-width:900px, except the
   media/image safety rules and the skip link (visually hidden until focused). */

/* ---------- Skip link (inserted by mobile-nav.js) ---------- */
.rv-skip{position:absolute;left:12px;top:-100px;z-index:2000;background:var(--moss,#7B9171);color:#FFF!important;
  font:700 14px/1 var(--font-body,'Lato',sans-serif);letter-spacing:.08em;text-transform:uppercase;
  padding:14px 18px;border-radius:999px;text-decoration:none}
.rv-skip:focus{top:12px}
#main-content:focus{outline:none}

/* ---------- Global responsive safety net (safe at every width) ---------- */
img{height:auto}
img,video,iframe,embed,object{max-width:100%}
video{height:auto}

/* ---------- Menu button (hidden on desktop) ---------- */
.rv-mnav-btn{display:none}
.rv-mnav,.rv-mnav[hidden]{display:none}

@media (max-width:900px){
  /* Long words / URLs must never push the page sideways */
  /* (body copy only: headings are left alone so display words never split mid-word) */
  p,li,dd,td,blockquote,figcaption,address{overflow-wrap:break-word}
  pre,code{white-space:pre-wrap;word-break:break-word}

  /* Fixed sub-navs (Fees, Our Story, trainings...) wrapped to 3-4 rows on phones and
     covered ~200px of every screen. Keep them to one swipeable row. */
  .subnav{padding-top:8px!important;padding-bottom:8px!important}
  .subnav-inner{flex-wrap:nowrap!important;gap:12px!important}
  .subnav-links{flex-wrap:nowrap!important;overflow-x:auto;min-width:0;flex:1 1 auto;
    scrollbar-width:none;-webkit-overflow-scrolling:touch;
    -webkit-mask-image:linear-gradient(to right,#000 88%,transparent);mask-image:linear-gradient(to right,#000 88%,transparent)}
  .subnav-links::-webkit-scrollbar{display:none}
  .subnav-links li{flex-shrink:0}
  .subnav-links a{white-space:nowrap;display:inline-flex;align-items:center;min-height:40px}
  .subnav-inner>.nav-cta,.subnav-inner>a{flex-shrink:0;white-space:nowrap}
  .subnav-label{flex-shrink:0}
  /* Wide tables scroll inside themselves instead of the page (wrapper added by JS) */
  .rv-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
  /* Third-party booking widgets (Mindbody/Healcode) */
  healcode-widget,.healcode,.mindbody-widget,[class*="mindbody"],[id*="mindbody"]{max-width:100%!important}

  /* Footer newsletter: a few pages (e.g. shop) lacked the stacked phone layout */
  .footer-newsletter .nl-wrap{min-width:0;max-width:100%}

  /* Bigger tap targets for stacked footer links and the "← Back" link on stripped navs */
  footer .footer-col a{display:inline-block;padding:6px 0}
  footer .footer-col ul li{margin-bottom:4px}
  nav.topnav .back{display:inline-block;padding:12px 0}

  nav.topnav .nav-links{display:none!important}
  nav.topnav .nav-wrap{gap:10px;margin-left:auto}
  nav.topnav .logo{min-width:0}
  nav.topnav .logo span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

  .rv-mnav-btn{
    display:inline-flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;
    width:44px;height:44px;min-width:44px;margin:0 -8px 0 4px;padding:0;
    background:transparent;border:0;border-radius:8px;color:inherit;cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .rv-mnav-btn span{display:block;width:24px;height:2px;border-radius:2px;background:currentColor;transition:transform 200ms ease,opacity 200ms ease}
  .rv-mnav-btn:focus-visible{outline:2px solid var(--moss,#7B9171);outline-offset:2px}
  .rv-mnav-btn .rv-sr,.rv-mnav .rv-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

  .rv-mnav:not([hidden]){display:flex}
  .rv-mnav{
    position:fixed;inset:0;z-index:10000;flex-direction:column;
    height:100vh;height:100dvh;
    background:var(--black,#0A0A0A);color:var(--cream,#F4EFE5);
    font-family:var(--font-body,'Lato',sans-serif);
    animation:rvMnavIn 220ms ease-out;
  }
  @keyframes rvMnavIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
  .rv-mnav-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
    min-height:60px;padding:8px 16px 8px 24px;border-bottom:1px solid rgba(255,255,255,.12);flex-shrink:0}
  .rv-mnav-home{font-family:var(--font-display,'Anton',Impact,sans-serif);font-size:18px;letter-spacing:.06em;
    text-transform:uppercase;color:#FFF!important;text-decoration:none;padding:10px 0}
  .rv-mnav-close{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;
    background:transparent;border:0;border-radius:8px;color:#FFF;cursor:pointer;font-size:30px;line-height:1}
  .rv-mnav-close:focus-visible{outline:2px solid var(--moss,#7B9171);outline-offset:2px}

  .rv-mnav-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:8px 24px 32px}
  .rv-mnav-quick{display:flex;flex-wrap:wrap;gap:8px;padding:16px 0 12px}
  .rv-mnav-quick a{flex:1 1 auto;text-align:center;min-height:44px;display:inline-flex;align-items:center;justify-content:center;
    padding:10px 16px;border:1px solid rgba(255,255,255,.28);border-radius:999px;color:#FFF!important;text-decoration:none;
    font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}

  .rv-mnav-sec{border-bottom:1px solid rgba(255,255,255,.12)}
  .rv-mnav-sec-btn,.rv-mnav-toplink{
    display:flex;align-items:center;justify-content:space-between;width:100%;min-height:56px;padding:12px 0;
    background:none;border:0;color:#FFF!important;text-align:left;cursor:pointer;text-decoration:none;
    font-family:var(--font-display,'Anton',Impact,sans-serif);font-size:26px;font-weight:400;letter-spacing:.04em;text-transform:uppercase}
  .rv-mnav-sec-btn::after{content:"+";font-family:var(--font-body,'Lato',sans-serif);font-weight:300;font-size:28px;line-height:1;color:var(--moss-light,#A5B891);transition:transform 200ms ease}
  .rv-mnav-sec-btn[aria-expanded="true"]::after{transform:rotate(45deg)}
  .rv-mnav-sec-btn:focus-visible,.rv-mnav-toplink:focus-visible,.rv-mnav a:focus-visible{outline:2px solid var(--moss,#7B9171);outline-offset:2px}
  .rv-mnav-list{list-style:none;margin:0;padding:0 0 16px}
  .rv-mnav-list[hidden]{display:none}
  .rv-mnav-list a{display:flex;align-items:center;min-height:44px;padding:8px 0;color:rgba(255,255,255,.86)!important;
    text-decoration:none;font-size:17px;line-height:1.3}
  .rv-mnav-list a:hover,.rv-mnav-list a[aria-current="page"]{color:#FFF!important}
  .rv-mnav-list a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--moss,#7B9171);padding-left:12px}
  .rv-mnav-list .rv-mnav-feature{color:var(--moss-light,#A5B891)!important;font-weight:700;font-size:15px;letter-spacing:.04em}

  .rv-mnav-foot{display:flex;flex-direction:column;gap:10px;padding:16px 24px calc(16px + env(safe-area-inset-bottom));
    border-top:1px solid rgba(255,255,255,.12);flex-shrink:0}
  .rv-mnav-foot a{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:999px;text-decoration:none;
    font-weight:700;font-size:13px;letter-spacing:.18em;text-transform:uppercase}
  .rv-mnav-foot .rv-primary{background:var(--moss,#7B9171);color:#FFF!important}
  .rv-mnav-foot .rv-secondary{background:#FFF;color:var(--black,#0A0A0A)!important}

  html.rv-mnav-open,html.rv-mnav-open body{overflow:hidden}
}
@media (max-width:768px){
  .footer-newsletter .nl-wrap{width:100%}
  .footer-newsletter .newsletter-form{width:100%;min-width:0;flex-direction:column;align-items:stretch}
  .footer-newsletter .newsletter-input{width:100%;min-width:0}
  .footer-newsletter .btn-newsletter{width:100%}
}
@media (max-width:520px){
  /* On phones the header CTA lives inside the menu so logo + button never collide */
  nav.topnav .nav-wrap .nav-cta{display:none}
}
@media (prefers-reduced-motion:reduce){.rv-mnav{animation:none}}
