/*
 * Ryoku-Do unified visual system
 * Loaded last on every page so the academy, store, branch and parent products
 * share the same rhythm, component geometry and action language.
 */

:root {
  --ds-red: #c91f27;
  --ds-red-hover: #a9161d;
  --ds-ink: #111315;
  --ds-ink-soft: #1a1d20;
  --ds-paper: #f4f1eb;
  --ds-surface: #ffffff;
  --ds-surface-alt: #e9e4dc;
  --ds-line: #d8d1c7;
  --ds-muted: #69655f;
  --ds-card-radius: 16px;
  --ds-button-radius: 10px;
  --ds-control-height: 48px;
  --ds-compact-height: 44px;
  --ds-section-space: clamp(72px, 8vw, 112px);
  --ds-page-gutter: clamp(20px, 7vw, 110px);
  --ds-title-1: clamp(50px, 7vw, 92px);
  --ds-title-2: clamp(38px, 4.8vw, 64px);
  --ds-title-3: clamp(22px, 2.2vw, 28px);
  --ds-shadow-card: 0 16px 42px rgba(44, 35, 24, .09);
  --red: var(--ds-red);
  --ink: var(--ds-ink);
  --paper: var(--ds-paper);
  --line: var(--ds-line);
  --muted: var(--ds-muted);
}

html,
body {
  background: var(--ds-paper);
  color: var(--ds-ink);
}

/* Unified typography: Assistant for Hebrew, Barlow Condensed for identity,
   English headings and numbers, and Noto Serif Hebrew for one featured quote. */
html[lang="he"] body {
  font-family: var(--font-body, "Assistant", Arial, sans-serif);
}

body :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-display, "Assistant", Arial, sans-serif);
}

html[lang="en"] body :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-brand, "Barlow Condensed", "Arial Narrow", sans-serif);
}

body :is(.brand b, .store-brand b, .admin-brand b, .staff-brand b,
  .achievement-number, .metric-grid b, .competition-summary b,
  .timeline b, .portal-stats b, .parent-overview b, .summary-grid strong,
  time, [data-number]) {
  font-family: var(--font-brand, "Barlow Condensed", "Arial Narrow", sans-serif);
  font-variant-numeric: tabular-nums;
}

body .testimonial blockquote,
body :is(.value-quote, .testimonial-quote, .philosophy-quote) {
  font-family: var(--font-quote, "Noto Serif Hebrew", "Times New Roman", serif);
}

/* No informational copy is allowed to fall into the former 8–11px range. */
body :where(small, .eyebrow, .section-tag, .hero-edition, .hero-proof,
  .badge, .status, .season-banner, .page-subnav a, .trust-intro-band a,
  .profile-strip span, .event-status, .branch-availability,
  .instructor-photo > span, .family-number, .social-hub > span,
  .social-hub a, .results-table th, .location-actions a,
  .managed-schedule strong, .review-card-top small, .cms-updated,
  .official-resources a, .footer-contact a) {
  font-size: 12px !important;
  line-height: 1.45;
}

/* Keep every action, form hint and branch detail comfortably readable. */
body :where(.hero-brand-code b, .local-branch-card > div > span,
  .local-branch-card nav a, .results-proof > a span, .trial-progress li,
  .trial-choice-grid small, .trial-slot-grid small, .trial-summary small,
  .trial-consent, .trial-actions > span, .hero-availability,
  .language-switch, .student-guide-top) {
  font-size: 12px !important;
  line-height: 1.45;
}

/* Legacy pages used many 8–11px labels. Keep every readable label at 12px
   without enlarging decorative icons or graphic marks. */
body :where(.language-switch, .hero-meta span, .scroll, .values b,
  .program-list article > span, .trust-strip span, .why-grid span,
  .story-milestones span, .home-gallery-grid figcaption,
  .branch-picker-result small, .progress-steps b, .hero-availability,
  .staff-card-copy small, .content-card small, .coach-chip small,
  .ashkelon-price-list article span, .ashkelon-price-list article p,
  .asai-kicker, .asai-hero-note span, .asai-section-label,
  .asai-yokota-photo figcaption b, .asai-yokota-title,
  .asai-yokota-values article > span, .asai-yokota-israel span,
  .asai-principle-grid b, .asai-benefits span,
  .guide-hero-path b, .guide-section-label,
  .guide-ready-grid article > span, .guide-values-list article > b,
  .guide-month-path > li > b, .guide-demo-notice b,
  .guide-portal-top span, .guide-track-grid span,
  .guide-weekly-routine span, .guide-form-summary b,
  .gallery-page .video-gallery > header > span,
  .gallery-page .photo-gallery > header > span,
  .gallery-page .video-grid small, .price h2 em, .price > span,
  .store-page footer div span, .testimonial::before,
  .asai-hero-seal b, .asai-pillars b, .asai-footer b,
  .portal-demo-note span, .first-visit li > b,
  .footer-social a, .footer-legal a, .first-class span::before,
  .intake-hero aside a, .intake-progress li, .intake-progress li b,
  .account-note span, .account-note code, .form-actions > span,
  .privacy-by-design a, .safety-principles b, .parent-tools b,
  .balance-grid b, .parent-contact-strip a span,
  .coach-tags span, .coach-credentials strong,
  .professional-heading small, .professional-card > small,
  .official-proof span, .official-proof a) {
  font-size: 12px !important;
  line-height: 1.45;
}

body .portal-shell :where(small, p, em, label),
body .portal-shell :where(.profile-label, .profile-tags span, .training-meta,
  .card-title > span, .video-thumb em, .competition-summary span,
  .competition-table .table-head, .coach-list span, .attendance-days span,
  .event-list p, .team-subscription-banner strong, .account-switch,
  .admin-entry, .grade-progress > span, .syllabus-list em,
  .coach-feedback span, .event-list time span, .children-grid p,
  .parent-overview span, .portal-nav button) {
  font-size: 12px !important;
  line-height: 1.5;
}

body :is(.admin-topbar, .staff-topbar, .system-unavailable,
  .intake-page, .guide-portal-mockup) :where(small, label),
body :is(.admin-topbar, .staff-topbar) a,
body :where(.filters label, .case-actions label, .delete-box label,
  .status-pill, .security-tag, .restricted-tag, .detail-grid dt,
  .audit-entry, .action-status, .retention-box p) {
  font-size: 12px !important;
  line-height: 1.45;
}

body :is(.hero, .team-hero, .content-hero, .store-hero, .trust-hero,
  .guide-hero, .intake-hero, .system-unavailable) h1 em,
body :is(.guide-form, .content-cta) h2 em {
  color: inherit !important;
  -webkit-text-stroke: 0 !important;
  font-weight: inherit !important;
  opacity: 1 !important;
}

body :is(.hero, .team-hero, .content-hero, .store-hero, .trust-hero,
  .guide-hero, .intake-hero, .system-unavailable) h1 {
  font-weight: 850;
}

/* One header language across the public site and the operational areas. */
body :is(.nav, .store-nav, .admin-topbar, .staff-topbar) {
  min-height: 96px;
  height: 96px;
  padding-inline: clamp(18px, 5vw, 76px);
  gap: clamp(12px, 2vw, 28px);
  color: #fff;
  background: rgba(12, 14, 16, .97);
  border-bottom: 1px solid rgba(255, 255, 255, .14);
  box-shadow: 0 12px 32px rgba(0, 0, 0, .2);
}

body .store-nav {
  position: sticky;
  inset-block-start: 0;
  z-index: 1000;
}

body :is(.nav, .store-nav) :is(.brand, .store-brand) {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  color: #fff;
  text-decoration: none;
  flex: 0 0 auto;
}

body :is(.nav, .store-nav) :is(.brand-logo, .store-brand img) {
  width: 82px;
  height: 82px;
  object-fit: contain;
}

body :is(.nav, .store-nav) nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(14px, 1.55vw, 25px);
  margin-inline: auto;
}

body :is(.nav, .store-nav) .menu {
  display: none;
}

body .student-guide-top {
  display: none !important;
}

body :is(.nav, .store-nav) nav a {
  position: relative;
  color: rgba(255, 255, 255, .72);
  text-decoration: none;
  font-size: 13px;
  font-weight: 650;
  white-space: nowrap;
  opacity: 1;
}

body :is(.nav, .store-nav) nav a:is(:hover, :focus-visible, .active) {
  color: #fff;
}

body :is(.nav, .store-nav) nav a.active::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-end: -11px;
  height: 2px;
  border-radius: 2px;
  background: var(--ds-red);
}

body :is(.nav, .store-nav) .language-switch button {
  width: 40px;
  min-width: 40px;
  height: var(--ds-compact-height);
  padding: 0;
  border-radius: 8px;
}

body :is(.nav, .store-nav) :is(.member-login, .store-member) {
  min-height: var(--ds-compact-height);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: var(--ds-button-radius);
  background: transparent;
  color: #fff;
  text-decoration: none;
  font-size: 12px;
  font-weight: 750;
  white-space: nowrap;
}

body :is(.nav, .store-nav) :is(.nav-cta, .store-trial) {
  min-height: var(--ds-control-height);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 19px;
  border: 0;
  border-radius: var(--ds-button-radius);
  background: var(--ds-red);
  color: #fff;
  text-decoration: none;
  font-size: 13px;
  font-weight: 850;
  white-space: nowrap;
  box-shadow: 0 10px 28px rgba(201, 31, 39, .24);
}

body :is(.nav, .store-nav) :is(.nav-cta, .store-trial):is(:hover, :focus-visible) {
  background: var(--ds-red-hover);
}

body .store-nav .cart-open {
  width: auto;
  min-width: var(--ds-control-height);
  height: var(--ds-control-height);
  padding: 0 10px 0 14px;
  border-radius: var(--ds-button-radius);
}

/* Exactly three recurring title sizes: page, section and card. */
body :is(.hero, .content-hero, .trust-hero, .store-hero, .team-hero,
  .admin-hero, .staff-hero, .system-unavailable) h1 {
  font-size: var(--ds-title-1);
  line-height: .96;
  letter-spacing: -.045em;
}

body :is(.statement, .program-head, .branch-head, .team, .contact,
  .content-section, .content-cta, .trust-section, .trust-cta,
  .professional-section, .store-intro, .equipment-guide, .gi-guide,
  .catalog, .order-help, .store-info, .instructors, .team-philosophy,
  .team-cta, .admin-card, .staff-hero, .workspace, .notifications-panel,
  .policy-panel, .global-audit) h2 {
  font-size: var(--ds-title-2);
  line-height: 1.02;
  letter-spacing: -.035em;
}

body :is(.content-card, .location-card, .branch-grid article, .values article,
  .product-card, .equipment-families article, .gi-levels article,
  .store-info article, .professional-card, .trust-grid article,
  .parent-tools article, .policy-list article, .verified-reviews article,
  .instructor-card, .portal-main article, .admin-card, .staff-topbar ~ main article) h3 {
  font-size: var(--ds-title-3);
  line-height: 1.15;
  letter-spacing: -.02em;
}

/* A single vertical rhythm for all substantial sections. */
body :is(.statement, .branches, .programs, .team, .testimonial, .contact,
  .content-section, .trust-section, .professional-section, .store-intro,
  .equipment-guide, .gi-guide, .catalog, .order-help, .store-info,
  .instructors, .team-philosophy, .team-cta) {
  padding-block: var(--ds-section-space);
}

body :is(.content-section-header, .professional-heading, .trust-section-head,
  .team-section-head, .program-head, .branch-head) {
  margin-block-end: clamp(36px, 4.5vw, 58px);
}

/* Shared cards: one radius, border and shadow vocabulary. */
body :is(.content-card, .location-card, .branch-grid article, .values article,
  .product-card, .store-benefits, .equipment-families article,
  .gi-levels article, .store-info article, .professional-card,
  .professional-note, .trust-grid article, .safety-principles article,
  .parent-tools article, .balance-grid article, .verified-reviews article,
  .policy-list article, .joining-flow article, .season-event, .report-card,
  .instructor-card, .admin-card, .admin-state, .summary-grid article,
  .notifications-panel, .workspace, .case-panel, .policy-panel, .global-audit,
  .portal-stats article, .next-training, .goal-card, .continue-row,
  .week-plan article, .library-grid article, .competition-table,
  .goals-list article, .coach-list article, .coach-question,
  .grade-progress, .syllabus-list, .coach-feedback, .event-list article,
  .children-grid article, .parent-overview article, .certificates) {
  border-radius: var(--ds-card-radius) !important;
  overflow: hidden;
}

body .contact form {
  border-radius: var(--ds-card-radius);
  overflow: hidden;
}

body :is(.content-card, .location-card, .product-card, .store-benefits,
  .values article, .branch-grid article, .equipment-families article,
  .store-info article, .professional-card,
  .trust-grid article, .parent-tools article, .policy-list article,
  .verified-reviews article, .instructor-card, .admin-card,
  .summary-grid article, .notifications-panel, .workspace, .case-panel,
  .policy-panel, .global-audit) {
  box-shadow: var(--ds-shadow-card);
}

body.system-unavailable h1 {
  font-size: var(--ds-title-1);
}

/* Primary actions all use the same 48px control. */
body :is(.primary, .nav-cta, .store-trial, .mobile-trial, .hero-copy > a,
  .content-cta > a, .trust-cta > a, .team-cta > a, .order-help > a,
  .report-card > a, .question-form > button, .contact button,
  .product-bottom button, .add-dialog, .cart-summary > button,
  .gi-guide-copy > button, .admin-actions .primary, .staff-link,
  .sign-in, .system-unavailable a) {
  min-height: var(--ds-control-height);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-block: 0;
  padding-inline: 20px;
  border-radius: var(--ds-button-radius);
  border: 0;
  font-weight: 850;
  text-decoration: none;
}

body :is(.category-tabs button, .family-links button, .family-all,
  .gi-levels button, .season-controls button, .library-filters button,
  .event-list button, .children-grid button, .secondary, .open-case) {
  min-height: var(--ds-compact-height);
  border-radius: 9px;
}

/* Red signals action or current state; decorative surfaces become neutral. */
body :is(.content-hero h1 em, .content-section h2 em, .trust-hero h1 em,
  .trust-section h2 em, .team-section-head h2 em, .team-philosophy h2 em,
  .admin-hero h1 em, .staff-hero h1 em, .store-hero h1 em) {
  color: inherit;
  -webkit-text-stroke: 0;
}

body :is(.dark, .team-philosophy, .store-hero, .trust-hero) h1 em,
body :is(.dark, .team-philosophy) h2 em {
  color: #fff;
}

body .branch-grid .featured,
body .team-art,
body .balance-bridge {
  background: var(--ds-ink-soft) !important;
}

body .program-list article:hover,
body .program-list article:focus {
  background: #24272a;
}

body .team-standard {
  background: var(--ds-ink-soft);
}

body .order-help,
body .team-cta,
body .trust-cta {
  background: var(--ds-ink-soft);
}

body .content-section.red {
  background: var(--ds-ink-soft);
}

body :is(.order-help, .team-cta, .trust-cta) > a {
  background: var(--ds-red);
  color: #fff;
}

body .content-cta {
  background: var(--ds-ink-soft);
}

body .content-cta > a {
  background: var(--ds-red);
}

body .section-tag,
body :is(.content-card, .store-intro, .equipment-guide, .trust-section,
  .professional-section, .instructor-info) > small,
body :is(.content-card, .instructor-info, .professional-card) small {
  color: #7b756d;
}

body :is(.page-subnav, .trust-intro-band) {
  background: var(--ds-ink-soft);
}

body :is(.page-subnav, .trust-intro-band) a:is(:hover, :focus-visible) {
  background: #2b2e31;
}

/* Forms use the same control geometry as the rest of the product. */
body :is(input, select, textarea) {
  border-radius: 9px;
}

body :is(.question-form, .cart-summary, .coach-question, .admin-form,
  .filters, .case-actions) :is(input, select) {
  min-height: var(--ds-control-height);
}

/* The member dashboard belongs to the same design family. */
body .portal-shell {
  border-radius: var(--ds-card-radius);
  background: var(--ds-paper);
}

body .portal-sidebar,
body .competition-summary {
  background: var(--ds-ink-soft);
}

body .portal-nav button:hover,
body .portal-nav button.active {
  background: var(--ds-red);
}

body .portal-heading h2 {
  font-size: clamp(30px, 3.4vw, 44px);
  letter-spacing: -.025em;
}

body .portal-top h2 {
  font-size: 28px;
}

@media (max-width: 1250px) {
  body :is(.nav, .store-nav) {
    gap: 10px;
    padding-inline: 18px;
  }

  body :is(.nav, .store-nav) nav {
    gap: 13px;
  }

  body :is(.nav, .store-nav) nav a {
    font-size: 12px;
  }

  body :is(.nav, .store-nav) .header-socials {
    display: none !important;
  }
}

@media (max-width: 1050px) {
  :root {
    --ds-title-1: clamp(46px, 12vw, 64px);
    --ds-title-2: clamp(34px, 9vw, 48px);
    --ds-title-3: clamp(21px, 6vw, 26px);
    --ds-section-space: clamp(64px, 13vw, 82px);
  }

  body :is(.nav, .store-nav) {
    min-height: 86px;
    height: 86px !important;
    display: flex !important;
    padding-inline: 14px !important;
    overflow: visible;
  }

  body :is(.nav, .store-nav) :is(.brand, .store-brand) {
    min-width: 0;
    margin-inline-end: auto !important;
    order: 0;
  }

  body :is(.nav, .store-nav) :is(.brand-logo, .store-brand img) {
    width: 64px !important;
    height: 64px !important;
  }

  body :is(.nav, .store-nav) .menu {
    display: grid !important;
    place-items: center;
    width: var(--ds-compact-height);
    height: var(--ds-compact-height);
    min-width: var(--ds-compact-height);
    padding: 0;
    border-radius: 9px;
    order: 5;
    position: relative;
    z-index: 102;
  }

  body :is(.nav, .store-nav) nav {
    display: none !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100dvh !important;
    padding: 126px 22px calc(44px + env(safe-area-inset-bottom)) !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start;
    gap: 0 !important;
    overflow-y: auto !important;
    background: rgba(10, 11, 12, .99) !important;
    z-index: 99 !important;
  }

  body :is(.nav, .store-nav).menu-open nav {
    display: flex !important;
  }

  body :is(.nav, .store-nav) nav a {
    display: flex !important;
    align-items: center;
    min-height: 58px;
    padding: 12px 4px !important;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 19px;
  }

  body :is(.nav, .store-nav) nav a.active::after {
    content: none;
  }

  body :is(.nav, .store-nav) :is(.brand, .store-brand, .language-switch,
    .member-login, .store-member, .cart-open, .menu) {
    position: relative;
    z-index: 102;
  }

  body :is(.nav, .store-nav) .language-switch {
    display: flex !important;
    order: 1;
    margin: 0 !important;
  }

  body :is(.nav, .store-nav) :is(.member-login, .store-member) {
    width: var(--ds-compact-height);
    min-width: var(--ds-compact-height);
    height: var(--ds-compact-height);
    padding: 0;
    order: 2;
    overflow: hidden;
    font-size: 0;
  }

  body :is(.nav, .store-nav) :is(.member-login, .store-member)::before {
    content: "♙";
    font-size: 20px;
  }

  body :is(.nav, .store-nav) :is(.nav-cta, .store-trial) {
    display: none !important;
  }

  body .store-nav .cart-open {
    width: var(--ds-compact-height);
    min-width: var(--ds-compact-height);
    height: var(--ds-compact-height);
    padding: 0;
    order: 3;
  }

  body .store-nav .cart-open span {
    display: none;
  }

  body .store-nav .cart-open b {
    width: 30px;
    height: 30px;
  }

  body.menu-open {
    overflow: hidden !important;
  }

  body .mobile-trial {
    position: fixed;
    inset-inline-start: 84px;
    inset-inline-end: 14px;
    inset-block-end: calc(14px + env(safe-area-inset-bottom));
    z-index: 900;
    min-height: 54px;
    background: var(--ds-red);
    color: #fff;
    box-shadow: 0 12px 28px rgba(0, 0, 0, .25);
  }

  body.store-page .mobile-trial {
    inset-inline-start: 14px;
  }

  body .content-section-header,
  body .professional-heading,
  body .team-section-head {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  body .portal-shell {
    border-radius: 0;
  }
}

@media (max-width: 620px) {
  body :is(.nav, .store-nav) {
    gap: 5px !important;
    padding-inline: 9px !important;
  }

  body :is(.nav, .store-nav) :is(.brand-logo, .store-brand img) {
    width: 58px !important;
    height: 58px !important;
  }

  body :is(.nav, .store-nav) :is(.brand, .store-brand) span {
    display: none;
  }

  body :is(.nav, .store-nav) .language-switch button {
    width: 35px;
    min-width: 35px;
  }

  body .content-hero,
  body .team-hero,
  body .store-hero {
    padding-inline: 20px;
  }

  body :is(.content-card, .parent-tools article, .policy-list article,
    .verified-reviews article, .professional-card, .store-info article,
    .equipment-families article, .instructor-info) {
    padding: 24px 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body :is(.nav, .store-nav) * {
    transition: none !important;
  }
}

/* --------------------------------------------------------------------------
   Phase 2 — one editorial system across public pages, branches, store and hub
   -------------------------------------------------------------------------- */

/* Header refinement: fewer destinations, a calmer hierarchy and one action. */
body :is(.nav,.store-nav){backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
body :is(.nav,.store-nav) nav a{letter-spacing:.015em}
body :is(.nav,.store-nav) :is(.member-login,.store-member){border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.04)}
body :is(.nav,.store-nav) :is(.member-login,.store-member):is(:hover,:focus-visible){border-color:#fff;background:rgba(255,255,255,.1)}

/* Every editorial page opens with the same cinematic composition. */
body.content-page .content-hero{
  --phase-hero:none;
  min-height:clamp(600px,75vh,740px);
  padding:clamp(190px,17vw,245px) var(--ds-page-gutter) clamp(72px,8vw,105px);
  grid-template-columns:minmax(0,1.25fr) minmax(230px,.55fr);
  gap:clamp(40px,8vw,120px);
  background-image:linear-gradient(90deg,rgba(7,8,9,.97) 0%,rgba(7,8,9,.84) 48%,rgba(7,8,9,.24) 100%),var(--phase-hero);
  background-size:cover;
  background-position:center;
}
[dir="rtl"] body.content-page .content-hero{background-image:linear-gradient(270deg,rgba(7,8,9,.97) 0%,rgba(7,8,9,.84) 48%,rgba(7,8,9,.24) 100%),var(--phase-hero)}
body.content-page .content-hero[data-watermark="ABOUT"]{--phase-hero:url("assets/home-coaching.webp");background-position:center 34%}
body.content-page .content-hero[data-watermark="TRAINING"]{--phase-hero:url("assets/home-gallery-kata.webp");background-position:center 9%}
body.content-page .content-hero[data-watermark="LOCATIONS"]{--phase-hero:url("assets/home-gallery-community.webp");background-position:center 38%}
body.content-page .content-hero[data-watermark="ELITE SQUAD"]{--phase-hero:url("assets/home-team.webp");background-position:center 36%}
body.content-page .content-hero[data-watermark="NEWS"]{--phase-hero:url("assets/home-gallery-awards.webp");background-position:center 35%}
body.content-page .content-hero[data-watermark="CONTACT"]{--phase-hero:url("assets/home-gallery-guidance.webp");background-position:center 32%}
body.parents-page .content-hero{--phase-hero:url("assets/home-gallery-community.webp");background-position:center 40%}
body.content-page .content-hero-copy{max-width:930px}
body.content-page .content-hero .hero-edition{display:flex;align-items:center;gap:13px;margin-bottom:24px;color:#fff;font:750 13px/1.4 var(--font-brand,"Barlow Condensed",sans-serif);letter-spacing:.17em}
body.content-page .content-hero .hero-edition:before{content:"";width:54px;height:3px;background:var(--ds-red)}
body.content-page .content-hero h1{max-width:950px;margin:0;font-size:var(--ds-title-1);line-height:.93;letter-spacing:-.05em;text-wrap:balance}
body.content-page .content-hero h1 em{display:inline;color:#fff!important}
body.content-page .content-hero p{margin:28px 0 0;max-width:720px;color:rgba(255,255,255,.74);font-size:clamp(17px,1.5vw,21px);line-height:1.75}
body.content-page .content-hero-mark{min-height:300px;border:1px solid rgba(255,255,255,.18);border-radius:var(--ds-card-radius);background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,0));backdrop-filter:blur(5px)}
body.content-page .content-hero-mark span{color:rgba(255,255,255,.12);font-size:clamp(150px,17vw,270px)}

/* Sub-navigation is neutral; red is reserved for a selected/action state. */
body :is(.page-subnav,.trust-intro-band){padding-inline:var(--ds-page-gutter);background:#17191b;border-block:1px solid rgba(255,255,255,.1)}
body :is(.page-subnav,.trust-intro-band) a{min-height:58px;padding:0 24px;display:flex;align-items:center;justify-content:center;border-inline-start:1px solid rgba(255,255,255,.1);font-size:13px!important}
body :is(.page-subnav,.trust-intro-band) a:is(:hover,:focus-visible){background:#292c2f;color:#fff}

/* Editorial rhythm and recurring red section rule. */
body.content-page .content-section{padding:var(--ds-section-space) var(--ds-page-gutter)}
body.content-page .content-section-header{position:relative;padding-top:26px;grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr);gap:clamp(34px,8vw,115px)}
body.content-page .content-section-header:before{content:"";position:absolute;inset-inline-start:0;inset-block-start:0;width:72px;height:4px;border-radius:2px;background:var(--ds-red)}
body.content-page .content-section-header h2{font-size:var(--ds-title-2);line-height:1;letter-spacing:-.04em;text-wrap:balance}
body.content-page .content-section-header>p{font-size:17px;line-height:1.82}
body.content-page :is(.content-card,.professional-card,.trust-grid article,.parent-tools article,.policy-list article,.verified-reviews article){border:1px solid var(--ds-line);background:rgba(255,255,255,.78)}
body.content-page :is(.content-card,.professional-card,.trust-grid article,.parent-tools article,.policy-list article,.verified-reviews article):before{height:3px;background:var(--ds-ink)}
body.content-page :is(.content-card,.professional-card,.trust-grid article,.parent-tools article,.policy-list article,.verified-reviews article):is(:hover,:focus-within):before{background:var(--ds-red)}

/* Locations overview: real photography, compact facts and consistent actions. */
body .location-list{gap:18px}
body .location-card-rich{grid-template-columns:minmax(270px,.78fr) minmax(255px,.72fr) minmax(350px,1fr);border:0;border-radius:var(--ds-card-radius)!important;background:#fff;box-shadow:var(--ds-shadow-card);transition:transform .28s ease,box-shadow .28s ease}
body .location-card-rich:hover{transform:translateY(-4px);box-shadow:0 24px 58px rgba(35,30,24,.16)}
body .location-card-rich .location-media{min-height:390px}
body .location-card-rich .location-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(0,0,0,.67))}
body .location-card-rich .location-media img{transition:transform .55s ease}
body .location-card-rich:hover .location-media img{transform:scale(1.035)}
body .location-card-rich .location-media span{z-index:1;inset-inline:20px;inset-block:auto 20px;width:max-content;max-width:calc(100% - 40px);border-radius:7px;background:rgba(12,13,14,.82);font-size:12px!important}
body .location-card-rich>header{padding:34px;background:#17191b}
body .location-card-rich>header h3{font-size:var(--ds-title-3);line-height:1.1}
body .location-card-rich>header>div>p{color:rgba(255,255,255,.68);line-height:1.6}
body .branch-availability{display:inline-flex;margin-top:12px;padding:7px 10px;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff}
body .location-card-rich .coach-chip img{width:64px;height:64px;border-color:#fff}
body .location-card-rich .location-details{padding:34px;background:#fff}
body .location-card-rich dl{grid-template-columns:120px 1fr;gap:0}
body .location-card-rich dt,body .location-card-rich dd{padding-block:10px;border-bottom:1px solid #ece7df}
body .location-card-rich dd{font-size:14px}
body .managed-schedule{border-inline-start-color:var(--ds-ink);border-radius:10px;background:#f0ece5}
body .location-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
body .location-actions a{min-height:48px;padding:0 13px;border-radius:var(--ds-button-radius);display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px!important}
body .location-actions .reshet-registration{grid-column:1/-1;min-height:44px;padding:10px 13px;border-radius:var(--ds-button-radius);display:flex;align-items:center;justify-content:center;text-align:center;background:#f1ede6;color:#555;font-size:13px;font-weight:800;border:1px dashed #b8b0a4}
body .professional-note{border-inline-start-color:var(--ds-ink);border-radius:var(--ds-card-radius);background:#e4ded5}

/* Parent hub: a calm service product, not a second marketing homepage. */
body.parents-page #joining{background:#111315}
body.parents-page .joining-flow{gap:12px;background:transparent;counter-reset:joining}
body.parents-page .joining-flow article{min-height:260px;padding:30px;border:1px solid rgba(255,255,255,.13);border-radius:var(--ds-card-radius);background:#191c1f;display:flex;flex-direction:column}
body.parents-page .joining-flow article>b{font:800 36px/1 var(--font-brand,"Barlow Condensed",sans-serif);color:rgba(255,255,255,.22)}
body.parents-page .joining-flow h3{font-size:var(--ds-title-3)}
body.parents-page .joining-flow p{font-size:14px!important;line-height:1.75}
body.parents-page .joining-flow a{margin-top:auto;text-decoration:none}
body.parents-page .parent-price-grid{gap:12px;background:transparent}
body.parents-page .parent-price-grid>div,body.parents-page .parent-price-grid article{border-radius:var(--ds-card-radius);background:#191c1f}
body.parents-page .parent-price-grid article b{color:#fff;font-family:var(--font-display,"Assistant",Arial,sans-serif);font-size:clamp(24px,2.2vw,32px);line-height:1.2}
body.parents-page :is(.parent-tools,.verified-reviews){gap:16px}
body.parents-page .parent-tools article{min-height:255px;padding:32px;display:flex;flex-direction:column}
body.parents-page .parent-tools article>a{margin-top:auto;color:var(--ds-ink);font-weight:850;text-decoration-thickness:2px;text-underline-offset:5px}
body.parents-page .balance-grid{gap:16px}.parents-page .balance-grid article{border-radius:var(--ds-card-radius)!important;padding:34px;background:#fff;box-shadow:var(--ds-shadow-card)}
body.parents-page .balance-bridge{background:var(--ds-ink-soft)!important}
body.parents-page .parent-contact-strip{gap:12px;background:transparent}
body.parents-page .parent-contact-strip a{min-height:120px;padding:28px;border-radius:var(--ds-card-radius);box-shadow:var(--ds-shadow-card);transition:transform .2s ease}
body.parents-page .parent-contact-strip a:hover{transform:translateY(-3px)}

/* Store: use the same real-photo campaign language as the academy. */
body.store-page{background:var(--ds-paper)}
body.store-page .store-hero{min-height:clamp(620px,78vh,760px);padding:clamp(190px,17vw,245px) var(--ds-page-gutter) clamp(76px,8vw,110px);grid-template-columns:minmax(0,1fr);align-items:end;position:relative;background-image:linear-gradient(90deg,rgba(7,8,9,.96) 0%,rgba(7,8,9,.78) 48%,rgba(7,8,9,.18) 100%),url("assets/store-hero.webp");background-size:cover;background-position:center 48%;color:#fff}
[dir="rtl"] body.store-page .store-hero{background-image:linear-gradient(270deg,rgba(7,8,9,.96) 0%,rgba(7,8,9,.78) 48%,rgba(7,8,9,.18) 100%),url("assets/store-hero.webp")}
body.store-page .store-hero .hero-copy{position:relative;z-index:1;max-width:860px}
body.store-page .store-hero .hero-copy>small{display:flex;align-items:center;gap:13px;color:#fff;font:750 13px/1.4 var(--font-brand,"Barlow Condensed",sans-serif);letter-spacing:.17em}
body.store-page .store-hero .hero-copy>small:before{content:"";width:54px;height:3px;background:var(--ds-red)}
body.store-page .store-hero h1{margin:24px 0 25px;font-size:var(--ds-title-1);line-height:.93;letter-spacing:-.05em}
body.store-page .store-hero h1 em{color:#fff!important}.store-page .store-hero p{max-width:720px;color:rgba(255,255,255,.76);font-size:clamp(17px,1.45vw,21px);line-height:1.75}
body.store-page .store-hero .hero-copy>a{min-height:50px;margin-top:18px;padding:0 22px;border-radius:var(--ds-button-radius);display:inline-flex;align-items:center;gap:16px;background:var(--ds-red);color:#fff;text-decoration:none;font-weight:900}
body.store-page .store-hero .hero-art{display:none}
body.store-page .store-benefits{padding-inline:var(--ds-page-gutter);grid-template-columns:repeat(3,1fr);background:#17191b}
body.store-page .store-benefits>div{min-height:94px;padding:20px 24px;border-color:rgba(255,255,255,.12)}
body.store-page .store-benefits b{color:#fff}body.store-page .store-benefits span{color:rgba(255,255,255,.62)}
body.store-page .store-service-strip{padding:26px var(--ds-page-gutter);gap:12px;background:#e8e3da}
body.store-page .store-service-strip article{padding:24px;border-radius:var(--ds-card-radius);background:#fff;box-shadow:var(--ds-shadow-card)}
body.store-page :is(.store-intro,.equipment-guide,.gi-guide,.catalog,.order-help,.store-info){padding-inline:var(--ds-page-gutter)}
body.store-page .equipment-families{gap:16px}
body.store-page .equipment-families article{border:0;border-radius:var(--ds-card-radius);box-shadow:var(--ds-shadow-card)}
body.store-page .equipment-families article:first-child{background:#17191b}
body.store-page .gi-guide{gap:clamp(36px,7vw,90px)}
body.store-page .gi-levels{gap:12px;border:0}
body.store-page .gi-levels article{min-height:220px;border:1px solid #34373b;border-radius:var(--ds-card-radius)}
body.store-page .catalog-head{align-items:end}
body.store-page .catalog-head h2{font-size:var(--ds-title-2)}
body.store-page .search{min-width:min(100%,340px);border-radius:var(--ds-button-radius);background:#fff}
body.store-page .category-tabs{gap:8px}
body.store-page .category-tabs button{border-radius:9px;border-color:#c9c2b8}
body.store-page .category-tabs button.active{background:var(--ds-ink);border-color:var(--ds-ink);color:#fff}
body.store-page .product-grid{gap:18px}
body.store-page .product-card{border:1px solid var(--ds-line);border-radius:var(--ds-card-radius);background:#fff;box-shadow:0 10px 32px rgba(40,34,28,.08);transition:transform .25s ease,box-shadow .25s ease}
body.store-page .product-card:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(40,34,28,.14)}
body.store-page .product-visual{background:#f2eee8}
body.store-page .product-info{padding:22px}
body.store-page .product-info h3{font-size:var(--ds-title-3)}
body.store-page .product-bottom button{border-radius:var(--ds-button-radius);background:var(--ds-red)}
body.store-page .store-info{gap:16px}
body.store-page .store-info article{border:0;border-radius:var(--ds-card-radius);box-shadow:var(--ds-shadow-card)}
body.store-page .order-help{background:var(--ds-ink-soft)}

/* One footer finish across the public experience. */
body:not(.system-unavailable) footer{border-top:1px solid rgba(255,255,255,.12);background:#101214;color:#fff}
body:not(.system-unavailable) footer a{color:rgba(255,255,255,.76)}
body:not(.system-unavailable) footer a:is(:hover,:focus-visible){color:#fff}
body.store-page footer{min-height:230px;padding:58px var(--ds-page-gutter);display:flex;align-items:flex-start;gap:28px;flex-wrap:wrap}
body.store-page footer>.brand{margin-inline-end:auto}body.store-page footer>p{width:100%;color:rgba(255,255,255,.58)}

/* One compact public navigation across content pages. */
body .nav .nav-more{position:relative}
body .nav .nav-more summary{display:flex;align-items:center;gap:7px;color:rgba(255,255,255,.75);font-size:13px;font-weight:700;cursor:pointer;list-style:none;white-space:nowrap}
body .nav .nav-more summary::-webkit-details-marker{display:none}
body .nav .nav-more summary i{color:var(--ds-action,#d51d24);font-size:18px;font-style:normal;transition:transform .2s}
body .nav .nav-more[open] summary i{transform:rotate(45deg)}
body .nav .nav-more[data-current="true"] summary{color:#fff}
body .nav .nav-more-menu{position:absolute;inset-block-start:calc(100% + 20px);inset-inline-end:-18px;width:230px;padding:10px 16px;border:1px solid rgba(255,255,255,.16);background:rgba(11,13,15,.98);box-shadow:0 24px 60px rgba(0,0,0,.48);backdrop-filter:blur(16px)}
body .nav .nav-more-menu a{display:flex;min-height:45px;align-items:center;border-bottom:1px solid rgba(255,255,255,.09);font-size:13px}
body .nav .nav-more-menu a:last-child{border-bottom:0}

@media(max-width:1050px){
  body .nav .nav-more{width:100%}
  body .nav .nav-more summary{min-height:58px;justify-content:space-between;padding:12px 4px;border-bottom:1px solid rgba(255,255,255,.12);color:#fff;font-size:19px}
  body .nav .nav-more-menu{position:static;width:100%;padding:0 16px;border:0;background:rgba(255,255,255,.035);box-shadow:none}
  body .nav .nav-more-menu a{min-height:52px;font-size:16px!important}
}

@media(max-width:1100px){
  body.content-page .content-hero{grid-template-columns:1fr}.content-page .content-hero-mark{display:none}
  body.content-page .content-section-header{grid-template-columns:1fr}
  body .location-card-rich{grid-template-columns:1fr 1fr}.location-card-rich .location-details{grid-column:1/-1}
  body.store-page .store-service-strip{grid-template-columns:1fr 1fr}
}

@media(max-width:700px){
  body :is(.nav,.store-nav){min-height:78px;height:78px!important}
  body :is(.nav,.store-nav) :is(.brand-logo,.store-brand img){width:56px!important;height:56px!important}
  body :is(.nav,.store-nav) .menu{order:6}
  body.content-page .content-hero{min-height:590px;padding:155px 20px 62px;background-position:center}
  body.content-page .content-hero .hero-edition{font-size:12px!important;letter-spacing:.1em}
  body.content-page .content-hero h1{font-size:clamp(44px,13.5vw,58px);line-height:.96;letter-spacing:-.04em}
  body.content-page .content-hero p{font-size:16px;line-height:1.7}
  body :is(.page-subnav,.trust-intro-band){padding-inline:0;display:flex;overflow-x:auto;scrollbar-width:none}
  body :is(.page-subnav,.trust-intro-band) a{min-width:max-content;min-height:52px;padding:0 18px}
  body.content-page .content-section{padding:68px 20px}
  body.content-page .content-section-header{padding-top:22px;margin-bottom:36px}
  body .location-card-rich{grid-template-columns:1fr}
  body .location-card-rich .location-media{min-height:290px}
  body .location-card-rich .location-details{grid-column:auto;padding:25px 20px}
  body .location-card-rich>header{padding:27px 20px}
  body .location-card-rich dl{grid-template-columns:1fr}
  body .location-card-rich dt{padding-bottom:2px;border-bottom:0}
  body .location-card-rich dd{padding-top:2px}
  body .location-actions{grid-template-columns:1fr}
  body.parents-page .joining-flow,body.parents-page .parent-price-grid{grid-template-columns:1fr}
  body.parents-page .joining-flow article{min-height:220px}
  body.store-page .store-hero{min-height:610px;padding:155px 20px 66px;background-position:center}
  body.store-page .store-hero h1{font-size:clamp(46px,14vw,59px)}
  body.store-page .store-benefits{padding-inline:0;grid-template-columns:1fr}
  body.store-page .store-benefits>div{min-height:76px}
  body.store-page .store-service-strip{padding:16px 14px;grid-template-columns:1fr}
  body.store-page :is(.store-intro,.equipment-guide,.gi-guide,.catalog,.order-help,.store-info){padding-inline:20px}
  body.store-page .catalog-head{align-items:stretch;flex-direction:column;gap:22px}
  body.store-page .search{width:100%}
  body.store-page .product-grid{grid-template-columns:1fr 1fr;gap:10px}
  body.store-page .product-info{padding:17px}
  body.store-page footer{padding:52px 20px 110px;display:grid}
}

@media(max-width:420px){body.store-page .product-grid{grid-template-columns:1fr}}
