@charset "UTF-8";
:root {
  --ink: #454a4c;
  --muted: #797f82;
  --orange: #ee7730;
  --pale: #eef4f7;
  --line: #dfe6e9;
  --jp: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
  --en: "Helvetica Neue", "Helvetica", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { margin: 0; color: var(--ink); font: 16px/1.85 var(--jp); -webkit-font-smoothing: antialiased; }
h1,h2,h3,p,figure { margin: 0; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
a,button { -webkit-tap-highlight-color: transparent; }
a:focus-visible,button:focus-visible { outline: 3px solid #b44a0c; outline-offset: 5px; }
a:hover { opacity: .84; }
[hidden] { display: none !important; }
.skip-link { position: fixed; top: -100px; left: 20px; padding: 10px 20px; background: white; z-index: 30; }
.skip-link:focus { top: 12px; }
.site-header { height: 72px; display: flex; align-items: center; padding: 0 30px; gap: 30px; position: sticky; top: 0; z-index: 20; background: #fff; box-shadow: 0 2px 5px #00000025; }
.brand { display: flex; align-items: center; gap: 9px; flex-shrink: 0; }
.brand-mark { position: relative; width: 41px; height: 41px; border: 1px solid #959c9f; border-radius: 50%; display: grid; place-content: center; font: 300 24px/.95 var(--en); letter-spacing: -1px; text-align: center; }
.brand-mark:after { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--orange); position: absolute; right: 0; top: 0; border: 2px solid #fff; box-sizing: content-box; }
.brand-mark small { display: block; font: 8px/1.2 var(--en); letter-spacing: .08em; margin-top: 2px; }
.brand-name { font-size: 19px; font-weight: 600; letter-spacing: .05em; line-height: 1.3; }
.brand-name small { display: block; font: 8px/1.4 var(--en); color: var(--muted); letter-spacing: .12em; margin-top: 5px; }
.desktop-nav { display: flex; align-items: center; gap: 27px; margin-left: auto; font-size: 12px; letter-spacing: .035em; }
.header-cta { min-width: 119px; padding: 7px 13px; background: linear-gradient(100deg,#f1ad85,var(--orange)); color: white; font-size: 13px; display: flex; align-items: center; justify-content: space-between; gap: 14px; line-height: 1.7; }
.header-cta span { font: 300 27px/.7 var(--en); }
.menu-toggle,.mobile-menu { display: none; }
.hero { position: relative; height: min(800px,56.25vw); min-height: 610px; color: white; isolation: isolate; }
.hero-photo,.hero-tint { position: absolute; inset: 0; z-index: -2; }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.64) brightness(1.06); }
.hero-tint { z-index: -1; background: linear-gradient(90deg,#172b3540,#1e33353b 60%,#1f34303b); }
.hero-copy { position: absolute; top: 29%; left: 26%; right: 7%; text-align: center; }
.hero-copy>p { font-size: 14px; letter-spacing: .23em; font-weight: 400; margin-bottom: 27px; text-shadow: 0 1px 5px #13212780; }
h1 { font-size: clamp(40px,4.7vw,72px); font-weight: 300; letter-spacing: .1em; line-height: 1.75; text-shadow: 0 2px 9px #14272a50; }
h1 span { font-weight: 300; }
.hero-line { display: block; }
.hero-facts { position: absolute; left: 4.2%; bottom: 41px; display: flex; flex-direction: column; gap: 17px; }
.fact { width: 145px; height: 145px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid #ffffffb0; border-radius: 50%; background: #f8fbf9e6; color: #626969; outline: 1px solid #e3ecebcc; outline-offset: -6px; }
.fact small { font-size: 11px; letter-spacing: .06em; }
.fact p { display: flex; align-items: baseline; gap: 3px; line-height: 1.3; }
.fact p>span { font-size: 13px; }
.fact strong { font: 300 57px/1.05 var(--en); letter-spacing: -.04em; color: #cb642a; }
.fact-personal strong { font-size: 49px; }
.fact em { font-size: 10px; font-style: normal; margin-top: 4px; }
.hero-scroll { position: absolute; right: 31px; bottom: 31px; display: flex; align-items: center; flex-direction: column; gap: 11px; font: 9px var(--en); letter-spacing: .17em; }
.hero-scroll i { font: 300 25px var(--en); }
.photo-note { font-size: 10px; color: #72797c; padding: 8px 4.2% 0; }
.container { width: min(1000px,calc(100% - 80px)); margin: auto; }
.section { padding: 90px 0; }
.section-title { text-align: center; }
.section-title h2 { font-size: 27px; font-weight: 600; line-height: 1.65; letter-spacing: .055em; }
.section-title>p { font: 200 60px/1.2 var(--en); color: #a4a9ab; letter-spacing: -.035em; margin-top: 13px; }
.about { padding-top: 70px; padding-bottom: 120px; text-align: center; }
.about-lead { margin-top: 31px; font-size: 19px; line-height: 2.1; letter-spacing: .045em; }
.about-copy { font-size: 14px; line-height: 2; margin-top: 20px; }
.time-note { font-size: 12px; line-height: 1.9; margin-top: 12px; color: #596267; }
.button { display: flex; align-items: center; justify-content: space-between; gap: 25px; color: white; background: linear-gradient(105deg,#f4b08a,#ed7229); width: max-content; max-width: 100%; min-width: 285px; margin: 37px auto 0; padding: 14px 25px 14px 38px; border-radius: 2px; box-shadow: 0 3px 5px #47515330; font-size: 14px; letter-spacing: .04em; }
.button>span { font: 200 31px/.8 var(--en); }
.problems { position: relative; isolation: isolate; padding-bottom: 100px; }
.problem-background { position: absolute; inset: 190px 0 0; background: var(--pale); z-index: -1; }
.problem-heading { position: relative; display: grid; grid-template-columns: 1fr 1fr; align-items: center; min-height: 340px; margin-bottom: 100px; gap: 65px; }
.problem-title>p { font: 200 23px/1.4 var(--en); color: #8e969a; letter-spacing: -.025em; margin-bottom: 21px; white-space: nowrap; }
.problem-title h2 { font-size: 31px; line-height: 1.65; letter-spacing: .03em; }
.problem-heading figure { width: calc(100% + max(40px,(100vw - 1000px)/2)); max-width: 640px; }
.problem-heading img { width: 100%; height: 340px; object-fit: cover; object-position: 50% 0%; border-radius: 3px 0 0 3px; }
.problem-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 39px 22px; }
.problem-card { border-radius: 3px; background: white; box-shadow: 1px 3px 4px #42505926; }
.question { position: relative; padding: 34px 14px 26px; min-height: 101px; display: flex; align-items: center; justify-content: center; text-align: center; }
.question>span { position: absolute; top: -15px; left: 50%; transform: translateX(-50%); background: #777c7e; color: white; border-radius: 1px; padding: 0 25px; height: 31px; display: flex; align-items: center; font-size: 14px; font-weight: 400; white-space: nowrap; }
.question h3 { font-size: 19px; font-weight: 700; line-height: 1.6; }
.question:after { content: ""; position: absolute; bottom: -18px; left: calc(50% - 20px); width: 0; height: 0; border-top: 19px solid white; border-left: 20px solid transparent; border-right: 20px solid transparent; z-index: 1; }
.answer { display: grid; grid-template-columns: 39% 1fr; gap: 24px; align-items: center; min-height: 235px; padding: 34px 27px 26px; background: linear-gradient(120deg,#e3e9ec,#f8fafa); border-radius: 0 0 3px 3px; }
.answer img { width: 100%; height: 169px; object-fit: cover; border-radius: 3px; }
.answer .photo-studio { object-position: 65% center; }
.answer .photo-coach { object-position: 15% 50%; }
.answer .photo-training { object-position: 71% 34%; }
.answer .photo-studio-wide { object-position: 48% center; }
.answer p { font-size: 15px; line-height: 1.85; }
.answer strong { font-weight: 600; text-decoration: underline; text-decoration-color: #edc8b0; text-decoration-thickness: 4px; text-underline-offset: -1px; text-decoration-skip-ink: none; }
.purpose-section { position: relative; background: #fff; }
.purpose-content { padding: 90px 0 100px; }
.section-lead { text-align: center; font-size: 15px; line-height: 1.9; margin-top: 29px; }
.purpose-grid { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 56px; gap: 24px; }
.purpose-grid article { text-align: center; padding: 24px 15px 28px; border-top: 1px solid #dce5e8; border-bottom: 1px solid #dce5e8; }
.point { font: 200 13px/1.4 var(--en); color: #878f91; letter-spacing: .05em; }
.point span { display: block; font-size: 41px; font-weight: 200; letter-spacing: -.04em; margin-top: 3px; }
.purpose-grid h3 { font-size: 15px; font-weight: 400; line-height: 1.9; margin: 18px 0; }
.purpose-grid h3 strong { font-size: 22px; font-weight: 600; }
.purpose-grid article>p:last-child { font-size: 12px; line-height: 1.9; }
.side-cta { position: fixed; right: 9px; top: 42%; z-index: 10; width: 106px; border-radius: 18px 0 0 18px; box-shadow: 0 1px 2px #00000012; background: #fff; border: 1px solid #e8b299; overflow: hidden; transition: opacity .2s,transform .2s; }
.side-cta.is-hidden { opacity: 0; pointer-events: none; transform: translateX(15px); }
.side-cta a { display: block; text-align: center; }
.side-cta small { display: block; color: white; background: #6f777a; padding: 10px 5px; font-size: 9px; }
.side-main { display: block; padding: 22px 6px; background: linear-gradient(120deg,#ed9d71,#ea7332); color: white; font-size: 13px; line-height: 1.8; }
.side-main strong { display: block; white-space: nowrap; font-size: 23px; margin-top: 6px; font-weight: 600; line-height: 1.3; }
.side-link { display: block; padding: 10px 3px; font-size: 10px; line-height: 1.6; color: #aa4b20; }
.side-link b { font-weight: 400; font-size: 15px; }
.preview-footer { padding: 32px 0; border-top: 1px solid #d6dfe2; background: #f9fafb; font-size: 11px; color: #6d767b; }
.preview-footer strong { display: block; font-size: 12px; margin-bottom: 6px; }
.preview-footer small { display: block; font-size: 10px; margin-top: 12px; max-width: 820px; }
.preview-footer a { display: inline-block; margin-top: 17px; border-bottom: 1px solid #8c9499; }
.mobile-only { display: none; }
@media(max-width:1100px) {
  .site-header { padding: 0 20px; gap: 20px; }
  .desktop-nav { gap: 18px; font-size: 11px; }
  .brand-name { font-size: 17px; }
  .container { width: calc(100% - 130px); margin-left: 40px; }
  .hero { min-height: 540px; }
  .fact { width: 124px; height: 124px; }
  .fact strong { font-size: 46px; }
  .fact-personal strong { font-size: 40px; }
  .problem-heading { gap: 40px; }
  .problem-heading figure { width: calc(100% + 90px); }
  .problem-title h2 { font-size: 27px; }
  .question h3 { font-size: 16px; }
  .answer { gap: 18px; padding: 28px 20px; }
  .answer p { font-size: 14px; }
  .side-cta { width: 80px; right: 5px; }
  .side-main { font-size: 11px; padding: 17px 4px; }
  .side-main strong { font-size: 18px; }
  .side-cta small { font-size: 8px; }
  .side-link { font-size: 9px; }
  .purpose-grid h3 strong { font-size: 20px; }
}
@media(max-width:850px) {
  .desktop-nav { display: none; }
  .header-cta { margin-left: auto; }
  .menu-toggle { border: 0; padding: 0; width: 37px; height: 38px; background: transparent; color: var(--ink); display: flex; flex-direction: column; justify-content: flex-start; gap: 8px; position: relative; cursor: pointer; }
  .menu-toggle i { display: block; width: 36px; height: 1px; background: #50585b; margin-top: 3px; }
  .menu-toggle span { font-size: 8px; line-height: 1; margin-top: -1px; }
  .menu-toggle[aria-expanded="true"] i:first-child { transform: translateY(6px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] i:nth-child(2) { transform: translateY(-6px) rotate(-45deg); }
  .mobile-menu { display: block; position: absolute; top: 100%; right: 0; width: min(410px,100%); padding: 14px 25px 22px; background: #fff; box-shadow: 0 4px 6px #00000020; }
  .mobile-menu a { display: flex; justify-content: space-between; padding: 17px 0; font-size: 14px; border-bottom: 1px solid var(--line); }
  .mobile-menu a span { color: var(--orange); }
  .mobile-menu p { font-size: 10px; color: var(--muted); padding-top: 20px; }
  .hero-copy { left: 21%; right: 4%; }
  .hero-copy>p { font-size: 12px; }
  h1 { font-size: 36px; }
  .container { width: calc(100% - 64px); margin: auto; }
  .problem-heading { gap: 20px; }
  .problem-heading figure { width: calc(100% + 32px); }
  .problem-title h2 { font-size: 24px; }
  .problem-title>p { font-size: 19px; }
  .answer { grid-template-columns: 37% 1fr; padding: 29px 16px; gap: 15px; }
  .answer p { font-size: 12px; }
  .side-cta { display: none; }
}
@media(max-width:700px) {
  html { scroll-padding-top: 75px; }
  .site-header { height: 54px; padding: 0 13px; gap: 12px; }
  .brand { gap: 6px; }
  .brand-mark { width: 29px; height: 29px; font-size: 18px; }
  .brand-mark small { font-size: 6px; margin-top: 0; }
  .brand-mark:after { width: 4px; height: 4px; border-width: 1px; }
  .brand-name { font-size: 14px; letter-spacing: .015em; }
  .brand-name small { font-size: 5px; letter-spacing: .08em; margin-top: 4px; }
  .header-cta { min-width: 79px; padding: 6px 8px; gap: 7px; font-size: 11px; }
  .header-cta span { font-size: 23px; }
  .menu-toggle { width: 32px; height: 32px; gap: 7px; flex-shrink: 0; }
  .menu-toggle i { width: 31px; margin-top: 2px; }
  .menu-toggle span { font-size: 7px; margin-top: 0; }
  .hero { height: calc(100svh - 108px); max-height: 710px; min-height: 560px; }
  .hero-photo img { object-position: 57% center; filter: saturate(.65) brightness(.95); }
  .hero-tint { background: linear-gradient(0deg,#1d343b66,#33475520 75%); }
  .hero-copy { top: 24%; left: 45px; right: 22px; text-align: left; }
  .hero-copy>p { font-size: 10px; letter-spacing: .09em; margin-bottom: 16px; white-space: nowrap; }
  h1 { font-size: clamp(38px,11.3vw,56px); line-height: 1.65; letter-spacing: .08em; text-shadow: 0 2px 6px #10262f60; }
  .hero-facts { left: 15px; bottom: 24px; gap: 9px; flex-direction: row; }
  .fact { width: 95px; height: 95px; background: #f8fbf9ed; outline-offset: -4px; }
  .fact small { font-size: 8px; }
  .fact p { gap: 1px; }
  .fact p>span { font-size: 10px; }
  .fact strong { font-size: 37px; }
  .fact-personal strong { font-size: 34px; }
  .fact em { font-size: 7px; margin-top: 2px; }
  .hero-scroll { right: 20px; bottom: 31px; font-size: 8px; gap: 6px; }
  .hero-scroll i { font-size: 19px; }
  .photo-note { font-size: 8px; padding: 7px 15px 0; line-height: 1.7; }
  .container { width: calc(100% - 46px); }
  .section { padding: 65px 0; }
  .section-title h2 { font-size: 19px; letter-spacing: .02em; line-height: 1.7; }
  .section-title>p { font-size: 35px; margin-top: 7px; }
  .about { padding-top: 45px; padding-bottom: 77px; }
  .about-lead { font-size: 15px; line-height: 2; letter-spacing: .015em; margin-top: 27px; }
  .about-copy { font-size: 12px; line-height: 2; margin-top: 17px; }
  .button { margin-top: 28px; min-width: 250px; font-size: 13px; padding: 12px 21px 12px 28px; }
  .button>span { font-size: 26px; }
  .problems { padding-bottom: 73px; }
  .problem-background { top: 115px; }
  .problem-heading { display: flex; flex-direction: column-reverse; align-items: stretch; margin-bottom: 42px; gap: 0; min-height: 0; }
  .problem-heading figure { width: calc(100% - 28px + 23px); margin-left: 28px; }
  .problem-heading img { height: 190px; object-position: 50% 0%; }
  .problem-title { text-align: center; padding-top: 35px; }
  .problem-title>p { position: absolute; top: 0; left: -1px; writing-mode: vertical-rl; font-size: 16px; letter-spacing: -.02em; height: 210px; line-height: 1; margin: 0; }
  .problem-title h2 { font-size: 20px; line-height: 1.6; letter-spacing: .02em; }
  .desktop-only { display: none; }
  .mobile-only { display: initial; }
  .problem-grid { grid-template-columns: 1fr; gap: 36px; }
  .question { min-height: 85px; padding: 28px 13px 22px; }
  .question>span { height: 23px; top: -11px; font-size: 11px; padding: 0 20px; }
  .question h3 { font-size: 16px; line-height: 1.7; }
  .question:after { border-top-width: 16px; border-left-width: 18px; border-right-width: 18px; bottom: -15px; left: calc(50% - 18px); }
  .answer { grid-template-columns: 42% 1fr; min-height: 187px; padding: 28px 22px 22px; gap: 15px; }
  .answer img { height: 135px; }
  .answer p { font-size: 14px; line-height: 1.85; }
  .answer strong { font-weight: 500; text-decoration-thickness: 3px; }
  .purpose-content { padding: 60px 0 65px; }
  .section-lead { font-size: 12px; line-height: 2; margin-top: 25px; }
  .purpose-grid { grid-template-columns: 1fr; gap: 0; margin-top: 32px; }
  .purpose-grid article { display: grid; grid-template-columns: 65px 1fr; column-gap: 19px; text-align: left; padding: 24px 8px; border-bottom: 0; }
  .purpose-grid article:last-child { border-bottom: 1px solid var(--line); }
  .point { grid-row: span 2; text-align: center; font-size: 9px; margin-top: 6px; }
  .point span { font-size: 39px; margin-top: 4px; }
  .purpose-grid h3 { font-size: 12px; margin: 0 0 7px; line-height: 1.7; }
  .purpose-grid h3 strong { font-size: 21px; }
  .purpose-grid article>p:last-child { font-size: 11px; line-height: 1.85; }
  .side-cta { display: block; top: auto; bottom: 0; left: 0; right: 0; width: 100%; border: 0; border-top: 1px solid #e5c7b7; border-radius: 0; background: #ffffffed; padding: 9px 16px max(9px,env(safe-area-inset-bottom)); box-shadow: 0 -2px 10px #3d444318; }
  .side-cta a { background: linear-gradient(100deg,#f2a477,#e8722d); min-height: 42px; color: white; display: flex; align-items: center; justify-content: center; gap: 16px; padding: 6px 12px; }
  .side-cta small { display: none; }
  .side-main { background: none; padding: 0; font-size: 9px; line-height: 1.5; }
  .side-main strong { font-size: 17px; display: inline-block; margin: 0; font-weight: 500; }
  .side-main br { display: none; }
  .side-main strong:before { content: " / "; font-size: 12px; }
  .side-link { color: white; font-size: 11px; padding: 0; }
  .side-link b { font-size: 18px; margin-left: 7px; }
  .side-cta.is-hidden { transform: translateY(12px); }
  .preview-footer { padding: 26px 0 91px; font-size: 10px; }
  .preview-footer small { font-size: 9px; }
}
@media(max-width:360px) {
  .site-header { padding: 0 10px; gap: 8px; }
  .brand-name { font-size: 10.5px; }
  .brand-name small { font-size: 4.5px; }
  .brand-mark { width: 26px; height: 26px; font-size: 16px; }
  .header-cta { font-size: 10px; min-width: 68px; gap: 5px; }
  .menu-toggle { width: 26px; }
  .menu-toggle i { width: 26px; }
  .hero-copy { left: 30px; right: 17px; }
  h1 { font-size: 37px; letter-spacing: .045em; }
  .hero-copy>p { font-size: 9px; letter-spacing: .05em; }
  .container { width: calc(100% - 36px); }
  .problem-heading figure { width: calc(100% - 24px + 18px); margin-left: 24px; }
  .problem-heading img { height: 180px; }
  .problem-title h2 { font-size: 18px; }
  .question h3 { font-size: 13px; }
  .answer { padding: 27px 16px 20px; gap: 13px; grid-template-columns: 39% 1fr; }
  .answer p { font-size: 13px; }
  .section-title h2 { font-size: 17px; }
  .side-cta a { gap: 10px; }
  .side-main { font-size: 8px; }
  .side-main strong { font-size: 15px; }
  .side-link { font-size: 10px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  .side-cta { transition: none; }
}

/* Symbol identity and the connection to the main gym site. */
.symbol-wordmark { display: flex; align-items: baseline; gap: 8px; font-size: 28px; font-weight: 800; letter-spacing: .015em; line-height: 1; color: #282d2c; }
.symbol-wordmark>span { font-size: 10px; letter-spacing: .025em; }
.plan-breadcrumb { display: flex; align-items: center; gap: 12px; padding: 10px 30px; background: #fbf8f1; font-size: 11px; color: #6d675d; }
.plan-breadcrumb a { text-decoration: underline; text-underline-offset: 3px; }
.plan-breadcrumb b { color: #725321; background: #f6e6bd; font-size: 10px; border-radius: 3px; padding: 1px 8px; font-weight: 600; }
.hero-copy>p.hero-recommendation { display: inline-block; background: #fbf5e9ee; color: #5a4531; padding: 6px 16px; font-size: 13px; letter-spacing: .08em; text-shadow: none; margin-bottom: 17px; }
.hero-copy>p.hero-plan-name { font-size: 15px; letter-spacing: .1em; margin: 15px 0 0; }
.plan-parent { color: #977249; font-size: 13px; letter-spacing: .1em; margin-bottom: 17px; }
.plan-section { background: linear-gradient(130deg,#f5f7f7,#fff8eb); }
.plan-summary { display: grid; grid-template-columns: .9fr 1.1fr; gap: 65px; align-items: start; }
.plan-summary-copy h2 { font-size: 31px; line-height: 1.65; font-weight: 600; letter-spacing: .035em; }
.plan-summary-copy>p:not(.plan-parent) { font-size: 14px; margin-top: 22px; line-height: 2; }
.other-plans { display: inline-flex; align-items: center; gap: 20px; font-size: 12px; border-bottom: 1px solid #a5a5a0; padding-bottom: 5px; margin-top: 28px; }
.plan-summary-detail dl { margin: 0; }
.plan-summary-detail dl>div { display: grid; grid-template-columns: 114px 1fr; gap: 17px; padding: 17px 0; border-bottom: 1px solid #d9d8d1; font-size: 13px; }
.plan-summary-detail dl>div:first-child { padding-top: 0; }
.plan-summary-detail dt { color: #75776e; }
.plan-summary-detail dd { margin: 0; }
.plan-summary-detail dd strong { font-size: 20px; font-weight: 500; }
.plan-price-note { display: block; font-size: 11px; color: #727871; margin-top: 3px; }
.plan-contact { width: 100%; min-width: 0; margin-top: 28px; padding: 15px 23px; }
.contact-note { font-size: 10px; line-height: 1.9; margin-top: 12px; color: #626c67; }
.preview-footer .footer-symbol { display: flex; width: max-content; align-items: baseline; gap: 8px; margin: 0 0 20px; border: 0; font-size: 25px; font-weight: 750; color: #343a39; }
.footer-symbol span { font-size: 10px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 12px 30px; }
.plan-summary-detail .plan-contact>span { font-size: 20px; }
@media(max-width:1100px) {
  .symbol-wordmark { font-size: 24px; }
  .plan-summary { gap: 35px; }
  .plan-summary-copy h2 { font-size: 26px; }
  .plan-summary-detail dl>div { grid-template-columns: 100px 1fr; gap: 10px; }
}
@media(max-width:700px) {
  .symbol-wordmark { display: block; font-size: 23px; }
  .symbol-wordmark>span { display: block; font-size: 8px; margin-top: 5px; }
  .header-cta { font-size: 10px; min-width: 0; padding: 8px 10px; }
  .plan-breadcrumb { gap: 8px; padding: 9px 15px; font-size: 9px; }
  .plan-breadcrumb b { font-size: 8px; padding-inline: 6px; }
  .hero-copy { top: 17%; left: 30px; right: 22px; }
  .hero-copy>p.hero-recommendation { font-size: 9px; letter-spacing: .025em; padding: 5px 9px; margin-bottom: 16px; }
  .hero h1 { font-size: clamp(36px,10.7vw,50px); line-height: 1.55; letter-spacing: .07em; }
  .hero-copy>p.hero-plan-name { font-size: 11px; margin-top: 17px; letter-spacing: .035em; }
  .plan-parent { font-size: 10px; margin-bottom: 13px; letter-spacing: .05em; }
  .plan-summary { grid-template-columns: 1fr; gap: 30px; }
  .plan-summary-copy h2 { font-size: 26px; }
  .plan-summary-copy>p:not(.plan-parent) { font-size: 13px; margin-top: 15px; }
  .other-plans { margin-top: 20px; }
  .plan-summary-detail dl>div { grid-template-columns: 100px 1fr; font-size: 12px; padding: 14px 0; }
  .plan-summary-detail dd strong { font-size: 19px; }
  .plan-contact { font-size: 13px; margin-top: 24px; padding: 14px 20px; }
  .contact-note { font-size: 10px; }
}
@media(max-width:360px) {
  .symbol-wordmark { font-size: 21px; }
  .symbol-wordmark>span { font-size: 7px; }
  .hero-copy { left: 24px; }
  .hero-copy>p.hero-recommendation { font-size: 8px; }
  .plan-summary-copy h2 { font-size: 24px; }
  .plan-summary-detail dl>div { grid-template-columns: 90px 1fr; }
  .plan-contact { font-size: 12px; padding-inline: 15px; }
}

/* Licensed image photos are confined to the approved body placements. */
.stock-photo { margin: 0; min-width: 0; }
.stock-photo figcaption { color: #616b70; font-size: 9px; line-height: 1.6; padding-top: 5px; }
.problem-heading img.stock-mat { object-position: 54% 32%; }
.answer img.stock-training { object-position: 73% center; }
.answer img.stock-stretch { object-position: 58% center; }
.support-diagram { min-width: 0; min-height: 169px; padding: 16px 7px; background: #f8fbfc; border: 1px solid #c9d7de; border-radius: 3px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #516d7b; text-align: center; }
.diagram-label { font-size: 11px; letter-spacing: .04em; }
.diagram-number { font: 300 58px/1.2 var(--en); white-space: nowrap; letter-spacing: -.04em; margin-top: 3px; }
.diagram-number>span { font: 400 17px/1.2 sans-serif; margin-inline: 3px; }
.diagram-divider { height: 1px; width: 28px; background: #bfced5; margin: 9px 0; }
.diagram-foot { font-size: 10px; line-height: 1.6; }
.diagram-foot b { font: 500 15px/1.2 var(--en); margin-inline: 2px; }
@media(max-width:700px) {
  .support-diagram { min-height: 135px; padding: 12px 5px; }
  .diagram-number { font-size: 49px; }
  .diagram-label { font-size: 10px; }
  .diagram-foot { font-size: 9px; }
}
@media(max-width:360px) {
  .answer .stock-photo figcaption { font-size: 8px; }
}

/* Three approved session packages, without adding subscription terms. */
.session-pricing { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin-top: 42px; }
.session-price-card { padding: 25px 25px 0; background: #fff; border: 1px solid #d9e1e3; border-top: 3px solid #a7b8bf; border-radius: 3px; overflow: hidden; }
.session-price-card-value { border-color: #e6c9aa; border-top-color: #c68a4b; background: #fffcf6; }
.session-price-label { font: 12px/1.5 var(--en); letter-spacing: .1em; color: #7b8589; }
.session-price-card h3 { margin-top: 6px; font-size: 23px; font-weight: 600; }
.session-price-intro { margin-top: 4px; font-size: 11px; color: #626d72; }
.session-price { display: flex; align-items: center; gap: 5px; margin-top: 20px; white-space: nowrap; }
.session-price>strong { font: 500 clamp(33px,3.5vw,46px)/1.2 var(--en); letter-spacing: -.045em; color: #3e484d; }
.session-price>span { font-size: 18px; line-height: 1.3; }
.session-price>span small { display: block; font-size: 10px; }
.session-price-tax { margin-top: 5px; font-size: 13px; }
.session-price-tax b { font-weight: 500; }
.session-unit { margin-top: 20px; padding-top: 16px; border-top: 1px solid #e1e6e8; font-size: 12px; }
.session-unit strong { font-size: 18px; font-weight: 600; margin-left: 5px; }
.session-unit small { display: block; font-size: 11px; margin-top: 1px; }
.session-saving { margin: 18px -25px 0; padding: 11px 10px; background: #f6e8cd; color: #715322; font-size: 11px; text-align: center; }
.session-saving strong { font-size: 14px; font-weight: 600; }
.session-saving small { font-size: 9px; margin-left: 4px; }
.session-saving-neutral { background: #edf3f5; color: #626f75; }
.session-pricing-note { margin-top: 17px; font-size: 11px; line-height: 1.9; color: #636c70; }
.plan-booking { max-width: 500px; margin: 32px auto 0; }
.plan-booking .plan-contact { margin-top: 0; }
.plan-booking .contact-note { text-align: center; }
@media(min-width:701px) and (max-width:1000px) {
  .session-pricing { gap: 12px; }
  .session-price-card { padding-inline: 18px; }
  .session-saving { margin-inline: -18px; }
  .session-unit strong { font-size: 16px; }
}
@media(max-width:700px) {
  .session-pricing { grid-template-columns: 1fr; gap: 17px; margin-top: 30px; }
  .session-price-card { display: grid; grid-template-columns: 1fr 1fr; column-gap: 12px; padding: 18px 20px 0; align-items: start; }
  .session-price-label { grid-column: 1; grid-row: 1; font-size: 10px; }
  .session-price-card h3 { grid-column: 1; grid-row: 2; font-size: 21px; margin-top: 3px; }
  .session-price-intro { grid-column: 1; grid-row: 3; font-size: 10px; margin-top: 3px; line-height: 1.7; }
  .session-price { grid-column: 2; grid-row: 1 / 3; justify-content: flex-end; margin-top: 6px; gap: 3px; }
  .session-price>strong { font-size: 34px; }
  .session-price>span { font-size: 13px; }
  .session-price>span small { font-size: 9px; }
  .session-price-tax { grid-column: 2; grid-row: 3; text-align: right; font-size: 11px; margin-top: 3px; }
  .session-unit { grid-column: 1 / -1; margin-top: 14px; padding-top: 11px; }
  .session-unit small { display: inline; margin-left: 8px; }
  .session-saving { grid-column: 1 / -1; margin: 14px -20px 0; padding-block: 8px; }
  .session-pricing-note { font-size: 10px; }
}
@media(max-width:360px) {
  .session-price-card { column-gap: 9px; padding-inline: 15px; }
  .session-price>strong { font-size: 29px; }
  .session-price-card h3 { font-size: 19px; }
  .session-price-intro { font-size: 9px; }
  .session-unit { font-size: 11px; }
  .session-unit strong { font-size: 16px; }
  .session-unit small { margin-left: 5px; font-size: 10px; }
  .session-saving { margin-inline: -15px; }
}

/* Keep the menu strokes visible in the compact mobile header. */
@media(max-width:700px) {
  .menu-toggle { gap: 5px; }
  .menu-toggle i { flex-shrink: 0; }
}
