/* ==========================================================================
   Mi Physio — Shared Site Stylesheet
   Contains only rules that are identical across every page:
   design tokens, base resets, header/nav, hamburger mobile menu,
   footer, and shared utility/button classes.
   Page-specific styles (banners, cards, forms, etc.) remain inline
   in each page's own <style> block.
   ========================================================================== */

:root{
  --ink:#212529;
  --paper:#FFFFFF;
  --panel:#FFFFFF;
  --line:#DEE2E6;
  --accent:#0D6EFD;
  --accent-dark:#0B5ED7;
  --gold:#0D6EFD;
  --muted:#6C757D;
}

/* Base reset */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:'Open Sans', sans-serif;line-height:1.5;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.sans{font-family:'Open Sans', sans-serif;}

/* Font weight system: body 300, h1 800, h2 600, everything else 400 */
h1{font-weight:800;}
h2{font-weight:600;}
h3,h4,h5,h6,p,a,span,div,li,button,input,select,textarea,label{font-weight:400;}
body{font-weight:300;}

/* Top bar */
.topbar{background:var(--accent-dark);color:#fff;font-family:'Open Sans', sans-serif;
  font-size:0.78rem;text-align:center;padding:7px;letter-spacing:0.02em;}

/* Header / nav */
header{position:sticky;top:0;z-index:50;background:rgba(246,245,241,0.98);border-bottom:1px solid var(--line);}
.nav-wrap{max-width:1180px;margin:0 auto;padding:18px 28px;
  display:flex;align-items:center;justify-content:space-between;}
.logo{font-size:1.35rem;font-weight:700;letter-spacing:0.02em;}
.logo span{color:var(--accent);}
.logo-img img{height:38px;width:auto;display:block;}
nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0;
  font-family:'Open Sans', sans-serif;font-size:0.9rem;letter-spacing:0.02em;}
nav ul li a:hover{color:var(--accent);}
.nav-cta{font-family:'Open Sans', sans-serif;background:var(--accent);color:#fff;
  padding:11px 22px;border-radius:2px;font-size:0.88rem;font-weight:600;letter-spacing:0.03em;
  transition:background 0.2s ease;}
.nav-cta:hover{background:var(--accent-dark);}

/* Buttons (shared base — page-specific variants may extend these) */
.btn-primary:hover{background:var(--accent-dark);transform:translateY(-1px);}
.btn-ghost{font-family:'Open Sans', sans-serif;font-size:0.9rem;color:var(--ink);
  border-bottom:1px solid var(--ink);padding-bottom:2px;}

/* Hamburger mobile menu */
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;}
.hamburger span{display:block;width:24px;height:2px;background:var(--ink);transition:transform 0.2s ease, opacity 0.2s ease;}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.nav-close{display:none;}
@media (max-width:900px){
  .hamburger{display:flex;}
  nav{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;z-index:70;
    display:flex;align-items:center;justify-content:center;
    opacity:0;pointer-events:none;transition:opacity 0.25s ease;}
  nav.mobile-open{opacity:1;pointer-events:auto;}
  nav ul{display:flex !important;flex-direction:column;align-items:center;gap:28px;font-size:1.3rem;}
  .nav-close{display:block;position:absolute;top:24px;right:28px;background:none;border:none;font-size:1.8rem;
    cursor:pointer;color:var(--ink);}
}

/* Shared section heading utility */
.section-head p{font-family:'Open Sans', sans-serif;color:var(--muted);font-size:1rem;}

/* Footer */
footer{border-top:1px solid var(--line);background:var(--panel);}
.footer-inner{max-width:1180px;margin:0 auto;padding:46px 28px;
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;
  font-family:'Open Sans', sans-serif;font-size:0.87rem;color:var(--muted);}
.footer-inner h4{color:var(--ink);font-size:0.8rem;letter-spacing:0.08em;text-transform:uppercase;margin:0 0 14px;}
.footer-inner ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px;}
.footer-bottom{border-top:1px solid var(--line);text-align:center;padding:18px;
  font-family:'Open Sans', sans-serif;font-size:0.78rem;color:var(--muted);}
