@font-face{font-family:'Lato';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/lato-italic-400.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Lato';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/lato-normal-400.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Lato';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/lato-normal-700.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Lora';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/lora-italic-400.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Lora';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/lora-normal-400-700.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
  /* ===== Castle Sports Therapies — faithful rebuild =====
     Tokens recovered from the site's original Customify theme CSS:
     fonts Lato / Lora, navy #164366, periwinkle #8aa8d0.            */
  :root{
    --navy:#0F2A43; --deep:#1B4468; --amber:#F4B942;
    --peri:#89CFF0;
    --peri-soft:#B9E2F7;
    --pale:#E4F4FC;
    --ink:#3B4A5A;
    --line:#d6e9f4;
    --white:#ffffff;
    --shadow:0 5px 10px rgba(0,0,0,.20);
    --shadow-soft:0 4px 18px rgba(22,67,102,.10);
    --maxw:1180px;
    --readable:64ch;
    --ease:cubic-bezier(.22,.61,.36,1);
    color-scheme:light;
  }
  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
  body{
    margin:0;background:var(--white);color:var(--ink);
    font-family:"Lato","Helvetica Neue",Arial,sans-serif;
    font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:var(--peri);text-decoration:none;}
  a:hover{color:var(--navy);}
  h1,h2,h3,h4{font-family:"Lora","Times New Roman",serif;color:var(--navy);margin:0;text-wrap:balance;}
  p{margin:0;}
  :focus-visible{outline:2px solid var(--navy);outline-offset:3px;border-radius:2px;}

  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px;}
  .center-col{max-width:var(--readable);margin-inline:auto;text-align:center;}

  /* buttons */
  .btn{
    display:inline-flex;align-items:center;justify-content:center;
    font-family:"Lora",serif;font-weight:700;font-size:1.06rem;letter-spacing:.005em;
    color:var(--white);background:var(--peri);
    border:1px solid var(--peri);border-radius:4px;
    padding:.82em 1.9em;cursor:pointer;
    transition:background-color .25s ease,border-color .25s ease,color .25s ease;
  }
  .btn:hover{background:var(--navy);border-color:var(--navy);color:var(--white);}
  .btn--ghost{background:transparent;border-color:var(--white);color:var(--white);}
  .btn--ghost:hover{background:var(--white);border-color:var(--white);color:var(--navy);}
  /* header */
  .site-header{position:relative;z-index:60;background:var(--white);border-bottom:1px solid var(--line);}
  .site-header .wrap{display:flex;align-items:center;justify-content:space-between;min-height:176px;position:relative;}
  .brand{
    position:relative;z-index:70;background:var(--peri);
    padding:14px 14px 18px;margin:-6px 0 -4px;
    border-bottom-left-radius:6px;border-bottom-right-radius:6px;
    box-shadow:0 2px 6px rgba(0,0,0,.18);align-self:flex-start;
  }
  .brand-anim{display:flex;flex-direction:column;align-items:center;gap:8px;width:170px;}
  .ba-figs{position:relative;width:84%;aspect-ratio:588/400;}
  .ba-fig{position:absolute;top:0;height:100%;object-fit:contain;object-position:bottom;will-change:opacity,transform;}
  .ba-f1{left:0;width:35.7%;}
  .ba-f2{left:35.7%;width:28.6%;}
  .ba-f3{left:64.3%;width:35.7%;}
  .ba-word{width:100%;height:auto;display:block;}
  .header-tools{display:flex;align-items:center;gap:18px;}
  .icon-btn{background:none;border:0;padding:4px;cursor:pointer;color:var(--navy);display:inline-flex;line-height:0;}
  .icon-btn svg{width:24px;height:24px;}
  .icon-btn:hover{color:var(--peri);}
  nav.mobile-nav{
    position:absolute;top:100%;right:0;left:0;z-index:80;
    background:var(--white);border-bottom:1px solid var(--line);box-shadow:var(--shadow-soft);display:none;
  }
  nav.mobile-nav.open{display:block;}
  nav.mobile-nav ul{list-style:none;margin:0;padding:8px 0;}
  nav.mobile-nav a{display:block;padding:13px 24px;font-family:"Lora",serif;font-weight:700;font-size:1.05rem;color:var(--navy);}
  nav.mobile-nav a:hover{background:var(--pale);color:var(--navy);}

  /* hero */
  .hero{position:relative;overflow:hidden;color:var(--white);background:var(--navy);}
  .hero .wrap{padding-top:112px;padding-bottom:64px;}
  .hero-inner{max-width:600px;}
  .hero h1{color:var(--white);font-weight:400;line-height:1.14;font-size:clamp(2rem,7.4vw,3.3rem);margin-bottom:.5em;}
  .hero p{font-size:1.06rem;line-height:1.65;text-shadow:0 1px 6px rgba(12,30,45,.55),0 1px 2px rgba(12,30,45,.4);margin-bottom:1.6em;max-width:34em;}

  /* section */
  .section{padding:66px 0;}
  .section--pale{background:var(--pale);}
  .section h2{text-transform:uppercase;letter-spacing:.02em;font-weight:400;font-size:clamp(1.55rem,5.4vw,2.15rem);margin-bottom:.7em;}
  .section .lead{font-size:1.04rem;color:var(--ink);}
  #services,#about,#partners{scroll-margin-top:24px;}

  /* services grid */
  .cards{margin-top:44px;display:grid;gap:26px;grid-template-columns:1fr;}
  @media(min-width:600px){.cards{grid-template-columns:repeat(2,1fr);}}
  @media(min-width:1000px){.cards{grid-template-columns:repeat(3,1fr);}}
  .card{background:var(--white);border:1px solid var(--line);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;transition:transform .3s ease,box-shadow .3s ease;}
  .card:hover{transform:translateY(-10px);box-shadow:var(--shadow);}
  .card .media{aspect-ratio:3/2;width:100%;object-fit:cover;background:var(--pale);}
  .card .body{padding:26px 22px 30px;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;flex:1;}
  .card h3{font-family:"Lora",serif;font-weight:600;font-size:1.5rem;line-height:1.2;color:var(--navy);}
  .card p{color:var(--ink);font-size:.98rem;flex:1;}
  .card .btn{font-size:1rem;padding:.7em 1.6em;}
  /* stagger the glow/shimmer loops across the 8 cards so they don't all
     pulse/sweep in lockstep — same idea as the header logo's negative delays */
  .card:nth-child(2) .glow-text,.card:nth-child(2) .shimmer-text{animation-delay:-.35s;}
  .card:nth-child(3) .glow-text,.card:nth-child(3) .shimmer-text{animation-delay:-.7s;}
  .card:nth-child(4) .glow-text,.card:nth-child(4) .shimmer-text{animation-delay:-1.05s;}
  .card:nth-child(5) .glow-text,.card:nth-child(5) .shimmer-text{animation-delay:-1.4s;}
  .card:nth-child(6) .glow-text,.card:nth-child(6) .shimmer-text{animation-delay:-1.75s;}

  /* about */
  .about .center-col p + p{margin-top:1.1em;}
  .about .btn{margin-top:1.9em;}

  /* service detail "pages" — shown/hidden by the hash router, see script.
     Same fonts/palette as the rest of the site, just a simple photo-then-copy
     layout: image, title, price, paragraphs, Enquire Now. */
  .service-detail{padding:96px 0 90px;}
  .service-detail .wrap{max-width:760px;}
  .service-detail .back-link{
    display:inline-flex;align-items:center;gap:.4em;margin-bottom:26px;
    font-family:"Lora",serif;font-weight:700;font-size:.98rem;color:var(--peri);
  }
  .service-detail .back-link:hover{color:var(--navy);}
  .service-detail .svc-photo{
    width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:6px;
    margin-bottom:36px;box-shadow:var(--shadow-soft);background:var(--pale);
  }
  .service-detail h1{font-weight:400;line-height:1.16;font-size:clamp(1.9rem,5.2vw,2.6rem);margin-bottom:.35em;}
  .service-detail .svc-price{font-family:"Lora",serif;font-weight:700;color:var(--peri);font-size:1.12rem;margin-bottom:1.5em;;line-height:1.55;}
  .service-detail p{color:var(--ink);font-size:1.05rem;line-height:1.75;max-width:65ch;}
  .service-detail p + p{margin-top:1.15em;}
  .service-detail .btn{margin-top:1.9em;}

  /* enquiry page — same hash-router "page" as the service pages, wider layout:
     form panel + a navy contact card. */
  .enquiry .wrap{max-width:1040px;}
  .enquiry h1{margin-bottom:.4em;}
  .enquiry .enq-intro{margin-bottom:2.2em;max-width:60ch;}
  .enq-grid{display:grid;gap:28px;grid-template-columns:1fr;align-items:start;}
  @media(min-width:860px){.enq-grid{grid-template-columns:1.45fr 1fr;gap:34px;}}
  .enq-panel{background:var(--white);border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow-soft);padding:30px 26px 32px;}
  @media(min-width:600px){.enq-panel{padding:38px 38px 40px;}}
  .enq-form .field{margin-bottom:20px;}
  .enq-form .field-row{display:grid;gap:0 18px;grid-template-columns:1fr;}
  @media(min-width:600px){.enq-form .field-row{grid-template-columns:1fr 1fr;}}
  .enq-form label{display:block;margin-bottom:7px;font-family:"Lora",serif;font-weight:700;font-size:.95rem;color:var(--navy);}
  .enq-form .opt{font-family:"Lato",sans-serif;font-weight:400;color:var(--ink);font-size:.85rem;}
  .enq-form input,.enq-form select,.enq-form textarea{
    width:100%;font:inherit;font-size:1rem;color:var(--navy);background:var(--white);
    border:1px solid #cfd8e3;border-radius:4px;padding:.8em 1em;
    transition:border-color .2s ease,box-shadow .2s ease;
  }
  .enq-form textarea{resize:vertical;min-height:130px;line-height:1.6;}
  .enq-form select{
    appearance:none;-webkit-appearance:none;padding-right:2.6em;cursor:pointer;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23164366' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right .85em center;background-size:18px;
  }
  .enq-form input:focus,.enq-form select:focus,.enq-form textarea:focus{
    outline:none;border-color:var(--peri);box-shadow:0 0 0 3px rgba(137,207,240,.38);
  }
  .enq-form .is-bad{border-color:#c0504d;}
  .enq-error{margin:0 0 18px;color:#b03a37;font-size:.95rem;}
  .enq-form .btn{min-width:190px;}
  .enq-thanks h2{font-weight:400;font-size:1.7rem;margin-bottom:.5em;}
  .enq-thanks p{margin-bottom:1.4em;}
  .enq-card{background:var(--navy);color:rgba(255,255,255,.85);border-radius:6px;padding:32px 28px 34px;text-align:center;box-shadow:var(--shadow-soft);}
  .enq-card h2{color:var(--white);font-weight:400;font-size:1.6rem;margin-bottom:.4em;}
  .enq-card p{color:rgba(255,255,255,.85);max-width:none;}
  .enq-card .enq-lines{margin:1.2em 0;line-height:1.9;}
  .enq-card .enq-addr{line-height:1.8;}
  .enq-card a{color:inherit;}
  .enq-card .shimmer-text{--base-color:rgba(255,255,255,.78);--shimmer-color:#ffffff;}
  .enq-card a:hover{text-decoration:underline;}
  .service-detail .btn .shimmer-text{--base-color:rgba(255,255,255,.82);--shimmer-color:#ffffff;}

  /* pilates class timetable */
  .timetable{margin:2.2em 0 .6em;padding:26px 26px 14px;background:var(--pale);border:1px solid var(--line);border-radius:6px;}
  .timetable h2{font-weight:400;font-size:1.6rem;margin-bottom:.5em;}
  .tt-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;padding:14px 0;border-top:1px solid #d3deee;}
  .tt-day{font-family:"Lora",serif;font-weight:700;font-size:1.05rem;min-width:118px;}
  .tt-times{display:flex;flex-wrap:wrap;gap:10px;}
  .tt-slot{display:inline-flex;align-items:center;gap:10px;background:var(--white);border:1px solid #cfd8e3;border-radius:4px;padding:.4em .95em;font-size:1.02rem;}
  .tt-tag{font-family:"Lora",serif;font-weight:700;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--white);background:var(--peri);border-radius:3px;padding:.2em .6em;}
  .timetable .tt-day .shimmer-text{--base-color:var(--navy);}

  /* social buttons (footer + enquiry card) */
  .social{display:flex;justify-content:center;gap:14px;margin-top:22px;}
  .soc-btn{
    width:48px;height:48px;border-radius:50%;display:inline-grid;place-items:center;
    color:var(--white);border:1.5px solid rgba(255,255,255,.55);background:rgba(255,255,255,.06);
    transition:transform .25s var(--ease),background-color .25s ease,border-color .25s ease,box-shadow .25s ease;
  }
  .soc-btn svg{width:22px;height:22px;display:block;}
  .soc-btn:hover,.soc-btn:focus-visible{
    color:var(--white);background:var(--peri);border-color:var(--peri);
    transform:translateY(-4px) scale(1.06);
    box-shadow:0 0 0 4px rgba(137,207,240,.28),0 8px 20px rgba(0,0,0,.28);
  }
  .soc-btn:active{transform:translateY(-1px) scale(.97);}
  .site-footer .social{margin:26px 0 4px;}

  /* opening hours (footer + enquiry card — both dark navy) */
  .hours{margin:0 0 30px;}
  .hours h3{color:var(--white);font-weight:400;font-size:1.35rem;margin-bottom:.7em;}
  .hours-list{list-style:none;margin:0 auto;padding:0;max-width:290px;text-align:left;}
  .hours-list li{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.16);line-height:1.5;}
  .hours-list li:last-child{border-bottom:0;}
  .hours-note{margin-top:.9em;font-family:"Lora",serif;font-style:italic;}
  .enq-card .hours{margin:1.6em 0 1.6em;}

  /* FAQ page — accordion built on <details>, no JS needed */
  .faq .wrap{max-width:820px;}
  .faq .faq-intro{margin-bottom:1.6em;}
  .faq-item{background:var(--white);border:1px solid var(--line);border-radius:6px;margin-bottom:12px;box-shadow:var(--shadow-soft);transition:border-color .25s ease;}
  .faq-item[open]{border-color:var(--peri);}
  .faq-item summary{
    list-style:none;cursor:pointer;position:relative;padding:18px 56px 18px 22px;
    font-family:"Lora",serif;font-weight:600;font-size:1.1rem;line-height:1.35;color:var(--navy);
    border-radius:6px;transition:background-color .2s ease;
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary:hover{background:var(--pale);}
  .faq-item summary::after{
    content:"";position:absolute;right:24px;top:50%;width:9px;height:9px;
    border-right:2px solid var(--peri);border-bottom:2px solid var(--peri);
    transform:translateY(-70%) rotate(45deg);transition:transform .25s var(--ease);
  }
  .faq-item[open] summary::after{transform:translateY(-30%) rotate(-135deg);}
  .faq-a{padding:2px 22px 20px;}
  .faq-a p{font-size:1.02rem;}
  .faq-link{font-family:"Lora",serif;font-weight:700;color:var(--peri);}
  .faq-link:hover{color:var(--navy);}
  .faq-cta{text-align:center;margin-top:44px;}
  .faq-cta h2{font-weight:400;font-size:1.6rem;margin-bottom:.8em;}
  .site-footer .flinks{margin:-12px 0 30px;font-size:1.02rem;line-height:2;}
  .site-footer .flinks a:hover{text-decoration:underline;}

  /* testimonials page — add cards to .testi-grid (see comment in the markup) */
  .testimonials .wrap{max-width:1040px;}
  .testimonials .testi-intro{margin-bottom:2em;}
  .testi-grid{display:grid;gap:22px;grid-template-columns:1fr;}
  @media(min-width:700px){.testi-grid{grid-template-columns:repeat(2,1fr);}}
  @media(min-width:1000px){.testi-grid{grid-template-columns:repeat(3,1fr);}}
  .testi-grid:empty{display:none;}
  .testi-card{margin:0;position:relative;background:var(--white);border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow-soft);padding:46px 26px 26px;display:flex;flex-direction:column;}
  .testi-card::before{content:"\201C";position:absolute;top:6px;left:20px;font-family:"Lora",serif;font-size:4.2rem;line-height:1;color:var(--peri);opacity:.6;}
  .testi-card blockquote{margin:0 0 20px;flex:1;}
  .testi-card blockquote p{font-size:1.04rem;font-style:italic;}
  .testi-card figcaption{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:2px;}
  .testi-name{font-family:"Lora",serif;font-weight:700;font-size:1.05rem;color:var(--navy);}
  .testi-service{font-size:.92rem;}
  .testi-empty{text-align:center;background:var(--pale);border:1px dashed #b9c9e0;border-radius:6px;padding:40px 24px;}
  .testi-empty h2{font-weight:400;font-size:1.6rem;margin-bottom:.5em;}
  .testi-empty p{margin-inline:auto;}
  .testi-grid:not(:empty) + .testi-empty{display:none;}

  /* partners carousel */
  .partners{padding:42px 0 46px;background:var(--white);}
  .logo-carousel{--per:2;max-width:960px;margin:0 auto;display:flex;align-items:center;gap:6px;}
  .lc-view{overflow:hidden;flex:1;}
  .lc-track{display:flex;transition:transform .55s ease;}
  .lc-slide{flex:0 0 calc(100% / var(--per));display:flex;align-items:center;justify-content:center;padding:14px 18px;}
  .lc-slide img,.lc-slide svg{height:46px;width:auto;max-width:100%;object-fit:contain;}
  .lc-arrow{flex:none;width:40px;height:40px;border:0;border-radius:50%;background:var(--pale);color:var(--navy);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background-color .2s ease,color .2s ease;}
  .lc-arrow:hover{background:var(--peri);color:#fff;}
  .lc-arrow svg{width:20px;height:20px;}
  @media(min-width:640px){.logo-carousel{--per:3;}}
  @media(min-width:1000px){.logo-carousel{--per:4;}.lc-slide img,.lc-slide svg{height:52px;}}

  /* sports therapy band */
  .band{position:relative;overflow:hidden;background:var(--peri);color:var(--white);padding:76px 0 92px;text-align:center;}
  .band .wm{position:absolute;right:-30px;bottom:-12%;width:min(52%,360px);opacity:.07;pointer-events:none;}
  .band h2{color:var(--white);text-transform:uppercase;font-weight:400;letter-spacing:.03em;font-size:clamp(1.7rem,6vw,2.4rem);margin-bottom:.55em;}
  .band p{max-width:44ch;margin-inline:auto;font-size:1.06rem;margin-bottom:1.7em;}
  .band .inner{position:relative;z-index:2;}

  /* contact card */
  .contact-strip{background:var(--navy);padding:0 0 12px;scroll-margin-top:20px;}
  .contact-card{position:relative;z-index:3;background:var(--white);border-radius:4px;max-width:520px;margin:-44px auto 0;padding:40px 34px 44px;text-align:center;box-shadow:var(--shadow-soft);}
  .contact-card h2{font-family:"Lora",serif;text-transform:uppercase;font-weight:400;letter-spacing:.02em;font-size:1.9rem;margin-bottom:.5em;color:var(--navy);}
  .contact-card p{color:var(--ink);margin-bottom:1.7em;}

  /* footer */
  .site-footer{background:var(--navy);color:rgba(255,255,255,.82);text-align:center;}
  .site-footer .wrap{padding:56px 22px 40px;}
  .site-footer .flogo{width:210px;margin:0 auto 30px;}
  .site-footer .fservices{list-style:none;margin:0 0 32px;padding:0;line-height:2;color:#c6d4e8;font-size:1.02rem;}
  .site-footer .fservices a{text-decoration:none;}
  .site-footer .fservices a:hover{text-decoration:underline;}
  .site-footer address{font-style:normal;line-height:1.85;margin-bottom:22px;}
  .site-footer .fcontact a{color:rgba(255,255,255,.92);}
  .site-footer .fcontact a:hover{color:var(--peri-soft);}
  .footer-bottom{border-top:1px solid rgba(255,255,255,.16);}
  .footer-bottom .wrap{padding:22px;font-size:.92rem;color:rgba(255,255,255,.6);line-height:1.7;}
  .footer-bottom .credit{color:var(--peri-soft);white-space:nowrap;}

  /* ============ motion — "rise & settle" ============ */
  /* scroll-reveal — a gentle slide only (never a fade), so every word stays
     readable at rest even before it is scrolled into view. */
  .js .reveal{transform:translateY(18px);transition:transform .7s var(--ease);transition-delay:var(--d,0s);will-change:transform;}
  .js .reveal.is-in{transform:none;}

  /* header logo — box drops in, then the 3 figures play through frame by frame */
  .brand{overflow:hidden;}
  .js .brand{animation:brandDrop 1s cubic-bezier(.34,1.28,.64,1) .15s both;}
  .brand:hover{box-shadow:0 7px 20px rgba(0,0,0,.26);}
  @keyframes brandDrop{0%{transform:translateY(-130%);opacity:0}55%{opacity:1}100%{transform:translateY(0)}}
  .js .ba-fig{animation:baFrame 2.4s linear infinite;}
  .js .ba-f2{animation-delay:-1.6s;}
  .js .ba-f3{animation-delay:-0.8s;}
  @keyframes baFrame{
    0%,32.5%   {opacity:1; transform:translateY(-3px);}
    33%,100%   {opacity:.28; transform:translateY(0);}
  }


  /* hero — illustrated dawn-run scene + staggered text entrance */
  .hero::before{content:"";position:absolute;inset:0;z-index:0;
    background:
      radial-gradient(ellipse 55% 42% at 80% 80%,rgba(255,255,255,.14),rgba(255,255,255,0) 70%),
      linear-gradient(180deg,rgba(255,255,255,0) 74%,rgba(255,255,255,.07) 76%,rgba(255,255,255,.03) 100%),
      linear-gradient(115deg,#123449 0%,#1c4a68 28%,#3f6f97 52%,#6f96c2 76%,#8aa8d0 100%);}
  .hero::after{content:"";position:absolute;inset:0;z-index:1;
    background:linear-gradient(90deg,rgba(15,38,55,.68),rgba(15,38,55,.32) 48%,rgba(15,38,55,.12) 100%);}
  @media(min-width:900px){
    .hero::after{background:linear-gradient(90deg,rgba(15,38,55,.62),rgba(15,38,55,.2) 46%,rgba(15,38,55,.02) 76%,rgba(15,38,55,0) 100%);}
  }
  .hero .wrap{position:relative;z-index:2;}

  .js .hero h1{animation:riseIn .85s var(--ease) .25s both;}
  .js .hero p{animation:riseIn .85s var(--ease) .42s both;}
  .js .hero .btn{animation:riseIn .85s var(--ease) .58s both;}
  @keyframes riseIn{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}

  /* buttons — shine sweep + card CTA arrow */
  .btn{position:relative;overflow:hidden;}
  .btn::before{content:"";position:absolute;top:0;left:-80%;width:55%;height:100%;
    background:linear-gradient(120deg,transparent,rgba(255,255,255,.4),transparent);
    transform:skewX(-20deg);transition:left .55s ease;pointer-events:none;}
  .btn:hover::before{left:135%;}
  .card .btn::after{content:"→";margin-left:.55em;transition:transform .2s var(--ease);}
  .card .btn:hover::after{transform:translateX(4px);}

  /* service cards — image zoom on hover */
  .card{overflow:hidden;}
  .card .media{transition:transform .55s var(--ease);}
  .card:hover .media{transform:scale(1.06);}

  /* carousel — soft edge fade */
  .lc-view{-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);}

  /* band watermark drift */
  .js .band .wm{animation:drift 22s ease-in-out infinite alternate;}
  @keyframes drift{to{transform:translateY(-16px) rotate(3deg);}}

  /* scroll progress bar */
  .scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:200;
    background:linear-gradient(90deg,var(--peri),var(--navy));}

  /* condensed sticky bar (appears past the hero) */
  .mini-bar{position:fixed;top:0;left:0;right:0;z-index:150;
    display:flex;align-items:center;justify-content:space-between;gap:14px;
    padding:9px 18px;background:rgba(255,255,255,.96);
    -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);box-shadow:0 3px 16px rgba(22,67,102,.10);
    transform:translateY(-101%);transition:transform .38s var(--ease);}
  .mini-bar.show{transform:translateY(0);}
  .mini-bar .mb-id{display:flex;align-items:center;gap:10px;font-family:"Lora",serif;font-weight:700;color:var(--navy);font-size:1rem;}
  .mini-bar .mb-chip{width:30px;height:30px;border-radius:6px;background:var(--peri);display:grid;place-items:center;flex:none;}
  .mini-bar .mb-chip img{width:22px;height:auto;}
  .mini-bar .mb-actions{display:flex;gap:8px;}
  .mini-bar .mb-actions a{font-family:"Lora",serif;font-weight:700;font-size:.9rem;
    padding:.5em 1em;border-radius:4px;border:1px solid var(--peri);color:var(--navy);white-space:nowrap;}
  .mini-bar .mb-actions a.solid{background:var(--peri);color:#fff;border-color:var(--peri);}
  .mini-bar .mb-actions a:hover{background:var(--navy);border-color:var(--navy);color:#fff;}
  @media(max-width:560px){.mini-bar .mb-id span{display:none;}.mini-bar .mb-call{display:none;}}

  /* back to top */
  .to-top{position:fixed;right:18px;bottom:18px;z-index:140;width:44px;height:44px;border:0;border-radius:50%;
    background:var(--navy);color:#fff;cursor:pointer;display:grid;place-items:center;
    opacity:0;transform:translateY(14px) scale(.9);pointer-events:none;
    transition:opacity .3s var(--ease),transform .3s var(--ease),background-color .2s ease;
    box-shadow:0 6px 18px rgba(22,67,102,.28);}
  .to-top.show{opacity:1;transform:none;pointer-events:auto;}
  .to-top:hover{background:var(--peri);}
  .to-top svg{width:20px;height:20px;}

  @media(min-width:900px){
    .site-header .wrap{min-height:202px;}
    .brand-anim{width:200px;}
    .hero .wrap{padding-top:122px;padding-bottom:92px;}
    .section{padding:84px 0;}
  }
  @media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
    .js .reveal{opacity:1!important;transform:none!important;}
    .hero::before{transform:none!important;}
    .card:hover{transform:none;}
    .card:hover .media{transform:none;}
    .js .ba-fig{opacity:1!important;transform:none!important;animation:none!important;}
  }
  @media(prefers-color-scheme:dark){
    /* Faithful reproduction of a light-only site — keep surfaces explicit. */
    body{background:var(--white);color:var(--ink);}
  }

  /* ---- added for the multi-page build ---- */
  .skip{position:absolute;left:-9999px;top:8px;z-index:400;background:var(--navy);color:#fff;padding:10px 16px;border-radius:4px;font-family:"Lora",serif;font-weight:700;}
  .skip:focus{left:12px;color:#fff;}
  main{display:block;}
  /* width/height attributes are for layout stability only; CSS aspect-ratio must stay in charge of the shape */
  .card .media,.svc-photo,.band .wm{height:auto;}
  .crumbs{margin-bottom:26px;font-family:"Lora",serif;font-weight:700;font-size:.95rem;color:var(--ink);}
  .crumbs a{color:var(--peri);}
  .crumbs a:hover{color:var(--navy);}
  .crumbs .sep{margin:0 .55em;opacity:.55;}
  .card h3 a{color:inherit;}
  .more-services{margin-top:52px;padding-top:30px;border-top:1px solid var(--line);}
  .more-services h2{font-weight:400;font-size:1.4rem;margin-bottom:.8em;}
  .more-services ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px;}
  .more-services a{display:inline-block;padding:.5em 1.05em;border:1px solid var(--peri);border-radius:4px;font-family:"Lora",serif;font-weight:700;font-size:.98rem;color:var(--navy);transition:background-color .2s ease,color .2s ease;}
  .more-services a:hover,.more-services a:focus-visible{background:var(--peri);color:#fff;}
  .site-footer .dir{margin:-10px 0 24px;font-size:.95rem;}
  .site-footer .dir a{color:var(--peri-soft);}
  .site-footer .dir a:hover{text-decoration:underline;}
  /* ---- design review pass: contrast, buttons, cards, partners, spacing, mobile bar ---- */
  a{color:var(--deep);}
  a:hover{color:var(--navy);}
  .btn{background:var(--navy);border-color:var(--navy);color:#fff;min-height:48px;}
  .btn:hover{background:var(--deep);border-color:var(--deep);color:#fff;}
  .btn--ghost{background:transparent;border-color:#fff;color:#fff;}
  .btn--ghost:hover{background:#fff;border-color:#fff;color:var(--navy);}
  .btn--amber{background:var(--amber);border-color:var(--amber);color:var(--navy);}
  .btn--amber:hover{background:#E8A929;border-color:#E8A929;color:var(--navy);}
  .btn--amber .shimmer-text,.hero .btn--amber .shimmer-text{--base-color:#0F2A43;--shimmer-color:#4a7bb0;}
  .hero .shimmer-text,.band .shimmer-text,.site-footer .shimmer-text{--base-color:rgba(255,255,255,.88);}
  .mini-bar .mb-actions a{border-color:var(--navy);color:var(--navy);}
  .mini-bar .mb-actions a.solid{background:var(--amber);border-color:var(--amber);color:var(--navy);}
  .mini-bar .mb-actions a.solid:hover{background:#E8A929;border-color:#E8A929;color:var(--navy);}
  .crumbs a,.back-link,.faq-link{color:var(--deep);}
  .svc-price,.service-detail .svc-price{color:var(--deep);}
  .tt-tag{background:var(--deep);}
  .soc-btn:hover,.soc-btn:focus-visible{background:var(--deep);border-color:#fff;}
  .hero :focus-visible,.band :focus-visible,.site-footer :focus-visible,.contact-strip :focus-visible,.enq-card :focus-visible{outline-color:#fff;}
  .footer-bottom .wrap{font-size:1rem;}
  /* spacing rhythm: 56px mobile, 96px desktop */
  .section{padding:56px 0;}
  .partners{padding:56px 0;}
  .service-detail{padding:56px 0 64px;}
  .contact-card{max-width:600px;padding:52px 40px 56px;}
  @media(min-width:900px){.section{padding:96px 0;}.service-detail{padding:96px 0 90px;}.partners{padding:64px 0;}}
  /* cards: whole card is the link, small arrow link instead of a button */
  .card{position:relative;border-radius:12px;}
  .card:hover{box-shadow:0 12px 30px rgba(15,42,67,.18);}
  .card h3 a::after{content:"";position:absolute;inset:0;z-index:1;}
  .card h3 a:focus-visible{outline:none;}
  .card:has(h3 a:focus-visible){outline:2px solid var(--navy);outline-offset:3px;}
  .card .more{display:inline-flex;align-items:center;gap:.5em;font-family:"Lora",serif;font-weight:700;font-size:1rem;color:var(--navy);min-height:44px;}
  .card .more::after{content:"→";transition:transform .2s var(--ease);}
  .card:hover .more::after{transform:translateX(6px);}
  /* partners: static greyscale row, colour on hover */
  .partner-row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:22px 32px;}
  .partner-row li{display:flex;align-items:center;}
  .partner-row img,.partner-row svg{height:40px;width:auto;max-width:100%;filter:grayscale(1);opacity:.72;transition:filter .25s ease,opacity .25s ease;}
  .partner-row li:hover img,.partner-row li:hover svg{filter:none;opacity:1;}
  /* sports therapy band: deep blue, whole faint logo instead of a cropped one */
  .band{background:var(--deep);}
  .band .wm{right:5%;top:50%;bottom:auto;translate:0 -50%;opacity:.08;width:min(34%,300px);}
  @media(max-width:700px){.band .wm{display:none;}}
  /* mobile: sticky Call / Book bar */
  .m-bar{display:none;}
  @media(max-width:700px){
    .m-bar{position:fixed;left:0;right:0;bottom:0;z-index:160;display:grid;grid-template-columns:1fr 1.5fr;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 18px rgba(15,42,67,.12);}
    .m-bar a{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:6px;font-family:"Lora",serif;font-weight:700;font-size:1.02rem;}
    .m-bar .m-call{border:1.5px solid var(--navy);color:var(--navy);background:#fff;}
    .m-bar .m-book{background:var(--amber);color:var(--navy);border:1.5px solid var(--amber);}
    .mini-bar{display:none;}
    body{padding-bottom:76px;}
    .to-top{bottom:92px;}
  }
  .notfound{text-align:center;padding:120px 0 110px;}
  .notfound h1{font-weight:400;margin-bottom:.5em;}
  .notfound p{margin:0 auto 1.6em;}

  /* =====================================================================
     BABY-BLUE THEME (loaded last so it wins). Main colour baby blue + white,
     dark navy only for text. Glow effect removed in theme.py (css_orig).
     ===================================================================== */
  :root{--sky:#89CFF0;--sky-deep:#6CBFE8;--sky-soft:#E4F4FC;--sky-mid:#B9E2F7;}
  .icon-btn:hover{color:var(--deep);}

  /* hero */
  .hero{color:var(--navy);background:var(--sky);}
  .hero::before{background:
    radial-gradient(ellipse 60% 55% at 85% 82%,rgba(255,255,255,.7),rgba(255,255,255,0) 70%),
    linear-gradient(120deg,#8cd1f1 0%,#a7dbf5 45%,#d3edfb 80%,#ecf8ff 100%);}
  .hero::after{display:none;}
  .hero h1,.hero p{color:var(--navy);}
  .hero p{text-shadow:none;}
  .hero .shimmer-text,.band .shimmer-text,.site-footer .shimmer-text,.enq-card .shimmer-text,.btn .shimmer-text,.service-detail .btn .shimmer-text{--base-color:#0F2A43;--shimmer-color:#2f79ad;}

  /* buttons: baby blue with navy text; white on baby-blue surfaces */
  .btn{background:var(--sky);border-color:var(--sky);color:var(--navy);box-shadow:0 2px 0 rgba(15,42,67,.12);}
  .btn:hover{background:var(--sky-deep);border-color:var(--sky-deep);color:var(--navy);}
  .btn--amber{background:#fff;border-color:#fff;color:var(--navy);box-shadow:0 8px 20px rgba(15,42,67,.18);}
  .btn--amber:hover{background:var(--sky-soft);border-color:var(--sky-soft);color:var(--navy);}
  .btn--ghost{background:transparent;border-color:var(--navy);color:var(--navy);box-shadow:none;}
  .btn--ghost:hover{background:#fff;border-color:#fff;color:var(--navy);}
  .mini-bar .mb-actions a.solid{background:var(--sky);border-color:var(--sky);color:var(--navy);}
  .mini-bar .mb-actions a.solid:hover{background:var(--sky-deep);border-color:var(--sky-deep);color:var(--navy);}
  .m-bar .m-book{background:var(--sky);border-color:var(--sky);color:var(--navy);}
  .to-top{background:var(--sky);color:var(--navy);box-shadow:0 6px 18px rgba(15,42,67,.25);}
  .to-top:hover{background:var(--sky-deep);}

  /* sports therapy band, contact strip, footer, enquiry card: baby blue surfaces with navy text */
  .band{background:var(--sky);color:var(--navy);}
  .band h2{color:var(--navy);}
  .band .wm{opacity:.12;}
  .contact-strip{background:var(--sky-mid);}
  .site-footer{background:var(--sky);color:var(--navy);}
  .site-footer .fservices{color:var(--navy);}
  .site-footer .fcontact a{color:var(--navy);}
  .site-footer .fcontact a:hover{color:var(--deep);}
  .footer-bottom{border-top:1px solid rgba(15,42,67,.22);}
  .footer-bottom .wrap{color:rgba(15,42,67,.88);}
  .footer-bottom .credit{color:var(--deep);font-weight:700;}
  .site-footer .dir a{color:var(--deep);text-decoration:underline;}
  .hours h3{color:var(--navy);}
  .hours-list li{border-bottom-color:rgba(15,42,67,.2);}
  .soc-btn{color:var(--navy);border-color:rgba(15,42,67,.5);background:rgba(255,255,255,.45);}
  .soc-btn:hover,.soc-btn:focus-visible{background:var(--navy);border-color:var(--navy);color:#fff;}
  .enq-card{background:var(--sky);color:var(--navy);}
  .enq-card h2,.enq-card p,.enq-card a{color:var(--navy);}
  .testi-empty{border-color:#a9d9f1;}
  .hero :focus-visible,.band :focus-visible,.site-footer :focus-visible,.contact-strip :focus-visible,.enq-card :focus-visible{outline-color:var(--navy);}

  /* site search */
  .search-panel{position:fixed;top:0;left:0;right:0;z-index:300;background:#fff;box-shadow:0 18px 44px rgba(15,42,67,.25);padding:16px 0 20px;max-height:92vh;overflow:auto;}
  .search-panel .wrap{max-width:760px;}
  .search-panel[hidden],.search-scrim[hidden]{display:none;}
  .search-scrim{position:fixed;inset:0;z-index:290;background:rgba(15,42,67,.45);}
  .search-form{display:flex;align-items:center;gap:10px;border:2px solid var(--sky);border-radius:8px;padding:6px 8px 6px 14px;background:#fff;}
  .search-form:focus-within{box-shadow:0 0 0 4px rgba(137,207,240,.45);}
  .search-form svg{width:22px;height:22px;flex:none;color:var(--navy);}
  .search-form input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:1.1rem;color:var(--navy);padding:.7em 0;}
  .search-close{border:0;background:var(--sky-soft);color:var(--navy);font-size:1.7rem;line-height:1;width:44px;height:44px;border-radius:6px;cursor:pointer;}
  .search-close:hover{background:var(--sky-mid);}
  .search-results{list-style:none;margin:14px 0 0;padding:0;}
  .search-results a{display:block;padding:12px 14px;border-radius:6px;color:var(--navy);}
  .search-results a:hover,.search-results a:focus-visible{background:var(--sky-soft);color:var(--navy);}
  .search-results strong{font-family:"Lora",serif;font-size:1.05rem;}
  .search-results small{display:block;margin-top:3px;color:var(--ink);font-size:.97rem;line-height:1.5;}
  .search-results mark{background:rgba(137,207,240,.6);color:inherit;border-radius:2px;padding:0 1px;}
  .search-hint{padding:10px 14px;color:var(--ink);}
  .search-label{padding:6px 14px 2px;font-family:"Lora",serif;font-weight:700;font-size:.9rem;color:var(--deep);}

  /* text effects are switched off: any leftover .shimmer-text / .glow-text wrapper is just plain text */
  .shimmer-text,.glow-text{display:inline;position:static;background:none;-webkit-background-clip:border-box;background-clip:border-box;color:inherit;text-shadow:none;animation:none;}
  .tt-day{color:var(--navy);}

  /* search polish: result icons + recent-search chips */
  .search-results a{display:flex;gap:14px;align-items:flex-start;}
  .search-results .sr-ico{flex:none;width:36px;height:36px;border-radius:10px;background:var(--sky-soft);color:var(--deep);display:grid;place-items:center;margin-top:1px;}
  .search-results .sr-ico svg{width:20px;height:20px;}
  .search-results .sr-txt{min-width:0;}
  .search-chips{display:flex;flex-wrap:wrap;gap:8px;padding:4px 14px 8px;}
  .chip-btn{border:1px solid var(--sky);background:#fff;color:var(--navy);border-radius:999px;padding:10px 16px;min-height:44px;font:inherit;font-size:.95rem;cursor:pointer;}
  .chip-btn:hover{background:var(--sky-soft);}

  /* =====================================================================
     PREMIUM PASS — type scale, wavy edges, split hero, trust bar, steps,
     price cards, at-a-glance card, hover/press polish, page transitions.
     ===================================================================== */

  /* type scale */
  h1{letter-spacing:-.012em;}
  .hero h1{font-size:clamp(2.35rem,5.6vw,3.7rem);line-height:1.08;}
  .hero p{font-size:1.15rem;line-height:1.7;}
  .section h2{font-size:clamp(1.75rem,3.4vw,2.35rem);letter-spacing:.01em;}
  .section .lead{font-size:1.08rem;}
  .service-detail h1{font-size:clamp(2rem,4.8vw,2.9rem);}

  /* scroll reveal: fade + rise */
  .js .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0s);}
  .js .reveal.is-in{opacity:1;transform:none;}

  /* page-to-page fade (browsers that support cross-document view transitions; others just navigate normally) */
  @view-transition{navigation:auto;}
  ::view-transition-old(root),::view-transition-new(root){animation-duration:.28s;}

  /* wavy section edges */
  .has-edges{position:relative;}
  .edge{position:absolute;left:0;right:0;height:46px;z-index:1;pointer-events:none;background:var(--edge,#fff);
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1440V26C1290 58 1110 6 900 24S540 54 360 28 90 6 0 30Z'/%3E%3C/svg%3E") center/100% 100% no-repeat;
            mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1440V26C1290 58 1110 6 900 24S540 54 360 28 90 6 0 30Z'/%3E%3C/svg%3E") center/100% 100% no-repeat;}
  .edge--top{top:-1px;}
  .edge--bottom{bottom:-1px;transform:scaleY(-1);}
  .section--pale.has-edges{padding:112px 0;}
  .band.has-edges{padding-top:112px;}
  @media(max-width:700px){.section--pale.has-edges{padding:84px 0;}.band.has-edges{padding-top:88px;}}

  /* split hero */
  .hero .wrap{padding-bottom:128px;}
  .hero-grid{display:grid;gap:40px;align-items:center;}
  @media(min-width:900px){.hero-grid{grid-template-columns:1.05fr .95fr;gap:56px;}}
  .hero-photo{margin:0;position:relative;}
  .hero-photo::before{content:"";position:absolute;inset:-14px -14px 16px 16px;border-radius:24px;background:rgba(255,255,255,.55);z-index:0;}
  .hero-photo img{position:relative;z-index:1;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:18px;border:6px solid #fff;box-shadow:0 28px 60px rgba(15,42,67,.28);will-change:transform;}

  /* trust bar */
  .trust-bar{background:#fff;padding:6px 0 18px;}
  .trust{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:12px 24px;}
  @media(min-width:560px){.trust{grid-template-columns:repeat(2,1fr);}}
  @media(min-width:1000px){.trust{grid-template-columns:repeat(4,1fr);}}
  .trust li{display:flex;align-items:center;gap:14px;font-family:"Lora",serif;font-weight:700;font-size:1rem;line-height:1.3;color:var(--navy);}
  .trust svg{flex:none;width:24px;height:24px;padding:10px;box-sizing:content-box;border-radius:50%;background:var(--sky-soft);color:var(--navy);}

  /* two-column welcome / about */
  .split{display:grid;gap:36px;align-items:center;}
  @media(min-width:900px){.split{grid-template-columns:1.3fr .8fr;gap:68px;}}
  .split-text{text-align:left;}
  .split-text h2{text-align:left;}
  .split-text .lead{max-width:62ch;}
  .eyebrow{font-family:"Lora",serif;font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-size:.82rem;color:var(--deep);margin-bottom:.8em;}
  .split-aside{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 44px rgba(15,42,67,.1);padding:26px 26px 22px;}
  .aside-title{font-family:"Lora",serif;font-weight:700;font-size:1.08rem;color:var(--navy);margin-bottom:.6em;}
  .aside-list{list-style:none;margin:0;padding:0;}
  .aside-list a{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:50px;padding:10px 8px;border-bottom:1px solid var(--line);border-radius:6px;font-family:"Lora",serif;font-weight:600;color:var(--navy);transition:background-color .2s ease,padding .2s var(--ease);}
  .aside-list li:last-child a{border-bottom:0;}
  .aside-list a:hover,.aside-list a:focus-visible{background:var(--sky-soft);padding-left:14px;color:var(--navy);}
  .aside-list i{font-style:normal;transition:transform .2s var(--ease);}
  .aside-list a:hover i{transform:translateX(5px);}
  .visit-line{display:flex;gap:14px;align-items:flex-start;margin:0 0 15px;font-size:1rem;color:var(--ink);line-height:1.55;}
  .visit-line svg{flex:none;margin-top:2px;color:var(--deep);}
  .visit-line a{color:var(--deep);font-weight:700;}
  .visit-link{display:inline-block;margin-top:4px;font-family:"Lora",serif;font-weight:700;color:var(--deep);}
  .visit-link:hover{color:var(--navy);}

  /* how it works */
  .steps{background:#fff;}
  .step-row{list-style:none;margin:48px 0 0;padding:0;display:grid;gap:22px;grid-template-columns:1fr;}
  @media(min-width:700px){.step-row{grid-template-columns:repeat(2,1fr);}}
  @media(min-width:1000px){.step-row{grid-template-columns:repeat(4,1fr);}}
  .step{position:relative;background:var(--sky-soft);border-radius:16px;padding:30px 24px 26px;text-align:left;transition:transform .3s var(--ease),box-shadow .3s ease;}
  .step:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(15,42,67,.14);}
  .step-n{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--sky);color:var(--navy);font-family:"Lora",serif;font-weight:700;font-size:1.2rem;margin-bottom:16px;box-shadow:0 0 0 7px rgba(137,207,240,.35);}
  .step h3{font-family:"Lora",serif;font-size:1.32rem;font-weight:600;margin-bottom:.4em;}
  .step p{font-size:1rem;color:var(--ink);}
  @media(min-width:1000px){.step:not(:last-child)::after{content:"";position:absolute;top:53px;left:calc(100% + 1px);width:20px;height:2px;background:var(--sky);}}

  /* prices */
  .prices{background:var(--pale);}
  .price-cards{display:grid;gap:22px;margin-top:44px;grid-template-columns:1fr;}
  @media(min-width:800px){.price-cards{grid-template-columns:repeat(3,1fr);}}
  .price-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:34px 24px 30px;text-align:center;box-shadow:0 10px 30px rgba(15,42,67,.07);transition:transform .3s var(--ease),box-shadow .3s ease;}
  .price-card:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(15,42,67,.16);}
  .price-card--feature{background:var(--sky);border-color:var(--sky);}
  .pc-label{font-family:"Lora",serif;font-weight:700;color:var(--deep);letter-spacing:.07em;text-transform:uppercase;font-size:.85rem;}
  .pc-price{font-family:"Lora",serif;font-weight:600;font-size:3.5rem;line-height:1.1;color:var(--navy);margin:.12em 0 .1em;}
  .pc-note{color:var(--ink);font-size:1rem;margin-inline:auto;}
  .price-card--feature .pc-label,.price-card--feature .pc-note{color:var(--navy);}
  .price-foot{text-align:center;margin:30px auto 26px;max-width:64ch;color:var(--ink);font-size:1rem;}

  /* service page: at-a-glance card + "before you come" */
  .glance{display:grid;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:0 0 2.2em;box-shadow:0 10px 30px rgba(15,42,67,.07);}
  @media(min-width:700px){.glance{grid-template-columns:1fr 1.25fr;}}
  .glance-price{padding:24px 26px;background:var(--sky);}
  .glance-label{font-family:"Lora",serif;font-weight:700;letter-spacing:.09em;text-transform:uppercase;font-size:.8rem;color:var(--navy);margin-bottom:.6em;}
  .glance .svc-price{margin:0;color:var(--navy);font-size:1.1rem;line-height:1.55;}
  .glance-facts{margin:0;padding:22px 26px;display:grid;gap:14px;background:#fff;align-content:center;}
  .glance-facts div{display:grid;grid-template-columns:104px 1fr;gap:12px;}
  .glance-facts dt{font-family:"Lora",serif;font-weight:700;color:var(--navy);}
  .glance-facts dd{margin:0;color:var(--ink);}
  .before{margin-top:30px;border-top:1px dashed #b7dff3;padding-top:12px;max-width:65ch;}
  .before summary{cursor:pointer;list-style:none;padding:8px 0;font-family:"Lora",serif;font-weight:700;color:var(--deep);}
  .before summary::-webkit-details-marker{display:none;}
  .before summary::after{content:"  +";}
  .before[open] summary::after{content:"  \2212";}
  .before ul{margin:6px 0 4px 1.15em;padding:0;color:var(--ink);line-height:1.8;}
  .tt-note{margin:14px 0 6px;font-size:1rem;color:var(--ink);}

  /* interaction polish: hover lift, press, focus */
  .btn{transition:transform .2s var(--ease),box-shadow .2s ease,background-color .2s ease,border-color .2s ease;}
  .btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(15,42,67,.2);}
  .btn:active{transform:translateY(0) scale(.98);box-shadow:none;}
  .card{transition:transform .35s var(--ease),box-shadow .35s ease;}
  .card:hover{transform:translateY(-8px);}
  .card:active{transform:translateY(-3px);}
  a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--navy);outline-offset:3px;border-radius:4px;}
  .faq-item summary:active,.soc-btn:active,.icon-btn:active{transform:scale(.97);}
  @media(prefers-reduced-motion:reduce){.btn:hover,.card:hover,.price-card:hover,.step:hover{transform:none;}.hero-photo img{transform:none!important;}}

  /* ---- glass header: the bar that slides in on scroll turns see-through + blurred ---- */
  .mini-bar{background:rgba(255,255,255,.62);-webkit-backdrop-filter:saturate(1.6) blur(16px);backdrop-filter:saturate(1.6) blur(16px);border-bottom:1px solid rgba(255,255,255,.55);box-shadow:0 8px 30px rgba(15,42,67,.10);}
  @supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.mini-bar{background:rgba(255,255,255,.97);}}

  /* ---- one consistent photo treatment: soft rounded frames + the same gentle grade ---- */
  .card .media,.svc-photo,.hero-photo img,.about-photo img{border-radius:16px;filter:saturate(.94) contrast(1.03) brightness(1.01);}
  .card{overflow:hidden;}
  .card .media{border-radius:0;}
  .svc-photo{box-shadow:0 18px 44px rgba(15,42,67,.14);}

  /* ---- service area line ---- */
  .site-footer .areas{margin:-6px 0 24px;font-size:.95rem;opacity:.9;}

  /* ---- touch targets: at least 44px tall on phones ---- */
  .icon-btn{min-width:44px;min-height:44px;width:44px;height:44px;}
  .fservices a,.flinks a,.visit-link,.fcontact a,.site-footer .dir a,.crumbs a,.more-services a{display:inline-flex;align-items:center;min-height:44px;}
  .fservices li{margin:0;}
  .visit-link{margin-top:0;}
  .to-top{min-width:44px;min-height:44px;width:44px;height:44px;}
  .icon-btn{align-items:center;justify-content:center;}

  /* =====================================================================
     Layout pass 3 — compact header, top ticker, compact footer, swoosh, marquee
     ===================================================================== */

  /* ---- top ticker: a slim strip that scrolls right-to-left forever ---- */
  .ticker{background:var(--navy);color:#fff;overflow:hidden;white-space:nowrap;position:relative;z-index:61;}
  .tk-track{display:flex;width:max-content;animation:tkMove 46s linear infinite;}
  .ticker:hover .tk-track{animation-play-state:paused;}
  .tk-group{display:flex;flex:none;list-style:none;margin:0;padding:0;}
  .tk-group li{flex:none;display:flex;align-items:center;padding:8px 0;font-family:"Lora",serif;font-weight:700;font-size:.88rem;letter-spacing:.02em;}
  .tk-group li::after{content:"";width:7px;height:7px;margin:0 30px;border-radius:50%;background:var(--sky);flex:none;}
  @keyframes tkMove{from{transform:translateX(0);}to{transform:translateX(-25%);}}
  @media(prefers-reduced-motion:reduce){
    .ticker{white-space:normal;text-align:center;}
    .tk-track{animation:none;width:auto;display:block;}
    .tk-group{flex-wrap:wrap;justify-content:center;padding:6px 14px;}
    .tk-group[aria-hidden="true"]{display:none;}
    .tk-group li{padding:2px 0;}
    .tk-group li:last-child::after{display:none;}
  }

  /* ---- header: figures on the left, business name beside them, one slim row ---- */
  .site-header .wrap{min-height:84px;}
  @media(min-width:900px){.site-header .wrap{min-height:92px;}}
  .site-header .brand{background:none;box-shadow:none;border-radius:0;padding:8px 0;margin:0;align-self:center;overflow:visible;}
  .site-header .brand:hover{box-shadow:none;}
  .site-header .brand-anim{flex-direction:row;align-items:center;gap:14px;width:auto;}
  .site-header .ba-figs{width:92px;flex:none;}
  .site-header .ba-word{width:236px;max-width:52vw;height:auto;}
  @media(min-width:900px){.site-header .brand-anim{width:auto;}.site-header .ba-figs{width:104px;}.site-header .ba-word{width:268px;}}
  @media(max-width:420px){.site-header .brand-anim{gap:10px;}.site-header .ba-figs{width:70px;}.site-header .ba-word{width:min(200px,52vw);}}
  .js .site-header .brand{animation:brandIn .8s var(--ease) .1s both;}
  @keyframes brandIn{from{transform:translateX(-18px);opacity:0;}to{transform:none;opacity:1;}}

  /* ---- swoosh: a clean white line between the Sports Therapy band and the footer ---- */
  .swoosh{background:var(--sky);height:64px;line-height:0;overflow:hidden;}
  .swoosh svg{display:block;width:100%;height:100%;}
  .band.has-edges{padding-bottom:36px;}

  /* ---- footer: compact, four columns side by side ---- */
  .site-footer{text-align:left;}
  .site-footer .wrap.fgrid{display:grid;grid-template-columns:1.1fr .9fr .95fr 1.25fr;gap:18px 40px;align-items:start;padding:30px 22px 26px;max-width:1180px;}
  .site-footer .fcol{min-width:0;}
  .site-footer .flogo{width:180px;margin:0 0 18px;}
  .site-footer .fservices{margin:0 0 8px;line-height:1.5;font-size:1rem;}
  .site-footer .flinks{margin:0;font-size:1rem;line-height:1.5;}
  .site-footer .fservices a,.site-footer .flinks a,.site-footer .fcontact a,.site-footer .dir a{min-height:30px;}
  @media(pointer:coarse){.site-footer .fservices a,.site-footer .flinks a,.site-footer .fcontact a,.site-footer .dir a{min-height:44px;}}
  .site-footer .hours{margin:0;}
  .site-footer .hours h3{font-size:1.1rem;margin:0 0 .4em;}
  .site-footer .hours-list{margin:0;max-width:270px;}
  .site-footer .hours-list li{padding:4px 0;font-size:.97rem;}
  .site-footer .hours-note{margin-top:.5em;font-size:.97rem;}
  .site-footer address{margin:0 0 8px;line-height:1.55;font-size:.98rem;}
  .site-footer address br{display:none;}
  .site-footer .areas{margin:0 0 6px;font-size:.92rem;line-height:1.45;}
  .site-footer .dir{margin:0 0 4px;}
  .site-footer .fcontact{margin:0;line-height:1.35;font-size:.98rem;overflow-wrap:anywhere;}
  .site-footer .social{justify-content:flex-start;margin:10px 0 0;gap:10px;}
  .site-footer .social .soc-btn{width:42px;height:42px;}
  .footer-bottom .wrap{padding:14px 22px;font-size:.92rem;text-align:center;}

  /* contact card: small, white, sits on the left of the footer */
  .site-footer .contact-card{max-width:290px;margin:0;padding:18px 20px 20px;text-align:left;border-radius:12px;box-shadow:0 10px 26px rgba(15,42,67,.14);scroll-margin-top:90px;}
  .site-footer .contact-card h2{font-size:1.2rem;margin:0 0 .3em;}
  .site-footer .contact-card p{margin:0 0 .9em;font-size:.95rem;line-height:1.5;}
  .site-footer .contact-card .btn{min-height:44px;padding:.55em 1.3em;font-size:.95rem;}

  @media(max-width:1000px){.site-footer .wrap.fgrid{grid-template-columns:1fr 1fr;gap:22px 28px;}}
  @media(max-width:560px){
    .site-footer .wrap.fgrid{grid-template-columns:1fr 1fr;gap:20px 16px;padding:24px 18px 20px;}
    .site-footer .fcol-brand,.site-footer .fcol-find{grid-column:1 / -1;}
    .site-footer .flogo{width:150px;margin-bottom:14px;}
    .site-footer .contact-card{max-width:none;}
  }

  /* ---- brand logos: endless marquee, drifts off the left and re-enters on the right ---- */
  .marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
  .mq-track{display:flex;width:max-content;animation:mqMove 55s linear infinite;}
  .marquee:hover .mq-track{animation-play-state:paused;}
  .mq-track .partner-row{flex:none;flex-wrap:nowrap;gap:0;justify-content:flex-start;}
  .mq-track .partner-row li{padding:0 26px;}
  @keyframes mqMove{from{transform:translateX(0);}to{transform:translateX(-50%);}}
  @media(prefers-reduced-motion:reduce){
    .mq-track{animation:none;width:auto;display:block;}
    .mq-track .partner-row{flex-wrap:wrap;justify-content:center;gap:22px 32px;}
    .mq-track .partner-row[aria-hidden="true"]{display:none;}
    .mq-track .partner-row li{padding:0;}
    .marquee{-webkit-mask-image:none;mask-image:none;}
  }

  /* ---- blog placeholder ---- */
  .service-detail.blog p{max-width:60ch;}

  /* footer links read clearly on the baby-blue surface */
  .site-footer .fservices a,.site-footer .flinks a{color:var(--navy);font-weight:700;}
  .site-footer .fservices a:hover,.site-footer .flinks a:hover{color:var(--deep);text-decoration:underline;}
  .site-footer .fservices{font-family:"Lora",serif;}
  .site-footer .flinks{font-family:"Lora",serif;margin-top:6px;}

  @media(max-width:420px){
    .site-header .brand-anim{gap:8px;}
    .site-header .ba-figs{width:58px;}
    .site-header .ba-word{width:min(158px,42vw);max-width:none;}
    .site-header .header-tools{gap:0;}
    .site-header .wrap{padding-left:16px;padding-right:12px;}
  }

  /* phones: one tidy column, treatments in two columns, header logo already shows the brand */
  @media(max-width:560px){
    .site-footer .wrap.fgrid{grid-template-columns:1fr;gap:18px;}
    .site-footer .fcol-brand .flogo{display:none;}
    .site-footer .fservices{display:grid;grid-template-columns:1fr 1fr;column-gap:12px;margin-bottom:0;}
    .site-footer .flinks{margin-top:0;}
    .site-footer .hours-list{max-width:none;}
    .site-footer .hours-list li{padding:3px 0;}
  }

  @media(max-width:560px){
    .site-footer .hours-list{display:grid;grid-template-columns:1fr 1fr;column-gap:22px;}
    .site-footer .hours-list li{flex-direction:column;gap:0;padding:5px 0;font-size:.93rem;line-height:1.35;}
    .site-footer .hours-list li:nth-last-child(2){border-bottom:0;}
    .site-footer .wrap.fgrid{gap:14px;padding-top:16px;}
    .site-footer .fcol-brand .contact-card{padding:16px 18px 18px;}
    .site-footer .fcontact{display:flex;flex-wrap:wrap;gap:0 18px;}
    .site-footer .fcontact br{display:none;}
  }

  /* footer "Get directions": bold black so it reads on the baby-blue surface */
  .site-footer .dir a{color:#000;font-weight:800;text-decoration:underline;text-underline-offset:3px;}
  .site-footer .dir a:hover{color:var(--navy);}

  /* Sports Therapy band watermark: keep the logo level (gentle vertical drift only) */
  .js .band .wm{animation:wmFloat 22s ease-in-out infinite alternate;rotate:0deg;transform:none;}
  @keyframes wmFloat{from{transform:translateY(0);}to{transform:translateY(-14px);}}

  /* partner logos show their brand colours all the time while they scroll */
  .mq-track .partner-row img,.mq-track .partner-row svg{filter:none;opacity:1;}

  /* ---- testimonials: "coming soon" placeholder cards (same sections a real testimonial will have) ---- */
  .testi-card--soon{border-style:dashed;border-color:var(--sky);background:linear-gradient(180deg,#fff,var(--sky-soft));}
  .testi-card--soon::before{color:var(--sky-deep);opacity:.55;}
  .testi-badge{position:absolute;top:14px;right:14px;background:var(--navy);color:#fff;font-family:"Lora",serif;font-weight:700;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;border-radius:99px;padding:4px 11px;}
  .testi-stars{display:flex;gap:3px;color:var(--sky-deep);margin:0 0 12px;}
  .testi-ph{color:#6b7f92;font-style:italic;}
  .testi-card--soon blockquote{margin-bottom:18px;}
  .testi-card--soon figcaption{gap:3px;}
  .testi-card--soon .testi-name .testi-ph{font-family:"Lora",serif;font-weight:700;font-style:normal;color:#51657a;}
  .testi-date{font-size:.85rem;}

  /* ---- blog ---- */
  .blog .wrap,.blog-post .wrap{max-width:1040px;}
  .blog-lede{max-width:62ch;font-size:1.1rem;margin-bottom:1.8em;}
  .blog-grid{list-style:none;margin:0 0 2.4em;padding:0;display:grid;gap:20px;grid-template-columns:1fr;}
  @media(min-width:700px){.blog-grid{grid-template-columns:repeat(2,1fr);}}
  @media(min-width:1000px){.blog-grid{grid-template-columns:repeat(3,1fr);}}
  .blog-card{display:flex;flex-direction:column;gap:8px;height:100%;background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 22px 18px;color:var(--ink);text-decoration:none;box-shadow:0 8px 24px rgba(15,42,67,.07);transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s;}
  .blog-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(15,42,67,.14);border-color:var(--sky);color:var(--ink);}
  .bc-cat{align-self:flex-start;background:var(--sky-soft);color:var(--deep);font-family:"Lora",serif;font-weight:700;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;border-radius:99px;padding:3px 11px;}
  .blog-card h3{font-family:"Lora",serif;font-weight:700;font-size:1.2rem;line-height:1.3;color:var(--navy);margin:2px 0 0;text-wrap:balance;}
  .blog-card p{margin:0;font-size:.98rem;line-height:1.55;max-width:none;}
  .bc-meta{margin-top:auto;padding-top:10px;display:flex;justify-content:space-between;gap:10px;font-size:.88rem;color:#5b6e80;}
  .bc-go{font-weight:700;color:var(--deep);}
  .blog-post .wrap{max-width:780px;}
  .blog-post h1{margin-bottom:.3em;}
  .post-cat{display:inline-block;background:var(--sky-soft);color:var(--deep);font-family:"Lora",serif;font-weight:700;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;border-radius:99px;padding:3px 12px;margin:0 0 12px;}
  .post-meta{font-size:.92rem;color:#5b6e80;margin:0 0 1.6em;}
  .post-intro{font-size:1.18rem;line-height:1.65;color:var(--navy);max-width:none;border-left:4px solid var(--sky);padding-left:18px;margin:0 0 1.8em;}
  .post-body h2{font-family:"Lora",serif;font-weight:700;font-size:1.55rem;line-height:1.25;color:var(--navy);margin:1.8em 0 .5em;text-wrap:balance;}
  .post-body p{max-width:none;font-size:1.06rem;line-height:1.75;}
  .post-body p + p,.post-body ul + p,.post-body ol + p{margin-top:1em;}
  .post-body ul,.post-body ol{margin:.8em 0 1em;padding-left:1.3em;display:flex;flex-direction:column;gap:.5em;font-size:1.04rem;line-height:1.65;color:var(--ink);}
  .post-body li::marker{color:var(--sky-deep);font-weight:700;}
  .post-note{background:#fff7e6;border:1px solid #f0d9a4;border-radius:12px;padding:16px 18px;margin:1.2em 0;}
  .post-note strong{display:block;font-family:"Lora",serif;color:var(--navy);margin-bottom:4px;}
  .post-note p{margin:0;font-size:1rem;max-width:none;}
  .post-cta{margin:2.4em 0 1.2em;background:var(--sky);border-radius:16px;padding:26px 26px 28px;color:var(--navy);}
  .post-cta h2{font-family:"Lora",serif;font-weight:700;font-size:1.45rem;margin:0 0 .4em;color:var(--navy);}
  .post-cta p{max-width:none;color:var(--navy);margin:0 0 .8em;}
  .post-links{list-style:none;margin:0 0 1.2em;padding:0;display:flex;flex-wrap:wrap;gap:8px;}
  .post-links a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;background:#fff;color:var(--navy);font-family:"Lora",serif;font-weight:700;border-radius:99px;text-decoration:none;}
  .post-links a:hover{background:var(--navy);color:#fff;}
  .post-cta .btn{margin-top:0;}
  .post-disclaimer{font-size:.88rem;color:#5b6e80;max-width:none;margin:1.2em 0 0;}
  .related{margin-top:2.6em;}
  .related h2{font-family:"Lora",serif;font-size:1.35rem;color:var(--navy);margin-bottom:.7em;}
  .blog-post .blog-grid{margin-bottom:0;}
  @media(min-width:1000px){.blog-post .blog-grid{grid-template-columns:repeat(3,1fr);}}

  /* the service-page paragraph cap (65ch) should not squeeze the blog's intro, cards and call-outs */
  .service-detail .post-intro,.service-detail .post-note p,.service-detail .post-cta p,.service-detail .post-disclaimer,.service-detail .blog-card p,.service-detail .blog-lede{max-width:none;}
  .service-detail .blog-lede{max-width:62ch;}
  .service-detail .post-body p{max-width:none;}
  .service-detail .post-note p{margin:0;}

  /* hero link to the body guide */
  .hero-link{display:inline-flex;align-items:center;min-height:44px;margin-left:18px;font-family:"Lora",serif;font-weight:700;color:var(--navy);text-decoration:underline;text-underline-offset:4px;}
  .hero-link:hover{color:var(--deep);}
  @media(max-width:560px){.hero-link{margin:10px 0 0;display:flex;}}
  .post-guide{margin:0 0 1em;}
  .post-guide a{font-weight:700;color:var(--navy);text-decoration:underline;text-underline-offset:3px;}
  .bodyguide--page{padding-top:48px;}

  /* hero link to the body guide */
  .hero-link{display:inline-flex;align-items:center;min-height:44px;margin-left:18px;font-family:"Lora",serif;font-weight:700;color:var(--navy);text-decoration:underline;text-underline-offset:4px;}
  .hero-link:hover{color:var(--deep);}
  @media(max-width:560px){.hero-link{margin:10px 0 0;display:flex;}}
  .post-guide{margin:0 0 1em;}
  .post-guide a{font-weight:700;color:var(--navy);text-decoration:underline;text-underline-offset:3px;}
  .bodyguide--page{padding-top:48px;}

  /* "Powered by G&G Scaled": same text as before, now a link that underlines when pressed or hovered */
  .footer-bottom a.credit-btn{display:inline;margin:0;padding:0;background:none;border-radius:0;min-height:0;color:var(--deep);font-weight:700;text-decoration:none;white-space:nowrap;cursor:pointer;}
  .footer-bottom a.credit-btn:hover,.footer-bottom a.credit-btn:focus-visible,.footer-bottom a.credit-btn:active{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px;}
  .footer-bottom a.credit-btn:focus-visible{outline:2px solid var(--navy);outline-offset:3px;border-radius:3px;}
/* Interactive 3D body guide: scoped to #bodyGuide */
#bodyGuide{--stage-a:#0a1d33;--stage-b:#0e2f4f;--cyan:#7fdcff;--serif:"Lora",Georgia,serif;--sans:"Lato",system-ui,sans-serif;text-align:left;font-family:var(--sans);margin-top:30px;}
#bodyGuide *,#bodyGuide *::before,#bodyGuide *::after{box-sizing:border-box;}
html:not(.js) .bodyguide{display:none;}
#bodyGuide .bg-loading{display:none;position:absolute;inset:0;z-index:2;place-items:center;color:#cfe8f7;font-size:.95rem;}
.js #bodyGuide:not(.bg-ready) .bg-loading{display:grid;}
#bodyGuide .tag a{text-decoration:none;}
#bodyGuide .tag h2{text-transform:none;letter-spacing:0;}
#bodyGuide .tag h3{text-transform:none;}
#bodyGuide .chip-group h3{text-transform:uppercase;}
.bodyguide{overflow:hidden;}
#bodyGuide .stage{position:relative;height:clamp(520px,78vh,700px);border-radius:18px;overflow:hidden;color:#fff;
    background:radial-gradient(ellipse 60% 55% at 50% 58%,#124a78 0,var(--stage-b) 38%,var(--stage-a) 100%);
    box-shadow:0 30px 70px rgba(15,42,67,.35),0 0 0 1px rgba(255,255,255,.35) inset;isolation:isolate}
#bodyGuide .stage::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;
    background-image:linear-gradient(rgba(127,220,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(127,220,255,.07) 1px,transparent 1px);background-size:44px 44px;
    -webkit-mask-image:radial-gradient(ellipse 70% 70% at 50% 55%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 70% 70% at 50% 55%,#000 20%,transparent 75%)}
#bodyGuide canvas#bgGl{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:1;touch-action:pan-y;cursor:grab}
#bodyGuide canvas#bgGl.grabbing{cursor:grabbing}
#bodyGuide canvas#bgGl.hot{cursor:pointer}
#bodyGuide .hud{position:absolute;z-index:5;display:flex;gap:8px;flex-wrap:wrap}
#bodyGuide .hud-tl{top:14px;left:14px;right:14px;justify-content:space-between;align-items:flex-start;pointer-events:none}
#bodyGuide .hint{pointer-events:none;display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:99px;padding:7px 14px;font-size:.86rem;color:#e9f6ff}
#bodyGuide .hint i{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 0 rgba(127,220,255,.6);animation:bgPing 2s infinite}
#bodyGuide .views{pointer-events:auto;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
#bodyGuide .views button,#bodyGuide .zoom button{font:inherit;font-size:.84rem;font-weight:700;color:#e9f6ff;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:99px;min-height:36px;padding:0 14px;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .2s,border-color .2s}
#bodyGuide .views button:hover,#bodyGuide .zoom button:hover{background:rgba(255,255,255,.22)}
#bodyGuide .views button[aria-pressed="true"]{background:var(--sky);color:var(--navy);border-color:var(--sky)}
#bodyGuide .views button:focus-visible,#bodyGuide .zoom button:focus-visible,#bodyGuide .mk:focus-visible,#bodyGuide .tag-close:focus-visible,#bodyGuide .cta:focus-visible,#bodyGuide .chip:focus-visible{outline:2px solid #fff;outline-offset:2px}
#bodyGuide .hud-br{right:14px;bottom:14px;flex-direction:column}
#bodyGuide .zoom{display:flex;flex-direction:column;gap:6px}
#bodyGuide .zoom button{width:38px;padding:0;font-size:1.2rem;line-height:1}
#bodyGuide .markers{position:absolute;inset:0;z-index:3;pointer-events:none}
#bodyGuide .mk{position:absolute;left:0;top:0;width:34px;height:34px;margin:-17px 0 0 -17px;border:0;background:none;padding:0;cursor:pointer;pointer-events:auto;opacity:0;transition:opacity .25s}
#bodyGuide .mk::before{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;margin:-4.5px;border-radius:50%;background:#fff;box-shadow:0 0 10px 2px rgba(127,220,255,.9);transition:transform .2s}
#bodyGuide .mk::after{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;margin:-4.5px;border-radius:50%;border:1.5px solid var(--cyan);animation:bgRing 2.4s ease-out infinite}
#bodyGuide .mk:hover::before,#bodyGuide .mk.on::before{transform:scale(1.5)}
#bodyGuide .mk.on::before{background:var(--sky);box-shadow:0 0 14px 4px rgba(137,207,240,1)}
@keyframes bgRing{0%{transform:scale(1);opacity:.9}100%{transform:scale(4.2);opacity:0}}
@keyframes bgPing{0%{box-shadow:0 0 0 0 rgba(127,220,255,.6)}70%{box-shadow:0 0 0 9px rgba(127,220,255,0)}100%{box-shadow:0 0 0 0 rgba(127,220,255,0)}}
#bodyGuide .hover-tip{position:absolute;z-index:6;pointer-events:none;background:rgba(10,29,51,.92);color:#fff;border:1px solid rgba(127,220,255,.5);border-radius:8px;padding:5px 10px;font-size:.84rem;font-weight:700;white-space:nowrap;opacity:0;transform:translate(14px,-120%);transition:opacity .15s}
#bodyGuide .hover-tip.show{opacity:1}
#bodyGuide svg#bgLeader{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;overflow:visible}
#bodyGuide #bgLeader path{fill:none;stroke:var(--sky);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px rgba(127,220,255,.8));stroke-dasharray:var(--len,600);stroke-dashoffset:0}
#bodyGuide #bgLeader.draw path{animation:bgDraw .55s ease-out both}
#bodyGuide #bgLeader circle{fill:#fff;filter:drop-shadow(0 0 6px rgba(127,220,255,1))}
@keyframes bgDraw{from{stroke-dashoffset:var(--len,600)}to{stroke-dashoffset:0}}
#bodyGuide .tag{position:absolute;z-index:7;width:min(330px,calc(100% - 28px));background:#fff;color:var(--ink);border-radius:14px;padding:18px 18px 16px;box-shadow:0 22px 50px rgba(0,0,0,.4);opacity:0;pointer-events:none;transform:translateY(8px) scale(.98);transition:opacity .3s,transform .3s;border-top:4px solid var(--sky)}
#bodyGuide .tag.show{opacity:1;pointer-events:auto;transform:none}
#bodyGuide .tag-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
#bodyGuide .tag-side{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--deep);background:var(--sky-soft);border-radius:99px;padding:2px 9px;margin-bottom:6px}
#bodyGuide .tag h2{font-family:var(--serif);font-weight:700;color:var(--navy);font-size:1.5rem;line-height:1.15;margin:0}
#bodyGuide .tag-close{flex:none;width:36px;height:36px;border-radius:50%;border:0;background:var(--sky-soft);color:var(--navy);font-size:1.3rem;line-height:1;cursor:pointer;margin:-4px -4px 0 0}
#bodyGuide .tag-close:hover{background:var(--sky-mid)}
#bodyGuide .tag-where{margin:4px 0 0;font-size:.9rem;color:var(--deep);font-weight:700;line-height:1.35}
#bodyGuide .tag-does{margin:10px 0 0;font-size:.95rem;line-height:1.5;color:var(--ink);padding:9px 11px;background:var(--sky-soft);border-radius:9px}
#bodyGuide .tag h3{font-family:var(--serif);font-size:.9rem;color:var(--deep);margin:14px 0 6px;letter-spacing:.02em}
#bodyGuide .tag ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:5px}
#bodyGuide .tag li{position:relative;padding-left:18px;font-size:.96rem;line-height:1.4;color:var(--ink)}
#bodyGuide .tag li::before{content:"";position:absolute;left:2px;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--sky-deep)}
#bodyGuide .svc{display:flex;flex-wrap:wrap;gap:6px}
#bodyGuide .svc a{font-size:.85rem;font-weight:700;color:var(--navy);text-decoration:none;background:var(--sky-soft);border:1px solid var(--sky-mid);border-radius:99px;padding:5px 11px}
#bodyGuide .svc a:hover{background:var(--sky-mid)}
#bodyGuide .cta{display:block;width:100%;margin-top:14px;font:inherit;font-weight:700;font-size:.98rem;color:var(--navy);background:var(--sky);border:0;border-radius:10px;min-height:46px;padding:0 16px;cursor:pointer;transition:background .2s,transform .2s}
#bodyGuide .cta:hover{background:var(--sky-deep);transform:translateY(-1px)}
#bodyGuide .tag small{display:block;margin-top:10px;font-size:.76rem;color:#6b7b8b;line-height:1.4}
#bodyGuide .fallback{position:absolute;inset:0;z-index:2;display:none;align-items:center;justify-content:center;text-align:center;padding:30px;color:#cfe8f7}
#bodyGuide .no-gl .fallback{display:flex}
#bodyGuide .no-gl canvas#bgGl,#bodyGuide .no-gl .markers,#bodyGuide .no-gl .views,#bodyGuide .no-gl .zoom{display:none}
#bodyGuide .pick{display:flex;flex-direction:column;gap:10px}
#bodyGuide .pick h2{font-family:var(--serif);font-weight:700;font-size:1rem;color:var(--navy);margin:0}
#bodyGuide .chips{display:flex;flex-wrap:wrap;gap:8px}
#bodyGuide #bgChips{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px 28px}
#bodyGuide .chip-group h3{font-family:var(--serif);font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:var(--deep);margin:0 0 8px}
#bodyGuide .chip{font:inherit;font-size:.92rem;font-weight:700;color:var(--navy);background:#fff;border:1px solid var(--sky-mid);border-radius:99px;min-height:44px;padding:0 16px;cursor:pointer;transition:background .2s,border-color .2s}
#bodyGuide .chip:hover{background:var(--sky-mid)}
#bodyGuide .chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
#bodyGuide .fine{font-size:.88rem;color:var(--ink);margin:0;max-width:70ch}
@media(max-width:720px){#bodyGuide .stage{height:min(760px,calc(100vh - 150px));min-height:600px}
#bodyGuide .hud-tl{flex-direction:column;align-items:stretch}
#bodyGuide .views{justify-content:flex-start}
#bodyGuide .tag{left:10px!important;right:10px;bottom:10px;top:auto!important;width:auto}
#bodyGuide #bgLeader{display:none}
#bodyGuide .tag{padding:14px 14px 12px;max-height:56%;overflow:auto}
#bodyGuide .tag h2{font-size:1.3rem}
#bodyGuide .tag li{font-size:.9rem}
#bodyGuide .tag h3{margin:10px 0 5px}
#bodyGuide .tag small{display:none}
#bodyGuide .cta{min-height:44px;margin-top:10px}
#bodyGuide .hud-br{bottom:auto;top:96px;right:14px}
#bodyGuide .hint{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){#bodyGuide .mk::after,#bodyGuide .hint i{animation:none}
#bodyGuide #bgLeader.draw path{animation:none}
#bodyGuide .tag{transition:none}}

#bodyGuide .pick{margin-top:26px;}
#bodyGuide .hud-layers{left:14px;bottom:14px;align-items:center;flex-wrap:wrap;gap:8px;max-width:calc(100% - 90px);}
#bodyGuide .layers{display:flex;gap:6px;flex-wrap:wrap;pointer-events:auto;}
#bodyGuide .layers button[aria-pressed="true"],#bodyGuide .tour[aria-pressed="true"]{background:var(--sky);color:var(--navy);border-color:var(--sky);}
#bodyGuide .tour{pointer-events:auto;font:inherit;font-size:.84rem;font-weight:700;color:#e9f6ff;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:99px;min-height:36px;padding:0 14px;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
#bodyGuide .tour:hover{background:rgba(255,255,255,.22)}
#bodyGuide .tour:focus-visible{outline:2px solid #fff;outline-offset:2px}
#bodyGuide .toast{position:absolute;z-index:9;left:50%;bottom:64px;transform:translate(-50%,16px);background:var(--navy);color:#fff;border:1px solid rgba(127,220,255,.5);border-radius:10px;padding:9px 15px;font-size:.88rem;max-width:calc(100% - 28px);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;text-align:center}
#bodyGuide .toast.show{opacity:1;transform:translate(-50%,0)}
#bodyGuide .stage.adding canvas#bgGl{cursor:copy}
#bodyGuide .tag{max-height:calc(100% - 84px);overflow:auto;overscroll-behavior:contain}
#bodyGuide .tag details.more{margin:12px 0 0;border:1px solid var(--sky-mid);border-radius:10px;background:#fff}
#bodyGuide .tag details.more summary{cursor:pointer;list-style:none;padding:9px 12px;font-family:var(--serif);font-weight:700;font-size:.9rem;color:var(--deep);display:flex;justify-content:space-between;gap:8px;align-items:center}
#bodyGuide .tag details.more summary::-webkit-details-marker{display:none}
#bodyGuide .tag details.more summary::after{content:"+";font-size:1.1rem;line-height:1}
#bodyGuide .tag details.more[open] summary::after{content:"\2212"}
#bodyGuide .tag details.more summary small{font-family:var(--sans);font-weight:400;font-size:.76rem;color:#6b7b8b;margin-left:auto}
#bodyGuide .tag details.more p{margin:0;padding:0 12px 10px;font-size:.92rem;line-height:1.5}
#bodyGuide .tag details.more p.chk{padding-top:0;color:#7a4b00}
#bodyGuide .feel-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:0 12px 9px}
#bodyGuide .feel-row>span{font-size:.8rem;font-weight:700;color:var(--deep);min-width:64px}
#bodyGuide .feel-row>div{display:flex;gap:5px;flex-wrap:wrap}
#bodyGuide .fchip{font:inherit;font-size:.82rem;font-weight:700;color:var(--navy);background:var(--sky-soft);border:1px solid var(--sky-mid);border-radius:99px;min-height:34px;padding:0 11px;cursor:pointer}
#bodyGuide .fchip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
#bodyGuide .guide-link{display:block;margin-top:10px;font-size:.9rem;font-weight:700;color:var(--deep);text-decoration:underline;text-underline-offset:3px}
#bodyGuide .tag-tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
#bodyGuide .tool{font:inherit;font-size:.84rem;font-weight:700;color:var(--navy);background:#fff;border:1px dashed var(--sky-deep);border-radius:99px;min-height:40px;padding:0 13px;cursor:pointer}
#bodyGuide .tool:hover{background:var(--sky-soft)}
#bodyGuide .also{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:10px;font-size:.84rem;font-weight:700;color:var(--deep)}
#bodyGuide .also-chip{display:inline-flex;align-items:center;gap:4px;background:var(--sky-soft);border:1px solid var(--sky-mid);border-radius:99px;padding:2px 4px 2px 10px}
#bodyGuide .also-chip button{border:0;background:none;font-size:1.1rem;line-height:1;color:var(--navy);min-width:28px;min-height:28px;cursor:pointer}
#bodyGuide a.cta{display:flex;align-items:center;justify-content:center;text-align:center;position:sticky;bottom:-2px;box-shadow:0 -10px 14px #fff}
#bodyGuide a.cta:hover{color:var(--navy)}
@media(min-width:1000px){#bodyGuide .hud-layers{top:14px;bottom:auto;left:50%;transform:translateX(-50%);max-width:none;flex-wrap:nowrap}}
@media(min-width:721px) and (max-width:999px){#bodyGuide.has-sel .hud-layers{display:none}}
@media(max-width:720px){#bodyGuide.has-sel .hud-layers{display:none}#bodyGuide .tag{max-height:58%}#bodyGuide .hud-layers{max-width:calc(100% - 80px)}}
@media(max-width:720px){#bodyGuide .hud-layers{max-width:calc(100% - 28px);gap:6px}#bodyGuide .layers{gap:5px;flex-wrap:nowrap}#bodyGuide .layers button,#bodyGuide .tour{padding:0 9px;font-size:.76rem;min-height:36px}}
#bodyGuide .demo-cap{position:absolute;z-index:6;left:50%;bottom:58px;transform:translate(-50%,10px);max-width:min(410px,calc(100% - 28px));text-align:center;background:rgba(10,29,51,.86);border:1px solid rgba(127,220,255,.45);color:#e9f6ff;border-radius:12px;padding:10px 16px;font-size:.92rem;line-height:1.45;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
#bodyGuide .demo-cap.show{opacity:1;transform:translate(-50%,0)}
#bodyGuide .tag-tools-top{margin:12px 0 0}
#bodyGuide .tool-move{background:var(--sky);border:1px solid var(--sky);border-style:solid}
#bodyGuide .tool-move:hover{background:var(--sky-deep)}
#bodyGuide .tag-mus{background:var(--navy);color:#fff;margin-left:6px}
#bodyGuide .mus-chips{margin-top:18px}
#bodyGuide .mus-chips summary{cursor:pointer;font-family:var(--serif);font-weight:700;font-size:.95rem;color:var(--navy);padding:8px 0}
#bodyGuide .mus-chips .chips{margin-top:8px}
#bodyGuide .bg-load-btn{font:inherit;font-weight:700;font-size:1rem;color:var(--navy);background:var(--sky);border:0;border-radius:99px;min-height:48px;padding:0 24px;cursor:pointer}
#bodyGuide .bg-load-btn small{font-weight:400;opacity:.8}
#bodyGuide.demo-on .hud-layers{opacity:.4}
#bodyGuide .stop-move{display:none;font:inherit;font-weight:700;font-size:.92rem;color:var(--navy);background:var(--sky);border:0;border-radius:99px;min-height:44px;padding:0 20px;cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.35)}
@media(max-width:720px){#bodyGuide.demo-on .tag{display:none}#bodyGuide.demo-on .stop-move{display:inline-flex;align-items:center;position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:8}}
@media(max-width:720px){#bodyGuide .demo-cap{bottom:auto;top:132px}}
@media(prefers-reduced-motion:reduce){#bodyGuide .toast,#bodyGuide .demo-cap{transition:none}}
