/* Public pages: readable text, clear sections, generous touch targets. */
body { --vg-copy:18px; --vg-note:16px; }
/* Legacy pages set individual font sizes; enforce one readable copy scale. */
body.vg-readable:not(.sub-price) main :is(p,li,dt,dd) {font-size:var(--vg-copy)!important;line-height:1.9!important}
body.vg-readable main :is(p.note,p.contact-phone-note,figcaption,small) {font-size:var(--vg-note)!important;line-height:1.8!important}
body.vg-readable main :is(p.eyebrow,p.section-label,p.renew-kicker) {font-size:14px!important;line-height:1.7!important}
body.vg-readable:not(.sub-price) main :is(.pill,.text-link,.renew-button,.renew-text-link,.social-button,.renew-small-link) {font-size:var(--vg-copy)!important}
body.vg-readable main .renew-profile p.renew-kicker {font-size:16px!important}
body.vg-readable main .faq-list dt {font-size:20px!important}
body main :is(p,li,dt,dd),body main .content>p,body .renew-home p {font-size:var(--vg-copy);line-height:1.9;overflow-wrap:break-word}
body main p {margin-block:16px}
body main :is(.note,.contact-phone-note,figcaption,small),body main .note p {font-size:var(--vg-note);line-height:1.8;color:#405d70}
body main :is(.eyebrow,.section-label,.renew-kicker,.pg-number) {font-size:14px;line-height:1.65}
body main h2,body .renew-home :is(h2,.section h2),body.renew-subpage .content h2 {font-size:30px;line-height:1.5;letter-spacing:0}
body main h3,body .renew-home h3,body.renew-subpage .content h3 {font-size:23px;line-height:1.6;letter-spacing:0}
body main :is(.pill,.text-link,.renew-button,.renew-text-link,.social-button,.renew-small-link),body .contact-banner .pill {font-size:17px;line-height:1.7;min-height:44px;max-width:100%;white-space:normal;box-sizing:border-box}
body main :is(.pill,.renew-button,.social-button) {padding:13px 22px}
body main :is(.text-link,.renew-text-link,.renew-small-link){padding-block:9px}
body main :is(button,summary,input,select,textarea){font-size:17px;line-height:1.7}
body main summary{min-height:44px}
body main :is(h2,h3)[id],body main section[id]{scroll-margin-top:90px}
body .renew-page-lead {font-size:var(--vg-copy)!important}
body.renew-subpage .breadcrumb {font-size:14px;line-height:1.8}
body .layout-nav a {font-size:15px;min-height:48px;display:flex;align-items:center}
body .layout-tagline,body .layout-hours {font-size:14px}
body .layout-booking {font-size:16px}
body .layout-nav-inner .menu-button {font-size:12px;min-width:44px;min-height:44px}
body .menu-panel :is(a,button){font-size:18px;line-height:1.7}
body .footer :is(p,a,li),body .footer-bottom {font-size:15px;line-height:1.9}
body .contact-banner :is(p,.contact-phone-note) {font-size:16px;line-height:1.9}
body .mobile-cta a {font-size:15px;line-height:1.6;min-height:48px;display:flex;align-items:center;justify-content:center}
body .vg-jump {display:flex;flex-wrap:wrap;gap:12px;margin:0 0 36px;padding:20px;background:#f2f8fc;border:1px solid #d6e6ef;border-radius:6px}
body .vg-jump a {flex:1 1 180px;font-size:17px;line-height:1.7;font-weight:700;padding:13px 16px;background:#fff;border:1px solid #bfd6e5;border-bottom:3px solid #ee7b10;border-radius:4px;display:flex;justify-content:space-between;align-items:center;gap:8px;color:#103e62;min-height:48px;text-decoration:none;box-sizing:border-box}
body .vg-jump a:hover {background:#e7f3fa}
body .vg-jump a:focus-visible {outline:3px solid #006cae;outline-offset:3px}
body main .guide-facts>div,body main .info-list>div {padding-block:20px;gap:20px}
body main :is(.guide-facts,.info-list) dt {font-weight:700;color:#00639c}
body main :is(.guide-facts,.info-list) dd {margin:0}
body main .faq-list>div {padding-block:24px;border-bottom:1px solid #d6e5ee}
body main .faq-list dt {font-size:20px;font-weight:700;line-height:1.7;color:#103e62}
body main .faq-list dd {margin:12px 0 0}
body main .faq-list dd p {margin:0}
body main .vg-qualifications {padding-left:1.25em;margin:16px 0 24px}
body main .vg-qualifications li {margin:7px 0}
body .renew-profile {grid-template-columns:minmax(220px,32%) minmax(0,1fr);padding:32px;gap:32px}
body .renew-profile h2 {margin-top:0}
body .renew-profile-list {gap:40px}
body.renew-subpage .content .schedule-list {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
body.renew-subpage .content .schedule-list article h2 {font-size:23px;margin-top:0}
body.renew-subpage .content .schedule-list article {padding:26px;min-width:0}
body main .opening-hours {padding:28px;border:1px solid #d7e5ed;border-left:3px solid #ee7b10;background:#f7fafc;margin-bottom:30px}
body main .opening-hours h2 {margin-top:0}
body main .links-row {gap:14px;flex-wrap:wrap}
body main .renew-hero-intro {font-size:18px}
body main .layout-hero .renew-kicker {color:#fff}
body main .layout-hero .renew-small-link {color:#fff}
body main .layout-hero .renew-hero-copy {justify-content:center}
body main .layout-support p {max-width:54em}
body.renew-subpage .content:not(.pg-content)>p {max-width:48em}
body main .arrival-copy p {font-size:var(--vg-copy)}
body main .booking-times dd,body main .booking-card-note {font-size:var(--vg-copy)}
@media(max-width:1000px){
 body .layout-header-inner {gap:20px}
 body .layout-tagline {display:none}
 body .layout-nav {gap:22px;overflow-x:auto;justify-content:flex-start}
 body .renew-profile {grid-template-columns:1fr}
 body .renew-profile figure {max-width:380px;margin-inline:auto!important}
}
@media(max-width:820px){
 body .renew-wrap,body .renew-home>.wrap,body .renew-home .section>.wrap,body.renew-subpage .content,body.renew-subpage .breadcrumb {width:90%}
 body .layout-results-mascot {position:static;transform:none!important;animation:none!important;margin:0 5% 100px auto}
 body .renew-home .layout-hero {height:auto;min-height:570px}
 body .layout-hero .renew-hero-copy {width:90%;padding:48px 0 64px}
 body .renew-gym-copy {display:block}
 body .renew-gym-copy img {height:auto;max-height:none;aspect-ratio:1.5}
 body.renew-subpage .content .schedule-list {grid-template-columns:1fr}
 body main .booking-grid {grid-template-columns:1fr}
}
@media(max-width:600px){
 body {--vg-copy:17px;--vg-note:16px}
 body main h2,body .renew-home :is(h2,.section h2),body.renew-subpage .content h2 {font-size:25px;line-height:1.6}
 body main h3,body .renew-home h3,body.renew-subpage .content h3 {font-size:21px}
 body main :is(.pill,.text-link,.renew-button,.renew-text-link,.social-button,.renew-small-link),body .contact-banner .pill {font-size:16px}
 body .layout-booking {font-size:14px;padding:12px;gap:8px}
 body .layout-header-inner {gap:12px}
 body .layout-header-inner .brand,body .layout-header-inner .brand img {width:112px}
 body .layout-nav a {font-size:14px;padding:12px 0}
 body .layout-nav-inner {gap:12px;min-height:56px}
 body .vg-jump {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;gap:8px;margin-bottom:28px}
 body .vg-jump a {min-width:0;font-size:16px;padding:10px;line-height:1.6;gap:4px;overflow-wrap:anywhere}
 body.vg-readable .results-categories {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 body.vg-readable .results-category {padding:12px;min-width:0;gap:8px}
 body.vg-readable .results-category strong {font-size:18px;line-height:1.5}
 body.vg-readable .results-category>span:not([class]),body.vg-readable .results-category-number {display:none}
 body.vg-readable .results-category .results-category-link {font-size:14px;line-height:1.5}
 body main :is(.guide-facts,.info-list)>div {display:block;padding-block:18px}
 body main :is(.guide-facts,.info-list) dt {margin-bottom:8px}
 body main .faq-list dt {font-size:18px}
 body main :is(.guide-summary,.prepare-panel,.opening-hours),body .renew-profile {padding:22px 18px}
 body main .welcome-split {gap:24px}
 body main .layout-hero .renew-hero-intro {font-size:17px}
 body main .layout-hero .renew-actions {max-width:100%}
 body main .layout-hero .renew-button {font-size:16px}
 body main .layout-hero .renew-kicker {font-size:12px}
 body main .booking-times {grid-template-columns:1fr}
 body main .booking-actions {flex-wrap:wrap}
 body main .booking-card {padding:22px 18px}
 body .footer-bottom {padding-right:0}
 body main :is(td,th) {font-size:16px;line-height:1.8;overflow-wrap:break-word}
}
/* Section titles are slightly larger throughout the public site. */
body.vg-readable :is(h1,h2,h3) {text-wrap:balance}
body.vg-readable.renew-subpage .page-head h1 {font-size:46px}
body.vg-readable.renew-subpage .content h2,body.vg-readable main.renew-home h2,body.vg-readable .contact-banner h2 {font-size:34px;line-height:1.5}
body.vg-readable.renew-subpage .content h3,body.vg-readable main.renew-home h3 {font-size:26px;line-height:1.55}
body.vg-readable.sub-price .pg-content h3 {font-size:30px}
body.vg-readable.sub-price .pg-content h4 {font-size:20px}
body.vg-readable.renew-subpage .content .schedule-list article h2 {font-size:26px}
@media(max-width:600px){
 body.vg-readable.renew-subpage .page-head h1 {font-size:32px}
 body.vg-readable.renew-subpage .content h2,body.vg-readable main.renew-home h2,body.vg-readable .contact-banner h2 {font-size:28px;line-height:1.6}
 body.vg-readable.renew-subpage .content h3,body.vg-readable main.renew-home h3 {font-size:24px}
 body.vg-readable.sub-price .pg-content h3 {font-size:28px}
 body.vg-readable.sub-price .pg-content h4 {font-size:19px}
 body.vg-readable.renew-subpage .content .schedule-list article h2 {font-size:26px}
}

/* On phones, primary destinations are available in the MENU dialog. */
@media(max-width:600px){
 body .layout-results-mascot {position:fixed;margin:0;top:auto;bottom:calc(100px + env(safe-area-inset-bottom));right:7px;width:66px}
 body .layout-nav {display:none}
 body .layout-nav-inner {width:90%;min-height:48px;justify-content:flex-end;gap:0;align-items:center}
 body .layout-nav-inner .menu-button {width:44px;min-width:44px;min-height:44px;margin:0;flex-shrink:0}
 body.vg-readable main [id] {scroll-margin-top:72px}
}

/* One transparent mascot holds the sign; no separate bubble or white image plate. */
body .layout-results-mascot {width:128px;filter:none;background:none}
body .layout-results-mascot img {display:block;width:100%;height:auto;object-fit:contain;background:transparent;border-radius:0;margin:0;padding:0}
@media(max-width:600px){body .layout-results-mascot {width:100px;right:7px}}

/* Painted wooden boards: retain each button's existing background and text colors. */
body.vg-readable :is(button,[role="button"],input[type="submit"],input[type="button"],summary,.layout-booking,.renew-button,.renew-text-link,.renew-small-link,.text-link,.pill,.social-button,.mobile-cta a,.vg-jump a,.jump-links a,.pg-choices a,.results-category,.renew-other-courses a) {
 background-image:url('button-woodgrain-20261011.svg')!important;
 background-size:100% 100%;background-repeat:no-repeat;
 border-radius:5px 3px 5px 3px;
 box-shadow:inset 0 2px 0 #ffffff4d,inset 0 -3px 0 #61300638,0 3px 0 #61300625;
 text-shadow:0 1px 1px #00000018;
}
/* Keep Instagram's existing gradient underneath the grain. */
body.vg-readable a.social-button.social-instagram {
 background-image:url('button-woodgrain-20261011.svg'),linear-gradient(115deg,#8739ba,#c22769 55%,#ac4018)!important;
}

/* White painted navigation boards, with a distinct brown MENU control. */
body.vg-readable :is(.layout-nav a,.menu-panel nav a) {
 background:#faf9f5 url('button-woodgrain-20261011.svg') center/100% 100% no-repeat;
 color:#173e59;border:1px solid #d7d5cd;border-radius:4px;
 box-shadow:inset 0 2px 0 #fff,inset 0 -3px 0 #ccc5b780,0 2px 0 #79634a24;
 padding:10px 12px;min-height:44px;box-sizing:border-box;
}
body.vg-readable .layout-nav {gap:8px}
body.vg-readable :is(.menu-button,.close-menu) {background-color:#86532f;color:#fff;border-color:#6b3c1e}
body.vg-readable .menu-button span {background-color:#fff}
body.vg-readable :is(.layout-nav a,.menu-panel nav a):hover {background-color:#edeae1;color:#103e62}

/* Stronger light-blue boards for secondary actions and course choices. */
body.vg-readable :is(.text-link,.renew-text-link,.pill):not(.social-button):not(.solid):not(.layout-detail-button),
body.vg-readable :is(.vg-jump a,.jump-links a,.pg-choices a,.results-category,.renew-other-courses a) {
 background-color:#d3e5f0;color:#103e62;border-color:#80aac4;
}
body.vg-readable :is(.text-link,.renew-text-link):not(.social-button):not(.layout-detail-button) {
 display:inline-flex;align-items:center;padding:10px 14px;border:1px solid #80aac4;text-decoration:none;
}
body.vg-readable :is(.text-link,.renew-text-link,.pill):not(.social-button):not(.solid):not(.layout-detail-button):hover,
body.vg-readable :is(.vg-jump a,.jump-links a,.pg-choices a,.results-category,.renew-other-courses a):hover {
 background-color:#bdd8e9;color:#0b304b;
}
body.vg-readable.sub-price .pg-choices a {background-color:#d3e5f0;border-color:#80aac4;border-top-color:#ed7b0d}

/* Consistent photo frames in the kids page, including both practice galleries. */
body.vg-readable.sub-kids .content :is(.kids-gallery,.kids-action-gallery) {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
body.vg-readable.sub-kids .content :is(.kids-gallery,.kids-action-gallery) figure {width:100%;max-width:none;margin:0!important;min-width:0}
body.vg-readable.sub-kids .content :is(.kids-gallery img,.kids-action-gallery img,.welcome-split>img) {display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center 30%;border-radius:8px}
@media(max-width:700px){
 body.vg-readable.sub-kids .content :is(.kids-gallery,.kids-action-gallery) {grid-template-columns:1fr;gap:24px}
}

/* Athletic headline rises from the lower left; description stays at the upper left. */
body.vg-readable main .layout-hero .renew-hero-copy {
 width:88%;height:100%;padding:0;box-sizing:border-box;position:relative;text-align:left;
}
body.vg-readable main .layout-hero .renew-kicker {display:none}
body.vg-readable main .layout-hero .renew-hero-intro {
 position:absolute;top:42px;left:0;margin:0;padding-left:15px;border-left:4px solid #f78117;
 color:#fff;font-size:20px!important;line-height:1.8!important;font-weight:800;
 text-align:left;text-shadow:0 2px 7px #06233c,0 0 18px #06233c;white-space:normal;
}
body.vg-readable .layout-hero .renew-hero-intro>span {display:block}
body.vg-readable .layout-hero .hero-purpose {margin-top:6px;font-size:.86em}
body.vg-readable .layout-hero .renew-hero-copy h1.layout-hero-message {
 position:absolute;left:4px;bottom:110px;margin:0;max-width:100%;
 font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
 font-size:clamp(42px,5.6vw,78px);font-weight:1000;font-style:italic;
 line-height:1.45;letter-spacing:-.025em;text-align:left;text-wrap:nowrap;
 transform:rotate(-8deg) skewX(-5deg);transform-origin:left bottom;
 color:#fff;-webkit-text-stroke:1.5px #fff;paint-order:stroke fill;
 text-shadow:3px 4px 0 #103e62,5px 7px 0 #103e6299,0 5px 20px #06233c80;
}
body.vg-readable .layout-hero-message>span {display:block;width:max-content;position:relative;z-index:0}
body.vg-readable .layout-hero-message>span:first-child {font-size:.83em;letter-spacing:0}
body.vg-readable .layout-hero-message>span:last-child {
 color:#ff961f;-webkit-text-stroke:3px #fff;margin-top:3px;
}
body.vg-readable .layout-hero-message>span:last-child::after {
 content:"";position:absolute;z-index:-1;left:-2%;right:-3%;bottom:-.05em;height:.12em;
 background:#ff8612;clip-path:polygon(0 40%,100% 0,94% 58%,99% 72%,3% 100%,8% 64%);
}
body.vg-readable .layout-slides::after {
 background:linear-gradient(90deg,#082d4699,transparent 75%),linear-gradient(0deg,#071f36dd,transparent 65%),linear-gradient(180deg,#08273e70,transparent 36%);
}
@media(max-width:820px){
 body.vg-readable .renew-home .layout-hero {height:570px;min-height:0}
}
@media(max-width:600px){
 body.vg-readable .renew-home .layout-hero {height:calc(100svh - 224px);min-height:320px;max-height:700px}
 body.vg-readable main .layout-hero .renew-hero-copy {width:88%;padding:0;text-align:left;align-items:flex-start}
 body.vg-readable main .layout-hero .renew-hero-intro {
  top:28px;padding-left:10px;border-left-width:3px;
  font-size:clamp(13px,3.7vw,17px)!important;line-height:1.85!important;
 }
 body.vg-readable .layout-hero .hero-purpose {margin-top:4px;font-size:.88em}
 body.vg-readable .layout-hero .renew-hero-copy h1.layout-hero-message {
  left:2px;bottom:125px;font-size:clamp(28px,8.8vw,48px);line-height:1.5;
  letter-spacing:-.035em;margin:0;-webkit-text-stroke:1px #fff;
  text-shadow:2px 3px 0 #103e62,3px 5px 0 #103e6299,0 4px 14px #06233c;
 }
 body.vg-readable .layout-hero-message>span:last-child {-webkit-text-stroke:2px #fff}
 body.vg-readable .layout-slide img {object-position:55% 28%}
 body.vg-readable .layout-slide-controls {bottom:16px}
}
@media(max-width:600px) and (max-height:700px){
 body.vg-readable main .layout-hero .renew-hero-intro {top:18px;font-size:13px!important;line-height:1.7!important}
 body.vg-readable .layout-hero .renew-hero-copy h1.layout-hero-message {bottom:112px;font-size:clamp(27px,8.5vw,34px)}
}

/* Transparent brush lettering, with accessible text retained in the heading. */
body.vg-readable .layout-hero .renew-hero-copy h1.has-brush {
 width:min(740px,82%);max-width:none;transform:rotate(-8deg);filter:drop-shadow(2px 4px 1px #082a45) drop-shadow(0 2px 9px #082a4580);
}
body.vg-readable .layout-hero-message.has-brush>span {
 position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:0;padding:0;
}
.hero-brush-art {display:none}
.has-brush .hero-brush-art {display:block;width:100%;height:auto;overflow:visible}
.hero-brush-art .brush-stroke {stroke-dasharray:2332;stroke-dashoffset:0}
.hero-brush-art.is-writing .brush-first {animation:polidia-brush-write 1.35s cubic-bezier(.35,.05,.6,.95) .18s both}
.hero-brush-art.is-writing .brush-second {animation:polidia-brush-write 1.65s cubic-bezier(.3,.05,.65,.95) 1.55s both}
@keyframes polidia-brush-write {from{stroke-dashoffset:2332}to{stroke-dashoffset:0}}
@media(max-width:600px){
 body.vg-readable .layout-hero .renew-hero-copy h1.has-brush {width:100%;bottom:130px;left:0}
}
@media(max-width:600px) and (max-height:700px){
 body.vg-readable .layout-hero .renew-hero-copy h1.has-brush {bottom:117px}
}
@media(prefers-reduced-motion:reduce){
 .hero-brush-art.is-writing .brush-stroke {animation:none;stroke-dashoffset:0}
}
