/* round232: small additions for the public pages, kept out of style.css so
   its ?v=194 cache-buster (pinned across every page) doesn't have to move.
   Linked as assets/public-extras.css?v=237 (round237; was ?v=236) on every
   public page (shared grouped nav, sticky phone CTA, journey tracker), plus
   dashboard.html for the merged stretch card. */

/* Free demo day banner (assets/demo-banner.js) + permanent demo note */
.demo-promo{margin:0 0 16px 0;}
.demo-banner{margin:0 0 10px 0;font-size:10.5pt;}
.demo-banner a{font-weight:bold;}
.demo-note{font-size:9.6pt;color:var(--muted);margin:0;}
.demo-note a{font-weight:bold;}
.demo-promo-section{padding-top:22px;padding-bottom:0;}

/* book.html: "Already booked a free demo or talked with Victor?" lookup */
.lookup-banner{margin:0 0 20px 0;padding:18px 22px;border:2px solid var(--blue);border-left-width:6px;border-radius:8px;background:#eef2fb;}
.lookup-banner .lookup-eyebrow{display:block;text-transform:uppercase;font-size:8pt;letter-spacing:0.6px;font-weight:bold;color:var(--blue);margin-bottom:6px;}
.lookup-banner label{font-size:11.5pt;color:var(--navy);}

/* round236: ONE merged "Assisted stretch sessions: what to expect" card
   (was a blue Location & Hours callout + a white trust block). Uses the
   blue accent-bar .callout look from style.css; these rules only space the
   inner pieces. Shared by schedule.html, book.html and dashboard.html. */
.callout.what-to-expect{margin:0 0 20px 0;}
.what-to-expect .wte-where{margin:0 0 8px 0;line-height:1.5;}
.what-to-expect .wte-where a{font-weight:bold;white-space:nowrap;}
.what-to-expect .wte-hours{font-weight:bold;color:var(--navy);}
.what-to-expect ul{margin:0 0 8px 0;padding-left:20px;line-height:1.5;}
.what-to-expect li{margin-bottom:4px;}
.what-to-expect .wte-cred{font-size:9pt;color:var(--muted);margin:0 0 6px 0;}
.what-to-expect .wte-note{font-size:9pt;margin:0;}
@media (max-width:640px){
  .callout.what-to-expect{padding:12px 14px;}
  .what-to-expect ul{padding-left:18px;}
  .what-to-expect .wte-where,.what-to-expect .wte-hours{overflow-wrap:anywhere;}
}

/* schedule.html: phone-only "List by day" view of the same week data.
   Desktop (> 640px) never sees the toggle or the list -- the grid is
   unchanged there. */
.sched-view-toggle{display:none;}
#sched-list{display:none;}
@media (max-width:640px){
  .sched-view-toggle{display:flex;gap:8px;margin:0 0 12px 0;}
  .sched-view-toggle button[aria-pressed="true"]{background:var(--navy);color:var(--white);border-color:var(--navy);}
  #sched-views.view-list #sched-list{display:block;}
  #sched-views.view-list .sched-grid-scroll{display:none;}
}
.sched-day-list{border:1px solid var(--border);border-radius:8px;margin:0 0 12px 0;overflow:hidden;}
.sched-day-list h3{margin:0;padding:9px 12px;background:var(--light-bg);font-size:10pt;color:var(--navy);border-bottom:1px solid var(--border);}
.sched-day-list.today h3{background:var(--yellow-bg);}
.sched-day-times{display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px;}
.sched-list-time{min-width:84px;min-height:40px;padding:8px 10px;border:1px solid var(--blue);border-radius:6px;background:var(--white);color:var(--navy);font-family:inherit;font-size:9.6pt;font-weight:bold;cursor:pointer;}
.sched-list-time:hover,.sched-list-time:focus{background:#e6ecf9;}
.sched-list-time.mine{border-color:var(--red);box-shadow:0 0 0 1px var(--red) inset;}
.sched-day-empty{padding:10px 12px;margin:0;font-size:9pt;color:var(--muted);}

/* ===== round237: public-site UX ===== */

/* Grouped top nav (same markup on every public page; assets/site-nav.js adds
   click/keyboard behavior + the current-page highlight). Dropdowns are
   absolutely positioned, so opening one never shifts the header. */
.nav-group{position:relative;}
.nav-group-btn{background:none;border:none;border-bottom:2px solid transparent;color:#d7deee;font-family:inherit;font-size:9.6pt;letter-spacing:0.3px;padding:6px 0;cursor:pointer;display:inline-flex;align-items:center;gap:4px;line-height:inherit;}
.nav-group-btn:hover,.nav-group-btn.active,.nav-group.open>.nav-group-btn{color:var(--white);border-bottom-color:var(--red);}
.nav-caret{font-size:8pt;}
nav.main-nav a:focus-visible,.nav-group-btn:focus-visible,.menu-toggle:focus-visible{outline:2px solid var(--white);outline-offset:3px;}
nav.main-nav a[aria-current="page"]{color:var(--white);border-bottom:2px solid var(--red);}
nav.main-nav a.nav-cta[aria-current="page"]{border-bottom:none;}
.nav-sub{display:none;position:absolute;top:100%;left:-14px;min-width:220px;background:var(--navy-2);border-top:3px solid var(--red);border-radius:0 0 6px 6px;box-shadow:0 10px 22px rgba(0,0,0,0.28);padding:6px 0;z-index:120;}
.nav-group.open>.nav-sub{display:block;}
@media (hover:hover) and (min-width:801px){.nav-group:hover>.nav-sub{display:block;}}
nav.main-nav .nav-sub a{display:block;padding:9px 16px;border-bottom:none;white-space:nowrap;}
nav.main-nav .nav-sub a:hover,nav.main-nav .nav-sub a:focus-visible,nav.main-nav .nav-sub a[aria-current="page"]{background:rgba(255,255,255,0.08);border-bottom:none;color:var(--white);}
@media (max-width:800px){
  .nav-group{width:100%;border-bottom:1px solid #33447a;}
  .nav-group-btn{width:100%;justify-content:space-between;padding:10px 0;border-bottom:none;font-size:9.6pt;}
  .nav-group-btn:hover,.nav-group.open>.nav-group-btn{border-bottom:none;}
  .nav-sub{position:static;box-shadow:none;border-top:none;border-radius:0;min-width:0;padding:0 0 6px 14px;background:transparent;}
  nav.main-nav .nav-sub a{padding:8px 0;width:100%;}
}
/* anchor targets land below the sticky header */
#start-here,#assisted-stretch,#coaching,#pricing,#service-tracks,#which-option,#faq,#step2{scroll-margin-top:96px;}

/* Homepage "Start here" path cards */
.start-here{padding-top:26px;padding-bottom:6px;}
.path-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.path-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--border);border-top:4px solid var(--navy);border-radius:8px;padding:18px 18px 16px 18px;}
.path-card.featured{border-top-color:var(--red);}
.path-card h3{margin:0 0 6px 0;font-size:12.5pt;color:var(--navy);}
.path-card p{margin:0 0 14px 0;font-size:9.8pt;line-height:1.5;flex:1;}
.path-card .btn{align-self:flex-start;}
@media (max-width:800px){.path-cards{grid-template-columns:1fr;}}

/* Homepage testimonial strip (admin-managed; hidden when there are none) */
.testimonials-section{padding-top:10px;}
.testimonial-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;}
.testimonial{margin:0;background:var(--light-bg);border-left:4px solid var(--red);border-radius:6px;padding:14px 16px;}
.testimonial blockquote{margin:0 0 8px 0;font-size:10.2pt;line-height:1.55;color:var(--navy);}
.testimonial figcaption{font-size:9pt;color:var(--muted);font-weight:bold;}

/* Sticky "Get Started" bar -- phones only, never on the booking pages */
.mobile-cta{display:none;}
@media (max-width:640px){
  .mobile-cta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:90;padding:10px 16px calc(10px + env(safe-area-inset-bottom, 0px)) 16px;background:rgba(27,42,74,0.97);border-top:2px solid var(--red);box-shadow:0 -4px 14px rgba(0,0,0,0.18);transition:transform 0.2s ease;}
  .mobile-cta.is-hidden{transform:translateY(110%);visibility:hidden;}
  .mobile-cta .btn{display:block;width:100%;text-align:center;box-sizing:border-box;min-height:44px;font-size:11pt;}
  .mobile-cta + .site-footer{padding-bottom:calc(84px + env(safe-area-inset-bottom, 0px));}
  body.has-mobile-cta{padding-bottom:calc(68px + env(safe-area-inset-bottom, 0px));}
}
@media (prefers-reduced-motion:reduce){.mobile-cta{transition:none;}}

/* Journey step tracker: Snapshot -> Pay -> Sign forms -> Pick a time */
.journey{margin:0 0 18px 0;}
.journey-steps{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;counter-reset:none;}
.journey-step{display:flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid var(--border);border-radius:20px;background:var(--white);font-size:9.4pt;color:var(--muted);}
.journey-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--light-bg);color:var(--navy);font-weight:bold;font-size:8.6pt;}
.journey-step.is-done{color:var(--navy);}
.journey-step.is-done .journey-num{background:var(--navy);color:var(--white);}
.journey-step.is-current{border-color:var(--red);color:var(--navy);font-weight:bold;box-shadow:0 0 0 1px var(--red) inset;}
.journey-step.is-current .journey-num{background:var(--red);color:var(--white);}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
@media (max-width:640px){
  .journey-steps{display:grid;grid-template-columns:1fr 1fr;}
  .journey-step{border-radius:8px;font-size:9pt;padding:6px 8px;}
}

/* Resume ("continue where you left off") banner */
.resume-banner{margin:0 0 16px 0;}
.resume-banner p{margin:4px 0 10px 0;}
.resume-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.resume-dismiss{background:none;border:none;color:var(--navy);text-decoration:underline;cursor:pointer;font-family:inherit;font-size:9pt;padding:6px 4px;}

/* schedule.html: review panel shown before Stripe / Calendly */
.checkout-summary dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 12px 0;font-size:9.6pt;}
.checkout-summary dt{font-weight:bold;color:var(--navy);}
.checkout-summary dd{margin:0;}
.checkout-summary .cs-price{font-size:13pt;font-weight:bold;color:var(--red);}
.checkout-summary .cs-was{color:var(--muted);text-decoration:line-through;margin-right:6px;font-weight:normal;font-size:10pt;}
.checkout-summary .cs-credit{font-weight:bold;color:var(--green);}
.checkout-summary ol{margin:0 0 10px 0;padding-left:20px;font-size:9.4pt;line-height:1.5;}

/* services.html: "Which option is right for me?" + FAQ */
.quiz{background:var(--light-bg);border:1px solid var(--border);border-radius:10px;padding:18px 20px;margin:0 0 30px 0;}
.quiz fieldset{border:none;margin:0 0 14px 0;padding:0;}
.quiz legend{font-weight:bold;color:var(--navy);margin-bottom:6px;font-size:10.5pt;padding:0;}
.quiz label{display:flex;align-items:flex-start;gap:8px;padding:6px 0;font-size:9.8pt;cursor:pointer;}
.quiz input[type="radio"]{margin-top:3px;}
.quiz-result{margin-top:14px;}
.quiz-result .callout{margin:0;}
.quiz-note{font-size:8.8pt;color:var(--muted);margin:10px 0 0 0;}
.faq details{border:1px solid var(--border);border-radius:8px;margin:0 0 10px 0;background:var(--white);}
.faq summary{cursor:pointer;padding:12px 16px;font-weight:bold;color:var(--navy);font-size:10.5pt;}
.faq summary:focus-visible{outline:2px solid var(--navy);outline-offset:2px;}
.faq details[open] summary{border-bottom:1px solid var(--border);}
.faq .faq-body{padding:10px 16px 12px 16px;font-size:9.8pt;line-height:1.55;}
.faq .faq-body p{margin:0 0 8px 0;}
.testimonials-section[hidden],.resume-banner[hidden],.journey[hidden]{display:none !important;}
