/* Generated from style.css; edit scripts/generate-color-variants.mjs. */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600;700&display=swap');
:root{--ink:#263a36;--mint:#e8f1ed;--teal:#268c82;--paper:#fbfcfa;--line:#d7dedb;--accent:#ef8b72}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans','Noto Sans JP',sans-serif;font-size:16px;line-height:1.75}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}a:focus-visible{outline:3px solid var(--teal);outline-offset:4px}.site-header{height:82px;padding:0 clamp(22px,5vw,80px);display:flex;align-items:center;justify-content:space-between;background:rgba(251,252,250,.96);position:relative;z-index:10;border-bottom:1px solid var(--line)}.brand{font-size:18px;letter-spacing:.15em;font-weight:500;line-height:1.2;white-space:nowrap}.brand span{display:block;font-size:20px;letter-spacing:.52em;font-weight:600;padding-left:.15em}.brand b{font-weight:600}.brand b:nth-child(1){color:#23aa9e}.brand b:nth-child(2){color:#4985b5}.brand b:nth-child(3){color:#e2bb65}.brand b:nth-child(4){color:#e65370}.site-header nav{display:flex;gap:clamp(16px,3vw,42px);font-size:14px;font-weight:600}.site-header nav a:hover,.text-link:hover{color:var(--teal)}.hero{min-height:min(780px,82vh);position:relative;display:grid;grid-template-columns:52% 48%;background:#eff4f0}.hero-copy{padding:clamp(50px,8vw,125px) 7vw 100px;align-self:center;position:relative;z-index:1}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.24em;color:var(--teal);margin:0 0 20px}.hero h1{font-size:clamp(64px,8.5vw,142px);font-weight:500;line-height:.94;letter-spacing:-.065em;margin:0 0 46px}.hero h1 em{font-style:normal;color:var(--teal)}.hero-copy>p:last-child{font-size:clamp(16px,1.4vw,20px);line-height:2}.hero-image{background:url('/assets/lobby.jpg') center/cover no-repeat;min-height:420px}.hero-index{position:absolute;bottom:30px;left:7vw;font-size:12px;letter-spacing:.15em}.section-pad{padding:clamp(80px,10vw,155px) clamp(22px,7vw,112px)}.section-head{max-width:720px;margin:0 auto 64px;text-align:center}.section-head h2,h2{font-size:clamp(32px,4vw,60px);line-height:1.3;letter-spacing:-.035em;margin:0 0 24px;font-weight:600}.section-head>p:last-child{margin:0;font-size:17px;line-height:2}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:1260px;margin:auto}.choice-card{min-height:360px;background:#e3edea;padding:34px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .25s,background .25s}.choice-card:hover{transform:translateY(-6px);background:#d9e9e3}.rental-card{background:#f0ebe5}.rental-card:hover{background:#eae1d8}.choice-no{letter-spacing:.2em;font-size:12px;font-weight:700}.choice-bottom{display:grid;grid-template-columns:1fr auto;align-items:end;gap:3px 16px}.choice-bottom strong{font-size:clamp(25px,3vw,42px);font-weight:600;letter-spacing:-.025em}.choice-bottom small{grid-row:2;font-size:14px}.circle-arrow{grid-column:2;grid-row:1/3;border:1px solid currentColor;width:50px;height:50px;border-radius:50%;display:grid;place-items:center;font-size:24px}.about{background:var(--ink);color:#fff;display:grid;grid-template-columns:1.3fr .7fr;gap:10vw;align-items:end}.about .eyebrow{color:#92d3cb}.about>p{max-width:410px;margin:0 0 12px;line-height:2.2}.access{display:grid;grid-template-columns:1fr 1fr;gap:10vw;background:#fff}.access p{line-height:2.1}.access-note{border-top:1px solid var(--line);padding-top:35px;align-self:center;line-height:2.5}.text-link{border-bottom:1px solid currentColor;padding-bottom:5px;font-weight:600}footer{padding:55px 7vw;background:#ecf3ef;display:flex;gap:3vw;align-items:end;justify-content:space-between}footer p{margin:0}footer small{font-size:12px}@media(max-width:760px){.site-header{height:auto;min-height:72px;padding:15px 20px;align-items:flex-start}.brand{font-size:13px}.brand span{font-size:15px}.site-header nav{font-size:12px;gap:13px;justify-content:flex-end;flex-wrap:wrap;padding-top:6px;max-width:55%}.hero{display:flex;flex-direction:column-reverse;min-height:0}.hero-image{min-height:45vh}.hero-copy{padding:52px 25px 70px}.hero h1{font-size:clamp(63px,14vw,100px);margin-bottom:22px}.hero-index{bottom:18px;left:25px}.section-head{margin-bottom:35px}.choice-grid,.about,.access{grid-template-columns:1fr}.choice-card{min-height:270px;padding:25px}.about,.access{gap:25px}.access-note{padding-top:20px}footer{display:block}footer p{margin:28px 0}}
.page-intro{background:#e9f1ee;min-height:620px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.page-intro h1{font-size:clamp(45px,6vw,88px);line-height:1.25;letter-spacing:-.05em;font-weight:600;margin:0 0 32px}.page-intro>p:not(.eyebrow){font-size:18px;line-height:2;max-width:590px}.primary-link{display:inline-flex;margin-top:24px;align-items:center;justify-content:center;background:var(--ink);color:#fff;min-height:58px;padding:14px 28px;font-size:15px;font-weight:600;transition:background .2s,transform .2s}.primary-link:hover{background:var(--teal);transform:translateY(-2px)}.programs{background:#fff}.program-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:45px}.program-grid article{background:#fff;min-height:270px;padding:32px;display:flex;flex-direction:column}.program-grid article>span,.spec-grid span{font-size:12px;letter-spacing:.15em;color:var(--teal);font-weight:700}.program-grid h3,.spec-grid h3{font-size:clamp(20px,2vw,27px);line-height:1.4;margin:25px 0 10px}.program-grid p,.spec-grid p{margin:0;color:#53605c;font-size:15px}.program-grid article>a{font-size:14px;font-weight:700;margin-top:auto;padding-top:20px;text-decoration:underline;text-underline-offset:5px}.cross-link{text-align:center;background:#e8efeb}.cross-link>p:not(.eyebrow){max-width:570px;margin:0 auto}.rental-intro{background:#f0f2ed}.rental-space{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.rental-space>div>p:last-child{line-height:2.2}.rental-space img{width:100%;height:min(570px,45vw);object-fit:cover;object-position:center}.specs{background:#fff}.spec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:44px}.spec-grid>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px;min-height:260px}.rules{display:grid;grid-template-columns:1fr 1fr;gap:10vw;background:#e9f1ee}.rules p{line-height:2.1}.rental-flow ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;counter-reset:flow}.rental-flow li{border-top:1px solid var(--line);padding-top:32px;display:flex;flex-direction:column;gap:15px}.rental-flow li:before{counter-increment:flow;content:'0' counter(flow);font-size:42px;color:var(--teal);font-weight:500;line-height:1}.rental-flow li strong{font-size:20px}.rental-flow li span{font-size:15px;color:#53605c}.subnote{font-size:14px;margin-top:35px;color:#53605c}@media(max-width:760px){.page-intro{min-height:500px}.page-intro h1{font-size:clamp(42px,10vw,68px)}.page-intro>p:not(.eyebrow){font-size:16px}.program-grid{grid-template-columns:1fr}.program-grid article{min-height:225px}.rental-space,.rules{grid-template-columns:1fr;gap:30px}.rental-space img{height:300px}.spec-grid{grid-template-columns:1fr 1fr}.spec-grid>div{min-height:230px;padding:20px}.rental-flow ol{grid-template-columns:1fr}.rental-flow li{padding-top:22px}.site-header nav a[aria-current=page]{color:var(--teal)}}
/* PARK palette: deep teal from the shaded studio, apricot from the timber floor. */
:root{--ink:#213c38;--mint:#e6efeb;--teal:#2b6d67;--paper:#fbfcfa;--line:#d5ded9;--accent:#e8a47e}
.site-header nav a[aria-current=page]{color:var(--teal);text-decoration:underline;text-underline-offset:8px}
.rental-hero{display:grid;grid-template-columns:50% 50%;min-height:670px;background:#eaf2ee}
.rental-hero-text{padding:clamp(80px,9vw,150px) clamp(25px,7vw,110px);align-self:center}
.rental-hero h1{font-size:clamp(40px,5vw,78px);line-height:1.28;letter-spacing:-.055em;margin:0 0 32px;font-weight:600}
.rental-hero-text>p:not(.eyebrow){font-size:18px;line-height:2}
.rental-hero img{width:100%;height:100%;min-height:570px;object-fit:cover}
.rental-overview{background:#fff}
.use-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:25px;max-width:1260px;margin:auto}
.use-card{background:#f4f7f4}
.use-card img{display:block;width:100%;height:310px;object-fit:cover}
.use-card:nth-child(4) img{object-position:center}
.use-card>div{padding:30px 34px 38px}
.use-card span{font-size:12px;letter-spacing:.18em;color:var(--teal);font-weight:700}
.use-card h3{font-size:clamp(23px,2.5vw,32px);margin:14px 0 14px}
.use-card p{max-width:550px;margin:0;line-height:1.9}
.photo-note{text-align:center;color:#66736f;font-size:14px;margin:38px 0 0}
.rental-gallery{background:#eaf2ee}
.gallery-head{display:flex;justify-content:space-between;align-items:end;gap:25px}
.gallery-head>p{font-size:14px;color:#5e6d69}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:36px}
.gallery-grid a{display:block;overflow:hidden;aspect-ratio:1.25}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.gallery-grid a:hover img{transform:scale(1.04)}
.price-section{background:#fff;max-width:100%}
.price-lead{font-size:17px;line-height:2;margin:0 0 38px}
.price-grid{max-width:940px;border-top:1px solid var(--line)}
.price-row{display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:29px 15px;border-bottom:1px solid var(--line);gap:20px}
.price-row>div:first-child{display:grid;gap:6px}
.price-row small{font-size:12px;letter-spacing:.14em;color:var(--teal);font-weight:700}
.price-row strong{font-size:19px}
.price-fig{display:flex;align-items:baseline;justify-content:space-between;gap:20px}
.price-fig>span{font-size:15px;color:#6e7d76;text-decoration:line-through}
.price-fig>strong{font-size:clamp(33px,4vw,50px);color:var(--teal);line-height:1.2;white-space:nowrap}
.price-fig>strong small{font-size:14px;letter-spacing:0;color:var(--ink)}
.booking-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:20px}
.booking-actions.center{justify-content:center}
.booking-actions .primary-link{margin:0}
.is-pending{opacity:.65;cursor:default}
.lesson-jumps{display:flex;gap:10px;flex-wrap:wrap;margin-top:34px}
.lesson-jumps a{border:1px solid #a7c1b6;border-radius:99px;padding:7px 17px;font-size:14px}
.lesson-jumps a:hover{background:#d6e6de}
.lesson-feature{padding:95px clamp(22px,7vw,112px);background:#fff;scroll-margin-top:20px}
.lesson-feature.tint{background:#edf3ef}
.lesson-feature-inner{max-width:1250px;margin:auto;display:grid;grid-template-columns:45% 50%;gap:5%;align-items:start}
.lesson-copy h2{font-size:clamp(35px,4vw,60px);line-height:1.2;overflow-wrap:anywhere}
.lesson-copy p:not(.eyebrow){line-height:2;max-width:520px}
.lesson-lead{font-size:20px;font-weight:600}
.teachers{display:grid;gap:20px}
.two-teachers{grid-template-columns:1fr 1fr}
.teacher-card{background:#fff;box-shadow:0 14px 44px rgba(31,64,55,.07)}
.teacher-card img{width:100%;height:330px;object-fit:cover;display:block}
.two-teachers .teacher-card img{height:250px}
.teacher-card>div{padding:25px}
.teacher-card small{font-size:13px;color:var(--teal);font-weight:600}
.teacher-card h3{font-size:25px;margin:10px 0 12px;line-height:1.4}
.teacher-card p{font-size:14px;line-height:1.9;margin:0}
.teacher-card p+p{margin-top:1.1em}
.lesson-prices{background:#203c38;color:#fff}
.lesson-prices .eyebrow{color:#9fd7cd}
.lesson-prices>p:not(.eyebrow){max-width:760px;line-height:2}
.lesson-price-table{margin:35px 0;max-width:960px;border-top:1px solid #59716d}
.lesson-price-table>div{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;border-bottom:1px solid #59716d;padding:17px 0}
.lesson-prices .subnote{color:#c7d8d0}
@media(max-width:900px){
.rental-hero{grid-template-columns:1fr;min-height:0}.rental-hero img{height:420px;min-height:0;grid-row:1}.rental-hero-text{padding:55px 7vw}
.lesson-feature-inner{grid-template-columns:1fr;gap:35px}
}
@media(max-width:650px){
.use-grid,.gallery-grid{grid-template-columns:1fr 1fr}.use-grid{gap:14px}.use-card img{height:170px}.use-card>div{padding:19px}.use-card h3{font-size:20px}.use-card p{font-size:14px}.gallery-head{display:block}.gallery-grid{gap:7px}.rental-hero img{height:300px}
.price-row{grid-template-columns:1fr;gap:10px}.price-fig{justify-content:space-between}.lesson-feature{padding:70px 22px}.two-teachers{grid-template-columns:1fr 1fr;gap:10px}.two-teachers .teacher-card img{height:180px}.teacher-card>div{padding:17px}.teacher-card h3{font-size:19px}.teacher-card p{font-size:13px}
.lesson-price-table>div{grid-template-columns:1fr 1fr;gap:4px 15px}.lesson-price-table>div strong{grid-column:1/-1}
}
@media(max-width:430px){.use-grid{grid-template-columns:1fr}.use-card img{height:240px}.gallery-grid{grid-template-columns:1fr 1fr}.two-teachers{grid-template-columns:1fr}.two-teachers .teacher-card img{height:290px}}

/* Daylight palette: clear sun yellow, blue and a small pop of pink. */
:root{--ink:#26364d;--mint:#e8f5f5;--teal:#315784;--paper:#fffffc;--line:#dce5e9;--accent:#c95673;--sun:#ffe76c;--soft:#fff9de}
body{background:var(--paper)}
.site-header{background:#fffffc;border-bottom-color:#dce5e9}
.site-header nav a[aria-current=page]{color:#315784}
.eyebrow{color:#315784}
.hero{background:var(--sun)}
.hero-copy{background:radial-gradient(circle at 18% 20%,rgba(255,255,255,.38) 0 10%,transparent 30%)}
.hero h1 em{color:#bc3b68}
.hero-image{background-image:url('/assets/park-photos/additional/2c4a9009.jpg');background-position:center center}
.hero-index{color:#3f5671}
.hero-cta{display:inline-flex;margin-top:32px;border-bottom:2px solid var(--ink);font-weight:700;padding:0 0 7px}
.choices{background:#fffffc}
.choice-card{background:#d7eef2}.choice-card:hover{background:#c6e8ed}
.rental-card{background:#ffd9df}.rental-card:hover{background:#ffc9d3}
.about{background:#cbeaf0;color:#26364d}
.about .eyebrow{color:#315784}
.access{background:#fffffc}
.primary-link{background:#284d7b;color:#fff}
.primary-link:hover{background:#1b3659}
.cross-link,.rules,.rental-gallery,.lesson-feature.tint,.soft-section{background:#e8f5f5}
.page-intro,.rental-hero{background:#fff2ac}
.lesson-prices{background:#2b507c;color:#fff}
.lesson-prices .eyebrow{color:#ffe994}
.lesson-price-table,.lesson-price-table>div{border-color:#718caa}
.lesson-prices .subnote{color:#e0e9f3}
.use-card{background:#f7faf9}
.spec-grid p,.program-grid p,.subnote,.rental-flow li span{color:#556475}
.price-fig>strong{color:#315784}
footer{background:#ffe76c;flex-wrap:wrap}
.footer-links{display:flex;flex-wrap:wrap;gap:18px;font-size:13px;font-weight:600}
.footer-links a:hover,.inline-link:hover{color:#315784}
.inline-link{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;font-weight:700}
.lesson-jumps a{border-color:#7795b1;background:#fffffc}.lesson-jumps a:hover{background:#d8eef3}
.teacher-card{box-shadow:0 14px 44px rgba(44,75,111,.09)}
.teacher-card img,.two-teachers .teacher-card img{height:330px;object-fit:contain;object-position:center;background:#f0f4f5}
.two-teachers .teacher-card img{height:270px}
.teacher-card small{color:#315784}
.rental-overview .section-head{max-width:810px}
.idea-list{max-width:1260px;margin:60px auto 0;padding:40px;background:#d7eef2}
.idea-list h3{font-size:clamp(25px,3vw,37px);margin:0 0 25px}
.idea-list>div{display:flex;flex-wrap:wrap;gap:9px}
.idea-list span{background:#fffffc;border:1px solid #9bc6d0;border-radius:30px;padding:7px 15px;font-size:14px}
.sun-page-intro{background:#ffe76c;min-height:440px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.sun-page-intro h1{font-size:clamp(42px,6vw,82px);line-height:1.25;letter-spacing:-.055em;margin:0 0 22px}
.sun-page-intro>p:not(.eyebrow){font-size:18px;max-width:730px}
.sun-page-intro .primary-link{margin-top:15px}
.location-grid{display:grid;grid-template-columns:42% 58%;gap:35px;align-items:center;padding-right:calc(clamp(22px,7vw,112px) + 35px);background:#fffffc}
.location-grid p{line-height:2}
.map-frame{border:0;width:100%;height:440px;background:#e9f1f4}
.route{background:#e8f5f5}
.route-lead,.section-summary{max-width:780px;font-size:17px;line-height:2}
.route-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin:40px 0}
.route-grid article{background:#fffffc}
.route-copy{padding:25px 30px 30px}
.route-copy small{color:#315784;font-size:21px;font-weight:700}
.route-copy h3{font-size:23px;margin:8px 0}
.route-copy p{margin:0}
.photo-slot{min-height:195px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px;border:2px dashed #9fc8d2;background:linear-gradient(150deg,#eaf6f7,#fffffc);color:#315784;letter-spacing:.12em;font-size:12px;font-weight:700}
.photo-slot span{font-size:15px;letter-spacing:0;font-weight:500;margin-top:10px;color:#556475}
.guide-flow{background:#fffffc}
.guide-flow-grid,.friendly-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:42px 0 0}
.guide-flow-grid article,.friendly-grid article{padding:28px;background:#fff;border:1px solid #dce5e9}
.guide-flow-grid small{font-size:34px;color:#315784}
.guide-flow-grid h3,.friendly-grid h3{font-size:21px;margin:12px 0}
.guide-flow-grid p,.friendly-grid p{font-size:15px;line-height:1.9;margin:0}
.thanks-hero{background:linear-gradient(90deg,rgba(248,213,95,.86),rgba(248,213,95,.08)),url('/assets/park-photos/additional/2c4a9009.jpg') center/cover;min-height:680px;display:flex;align-items:center;padding:80px 7vw}
.thanks-hero>div{max-width:700px}
.thanks-hero h1{font-size:clamp(52px,7vw,110px);line-height:1.04;letter-spacing:-.055em;margin:0 0 28px}
.thanks-hero p:last-child{font-size:20px;font-weight:600}
.thanks-body{background:#fffffc}.thanks-body p:not(.eyebrow){max-width:760px;line-height:2.1}
.supporter-section{background:#ffe76c}
.supporter-list{list-style:none;padding:0;margin:42px 0 0;columns:3;max-width:950px;line-height:2.5;font-size:17px}
.supporter-list li{break-inside:avoid}
.manual-section{scroll-margin-top:20px}
.manual-columns{display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:start}
.manual-columns p{line-height:2}
.simple-steps{list-style:none;padding:0;margin:20px 0 30px;max-width:780px}
.simple-steps li{display:flex;flex-direction:column;border-top:1px solid #bfced5;padding:19px 0}
.simple-steps li:last-child{border-bottom:1px solid #bfced5}
.simple-steps strong{font-size:19px}
.simple-steps span{font-size:15px;margin-top:5px}
.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.manual-section .photo-slot{min-height:175px}
.equipment-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:40px}
.equipment-grid article{background:#f0f8f8;padding:27px}
.equipment-grid h3{font-size:21px;margin:0 0 13px}
.equipment-grid p{line-height:1.9}
.equipment-grid .photo-slot{min-height:140px}
.manual-pending{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:36px}
.manual-pending article{padding:30px;background:#fffffc}
.manual-pending h3{font-size:25px;margin:0 0 10px}
.manual-pending p:not(.eyebrow){line-height:1.9}
.guide-nav{display:flex;gap:9px;flex-wrap:wrap;margin-top:25px}
.guide-nav a{border:1px solid #567798;border-radius:30px;padding:6px 14px;font-size:14px;background:#fff4c8}
.reset-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:30px 0}
@media(max-width:900px){.location-grid,.manual-columns{grid-template-columns:1fr}.location-grid{padding-right:clamp(22px,7vw,112px)}.guide-flow-grid,.friendly-grid{grid-template-columns:repeat(2,1fr)}.reset-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.hero-copy{padding-top:48px}.hero-image{min-height:42vh}.route-grid,.guide-flow-grid,.friendly-grid,.equipment-grid,.manual-pending{grid-template-columns:1fr}.sun-page-intro{min-height:390px}.map-frame{height:330px}.supporter-list{columns:2;font-size:15px}.thanks-hero{min-height:550px}.teacher-card img,.two-teachers .teacher-card img{height:260px}.two-teachers .teacher-card img{height:200px}.photo-pair{grid-template-columns:1fr 1fr}.photo-pair .photo-slot{min-height:145px}.footer-links{margin:20px 0}}
@media(max-width:430px){.two-teachers .teacher-card img{height:290px}.supporter-list{columns:1}.reset-grid{grid-template-columns:1fr 1fr}}

/* Homepage: both paths to the PARK are visible on arrival. */
.home-stage{height:calc(100svh - 82px);min-height:640px;max-height:900px;position:relative;isolation:isolate;overflow:hidden;background:#ffe76c}
.home-stage-photo{position:absolute;inset:0 0 0 39%;clip-path:polygon(18% 0,100% 0,100% 100%,0 100%);z-index:-1}
.home-stage-photo img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.home-stage-copy{position:absolute;top:8%;left:5.3%;width:min(650px,55%);z-index:1}
.home-stage-copy .eyebrow{font-size:13px;margin-bottom:20px}
.home-stage h1{font-size:clamp(51px,6.2vw,100px);line-height:1.08;letter-spacing:-.07em;margin:0 0 26px;font-weight:700;white-space:nowrap}
.home-stage h1 em{font-style:normal;color:#a63b60}
.home-stage-copy>p:last-child{font-size:clamp(16px,1.4vw,20px);line-height:1.9;font-weight:600;margin:0}
.home-actions{position:absolute;left:5.3%;right:5.3%;bottom:4.5%;display:grid;grid-template-columns:1fr 1fr;gap:18px;z-index:2}
.home-action{height:clamp(200px,25vh,265px);display:grid;grid-template-columns:57% 43%;box-shadow:0 16px 30px rgba(25,50,75,.12);transition:transform .25s ease,box-shadow .25s ease;overflow:hidden}
.home-action:hover{transform:translateY(-8px);box-shadow:0 23px 38px rgba(25,50,75,.2)}
.home-action-lessons{background:#d7eef2}
.home-action-rental{background:#ffd9df}
.home-action-copy{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:clamp(20px,2.5vw,34px);z-index:1}
.home-action-copy small{font-size:12px;letter-spacing:.15em;font-weight:700;color:#315784}
.home-action-copy strong{font-size:clamp(25px,3vw,43px);line-height:1.25;letter-spacing:-.045em;margin:auto 0 10px}
.home-action-copy>span{font-size:clamp(12px,1.15vw,15px);font-weight:600;line-height:1.4;padding-right:31px}
.home-action-copy b{position:absolute;right:12px;bottom:15px;width:38px;height:38px;border:1.5px solid #26364d;border-radius:50%;display:grid;place-items:center;font-size:20px;line-height:1;font-weight:400;transition:transform .25s}
.home-action:hover b{transform:translate(2px,-2px)}
.home-action img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.home-action-lessons img{object-position:center 38%}
.home-action-rental img{object-position:center}
@media(max-width:900px){
.home-stage{min-height:680px}.home-stage-photo{inset:0 0 28% 35%}.home-stage-copy{top:8%;width:60%}.home-stage h1{font-size:clamp(44px,6.1vw,70px)}
.home-action{grid-template-columns:59% 41%}.home-action-copy strong{font-size:clamp(24px,3.3vw,34px)}
}
@media(max-width:650px){
.home-stage{height:auto;min-height:0;max-height:none;padding:0 0 18px;overflow:visible}
.home-stage-photo{position:relative;inset:auto;height:185px;clip-path:none;z-index:0}
.home-stage-photo img{object-position:center 43%}
.home-stage-copy{position:relative;top:auto;left:auto;width:auto;padding:24px 22px 16px}
.home-stage-copy .eyebrow{margin:0 0 8px;font-size:11px}
.home-stage h1{font-size:clamp(43px,9.8vw,64px);line-height:1.13;margin:0 0 12px;white-space:normal}
.home-stage-copy>p:last-child{font-size:14px;line-height:1.65}
.home-actions{position:relative;left:auto;right:auto;bottom:auto;grid-template-columns:1fr;gap:10px;margin:0 16px}
.home-action{height:155px;grid-template-columns:62% 38%;box-shadow:0 6px 16px rgba(25,50,75,.1)}
.home-action-copy{padding:17px 19px}.home-action-copy strong{font-size:25px;margin:auto 0 4px}
.home-action-copy>span{font-size:12px}.home-action-copy b{width:31px;height:31px;right:9px;bottom:10px;font-size:17px}
}

/* Browser-only copy trial mode. */
.copy-lab-target{cursor:text;outline:2px dashed transparent;outline-offset:4px}
.copy-lab-target:hover,.copy-lab-target:focus{outline-color:#c95673}
.copy-lab-target[contenteditable="true"]{outline:3px solid #315784;background:rgba(255,255,255,.75);min-width:50px}
.copy-lab-panel{position:fixed;right:16px;bottom:16px;z-index:1000;width:min(345px,calc(100vw - 32px));background:#26364d;color:#fff;padding:18px 19px;border-radius:14px;box-shadow:0 12px 35px rgba(10,32,55,.3);font-size:14px;line-height:1.55}
.copy-lab-panel strong{display:block;font-size:17px}.copy-lab-panel p{font-size:13px;margin:7px 0 8px}
.copy-lab-panel small{display:block;color:#dce9f3;font-size:12px}
.copy-lab-panel .copy-lab-hint{min-height:34px;margin-top:3px}
.copy-lab-panel>div{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.copy-lab-panel button{appearance:none;border:1px solid #a9c0d4;border-radius:7px;background:#fff;color:#26364d;font:inherit;font-size:12px;font-weight:700;padding:6px 9px;cursor:pointer}
.copy-lab-panel button:hover{background:#ffe76c}
@media(max-width:650px){.copy-lab-panel{right:8px;bottom:8px;padding:12px 14px;width:min(300px,calc(100vw - 16px))}.copy-lab-panel p{font-size:12px}}

/* A shared, sunlit visual language for every page. */
.page-intro.lessons-intro,.sun-page-intro{position:relative;isolation:isolate;overflow:hidden;display:block;min-height:610px;padding:0;background:var(--sun)}
.page-hero-copy{position:relative;z-index:2;width:57%;padding:clamp(70px,8vw,125px) 0 72px clamp(24px,7vw,110px)}
.page-hero-copy h1,.page-intro .page-hero-copy h1{font-size:clamp(46px,5.7vw,88px);line-height:1.16;letter-spacing:-.065em;font-weight:700;margin:0 0 27px}
.page-hero-copy h1 em{font-style:normal;color:#a63b60}
.page-hero-copy>p:not(.eyebrow){font-size:clamp(16px,1.35vw,19px);line-height:1.9;max-width:600px;margin:0}
.page-hero-visual{position:absolute;inset:0 0 0 45%;clip-path:polygon(17% 0,100% 0,100% 100%,0 100%);overflow:hidden}
.page-hero-visual img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.lessons-intro .page-hero-visual img,.lesson-guide-intro .page-hero-visual img{object-position:center 30%}
.page-hero-copy .lesson-jumps,.page-hero-copy .guide-nav{max-width:640px;margin-top:30px}
.page-hero-copy .lesson-jumps a,.page-hero-copy .guide-nav a{background:#fffffc;border-color:#26364d;font-weight:700;transition:transform .2s,background .2s}
.page-hero-copy .lesson-jumps a:hover,.page-hero-copy .guide-nav a:hover{background:#d7eef2;transform:translateY(-3px)}
.access-visual{background:#d7eef2;color:#26364d;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;line-height:1}
.access-visual::before{content:"";position:absolute;width:60%;aspect-ratio:1;border:3px solid rgba(49,87,132,.2);border-radius:50%;transform:rotate(-19deg) scaleX(1.35)}
.access-visual span{font-size:clamp(40px,6vw,98px);font-weight:800;letter-spacing:-.065em;z-index:1}
.access-visual strong{font-size:clamp(45px,5vw,86px);color:#a63b60;letter-spacing:-.05em;z-index:1}
.access-visual small{margin-top:25px;background:#fffffc;border-radius:100px;padding:12px 20px;font-weight:700;font-size:15px;z-index:1}
.rental-hero{position:relative;isolation:isolate;display:block;min-height:650px;background:var(--sun)}
.rental-hero-text{position:relative;z-index:1;width:60%;padding:clamp(80px,8vw,135px) 0 100px clamp(24px,7vw,110px)}
.rental-hero h1{font-size:clamp(46px,5.8vw,89px);line-height:1.15;font-weight:700;max-width:800px}
.rental-hero img{position:absolute;inset:0 0 0 43%;width:57%;height:100%;min-height:0;clip-path:polygon(17% 0,100% 0,100% 100%,0 100%);object-fit:cover}
.section-head h2,.section-pad>h2,.lesson-copy h2{font-weight:700;letter-spacing:-.055em}
.use-grid{gap:17px}.use-card{background:#e8f5f5;transition:transform .25s,box-shadow .25s}
.use-card:nth-child(3n+2){background:#fff0f2}.use-card:nth-child(3n){background:#fff9de}
.use-card:hover{transform:translateY(-5px);box-shadow:0 15px 30px rgba(38,54,77,.12)}
.rental-gallery{background:#d7eef2}.idea-list{background:var(--sun)}
.lesson-feature{position:relative}.lesson-feature.tint{background:#e8f5f5}
.lesson-feature:nth-of-type(4n+2){background:#fff0f2}
.lesson-copy .eyebrow{color:#315784}.lesson-copy h2{color:#26364d}
.lesson-feature-inner{position:relative}.lesson-feature-inner::before{content:"";position:absolute;right:0;top:-45px;width:76px;height:7px;background:#c95673}
.teacher-card{border:1px solid #dce5e9}
.guide-flow-grid article,.friendly-grid article,.route-grid article,.equipment-grid article,.manual-pending article{box-shadow:0 8px 20px rgba(38,54,77,.05)}
.guide-flow-grid article:nth-child(3n+1),.friendly-grid article:nth-child(3n+1){background:#e8f5f5}
.guide-flow-grid article:nth-child(3n+2),.friendly-grid article:nth-child(3n+2){background:#fff0f2}
.guide-flow-grid article:nth-child(3n),.friendly-grid article:nth-child(3n){background:#fff9de}
.guide-flow-grid small,.route-copy small{color:#a63b60;font-weight:800}
.route-grid article:nth-child(even) .photo-slot{background:#fff0f2;border-color:#edabc0}
.manual-section:nth-of-type(3n) .eyebrow{color:#a63b60}
.thanks-hero{position:relative;isolation:isolate;background:var(--sun);overflow:hidden}
.thanks-hero::before{content:"";position:absolute;inset:0 0 0 39%;z-index:-1;background:url('/assets/park-photos/additional/2c4a9009.jpg') center/cover;clip-path:polygon(18% 0,100% 0,100% 100%,0 100%)}
.thanks-hero>div{max-width:59%}.thanks-hero h1{font-weight:700;font-size:clamp(45px,6.5vw,103px);overflow-wrap:anywhere}
.supporter-section{background:#d7eef2}.supporter-list li{padding:1px 0}
@media(max-width:900px){
.page-intro.lessons-intro,.sun-page-intro{min-height:0}
.page-hero-copy{width:64%;padding:70px 0 70px 6vw}
.page-hero-visual{inset:0 0 0 49%}
.rental-hero{min-height:0}.rental-hero-text{width:64%;padding:80px 0 75px 6vw}.rental-hero img{inset:0 0 0 49%;width:51%;height:100%;grid-row:auto}
}
@media(max-width:650px){
.site-header{display:grid;grid-template-columns:1fr;gap:12px;min-height:0;padding:14px 17px 9px}
.site-header .brand{font-size:13px;width:max-content}.site-header .brand span{font-size:15px}
.site-header nav{max-width:none;width:100%;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;text-align:center;font-size:12px;white-space:nowrap}
.site-header nav a{padding:8px 2px;border-top:1px solid #dce5e9}
.site-header nav a[aria-current=page]{text-decoration:none;border-top:3px solid #315784;padding-top:6px}
.home-stage{overflow:hidden;padding-bottom:22px}
.home-stage-photo{height:clamp(170px,45vw,235px);clip-path:polygon(0 0,100% 0,100% 100%,0 85%);margin-bottom:-20px;overflow:hidden}
.home-stage-copy{padding:30px 21px 19px}
.home-stage h1{font-size:clamp(45px,11vw,68px)}
.home-stage-copy>p:last-child{font-size:14px}
.home-actions{gap:12px;margin:0 16px}
.home-action{height:165px;grid-template-columns:57% 43%;border-radius:3px}
.home-action-copy{padding:16px}
.home-action-copy strong{font-size:clamp(22px,6vw,28px);line-height:1.2}
.home-action-copy>span{font-size:11px;line-height:1.35;padding-right:28px;overflow-wrap:anywhere}
.home-action-copy b{width:29px;height:29px;right:8px;bottom:10px}
.page-intro.lessons-intro,.sun-page-intro{display:flex;flex-direction:column-reverse;padding:0;overflow:hidden}
.page-hero-visual{position:relative;inset:auto;width:100%;height:220px;flex:none;clip-path:polygon(0 0,100% 0,100% 100%,0 84%);margin-bottom:-20px}
.page-hero-copy{width:100%;padding:35px 22px 53px}
.page-hero-copy h1,.page-intro .page-hero-copy h1{font-size:clamp(39px,9.3vw,58px);line-height:1.17;margin:0 0 20px;overflow-wrap:anywhere}
.page-hero-copy>p:not(.eyebrow){font-size:15px;line-height:1.8}
.page-hero-copy .lesson-jumps,.page-hero-copy .guide-nav{margin-top:24px}
.page-hero-copy .lesson-jumps a,.page-hero-copy .guide-nav a{font-size:12px;padding:5px 11px}
.access-visual{padding-top:30px}.access-visual span{font-size:56px}.access-visual strong{font-size:50px}.access-visual small{margin-top:16px;font-size:12px}
.rental-hero{display:flex;flex-direction:column-reverse;overflow:hidden}
.rental-hero img{position:relative;inset:auto;width:100%;height:220px;min-height:0;clip-path:polygon(0 0,100% 0,100% 100%,0 84%);margin-bottom:-20px}
.rental-hero-text{width:100%;padding:35px 22px 53px}
.rental-hero h1{font-size:clamp(40px,9.7vw,61px);margin-bottom:20px}
.rental-hero-text>p:not(.eyebrow){font-size:15px}
.thanks-hero{display:flex;flex-direction:column;align-items:stretch;min-height:0;padding:0}
.thanks-hero::before{position:relative;display:block;inset:auto;width:100%;height:220px;clip-path:polygon(0 0,100% 0,100% 100%,0 84%);margin-bottom:-20px}
.thanks-hero>div{max-width:none;padding:38px 22px 65px}.thanks-hero h1{font-size:clamp(45px,11vw,67px)}
.thanks-hero p:last-child{font-size:16px}
.section-pad{padding-top:76px;padding-bottom:76px}
.lesson-feature-inner::before{top:-28px;width:55px}
}

/* A chalk-like underline follows the visible text, including the full stop. */
.home-stage .home-title-line{display:inline-block}
.home-stage h1 em.home-title-line{position:relative;isolation:isolate}
.home-stage h1 em.home-title-line::after{content:"";position:absolute;left:.02em;right:.52em;bottom:.015em;height:.16em;background:url('/assets/chalk-underline.svg') center/100% 100% no-repeat;z-index:-1;transform:rotate(-.5deg);transform-origin:left center;pointer-events:none}

/* Motion is added only when a visitor allows it. */
@media(prefers-reduced-motion:no-preference){
@keyframes parkRise{from{opacity:0;transform:translate3d(0,28px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes parkImage{from{transform:scale(1.055)}to{transform:scale(1)}}
@keyframes parkAngle{from{transform:translate3d(25px,0,0);opacity:.7}to{transform:translate3d(0,0,0);opacity:1}}
@keyframes homePhotoOpen{from{clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%)}to{clip-path:polygon(18% 0,100% 0,100% 100%,0 100%)}}
@keyframes homePhotoOpenMobile{from{clip-path:polygon(0 0,100% 0,100% 0,0 0)}to{clip-path:polygon(0 0,100% 0,100% 100%,0 85%)}}
@keyframes homePhotoZoom{from{transform:scale(1.18) translate3d(2%,0,0)}to{transform:scale(1) translate3d(0,0,0)}}
@keyframes homeTitleEnter{from{opacity:0;transform:translate3d(0,52px,0) rotate(-2deg)}to{opacity:1;transform:translate3d(0,0,0) rotate(0)}}
@keyframes homeCardEnter{from{opacity:0;transform:translate3d(0,85px,0) rotate(-2deg) scale(.94)}to{opacity:1;transform:translate3d(0,0,0) rotate(0) scale(1)}}
@keyframes homeUnderline{from{transform:rotate(-.5deg) scaleX(0)}to{transform:rotate(-.5deg) scaleX(1)}}
.page-hero-copy,.rental-hero-text,.thanks-hero>div{animation:parkRise .75s cubic-bezier(.2,.7,.2,1) both}
.home-stage-photo{animation:homePhotoOpen 1.35s .08s cubic-bezier(.22,.75,.2,1) both}
.home-stage-photo img{animation:homePhotoZoom 1.8s cubic-bezier(.2,.7,.2,1) both}
.home-stage-copy .eyebrow{animation:parkRise .65s .12s cubic-bezier(.2,.7,.2,1) both}
.home-stage .home-title-line{display:inline-block;animation:homeTitleEnter .95s cubic-bezier(.16,.8,.22,1) both}
.home-stage .home-title-line:nth-of-type(1){animation-delay:.25s}
.home-stage .home-title-line:nth-of-type(2){animation-delay:.42s}
.home-stage h1 em.home-title-line{position:relative;isolation:isolate;animation-delay:.59s}
.home-stage h1 em.home-title-line::after{animation:homeUnderline .75s 1.15s cubic-bezier(.2,.75,.2,1) both}
.home-stage-copy>p:last-child{animation:parkRise .85s .85s cubic-bezier(.2,.7,.2,1) both}
.page-hero-visual img,.rental-hero img{animation:parkImage 1.1s ease-out both}
.page-hero-visual,.rental-hero>img{animation:parkAngle 1s ease-out both}
.home-action:first-child{animation:homeCardEnter .9s 1.05s cubic-bezier(.16,.8,.22,1) backwards}.home-action:last-child{animation:homeCardEnter .9s 1.2s cubic-bezier(.16,.8,.22,1) backwards}
.motion-ready .motion-item{opacity:0;transform:translate3d(0,26px,0);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1)}
.motion-ready .motion-item.is-visible{opacity:1;transform:translate3d(0,0,0)}
.motion-ready .motion-item:nth-child(2n){transition-delay:.08s}
.motion-ready .motion-item:nth-child(3n){transition-delay:.15s}
.home-action:active,.choice-card:active,.primary-link:active{transform:scale(.975)}
@media(max-width:650px){.home-stage-photo{animation-name:homePhotoOpenMobile;animation-duration:1.2s}.home-stage-photo img{animation-duration:1.5s}.page-hero-visual img,.rental-hero img{animation-duration:1.3s}.home-stage .home-title-line{animation-duration:.85s}.home-action:active{transform:scale(.98)}}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.home-action,.use-card,.primary-link,.choice-card,.gallery-grid img{transition:none}}
/* Long Japanese hero lines keep their intentional line breaks. */
.lessons-intro .page-hero-copy h1,.rental-guide-intro .page-hero-copy h1{font-size:clamp(42px,4.4vw,70px)}
@media(max-width:650px){
.lessons-intro .page-hero-copy h1,.rental-guide-intro .page-hero-copy h1{font-size:clamp(30px,7.8vw,47px)}
}

/* A more playful response to pointing, tapping and keyboard focus. */
.home-action{position:relative;isolation:isolate;cursor:pointer;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease,background-color .35s ease}
.home-action-copy{isolation:isolate}
.home-action-copy::before{content:"";position:absolute;inset:0;z-index:-1;background:#a8e3ec;transform:scaleX(0);transform-origin:left;transition:transform .48s cubic-bezier(.2,.75,.2,1)}
.home-action-rental .home-action-copy::before{background:#ffadc1}
.home-action-copy strong,.home-action-copy small,.home-action-copy>span{transition:transform .35s ease,color .3s ease}
.home-action img{transition:transform .6s cubic-bezier(.2,.75,.2,1),filter .45s ease}
.home-action-copy b{transition:transform .35s cubic-bezier(.2,.8,.2,1),background-color .3s,color .3s,border-color .3s}
.site-header nav a,.footer-links a,.text-link{transition:color .24s ease,background-color .24s ease}
.primary-link{transition:background-color .25s ease,transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease}
.use-card img{transition:transform .55s cubic-bezier(.2,.75,.2,1),filter .35s ease}
.use-card{overflow:hidden;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease,background-color .3s ease}
.teacher-card,.route-grid article,.guide-flow-grid article,.friendly-grid article,.equipment-grid article,.manual-pending article,.spec-grid>div,.price-row{transition:background-color .28s ease,box-shadow .3s ease,transform .3s cubic-bezier(.2,.8,.2,1)}
@media(hover:hover) and (pointer:fine){
.home-action:hover,.home-action:focus-visible{transform:translateY(-10px) rotate(-.5deg);box-shadow:0 24px 40px rgba(25,50,75,.23)}
.home-action-rental:hover,.home-action-rental:focus-visible{transform:translateY(-10px) rotate(.5deg)}
.home-action:hover .home-action-copy::before,.home-action:focus-visible .home-action-copy::before{transform:scaleX(1)}
.home-action:hover img,.home-action:focus-visible img{transform:scale(1.085);filter:saturate(1.15)}
.home-action:hover .home-action-copy strong,.home-action:focus-visible .home-action-copy strong{transform:translateX(6px)}
.home-action:hover .home-action-copy b,.home-action:focus-visible .home-action-copy b{transform:translate(3px,-3px) rotate(15deg) scale(1.14);background:#26364d;color:#fff;border-color:#26364d}
.site-header nav a:hover,.footer-links a:hover,.text-link:hover{color:#a63b60}
.primary-link:hover,.primary-link:focus-visible{background:#a63b60;box-shadow:0 10px 22px rgba(185,61,105,.24);transform:translateY(-4px)}
.use-card:hover{transform:translateY(-7px);box-shadow:0 20px 36px rgba(38,54,77,.17)}
.use-card:hover img{transform:scale(1.045);filter:saturate(1.15)}
.use-card:nth-child(3n+1):hover{background:#cef0f2}
.use-card:nth-child(3n+2):hover{background:#ffd7e1}
.use-card:nth-child(3n):hover{background:#ffe495}
.teacher-card:hover,.route-grid article:hover,.guide-flow-grid article:hover,.friendly-grid article:hover,.equipment-grid article:hover,.manual-pending article:hover{transform:translateY(-5px);box-shadow:0 18px 32px rgba(38,54,77,.15)}
.gallery-grid a:hover img{transform:scale(1.085);filter:saturate(1.13)}
.lesson-jumps a:hover,.guide-nav a:hover,.page-hero-copy .lesson-jumps a:hover,.page-hero-copy .guide-nav a:hover{background:#a63b60;color:#fff;border-color:#a63b60;transform:translateY(-4px)}
.spec-grid>div:hover,.price-row:hover{background:#fff9de}
}
@media(hover:none){
.home-action:active{background:#ffadc1;box-shadow:0 12px 25px rgba(25,50,75,.2)}
.home-action-lessons:active{background:#a8e3ec}
.home-action:active .home-action-copy::before{transform:scaleX(1)}
.home-action:active .home-action-copy b{background:#26364d;color:#fff}
.primary-link:active{background:#a63b60}
.page-hero-copy .lesson-jumps a:active,.page-hero-copy .guide-nav a:active{background:#a63b60;color:#fff}
}
@media(prefers-reduced-motion:no-preference){
.home-action:first-child,.home-action:last-child{animation-fill-mode:backwards}
}
@media(prefers-reduced-motion:reduce){
.home-action,.home-action-copy::before,.home-action-copy strong,.home-action-copy small,.home-action-copy>span,.home-action img,.home-action-copy b,.site-header nav a,.footer-links a,.text-link,.primary-link,.use-card,.use-card img,.teacher-card,.route-grid article,.guide-flow-grid article,.friendly-grid article,.equipment-grid article,.manual-pending article,.spec-grid>div,.price-row{transition:none!important;animation:none!important}
}
@media(hover:none){.home-action:hover:not(:active){transform:none;box-shadow:0 6px 16px rgba(25,50,75,.1)}}
@media(prefers-reduced-motion:reduce){
.home-action:hover,.home-action:focus-visible,.home-action-rental:hover,.home-action-rental:focus-visible,.home-action img,.home-action:hover img,.home-action:hover .home-action-copy strong,.home-action:hover .home-action-copy b,.use-card:hover,.use-card:hover img,.teacher-card:hover,.route-grid article:hover,.guide-flow-grid article:hover,.friendly-grid article:hover,.equipment-grid article:hover,.manual-pending article:hover,.primary-link:hover,.primary-link:focus-visible{transform:none!important}
}
/* Keep the more concrete Japanese headlines on their intended lines. */
.lessons-intro .page-hero-copy h1{font-size:clamp(40px,3.8vw,62px)}
.lesson-guide-intro .page-hero-copy h1{font-size:clamp(42px,5vw,76px)}
.thanks-hero h1{font-size:clamp(42px,5vw,74px)}
@media(max-width:650px){
.lessons-intro .page-hero-copy h1{font-size:clamp(27px,7vw,43px)}
.lesson-guide-intro .page-hero-copy h1{font-size:clamp(32px,8.5vw,49px)}
.thanks-hero h1{font-size:clamp(31px,7.7vw,44px)}
}

/* Clear sitewide directions for A: primary paths, help and contact. */
.site-header.has-menu{min-height:88px;height:auto;gap:24px;padding-top:12px;padding-bottom:12px}
.site-header.has-menu nav{display:flex;align-items:center;gap:18px;font-size:14px}
.site-header.has-menu .nav-primary,.site-header.has-menu .nav-secondary{display:flex;align-items:center;gap:clamp(10px,1.5vw,22px)}
.site-header.has-menu .nav-secondary{border-left:1px solid #cbd9df;padding-left:18px}
.site-header.has-menu nav a{white-space:nowrap;text-decoration:none;border:0}
.site-header.has-menu .nav-primary a{font-weight:800;padding:11px 0}
.site-header.has-menu .nav-secondary a{color:#566b82;font-size:12px}
.site-header.has-menu nav a[aria-current=page]{color:#a63b60}
.site-header.has-menu .nav-contact{background:#26364d;color:#fff;padding:11px 15px;border-radius:99px;font-size:13px;white-space:nowrap}
.site-header.has-menu .nav-contact:hover{background:#a63b60;color:#fff}
.nav-toggle{display:none}
footer{align-items:start;gap:32px}footer>div:first-child p{margin-top:17px;font-size:13px}
.footer-sitemap{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:clamp(26px,4vw,65px)}
.footer-sitemap>div{display:flex;flex-direction:column;gap:8px;font-size:14px}
.footer-sitemap strong{margin-bottom:5px;color:#5a4661;font-size:12px;letter-spacing:.1em}
.footer-sitemap a:hover{color:#a63b60;text-decoration:underline;text-underline-offset:3px}
footer>small{align-self:end}
@media(max-width:1240px){.site-header.has-menu .nav-secondary{display:none}}
@media(max-width:980px){
 .site-header.has-menu{position:relative;display:flex;flex-direction:row;align-items:center;min-height:72px;padding:10px 18px;gap:8px}
 .site-header.has-menu .brand{margin-right:auto}
 .nav-toggle{width:48px;height:48px;border:1.5px solid #26364d;background:#fffffc;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;z-index:2}
 .nav-toggle span{width:20px;height:2px;border-radius:2px;background:#26364d;transition:transform .25s,opacity .25s}
 .menu-open .nav-toggle span:first-child{transform:translateY(7px) rotate(45deg)}
 .menu-open .nav-toggle span:nth-child(2){opacity:0}
 .menu-open .nav-toggle span:last-child{transform:translateY(-7px) rotate(-45deg)}
 .site-header.has-menu nav{display:none;position:absolute;top:100%;left:0;right:0;padding:16px 18px 24px;background:#fffffc;box-shadow:0 18px 28px rgba(38,54,77,.18);border-top:1px solid #dce5e9;max-height:calc(100vh - 72px);overflow-y:auto;z-index:20;white-space:normal}
 .site-header.has-menu.menu-open nav{display:grid;gap:0;font-size:16px;text-align:left}
 .site-header.has-menu .nav-primary,.site-header.has-menu .nav-secondary{display:grid;gap:0;border:0;padding:0}
 .site-header.has-menu .nav-primary a,.site-header.has-menu .nav-secondary a{display:block;padding:12px 9px;border-bottom:1px solid #dce5e9;font-size:16px;white-space:normal}
 .site-header.has-menu .nav-secondary a{font-size:14px;font-weight:600}
 .site-header.has-menu .nav-contact{display:block;text-align:center;margin:18px 0 0;padding:14px;font-size:15px}
}
@media(max-width:650px){.site-header.has-menu{display:flex;padding:10px 16px;min-height:70px}.site-header.has-menu nav{width:auto;max-width:none;grid-template-columns:1fr;padding:16px 18px 24px}}

/* A quiet branded mark gives the ABOUT area a focal point. */
.about{position:relative;isolation:isolate;overflow:hidden;min-height:460px;gap:8vw}
.about>div:not(.about-mark),.about>p{position:relative;z-index:1}
.about-mark{position:absolute;right:5%;top:6%;width:min(420px,38vw);height:360px;display:flex;flex-direction:column;justify-content:center;transform:rotate(-9deg);opacity:.5;pointer-events:none;line-height:.78;color:#f3b73c;font-size:clamp(54px,8vw,130px);font-weight:800;letter-spacing:-.09em}
.about-mark span:nth-child(2){color:#ee6f98;align-self:flex-end}.about-mark span:nth-child(3){color:#4aa6ae}
.about-mark i{width:110px;height:5px;background:#26364d;transform:rotate(-22deg);margin:25px 0 0 50%;border-radius:5px}
@media(max-width:760px){.about{min-height:0;padding-bottom:190px}.about-mark{right:4%;top:auto;bottom:5px;width:250px;height:190px;font-size:75px;opacity:.42}.about>p{max-width:520px}}

/* Owner's photo inventory. */
.photo-map-mode [data-photo-slot]{position:relative;outline:3px solid #d63e72;outline-offset:-3px}
.photo-map-mode [data-photo-slot]::after{content:attr(data-photo-slot);position:absolute;right:8px;top:8px;z-index:9;display:block;background:#26364d;color:#fff;border-radius:5px;padding:4px 10px;font:700 14px/1.4 'Noto Sans JP',sans-serif;letter-spacing:0;pointer-events:none;box-shadow:0 2px 10px rgba(0,0,0,.15)}
.photo-map-mode .photo-slot::after{top:6px;right:6px}
.photo-map-help{position:fixed;right:12px;bottom:12px;z-index:120;background:#26364d;color:#fff;padding:13px 15px;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.25);font-size:12px;max-width:min(310px,calc(100vw - 24px));line-height:1.5}
.photo-map-help strong,.photo-map-help span{display:block}.photo-map-help span{margin-top:4px}

/* Uniform teacher images, six-class scan, and restrained class icons. */
.lesson-overview{background:#fffffc}
.lesson-overview>p:not(.eyebrow){margin:0 0 35px}
.class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:1320px}
.class-tile{background:#e8f5f5;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.class-tile .class-tile-bottom{background:#e8f5f5;transition:background .25s ease}
.class-tile:hover .class-tile-bottom,.class-tile:focus-visible .class-tile-bottom{background:#ffe76c}
.class-tile:hover{transform:translateY(-5px);box-shadow:0 16px 28px rgba(38,54,77,.15)}
.class-image{display:block;aspect-ratio:1.65;overflow:hidden;background:#e8eef0}
.class-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 34%;transition:transform .3s}
.class-tile:hover .class-image img{transform:scale(1.035)}
.class-hidali .class-image img{object-position:center 24%}.class-yoga .class-image img{object-position:center 32%}.class-izumi .class-image img{object-position:center 30%}.class-am .class-image img{object-position:center 30%}.class-kasano .class-image img{object-position:center 30%}
.class-tile-bottom{display:flex;align-items:center;gap:14px;padding:16px 18px;min-height:90px}
.class-tile-bottom>span:nth-child(2){display:grid;gap:1px;flex:1}.class-tile-bottom small{font-size:12px;font-weight:700;color:#315784}.class-tile-bottom strong{font-size:18px;line-height:1.3}.class-tile-bottom b{font-weight:500;font-size:23px}
.class-icon,.section-icon{display:grid;place-items:center;flex:none;width:42px;height:42px;border:1.5px solid #315784;border-radius:50%;color:#315784}
.class-icon svg,.section-icon svg{width:25px;height:25px}
.section-icon{margin-bottom:20px;width:53px;height:53px;background:#fff9de;border:0}.section-icon svg{width:31px;height:31px}
.teacher-card img,.two-teachers .teacher-card img{height:auto;aspect-ratio:1.55;object-fit:cover;object-position:center 32%;background:#e8eef0}
.two-teachers .teacher-card img{aspect-ratio:1.1;object-position:center 28%}
#hidali .teacher-card img{object-position:center 18%}#yoga .teacher-card img{object-position:center 28%}#izumi .teacher-card img{object-position:center 25%}#am .teacher-card img{object-position:center 32%}#kasano .teacher-card img{object-position:center 27%}
.availability-note{background:#fff9de;display:flex;justify-content:space-between;align-items:center;gap:32px}.availability-note>div{max-width:740px}.availability-note p:not(.eyebrow){line-height:2}
@media(max-width:950px){.class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-note{display:block}}
@media(max-width:650px){.class-grid{grid-template-columns:1fr 1fr;gap:9px}.class-tile-bottom{padding:10px;gap:7px;min-height:85px}.class-tile-bottom strong{font-size:14px}.class-tile-bottom b{font-size:16px}.class-icon{width:28px;height:28px}.class-icon svg{width:18px;height:18px}.teacher-card img,.two-teachers .teacher-card img{aspect-ratio:1.5}.two-teachers .teacher-card img{aspect-ratio:1.45}}
@media(max-width:390px){.class-grid{grid-template-columns:1fr}.class-tile-bottom strong{font-size:17px}}

/* FAQ and LINE-first contact page. */
.faq{background:#fffffc}.faq-list{border-top:1px solid #bdcbd5;max-width:900px;margin:32px 0}
.faq details{border-bottom:1px solid #bdcbd5}.faq summary{cursor:pointer;list-style:none;font-weight:700;font-size:18px;padding:22px 42px 22px 4px;position:relative;line-height:1.5}
.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:'＋';position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:25px;color:#a63b60}.faq details[open] summary::after{content:'−'}
.faq details p{max-width:740px;margin:0;padding:0 35px 24px 4px;line-height:1.95}.faq details a{text-decoration:underline;text-underline-offset:3px;color:#315784;font-weight:700}
.contact-options{background:#fffffc}.contact-line,.contact-email{display:grid;grid-template-columns:1fr 1fr;gap:clamp(25px,7vw,100px);align-items:center;padding:38px 0 78px}
.contact-line{border-bottom:1px solid #dce5e9}.contact-line p:not(.eyebrow),.contact-email p:not(.eyebrow){line-height:2;max-width:610px}
.contact-hint{padding:35px;background:#d7eef2}.contact-hint strong{font-size:18px}.contact-hint ul{padding-left:23px;line-height:2.1;margin-bottom:0}
.contact-email{align-items:start;padding-top:90px}.contact-email form{background:#fff9de;padding:30px;display:grid;gap:17px}
.contact-email label{display:grid;gap:7px;font-weight:700;font-size:14px}.contact-email input,.contact-email select,.contact-email textarea{width:100%;border:1px solid #acbdca;border-radius:5px;background:#fffffc;padding:12px 13px;color:#26364d;font:inherit;font-weight:400;font-size:16px}
.contact-email textarea{resize:vertical}.contact-email :is(input,select,textarea):focus{outline:3px solid #78bfc9;outline-offset:1px}.contact-email .primary-link{border:0;cursor:pointer;justify-self:start;margin:3px 0 0}.form-status{min-height:1.5em;font-size:14px;margin:0!important}
@media(max-width:760px){.contact-line,.contact-email{grid-template-columns:1fr;gap:25px;padding:25px 0 60px}.contact-email{padding-top:70px}.contact-email form{padding:20px}.faq summary{font-size:16px}}
@media(prefers-reduced-motion:reduce){.class-tile,.class-image img,.nav-toggle span{transition:none}}

/* Live Square availability on the lessons page. */
.lesson-calendar{background:#fff9de}.calendar-heading{display:flex;justify-content:space-between;align-items:end;gap:24px}.calendar-heading>div{max-width:780px}.calendar-heading p:not(.eyebrow){line-height:1.9}.calendar-month{display:flex;align-items:center;gap:12px;white-space:nowrap}.calendar-month strong{font-size:20px;min-width:115px;text-align:center}.calendar-month button{width:42px;height:42px;border-radius:50%;border:1px solid #315784;background:#fffffc;color:#26364d;font:inherit;cursor:pointer}.calendar-month button:disabled{opacity:.35;cursor:default}.calendar-filters{display:flex;flex-wrap:wrap;gap:8px;margin:36px 0 14px}.calendar-filters button{border:1px solid #9cb2c4;background:#fffffc;border-radius:99px;padding:8px 14px;color:#26364d;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer}.calendar-filters button[aria-pressed=true]{background:#315784;color:white;border-color:#315784}.calendar-status{min-height:1.7em;color:#43556d}.calendar-board{background:#fffffc;max-width:920px;padding:18px;border:1px solid #dce5e9}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays{text-align:center;font-weight:700;font-size:13px;color:#62758b;margin-bottom:9px}.calendar-day{min-height:94px;border:1px solid #e4e8ec;background:#f5f6f6;padding:9px;text-align:left;font:inherit;display:flex;flex-direction:column;justify-content:space-between;color:#637180}.calendar-day strong{font-size:18px}.calendar-day small{font-size:12px;font-weight:700}.calendar-day.has-availability{background:#d7eef2;border-color:#85bbc6;color:#26364d;cursor:pointer}.calendar-day.has-availability:hover,.calendar-day.has-availability:focus-visible{background:#f7d65f;outline:2px solid #315784;outline-offset:-2px}.calendar-selection{max-width:920px;background:#fffffc;padding:24px;margin-top:14px;border:2px solid #315784}.calendar-selection h3{margin:0 0 12px}.calendar-time-group{display:flex;align-items:center;gap:15px;flex-wrap:wrap;border-top:1px solid #dce5e9;padding:13px 0}.calendar-time-group strong{min-width:200px}.calendar-time-group span{flex:1}.calendar-time-group a{color:#315784;font-weight:700;text-decoration:underline;text-underline-offset:3px}.calendar-note{font-size:14px;color:#536477;margin-top:18px}.calendar-status a{text-decoration:underline;font-weight:700}
@media(max-width:700px){.calendar-heading{display:block}.calendar-month{margin-top:20px}.calendar-board{padding:7px}.calendar-days,.calendar-weekdays{gap:2px}.calendar-day{min-height:64px;padding:4px}.calendar-day strong{font-size:14px}.calendar-day small{font-size:9px;line-height:1.2}.calendar-filters button{font-size:12px;padding:7px 10px}.calendar-time-group{display:grid;gap:3px}}

/* Photo handoff slots and an in-page, keyboard-friendly gallery. */
.rental-photo-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-align:center;padding:25px;color:#315784;background:linear-gradient(135deg,#e2f4f4 0%,#fdf4da 100%);border:2px dashed #83b9c5;min-height:220px;line-height:1.5}
.rental-photo-placeholder strong{font-size:clamp(23px,3vw,34px);letter-spacing:.06em}.rental-photo-placeholder span{font-size:14px;font-weight:600;letter-spacing:.02em}
.use-card:nth-child(3n+2) .rental-photo-placeholder{background:linear-gradient(130deg,#fff0f2,#fff8eb);border-color:#e9a8bc}
.use-card:nth-child(3n) .rental-photo-placeholder{background:linear-gradient(135deg,#fff1d0,#e7f4f1);border-color:#dfbd70}
.use-card>.rental-photo-placeholder{height:310px}.rental-hero>.rental-photo-placeholder{position:absolute;inset:0 0 0 43%;width:57%;height:100%;min-height:570px;clip-path:polygon(17% 0,100% 0,100% 100%,0 100%);border-left:0}
.gallery-grid .gallery-item{display:block;width:100%;padding:0;border:0;aspect-ratio:1.25;overflow:hidden;cursor:zoom-in;background:transparent;font:inherit;color:inherit}
.gallery-grid .gallery-item .rental-photo-placeholder{height:100%;min-height:0;transition:transform .25s,background .25s}
.gallery-grid .gallery-item:hover .rental-photo-placeholder,.gallery-grid .gallery-item:focus-visible .rental-photo-placeholder{transform:scale(1.035);background:#ffe49d}
.gallery-grid .gallery-item img{display:block;width:100%;height:100%;object-fit:cover}
.gallery-lightbox{position:fixed;inset:0;width:min(1100px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 24px);padding:58px clamp(48px,7vw,82px) 46px;border:0;border-radius:14px;background:#fffffc;box-shadow:0 30px 80px rgba(15,28,48,.45);color:#26364d;overflow:hidden}
.gallery-lightbox::backdrop{background:rgba(17,31,49,.85)}
.gallery-lightbox .lightbox-content{height:min(70dvh,700px);display:grid;place-items:center;overflow:hidden;background:#e8f5f5}
.gallery-lightbox .lightbox-content img{width:100%;height:100%;object-fit:contain}
.gallery-lightbox .lightbox-content .rental-photo-placeholder{width:100%;height:100%;border:0}
.gallery-lightbox button{position:absolute;border:0;cursor:pointer;background:#26364d;color:white;border-radius:50%;display:grid;place-items:center;font:inherit;z-index:1}
.gallery-lightbox .lightbox-close{right:17px;top:13px;width:39px;height:39px;font-size:27px;line-height:1}
.gallery-lightbox .lightbox-prev,.gallery-lightbox .lightbox-next{top:50%;transform:translateY(-50%);width:43px;height:43px;font-size:37px;line-height:1}
.gallery-lightbox .lightbox-prev{left:8px}.gallery-lightbox .lightbox-next{right:8px}
.gallery-lightbox .lightbox-counter{position:absolute;bottom:8px;left:0;right:0;text-align:center;font-weight:700;margin:0}
@media(max-width:900px){.rental-hero>.rental-photo-placeholder{position:relative;inset:auto;width:100%;height:420px;min-height:0;clip-path:polygon(0 0,100% 0,100% 100%,0 84%);border:0;margin-bottom:-20px}.use-card>.rental-photo-placeholder{height:240px}}
@media(max-width:650px){.rental-hero>.rental-photo-placeholder{height:250px}.gallery-lightbox{padding:48px 40px 42px}.gallery-lightbox .lightbox-content{height:min(65dvh,600px)}.gallery-lightbox .lightbox-prev,.gallery-lightbox .lightbox-next{width:35px;height:42px;border-radius:7px;font-size:31px}.gallery-lightbox .lightbox-prev{left:2px}.gallery-lightbox .lightbox-next{right:2px}}

/* Consistent portraits; the Maria source has intentionally wide negative space. */
.two-teachers .teacher-card{overflow:hidden}
#otoriko .teacher-card:nth-child(2) img{object-position:72% 25%;transform:scale(1.48);transform-origin:70% 28%}

/* Class pictograms replace the loose wordmark in the home introduction. */
.about-icons{position:absolute;right:4%;top:8%;width:min(390px,35vw);height:340px;display:grid;grid-template-columns:1fr 1fr;gap:16px;transform:rotate(-8deg);pointer-events:none;opacity:.82}
.about-icon{width:clamp(95px,11vw,155px);aspect-ratio:1;display:grid;place-items:center;border-radius:28px;border:3px solid #315784;box-shadow:8px 8px 0 rgba(38,54,77,.14);background:#fff8e6;color:#315784}
.about-icon svg{width:60%;height:60%}.about-voice{background:#ffe494;transform:rotate(-8deg)}.about-dance{background:#ffd9e3;transform:rotate(11deg) translateY(18px)}.about-yoga{background:#fffffc;transform:rotate(8deg) translateX(20px)}.about-acting{background:#bce8e8;transform:rotate(-10deg) translateY(10px)}
.access-card{background:#fff9de;border:2px solid #315784;box-shadow:12px 12px 0 #d7eef2;padding:clamp(24px,4vw,52px);align-self:center;position:relative;overflow:hidden}
.access-card-heading{display:flex;align-items:center;gap:12px;color:#315784;margin-bottom:28px}.access-station{font-weight:800;letter-spacing:.16em;font-size:18px}.access-line{height:3px;flex:1;background:repeating-linear-gradient(90deg,#315784 0 18px,transparent 18px 26px)}.access-pin{width:38px;height:38px;display:grid;place-items:center;border:3px solid #a63b60;border-radius:50%;font-size:16px;color:#a63b60}
.access-card>strong{font-size:clamp(23px,2.5vw,36px);line-height:1.4}.access-times{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.access-times span{border-radius:99px;background:#fffffc;padding:6px 12px;font-size:13px;font-weight:600}.access-times b{color:#a63b60;margin-left:5px}.access-card>a{display:inline-block;border-bottom:2px solid currentColor;color:#315784;font-weight:700;padding-bottom:3px}.access-card>a:hover{color:#a63b60}
@media(max-width:760px){.about-icons{right:4%;top:auto;bottom:20px;width:220px;height:150px;gap:8px}.about-icon{width:76px;border-radius:16px;border-width:2px;box-shadow:4px 4px 0 rgba(38,54,77,.14)}.about{padding-bottom:200px}.access-card{margin-right:12px}}
@media(prefers-reduced-motion:reduce){.gallery-grid .gallery-item .rental-photo-placeholder{transition:none}}
.teacher-comment{line-height:2}.teacher-comment p{margin:0 0 1.2em}.teacher-comment-list{margin:0 0 1.4em;padding-left:1.5em;line-height:2}.teacher-comment-list li{padding-left:.15em}
#otoriko .class-image img{object-position:center 30%}
.rental-guide-intro .page-hero-visual.photo-slot{min-height:390px;align-self:stretch;display:flex;justify-content:center}
.equipment-grid h3 a{text-decoration:underline;text-underline-offset:4px;color:#315784}

/* Keep the decorative icons in their own column, clear of the introduction. */
.about{grid-template-areas:"headline body icons";grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr) minmax(220px,.75fr);gap:clamp(24px,4vw,65px);align-items:center}
.about>div:nth-child(2){grid-area:headline}.about>p{grid-area:body;margin:0}.about-icons{grid-area:icons;position:relative;top:auto;right:auto;width:100%;height:270px;grid-template-columns:repeat(2,1fr);gap:8px;transform:rotate(-7deg)}
.about-icon{width:min(100%,120px);border-radius:22px}
@media(max-width:1100px){.about{grid-template-areas:"headline icons" "body icons";grid-template-columns:minmax(0,1fr) minmax(200px,.45fr);align-items:start;min-height:0}.about-icons{height:230px}}
@media(max-width:760px){.about{grid-template-areas:"headline" "body" "icons";grid-template-columns:1fr;padding-bottom:65px;gap:25px}.about-icons{width:230px;height:150px;justify-self:end;margin-right:25px}.about-icon{width:80px;border-radius:16px}}

/* The booking decision comes after the class profiles and prices. */
.lesson-calendar{background:linear-gradient(145deg,#e7f4f3 0%,#fff8e7 75%);border-top:1px solid #bdd7d9;position:relative;overflow:hidden}
.calendar-kicker{display:flex;align-items:center;gap:18px;margin-bottom:20px}
.calendar-kicker .eyebrow{margin:0}
.calendar-kicker img{width:68px;height:68px;object-fit:contain;flex:none;transform:rotate(-7deg)}
@media(max-width:700px){.calendar-kicker{gap:14px;margin-bottom:18px}.calendar-kicker img{width:52px;height:52px}}
.calendar-heading{position:relative;align-items:center;max-width:1080px}.calendar-heading h2{margin-bottom:13px}.calendar-heading p:not(.eyebrow){margin-bottom:0;color:#46596c}
.calendar-month{background:#fffffc;border:1.5px solid #315784;border-radius:99px;padding:6px;box-shadow:5px 5px 0 #c2e6e6}
.calendar-month strong{font-size:18px;min-width:120px}.calendar-month button{border:0;width:38px;height:38px;background:#e8f5f5;transition:background .2s,transform .2s}.calendar-month button:not(:disabled):hover{background:#f7d65f;transform:scale(1.08)}
.calendar-filters{max-width:1080px;margin:32px 0 18px;gap:9px}
.calendar-filters button{border:1px solid #b9ccd4;box-shadow:0 2px 0 rgba(38,54,77,.08);padding:9px 15px;transition:background .2s,color .2s,transform .2s}
.calendar-filters button:hover{background:#fff1d0;transform:translateY(-2px)}.calendar-filters button[aria-pressed=true]{background:#26364d;color:#fff;border-color:#26364d;box-shadow:4px 4px 0 #f7d65f}
.calendar-status{font-size:15px;font-weight:700;max-width:900px;margin:0 0 14px;color:#315784}
.calendar-board{max-width:900px;padding:24px;background:rgba(255,254,250,.9);border:1px solid #d4e4e4;border-radius:16px;box-shadow:0 12px 35px rgba(38,54,77,.06)}
.calendar-weekdays,.calendar-days{gap:7px}.calendar-weekdays{padding:0 4px 10px;margin-bottom:1px;border-bottom:1px solid #e0e9ea;color:#53687e}
.calendar-weekdays span:first-child{color:#c25170}.calendar-weekdays span:last-child{color:#315784}
.calendar-day{min-height:80px;border:0;border-radius:9px;padding:10px;background:#f6f8f7;transition:background .18s,transform .18s,box-shadow .18s}
.calendar-day strong{font-size:19px;font-weight:600}.calendar-day small{font-size:11px;line-height:1.3;color:#315784}
.calendar-day.is-past{background:#f9faf9;opacity:.48}.calendar-day.has-availability{background:#fff0bd;border:1.5px solid #edc465;color:#26364d;box-shadow:inset 0 -4px 0 rgba(247,193,81,.35)}
.calendar-day.has-availability:hover,.calendar-day.has-availability:focus-visible{background:#ffdf87;transform:translateY(-2px);outline:none;box-shadow:0 6px 14px rgba(38,54,77,.14)}
.calendar-day.has-availability[aria-pressed=true]{background:#f7d65f;border-color:#315784;box-shadow:0 0 0 2px #315784}
.calendar-selection{border:0;border-left:6px solid #a63b60;border-radius:8px;max-width:900px;margin-top:18px;padding:25px 29px;box-shadow:0 12px 35px rgba(38,54,77,.08)}
.calendar-selection h3{font-size:24px}.calendar-time-group{padding:16px 0}.calendar-time-group span{font-size:18px;font-weight:700;white-space:nowrap}.calendar-time-group a{background:#26364d;color:#fff;text-decoration:none;padding:9px 16px;border-radius:99px;font-size:14px;white-space:nowrap;transition:background .2s,transform .2s}.calendar-time-group a:hover{background:#a63b60;transform:translateY(-2px)}
.calendar-note{max-width:900px;margin:17px 0 0}
@media(max-width:700px){.lesson-calendar{padding-left:18px;padding-right:18px}.calendar-heading{display:block}.calendar-heading h2{font-size:clamp(32px,9vw,48px)}.calendar-month{width:max-content;margin-top:25px}.calendar-filters{flex-wrap:nowrap;overflow-x:auto;padding:5px 5px 11px;margin:22px -5px 12px;scroll-snap-type:x proximity}.calendar-filters button{flex:none;scroll-snap-align:start;font-size:13px}.calendar-board{padding:11px;border-radius:11px}.calendar-days,.calendar-weekdays{gap:3px}.calendar-day{min-height:56px;padding:5px}.calendar-day strong{font-size:15px}.calendar-day small{font-size:0}.calendar-day small::after{content:"●";font-size:12px}.calendar-selection{padding:20px 18px}.calendar-selection h3{font-size:20px}.calendar-time-group strong{min-width:0}.calendar-time-group span{font-size:18px}.calendar-time-group a{justify-self:start;margin-top:5px}.calendar-status{font-size:14px}}
@media(prefers-reduced-motion:reduce){.calendar-day,.calendar-month button,.calendar-filters button,.calendar-time-group a{transition:none}}

/* Both Otoriko portraits share a fixed crop window. */
.two-teachers .teacher-card>.teacher-photo{padding:0;aspect-ratio:1.1;overflow:hidden;background:#e8eef0}
.two-teachers .teacher-photo img{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center 28%}
#otoriko .teacher-card:nth-child(2) .teacher-photo img{transform:scale(1.48);transform-origin:70% 55%;object-position:72% 25%}
@media(max-width:650px){.two-teachers .teacher-card>.teacher-photo{aspect-ratio:1.45}}

/* One type and image scale for the A-design page introductions. */
.page-intro.lessons-intro,.sun-page-intro,.rental-hero,.thanks-hero{min-height:640px}
.page-hero-copy,.rental-hero-text{width:57%;padding:100px 30px 80px clamp(24px,7vw,110px)}
.page-hero-copy h1,.page-intro .page-hero-copy h1,.rental-hero h1,.thanks-hero h1{font-size:clamp(40px,4vw,66px);line-height:1.17;letter-spacing:-.055em;font-weight:700;margin-bottom:27px}
.rental-hero-text>p:not(.eyebrow),.thanks-hero p:last-child{font-size:clamp(16px,1.35vw,19px);line-height:1.9}
.page-hero-visual,.rental-hero img,.rental-hero>.rental-photo-placeholder{inset:0 0 0 45%;width:55%;height:100%;clip-path:polygon(17% 0,100% 0,100% 100%,0 100%)}
.thanks-hero{padding:80px 7vw}.thanks-hero>div{max-width:50%}.thanks-hero::before{inset:0 0 0 45%;clip-path:polygon(17% 0,100% 0,100% 100%,0 100%)}
.rental-hero>.rental-photo-placeholder{min-height:0}
@media(max-width:900px) and (min-width:651px){
  .page-hero-copy,.rental-hero-text{width:63%;padding:75px 20px 70px 6vw}
  .page-hero-copy h1,.page-intro .page-hero-copy h1,.rental-hero h1,.thanks-hero h1{font-size:clamp(36px,4.6vw,45px)}
  .page-hero-visual,.rental-hero img,.rental-hero>.rental-photo-placeholder{inset:0 0 0 49%;width:51%;height:100%;position:absolute;margin:0}
}
@media(max-width:650px){
  .page-intro.lessons-intro,.sun-page-intro,.rental-hero,.thanks-hero{min-height:0}
  .page-hero-copy,.rental-hero-text{width:100%;padding:35px 22px 53px}
  .page-hero-copy h1,.page-intro .page-hero-copy h1,.rental-hero h1,.thanks-hero h1{font-size:clamp(35px,9vw,49px);line-height:1.17;margin-bottom:20px}
  .lessons-intro .page-hero-copy h1{font-size:clamp(27px,7vw,39px)}
  .thanks-hero h1{font-size:clamp(31px,7.7vw,44px)}
  .page-hero-visual,.rental-hero img,.rental-hero>.rental-photo-placeholder{position:relative;inset:auto;width:100%;height:220px;min-height:0;clip-path:polygon(0 0,100% 0,100% 100%,0 84%);margin-bottom:-20px}
  .thanks-hero{padding:0}.thanks-hero>div{max-width:none;padding:35px 22px 53px}.thanks-hero::before{position:relative;inset:auto;width:100%;height:220px;clip-path:polygon(0 0,100% 0,100% 100%,0 84%);margin-bottom:-20px}
}

.lesson-payment{background:#e8f5f5}.lesson-payment h2{margin-bottom:17px}.lesson-payment>p:not(.eyebrow){max-width:780px}
.payment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:34px 0 25px;max-width:1000px}
.payment-grid>div{background:#fffffc;border:1px solid #bad8dd;padding:22px 25px;min-height:112px}
.payment-grid strong{display:block;font-size:20px;margin-bottom:7px}.payment-grid span{font-size:15px;line-height:1.7}
.payment-note{max-width:900px;line-height:1.8}
.price-fig{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.price-fig>span{font-size:13px;color:#53687e;text-decoration:none}
@media(max-width:650px){.payment-grid{grid-template-columns:1fr}.payment-grid>div{min-height:0}.price-fig{align-items:flex-end}}

.copy-lab-panel .copy-lab-export{display:block;width:100%;height:155px;margin-top:12px;padding:9px;border:1px solid #a9c0d4;border-radius:7px;background:#fff;color:#26364d;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;resize:vertical}
.copy-lab-panel .copy-lab-export[hidden]{display:none}

/* Match the two Otoriko portraits at a waist-up scale. */
#otoriko .teacher-card:first-child .teacher-photo img{object-position:55% 28%;transform:scale(1.36);transform-origin:55% 9%}

/* Formal supplied logo, exported from the source PDF with transparent edges. */
.site-header .brand img{display:block;width:145px;height:auto;max-width:none}
footer .brand img{display:block;width:165px;height:auto}
@media(max-width:650px){.site-header .brand img{width:112px}}
/* The PARK's own sprout-and-note mark replaces the four generic class icons. */
.about-icons{display:flex;align-items:center;justify-content:center;transform:rotate(-7deg);opacity:1}
.about-icon{display:none}
.about-icons::before{content:"";display:block;width:min(245px,100%);aspect-ratio:1;background:url('/assets/sprout-note.png') center/contain no-repeat;filter:drop-shadow(9px 12px 0 rgba(38,54,77,.14))}
@media(max-width:760px){.about-icons{width:230px;height:150px}.about-icons::before{width:135px}}

/* The selected A design: daylight and energy with calmer type and a focused palette. */
:root{--ink:#26364d;--paper:#fffffc;--line:#d8e0e4;--soft:#fff9de;--accent:#c95673}
body{background:var(--paper);letter-spacing:.005em}
.site-header{background:#fffffc}
.home-stage,.page-intro.lessons-intro,.sun-page-intro,.rental-hero,.thanks-hero{background:#ffe76c}
.home-stage h1,.page-hero-copy h1,.page-intro .page-hero-copy h1,.rental-hero h1,.thanks-hero h1{letter-spacing:-.052em}
.section-head h2,.section-pad>h2,.lesson-copy h2,.about h2{letter-spacing:-.04em;font-weight:600}
.eyebrow{letter-spacing:.18em}
.home-action{box-shadow:0 13px 30px rgba(38,54,77,.1)}
.home-action-lessons{background:#e1f1f4}.home-action-rental{background:#f4e5e7}
.home-action-copy::before{background:#cce9ed}.home-action-rental .home-action-copy::before{background:#ebced5}
.home-action-copy strong{letter-spacing:-.035em}
.about{background:#e6f4f5}
.about-icons::before{filter:drop-shadow(8px 11px 0 rgba(38,54,77,.1))}
.access{background:#fffffc}
.access-card{background:#fff8d5;border-width:1.5px;box-shadow:9px 9px 0 #e0eef0}
.class-tile,.use-card,.teacher-card,.payment-grid>div,.guide-flow-grid article,.friendly-grid article,.route-grid article,.equipment-grid article{box-shadow:0 6px 24px rgba(38,54,77,.055)}
.use-card:nth-child(3n+1),.guide-flow-grid article:nth-child(3n+1),.friendly-grid article:nth-child(3n+1){background:#eff7f6}
.use-card:nth-child(3n+2),.guide-flow-grid article:nth-child(3n+2),.friendly-grid article:nth-child(3n+2),.lesson-feature:nth-of-type(4n+2){background:#faf2f2}
.use-card:nth-child(3n),.guide-flow-grid article:nth-child(3n),.friendly-grid article:nth-child(3n),.availability-note{background:#fff9e6}
.lesson-feature.tint,.rental-gallery,.cross-link,.soft-section,.lesson-payment{background:#eff7f6}
.lesson-feature-inner::before{background:#c95673;height:5px;width:66px}
.class-icon,.section-icon{border-width:1.5px}
.calendar-board,.calendar-selection{box-shadow:0 8px 28px rgba(38,54,77,.06)}
footer{background:#ffe76c}
@media(hover:hover) and (pointer:fine){
  .home-action:hover,.home-action:focus-visible{box-shadow:0 22px 38px rgba(38,54,77,.18)}
  .use-card:nth-child(3n+1):hover{background:#dceff0}
  .use-card:nth-child(3n+2):hover{background:#f1dce1}
  .use-card:nth-child(3n):hover{background:#fff0ad}
}
@media(max-width:650px){.home-stage h1{letter-spacing:-.055em}}

/* Owner-only copy locator, activated with ?copy-review=1. */
.copy-review-target{cursor:copy;outline:2px dashed transparent;outline-offset:3px}
.copy-review-target:hover{outline-color:#c95673}
.copy-review-panel{position:fixed;right:16px;bottom:16px;z-index:1000;width:min(340px,calc(100vw - 32px));background:#26364d;color:#fff;padding:16px 18px;border-radius:13px;box-shadow:0 12px 35px rgba(10,32,55,.3);font-size:13px;line-height:1.55}
.copy-review-panel strong{display:block;font-size:17px}.copy-review-panel p{margin:5px 0 8px}.copy-review-panel small{display:block;color:#dce9f3;margin-bottom:8px}
.copy-review-panel textarea{display:block;width:100%;height:130px;padding:8px;background:#fff;color:#26364d;border:1px solid #a9c0d4;border-radius:6px;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;resize:vertical}
.copy-review-panel textarea[hidden]{display:none}.copy-review-panel>div{display:flex;gap:8px;margin-top:9px}
.copy-review-panel button{appearance:none;border:1px solid #a9c0d4;border-radius:7px;background:#fff;color:#26364d;font:700 12px/1.5 'Noto Sans JP',sans-serif;padding:6px 10px;cursor:pointer}
.copy-review-panel button:hover{background:#ffe76c}.copy-review-panel button[hidden]{display:none}
@media(max-width:650px){.copy-review-panel{right:8px;bottom:8px;padding:12px 14px;width:min(300px,calc(100vw - 16px))}}

/* Keep homepage headings together at meaningful phrase boundaries. */
.about>div:nth-child(2),.access>div:first-child{container-type:inline-size;min-width:0}
.home-section-title .copy-phrase{display:inline-block;white-space:nowrap}

/* Match the entrance sign and keep the footer logo balanced with its links. */
.address-phrase{display:inline-block}
.location-grid .building-name{font-size:clamp(32px,3.8vw,54px)}
.building-name>span{display:block;margin-top:12px;font-size:clamp(16px,1.6vw,22px);font-weight:500;letter-spacing:0}
.entrance-note{font-size:14px;line-height:1.8}
.route-entry-photo{aspect-ratio:4/3;overflow:hidden;position:relative}
.route-entry-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 15%}
footer .footer-brand{align-self:center;display:flex;align-items:center;justify-content:center}
footer .footer-brand .brand{display:inline-flex}
@media(max-width:760px){
  footer .footer-brand{margin-bottom:32px}
  .footer-sitemap{grid-template-columns:repeat(2,minmax(0,1fr))}
  footer>small{display:block;margin-top:30px}
}

/* Shared type scale by role. Viewport units keep equivalent headings equal
   even when their columns have different widths. The home masthead, teacher
   names, building reading and calendar controls retain their distinct roles. */
:root{
  --park-title-page:clamp(2.5rem,4vw,4.125rem);
  --park-title-section:clamp(1.75rem,2.8vw,3rem);
  --park-title-card:1.375rem;
  --park-title-person:1.5rem;
}
.page-hero-copy h1,
.page-intro .page-hero-copy h1,
.lessons-intro .page-hero-copy h1,
.lesson-guide-intro .page-hero-copy h1,
.rental-guide-intro .page-hero-copy h1,
.rental-hero h1,
.thanks-hero h1{font-size:var(--park-title-page);line-height:1.2}
main h2,
.section-head h2,
.lesson-copy h2,
.calendar-heading h2,
.location-grid .building-name,
.about h2.home-section-title,
.access h2.home-section-title{
  font-size:var(--park-title-section);
  line-height:1.35;
  font-weight:600;
  letter-spacing:-.04em;
}
:is(.use-card,.spec-grid,.guide-flow-grid,.friendly-grid,.equipment-grid,.manual-pending,.route-copy) h3{
  font-size:var(--park-title-card);line-height:1.45;font-weight:700;
}
.teacher-card h3{font-size:var(--park-title-person);line-height:1.4}
@media(max-width:1100px) and (min-width:761px){
  :root{--park-title-section:clamp(1.75rem,3.8vw,2.625rem)}
}
@media(max-width:900px) and (min-width:651px){
  :root{--park-title-page:clamp(2.25rem,4.6vw,2.8125rem)}
}
@media(max-width:760px){
  :root{
    --park-title-section:clamp(1.5rem,6.8vw,2rem);
    --park-title-card:1.25rem;
    --park-title-person:1.25rem;
  }
}
@media(max-width:650px){
  :root{--park-title-page:clamp(1.6875rem,7vw,2.4375rem)}
}

/* Reservation is the primary header action on every screen size. */
.site-header.has-menu nav{margin-left:auto}
.site-header.has-menu .nav-inquiry{display:none}
.header-booking{position:relative;flex:none}
.header-booking summary{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:11px 18px;border-radius:99px;background:#26364d;color:#fff;font-size:14px;font-weight:700;line-height:1.5;white-space:nowrap;cursor:pointer;list-style:none;transition:background .2s}
.header-booking summary::-webkit-details-marker{display:none}
.header-booking summary:hover,.header-booking[open] summary{background:#a63b60}
.header-booking summary:focus-visible{outline:3px solid #268c82;outline-offset:4px}
.booking-chevron{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}
.header-booking[open] .booking-chevron{transform:translateY(2px) rotate(225deg)}
.booking-popover{position:absolute;right:0;top:calc(100% + 12px);z-index:30;width:280px;padding:9px;background:#fffffc;border:1px solid #d8e0e4;border-radius:18px;box-shadow:0 16px 38px rgba(38,54,77,.17)}
.booking-popover a{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:58px;padding:15px 16px;border-radius:11px;font-size:16px;font-weight:700;line-height:1.5;transition:background .2s}
.booking-popover a:first-child{background:#eff7f6}
.booking-popover a+ a{margin-top:6px;background:#faf2f2}
.booking-popover a:hover,.booking-popover a:focus-visible{background:#ffe76c}
@media(max-width:980px){
 .site-header.has-menu nav{margin-left:0;max-width:none;width:auto}
 .site-header.has-menu .nav-inquiry{display:block;padding:12px 9px;font-size:14px;color:#566b82}
 .header-booking{position:static}
 .booking-popover{right:18px;top:calc(100% + 8px);width:min(300px,calc(100vw - 36px))}
 .header-booking summary{font-size:13px;min-height:44px;padding:10px 14px;gap:8px}
 .nav-toggle{flex:none}
}
@media(max-width:650px){
 .header-booking summary{font-size:12px;padding:10px 12px;gap:7px}
 .site-header.has-menu .nav-toggle{width:42px;height:42px}
}
@media(max-width:360px){
 .site-header.has-menu{padding-left:12px;padding-right:12px;gap:6px}
 .site-header .brand img{width:90px}
}
@media(prefers-reduced-motion:reduce){.header-booking summary,.booking-chevron,.booking-popover a{transition:none}}

/* Keep lesson introduction copy together at natural phrase boundaries. */
.lessons-intro .lesson-copy-phrase,.cross-link .lesson-copy-phrase{display:inline-block;max-width:100%;text-wrap:pretty}

/* Genre choices lead to the matching teacher cards. */
.class-tile[hidden],.lesson-show-all[hidden]{display:none}
.lesson-show-all{font:inherit;font-size:14px;font-weight:700;color:#315784;background:transparent;border:0;border-bottom:1px solid currentColor;padding:4px 0;cursor:pointer;margin:0 0 12px}
.lesson-show-all:hover{color:#a63b60}
.lesson-show-all:focus-visible{outline:2px solid #315784;outline-offset:5px}
.lesson-jumps a[aria-current="true"]{box-shadow:inset 0 -3px 0 #c95673}
.lesson-jumps a span{font-size:.85em}
.lesson-overview{scroll-margin-top:100px}
/* One chalk-like stroke beneath each class name, confined to its text width. */
.lesson-heading-ink{display:inline-block;position:relative;max-width:100%;padding-bottom:.22em}
.lesson-heading-ink::after{content:"";position:absolute;left:0;right:0;bottom:0;height:.2em;background:#ffe76c;-webkit-mask:url('/assets/chalk-underline.svg') center/100% 100% no-repeat;mask:url('/assets/chalk-underline.svg') center/100% 100% no-repeat;transform:rotate(-.5deg);transform-origin:left center;pointer-events:none}
.lesson-heading-ink.ink-ready{opacity:0;transform:translateY(12px);transition:opacity .55s ease,transform .65s cubic-bezier(.22,.68,.2,1)}
.lesson-heading-ink.ink-drawn{opacity:1;transform:translateY(0)}
.lesson-heading-ink.ink-ready::after{transform:rotate(-.5deg) scaleX(0);transition:transform 1s cubic-bezier(.22,.68,.2,1) .4s}
.lesson-heading-ink.ink-drawn::after{transform:rotate(-.5deg) scaleX(1)}
@media(prefers-reduced-motion:reduce){.lesson-heading-ink.ink-ready{opacity:1;transform:none;transition:none}.lesson-heading-ink.ink-ready::after{transform:rotate(-.5deg);transition:none}.class-tile .class-tile-bottom{transition:none}}

/* Homepage details: a brief bell-like sway, then a journey from EBISU. */
.about .about-icons::before{transform-origin:50% 18%}
.about .about-icons.detail-played::before{animation:park-sprout-ring 1.35s ease-in-out .18s both}
@keyframes park-sprout-ring{
  0%,100%{transform:rotate(0)}
  15%{transform:rotate(10deg)}
  29%{transform:rotate(-9deg)}
  43%{transform:rotate(7deg)}
  57%{transform:rotate(-5deg)}
  71%{transform:rotate(3deg)}
  85%{transform:rotate(-1.5deg)}
}
.access-card-heading.route-ready .access-line{min-width:0;background:linear-gradient(to right,currentColor 0 calc(100% - 8px),transparent calc(100% - 8px) 100%) left center/calc(100% / var(--route-count,8)) 100% repeat-x;clip-path:inset(0 100% 0 0)}
.access-card-heading.detail-played .access-line{animation:park-route-reveal 1.4s steps(var(--route-count,8),end) .2s both}
.access-card-heading.detail-played .access-pin{animation:park-arrive .65s ease-out 1.6s both;flex-shrink:0}
@keyframes park-route-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes park-arrive{0%,100%{transform:translateY(0) scale(1)}40%{transform:translateY(-4px) scale(1.45)}70%{transform:translateY(1px) scale(.96)}}
@media(prefers-reduced-motion:reduce){
  .about .about-icons.detail-played::before,.access-card-heading.detail-played .access-line,.access-card-heading.detail-played .access-pin{animation:none;transform:none}
  .access-card-heading.route-ready .access-line{clip-path:none}
}

/* Deep brand accent for clear hover feedback on colored backgrounds. */
:root{--park-strong-hover:#a63b60;--park-rental-light:#f4e5e7}

/* One blue family: a clear small accent and an airy large surface. */
:root{--park-control:#315784;--park-card-light:#b8cee3}
