/* TERAKOYA — a calm, warm editorial design inspired by the reference site. */
:root{--paper:#f3f1ec;--white:#fff;--blue:#414a89;--ink:#292f4b;--muted:#555c70;--line:#d9dbe5;--soft:#e9ecf5;--radius:30px;--font:"Noto Sans JP","Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:132px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;line-height:2;letter-spacing:.045em;-webkit-text-size-adjust:100%}
a{color:inherit;text-decoration:none}a:hover{color:var(--blue)}
img{display:block;max-width:100%;height:auto}figure{margin:0}p{margin:0 0 24px}h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:.04em;line-height:1.65;overflow-wrap:anywhere}
h1{font-size:34px}h2{font-size:30px;margin-bottom:28px}h3{font-size:23px;margin-bottom:18px}h4{font-size:20px;margin-bottom:16px}
small{font-size:14px}strong{font-weight:700}button{font:inherit}main{overflow:clip}section{scroll-margin-top:20px}
.skip,.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip:focus{position:fixed;top:8px;left:8px;width:auto;height:auto;clip:auto;padding:8px 20px;background:white;z-index:99}
:focus-visible{outline:3px solid #7989ca;outline-offset:5px}
header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:18px max(32px,calc((100vw - 1280px)/2));background:var(--paper)}
.brand{display:inline-flex;align-items:center;gap:12px;line-height:1.3;flex-shrink:0}
.brand-logo{width:56px;aspect-ratio:1;object-fit:contain;clip-path:circle(46%)}
.brand-copy{display:flex;flex-direction:column;align-items:flex-start}
.brand-kicker{font-size:14px;letter-spacing:0;margin-bottom:5px;white-space:nowrap}
.brand-name{font-size:27px;letter-spacing:.06em;font-weight:800;color:var(--blue);line-height:1.1}
.brand-city{font-size:14px;letter-spacing:.2em;margin-top:5px;align-self:center}
.menu-toggle{display:flex;align-items:center;justify-content:center;gap:12px;background:var(--blue);border:0;color:white;border-radius:7px;padding:12px 18px;min-height:52px;cursor:pointer;font-size:14px;line-height:1.4;flex-shrink:0}
.menu-icon{width:24px;height:20px;position:relative;display:block}.menu-icon i{position:absolute;left:0;width:24px;height:2px;background:currentColor;transition:transform .2s,opacity .2s}.menu-icon i:nth-child(1){top:1px}.menu-icon i:nth-child(2){top:9px}.menu-icon i:nth-child(3){top:17px}
.menu-toggle[aria-expanded="true"] .menu-icon i:nth-child(1){transform:translateY(8px) rotate(45deg)}.menu-toggle[aria-expanded="true"] .menu-icon i:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] .menu-icon i:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
nav{display:none;position:absolute;top:100%;right:32px;width:min(420px,calc(100vw - 64px));max-height:calc(100svh - 130px);overflow:auto;background:white;border-radius:0 0 20px 20px;padding:16px 28px 28px;box-shadow:0 18px 30px #242b4712}
.menu-toggle[aria-expanded="true"]+nav{display:block}
nav a{display:block;padding:15px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.7;letter-spacing:.1em;color:var(--blue)}nav a span{display:block;font-size:16px;letter-spacing:.03em;color:var(--ink)}nav a[aria-current="page"]{font-weight:700}
.eyebrow{font-size:22px;font-weight:600;line-height:1.5;letter-spacing:.04em;color:var(--blue);margin-bottom:14px}
.section{padding:96px max(32px,calc((100% - 1120px)/2))}
.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:end;margin-bottom:50px}.section-heading h2{margin-bottom:0}.section-heading>p{margin-bottom:0}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:17px 26px;min-height:58px;max-width:100%;border:1px solid var(--blue);border-radius:999px;color:var(--blue);background:transparent;font-size:16px;line-height:1.6;font-weight:600;letter-spacing:.035em;transition:background .2s,color .2s}
.button:after{content:'→';font-size:23px;line-height:1;flex-shrink:0}.button:hover{background:var(--blue);color:#fff}.button.dark,.button-primary{background:var(--blue);color:#fff}.button.dark:hover,.button-primary:hover{background:#303868}
/* The opening photo collage echoes the soft corners and white cutout of the reference. */
.hero{padding-top:8px}.hero-mosaic{max-width:1280px;margin:0 auto;position:relative;display:grid;grid-template-columns:2.1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;height:560px;border-radius:110px 24px 100px 24px;overflow:hidden;background:#e8e4d8}
.hero-mosaic figure{overflow:hidden}.hero-mosaic img{width:100%;height:100%;object-fit:cover}.hero-photo{grid-column:1;grid-row:1/3}.hero-photo img{object-position:50% 45%;filter:brightness(1.02) saturate(.9)}.hero-tile-floor{grid-column:2;grid-row:1}.hero-tile-stairs{grid-column:2;grid-row:2}
.hero-brand-panel{position:absolute;left:0;bottom:36px;background:white;border-radius:0 70px 70px 0;padding:28px 48px 28px 36px;display:flex;align-items:center;gap:24px;color:var(--blue)}
.hero-brand-panel img{width:72px;height:72px;object-fit:contain;clip-path:circle(46%)}.hero-brand-panel p{font-size:25px;line-height:1.8;letter-spacing:.06em;margin:0;font-weight:600}
.hero-image-note{font-size:14px;color:var(--muted);max-width:1250px;margin:14px auto 0;text-align:right;padding:0 24px}
.hero-copy{max-width:720px;padding:80px 24px 90px;margin:0 auto;text-align:center}.opening{display:inline-block;color:var(--blue);border-bottom:1px solid var(--blue);padding-bottom:6px;margin-bottom:30px;font-size:16px;letter-spacing:.07em}
.hero-prelude{font-size:16px;line-height:2.2;margin-bottom:28px}#hero-title{font-size:32px;line-height:1.8;letter-spacing:.06em;font-weight:700;margin-bottom:30px}#hero-title>span{display:block}#hero-title small{font-size:18px;margin-left:.2em}.intro{font-size:16px;line-height:2.2;margin-bottom:32px}.hero-copy .button{min-width:280px}
/* Clear reading sections, with one shared hierarchy throughout the site. */
.about{background:white;border-radius:100px 0 0 0;display:grid;grid-template-columns:1fr 1fr;gap:32px 8%;align-items:start}.about>div:first-child{text-align:center}.about h2{font-size:30px;line-height:1.8}.about h2>span{display:block}.about h2 .about-wish{margin-top:.4em}.about-copy{padding-top:42px}.about-copy p{margin-bottom:24px}.about-emphasis{color:var(--blue)}
.photo-composition{grid-column:1/-1;width:100%;margin:36px 0 32px;display:flow-root;container-type:inline-size}.concept-photo{width:78%;position:relative}.concept-photo img{width:100%;aspect-ratio:1.65;object-fit:cover;border-radius:42px 8px 42px 8px}.photo-composition figcaption{font-size:14px;line-height:1.8;color:var(--muted);margin-top:10px}.detail-photo{width:37%;margin:calc((37cqw) / -7) 0 0 auto;position:relative;background:white;padding:10px;border-radius:22px}.detail-photo img{aspect-ratio:1.45;object-fit:cover;border-radius:16px}.detail-photo figcaption{margin-bottom:0}
.features{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:16px}.features article{text-align:center}.features .number{font-size:34px;font-weight:700;line-height:1.5;color:var(--blue)}.features .number>span{font-size:20px;margin-left:5px}.feature-word{display:block;font-size:23px;font-weight:600;line-height:1.5;color:var(--blue);letter-spacing:.08em}.features h3{font-size:19px;margin:14px 0 12px}.features p{font-size:15px;line-height:2;margin:0}
.rental{position:relative;background:var(--paper)}.rental-summary{display:flex;justify-content:space-between;gap:24px;border-block:1px solid var(--line);padding:22px 0;color:var(--blue);font-weight:600}
.benefits{list-style:none;counter-reset:benefit;padding:0;margin:40px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 50px}.benefits li{counter-increment:benefit;position:relative;padding:28px 0 28px 46px;border-bottom:1px solid var(--line)}.benefits li:before{content:'0' counter(benefit);position:absolute;top:29px;left:0;font-size:24px;font-weight:500;line-height:1.5;color:var(--blue)}.benefits h3{font-size:21px;line-height:1.7;margin-bottom:14px}.benefits p{margin:0}.benefits li:last-child{grid-column:1/-1;max-width:800px}
.genres{margin-top:64px}.genres>.eyebrow,.genres>h3{text-align:center}.genres>h3{font-size:26px;margin-bottom:34px}.genre-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.genre-grid article{padding-top:22px;border-top:2px solid var(--blue)}.genre-grid h4{font-size:18px}.genre-grid p{font-size:15px;line-height:2}.genre-cross{position:relative;display:inline-block}.genre-cross>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#9e403d;font-size:26px;line-height:1;pointer-events:none}
.schedule-link{text-align:center;background:#e9ecf4;border-radius:0 80px 0 80px}.schedule-link .button{margin-top:8px;min-width:280px}
.space{display:grid;grid-template-columns:1.1fr 1fr;gap:7%;align-items:center;padding:100px max(32px,calc((100% - 1200px)/2));background:white}.space figure img{width:100%;height:500px;object-fit:cover;border-radius:12px 70px 12px 70px}.space figcaption{font-size:14px;line-height:1.8;margin-top:10px;color:var(--muted)}.space>div{padding-right:20px}.space .small{font-size:14px;color:var(--muted);line-height:2;margin-bottom:0}
.layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:7%;align-items:start}.floorplan-stack{display:grid;gap:30px}.floorplan-stack figure{background:white;padding:22px;border-radius:20px}.floorplan-stack figcaption{font-size:16px;margin-bottom:14px;color:var(--blue);font-weight:600}.floorplan-stack img{width:100%;height:auto}
.plans{background:white;border-radius:80px 0 0 0}.plan-lead{max-width:780px}.time-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:30px 0 50px}.time-slots>div{padding:16px;text-align:center;border-bottom:1px solid var(--line)}.time-slots span{display:block;font-size:16px}.time-slots strong{font-size:18px;font-weight:600;letter-spacing:.02em}
.plan-grid{display:grid;grid-template-columns:1fr;gap:34px}.plan{background:var(--paper);border-radius:28px;padding:36px 44px}.plan .eyebrow{font-size:16px;font-weight:600;margin-bottom:12px}.plan h3{font-size:26px;line-height:1.65;margin-bottom:18px}.plan-sub{margin-bottom:26px}
.plan table{width:100%;border-collapse:separate;border-spacing:0 12px;table-layout:fixed}.plan caption{text-align:left;color:var(--blue);font-size:16px;line-height:1.8;margin-bottom:10px}.plan-calendar{width:24px;height:24px;vertical-align:middle;margin-right:12px}.plan thead{display:none}.plan th,.plan td{background:#fff;padding:22px 26px;vertical-align:middle}.plan th{width:43%;text-align:left;font-size:18px;font-weight:600;border-radius:14px 0 0 14px}.plan td{width:57%;text-align:right;border-radius:0 14px 14px 0}.monthly-price{display:flex;align-items:baseline;justify-content:flex-end;gap:12px;white-space:nowrap;font-size:34px;font-weight:700;line-height:1.3;letter-spacing:0}.monthly-label{font-size:14px;font-weight:400}.plan td>small{display:block;font-size:14px;line-height:1.7;margin-top:5px;letter-spacing:0}.plan>p:last-child{padding-top:24px;border-top:1px solid var(--line);margin:22px 0 0}.price-note{font-size:14px;color:var(--muted);margin:22px 0 0}
.access{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.access h2{font-size:28px}.address{font-size:17px}.access-map{border-radius:30px;overflow:hidden;min-width:0}.access-map iframe{display:block;width:100%;height:410px;border:0}.access dl{margin:0 0 28px}dl>div{padding:14px 0;border-bottom:1px solid var(--line)}dt{font-size:14px;line-height:1.8;color:var(--muted)}dd{font-size:16px;line-height:1.9;margin:6px 0 0}
.faq{background:white;border-radius:0 80px 0 0}.faq details{border-bottom:1px solid var(--line);padding:24px 0}.faq summary{font-size:17px;font-weight:600;line-height:1.8;cursor:pointer}.faq details p{margin:18px 0 0;font-size:16px;line-height:2}.faq details a{color:var(--blue);text-decoration:underline}
footer{padding:64px 24px;text-align:center;background:var(--paper);border-top:1px solid var(--line)}footer .brand{margin:0 auto}footer p{font-size:14px;margin:24px 0 18px;line-height:2}footer small{font-size:14px;color:var(--muted);letter-spacing:.05em}
/* Separate pages share the same cream, blue and restrained type scale. */
.school-page-intro{text-align:center;padding-top:70px;padding-bottom:70px}.school-page-intro h1{font-size:32px;margin-bottom:22px}.school-page-intro .button{margin-top:10px}.schools{background:white;border-radius:80px 0 0 0}.school-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}.school{border-top:2px solid var(--blue);padding-top:25px;display:flex;flex-direction:column;min-width:0}.school-top{display:flex;justify-content:space-between;gap:14px;font-size:14px;color:var(--blue);line-height:1.8}.tag{font-size:14px}.school-title{margin:30px 0 18px}.school-title>p{font-size:14px;letter-spacing:.09em;color:var(--blue);margin-bottom:12px}.school h3{font-size:28px;line-height:1.6}.school>p{font-size:16px}.school dl{margin:0 0 32px}.school .button{margin-top:0}.school .school-note{font-size:14px;color:var(--muted);margin:22px 0 0}
.availability{padding-top:64px;text-align:center}.availability h1{font-size:32px;margin-bottom:24px}.schedule-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:30px 0}.status{display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:1.6;padding:7px 12px;border-radius:8px;white-space:nowrap;letter-spacing:0}.status.free{background:#e3eee6;color:#315943}.status.kenpo{background:var(--blue);color:white}.status.dance{background:#796d88;color:white}.schedule-desktop{display:none}.schedule-scroll-hint{font-size:14px;color:var(--muted);margin-bottom:24px}.schedule-mobile{display:flex;flex-direction:column;gap:24px;max-width:880px;margin:0 auto;text-align:left}.day-schedule{border-radius:18px;background:white;overflow:hidden}.day-schedule h3{display:flex;justify-content:space-between;gap:20px;background:var(--blue);color:white;margin:0;padding:16px 26px;font-size:23px;line-height:1.5}.day-schedule h3 small{font-size:14px;line-height:1.8;font-weight:400;letter-spacing:.04em;align-self:center}.day-schedule ol{list-style:none;margin:0;padding:0 24px}.day-schedule li{display:grid;grid-template-columns:60px minmax(0,1fr) 200px;gap:20px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.day-schedule li:last-child{border:0}.slot-time{display:contents}.slot-name{font-size:16px;padding:6px 8px;background:var(--soft);border-radius:6px;text-align:center;line-height:1.6;letter-spacing:0}.slot-time strong{font-size:22px;white-space:nowrap;letter-spacing:0;line-height:1.5}.day-schedule .status{width:100%;min-width:0;min-height:40px}.schedule-note{font-size:14px;line-height:2;text-align:left;max-width:880px;margin:28px auto}.page-back{text-align:center;padding:0 24px 80px}
@media(min-width:1400px){header{gap:32px}.menu-toggle{display:none}nav{display:flex;position:static;width:auto;max-height:none;overflow:visible;padding:0;background:none;box-shadow:none;gap:24px;border-radius:0}nav a{font-size:0;border:0;padding:0;white-space:nowrap}nav a span{font-size:14px;color:var(--blue)}}
@media(max-width:900px){.section-heading{gap:30px}.genre-grid{gap:20px}.features{grid-template-columns:1fr 1fr;gap:36px}.school-grid{gap:30px}}
/* Phone layout: one reading column, body 16px, supporting copy 14px, headings 24–28px. */
@media(max-width:700px){
html{scroll-padding-top:124px}body{font-size:16px;line-height:2.05;letter-spacing:.035em}header{padding:15px 22px;gap:12px}.brand{gap:9px}.brand-logo{width:48px}.brand-name{font-size:23px;letter-spacing:.035em}.brand-kicker{font-size:14px;line-height:1.5;margin-bottom:3px}.brand-city{font-size:14px;letter-spacing:.15em;margin-top:3px}.menu-toggle{font-size:0;width:48px;height:48px;min-height:48px;padding:12px;gap:0}.menu-icon{width:24px}nav{right:16px;width:calc(100vw - 32px);padding:12px 24px 26px;max-height:calc(100svh - 115px)}nav a{font-size:14px}nav a span{font-size:16px}
h1{font-size:28px}h2{font-size:25px;line-height:1.7;margin-bottom:24px}h3{font-size:21px;line-height:1.7}h4{font-size:19px}.eyebrow{font-size:20px;line-height:1.5;margin-bottom:12px;font-weight:600}.section{padding:70px 26px}.section-heading{display:block;margin-bottom:34px}.section-heading h2{margin-bottom:22px}.section-heading>p{margin:0;font-size:16px;line-height:2.05}
.hero{padding-top:0}.hero-mosaic{height:460px;grid-template-columns:2.25fr 1fr;gap:5px;margin:0 16px 0 26px;border-radius:64px 8px 64px 8px;overflow:visible}.hero-mosaic figure{overflow:hidden}.hero-photo{border-radius:64px 0 0 8px}.hero-tile-floor{border-radius:0 8px 0 0}.hero-tile-stairs{border-radius:0 0 64px 0}.hero-photo img{object-position:47% center}.hero-brand-panel{left:-26px;bottom:34px;max-width:calc(100% - 5px);border-radius:0 50px 50px 0;padding:20px 26px;gap:10px;display:block}.hero-brand-panel img{width:52px;height:52px;margin:0 auto 9px}.hero-brand-panel p{font-size:19px;font-weight:600;line-height:1.9;letter-spacing:.01em;text-align:center}.hero-image-note{font-size:14px;text-align:left;padding:0 26px;margin-top:18px;line-height:1.8}.hero-copy{padding:62px 24px 70px}.opening{font-size:16px;margin-bottom:28px}.hero-prelude{font-size:16px;line-height:2.1;letter-spacing:0;margin-bottom:26px}#hero-title{font-size:28px;line-height:1.85;letter-spacing:.025em;margin-bottom:26px}#hero-title small{font-size:16px}.intro{font-size:16px;line-height:2.1;letter-spacing:0;margin-bottom:28px}.button{font-size:16px;padding:15px 22px;min-height:56px;gap:18px}.hero-copy .button{min-width:0;width:100%;max-width:300px}
.about{display:block;border-radius:56px 0 0 0}.about h2{font-size:25px;line-height:1.8;letter-spacing:0}.about h2 .about-wish{margin-top:.3em}.about-copy{padding-top:8px}.about-copy p{margin-bottom:25px;line-height:2.1}.about-copy .about-emphasis{font-weight:600;color:var(--blue)}.photo-composition{margin:36px 0 32px}.concept-photo{width:100%}.concept-photo img{border-radius:28px 6px 28px 6px;aspect-ratio:1.55}.detail-photo{width:62%;margin:calc(62cqw / -7) 0 0 auto;padding:7px;border-radius:18px}.detail-photo img{border-radius:12px;aspect-ratio:1.5}.photo-composition figcaption{font-size:14px;letter-spacing:0;line-height:1.8}
.features{display:block;margin-top:40px}.features article{padding:28px 0;border-top:1px solid var(--line)}.features article:last-child{padding-bottom:0}.features .number{font-size:30px}.features .number>span{font-size:18px}.feature-word{font-size:22px}.features h3{font-size:20px;margin:10px 0 12px}.features p{font-size:16px;line-height:2}
.rental-summary{display:flex;flex-direction:column;align-items:center;gap:10px;font-size:16px;padding:24px 0}.benefits{display:block;margin-top:12px}.benefits li,.benefits li:last-child{max-width:none;padding:28px 0 28px 36px}.benefits li:before{font-size:20px;top:31px}.benefits h3{font-size:20px;letter-spacing:0;line-height:1.7;margin-bottom:12px}.benefits p{font-size:16px;line-height:2.05}.genres{margin-top:45px}.genres>.eyebrow{font-size:20px}.genres>h3{font-size:24px;margin-bottom:28px}.genre-grid{display:block}.genre-grid article{padding:24px 0 10px;border-top:1px solid var(--line)}.genre-grid h4{font-size:19px}.genre-grid p{font-size:16px;line-height:2.05;margin-bottom:24px}
.schedule-link{border-radius:0 48px 0 48px}.schedule-link h2{font-size:24px;letter-spacing:0}.schedule-link .button{min-width:0;width:100%;max-width:320px;margin-top:14px}
.space{display:block;padding:64px 26px;background:white}.space figure img{height:340px;object-position:center;border-radius:8px 50px 8px 50px}.space figcaption{font-size:14px}.space>div{padding:34px 0 0}.space h2{font-size:25px;line-height:1.8}.space p{font-size:16px}.space .small{font-size:14px}
.layout{display:block}.layout h2{font-size:25px}.floorplan-stack{display:block;margin-top:34px}.floorplan-stack figure{padding:16px;margin-bottom:24px;border-radius:16px}.floorplan-stack figcaption{font-size:16px}.plans{border-radius:48px 0 0 0;padding-inline:20px}.time-slots{display:block;margin:26px 0 32px}.time-slots>div{display:flex;align-items:center;justify-content:space-between;padding:13px 8px;font-size:16px}.time-slots strong{font-size:17px}.plan-grid{display:block}.plan{padding:25px 18px;border-radius:20px;margin-bottom:28px}.plan .eyebrow{font-size:16px}.plan h3{font-size:23px;line-height:1.65;letter-spacing:0}.plan p{font-size:16px;line-height:2}.plan table{border-spacing:0 10px}.plan caption{font-size:14px;line-height:1.8;letter-spacing:0}.plan-calendar{width:21px;height:21px;margin-right:7px}.plan th,.plan td{padding:16px 10px}.plan th{font-size:14px;line-height:1.7;width:43%;letter-spacing:0}.plan td{width:57%}.monthly-price{font-size:27px;flex-direction:column;align-items:flex-end;gap:4px}.monthly-label{font-size:14px}.plan td>small{font-size:14px;line-height:1.8;margin-top:6px}.plan>p:last-child{margin-top:18px;padding-top:22px;font-size:16px}.price-note{font-size:14px;line-height:2}
.access{display:block}.access h2{font-size:24px;letter-spacing:0}.address{font-size:16px}.access dl{margin-bottom:28px}.access-map{margin-top:36px;border-radius:22px}.access-map iframe{height:320px}.access .button{padding-inline:18px;gap:14px}dt{font-size:14px}dd{font-size:16px}.faq{border-radius:0 48px 0 0}.faq details{padding:22px 0}.faq summary{font-size:16px;font-weight:600;line-height:1.9}.faq details p{font-size:16px;line-height:2.05}.faq h2{font-size:25px}
footer{padding:46px 22px}footer .brand-logo{width:50px}footer .brand-kicker{font-size:14px}footer .brand-name{font-size:25px}footer p,footer small{font-size:14px;line-height:2}
.school-page-intro{padding-block:54px}.school-page-intro h1{font-size:28px}.school-page-intro .button{padding:15px 18px;gap:12px;text-align:left}.schools{border-radius:48px 0 0 0}.school-grid{display:block}.school{padding-top:24px;margin-bottom:52px}.school:last-child{margin-bottom:0}.school h3{font-size:26px;line-height:1.65}.school-title{margin:26px 0 16px}.school-title>p,.school-top,.school-note,.school .tag{font-size:14px}.school dl{margin-bottom:28px}.school .button{font-size:16px;padding-inline:18px;gap:12px}
.availability{padding:48px 16px 60px}.availability h1{font-size:25px;line-height:1.7;letter-spacing:0}.availability>.eyebrow{font-size:20px}.availability>p{font-size:16px;line-height:2}.schedule-legend{gap:8px;margin:24px 0}.schedule-legend .status{padding:7px 10px;font-size:14px}.schedule-scroll-hint{font-size:14px!important}.schedule-mobile{gap:18px}.day-schedule{border-radius:14px}.day-schedule h3{font-size:21px;padding:13px 16px;gap:10px}.day-schedule h3 small{font-size:14px;letter-spacing:0}.day-schedule ol{padding:0 10px}.day-schedule li{grid-template-columns:32px minmax(0,1fr) 126px;gap:6px;padding:13px 0;min-height:62px}.slot-name{font-size:14px;line-height:1.5;letter-spacing:0;padding:5px 1px}.slot-time strong{font-size:14px;line-height:1.5}.day-schedule .status{font-size:14px;line-height:1.6;min-height:36px;padding:5px 2px}.schedule-note{font-size:14px;line-height:2}.page-back{padding-bottom:58px}
}
@media(max-width:370px){header{padding:14px 18px}.brand-logo{width:44px}.brand-name{font-size:24px}.brand-kicker{display:none}.brand-city{font-size:14px}.menu-toggle{width:46px;height:46px;min-height:46px}.hero-mosaic{height:410px}.hero-brand-panel{padding:18px 20px;border-radius:0 42px 42px 0}.hero-brand-panel p{font-size:17px}.hero-brand-panel img{width:46px;height:46px}#hero-title{font-size:26px}.section{padding-inline:22px}.about h2{font-size:23px}.plans{padding-inline:16px}.plan{padding-inline:14px}.plan h3{font-size:21px}.monthly-price{font-size:25px}.plan th,.plan td{padding-inline:8px}.plan th{width:42%}.plan td{width:58%}.availability{padding-inline:14px}.day-schedule ol{padding-inline:7px}.day-schedule li{grid-template-columns:30px minmax(0,1fr) 124px;gap:4px}.access h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Gold English labels and centered section titles. */
:root{--gold:#967033}
.eyebrow,.feature-word,.school-title>p,.school-top>span:first-child{color:var(--gold)}
nav a{color:var(--gold)}
.section>h1,.section h2,.section .eyebrow,.space h2,.space .eyebrow,.genres>h3,.plan>h3,.school-title{text-align:center}
.section-heading{display:block;text-align:center}
.section-heading h2{margin-bottom:0}
.section-heading>p{max-width:660px;margin:24px auto 0;text-align:left}
.day-schedule h3 small{color:#f0dbb9}
@media(min-width:1400px){nav a span{color:var(--blue)}}

/* Inline place name, translucent hero panel, and the requested paragraph flow. */
.brand-name{display:flex;align-items:baseline;gap:10px;white-space:nowrap}
.brand-city{font-size:14px;font-weight:500;letter-spacing:.06em;margin:0;align-self:auto}
.hero-brand-panel{background:rgba(255,255,255,.86);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.about-copy .about-emphasis{font-weight:700}
@media(max-width:700px){header{padding-inline:18px;gap:10px}.brand-name{font-size:22px;gap:7px}.brand-logo{width:44px}.brand-city{font-size:14px;letter-spacing:.04em;margin:0}.brand-kicker{letter-spacing:0}footer .brand-name{font-size:23px}footer .brand-logo{width:46px}}
@media(max-width:370px){header{padding-inline:12px;gap:6px}.brand-name{font-size:20px;gap:6px}footer .brand-name{font-size:22px}.brand-city{font-size:14px}}

/* The monthly label stays on the left; amount size returns one step down. */
.monthly-price{flex-direction:row;align-items:baseline;font-size:34px;gap:12px}
.monthly-label{font-size:18px;font-weight:500}
#hero-title .hero-title-pair{white-space:nowrap}
@media(max-width:700px){
.plan th{width:31%;padding-inline:8px}
.plan td{width:69%;padding-inline:8px}
.monthly-price{flex-direction:row;align-items:baseline;font-size:27px;gap:6px}
.monthly-label{font-size:16px}
#hero-title .hero-title-pair{font-size:clamp(18px,5.8vw,25px);letter-spacing:0}
#hero-title .hero-title-pair small{font-size:14px;margin-left:0}
}
@media(max-width:370px){
.plan th{width:31%;padding-inline:6px}
.plan td{width:69%;padding-inline:6px}
.monthly-price{font-size:25px;gap:4px}
.monthly-label{font-size:16px}
}
/* Uniform feature labels, equal-height floorplans, and smaller tax-inclusive amounts. */
.features .feature-word{display:block;font-size:22px;font-weight:600;line-height:1.5;color:var(--gold)}
.features h3{min-height:3.4em}
.layout{display:block}
.floorplan-stack{display:grid;grid-template-columns:minmax(0,500fr) minmax(0,940fr);gap:28px;max-width:800px;margin:34px auto 0;padding:24px;background:white;border-radius:22px;align-items:start}
.floorplan-stack figure{min-width:0;padding:0;margin:0;border-radius:0;background:transparent}
.floorplan-stack figcaption{font-size:16px;line-height:1.6;margin-bottom:16px}
.floorplan-stack img{width:100%;height:auto;object-fit:contain}
.monthly-price{font-size:30px}
@media(max-width:700px){
.features .feature-word{font-size:22px}
.features h3{min-height:0}
.floorplan-stack{display:grid;grid-template-columns:minmax(0,500fr) minmax(0,940fr);gap:12px;padding:12px;margin-top:30px;border-radius:16px}
.floorplan-stack figure{padding:0;margin:0}
.floorplan-stack figcaption{font-size:14px;line-height:1.6;letter-spacing:0;margin-bottom:12px}
.monthly-price{font-size:24px}
}
@media(max-width:370px){.monthly-price{font-size:23px}}

/* Centered rental/access copy and compact, unbroken price rows. */
#rental .section-heading>p{text-align:center}
#rental h2{white-space:nowrap;letter-spacing:0}
.rental-summary{font-size:18px}
.time-slots{max-width:800px;margin-inline:auto}
.plan tbody th{white-space:nowrap}
.monthly-price{font-size:24px}
.access>div:first-child{text-align:center}
footer .brand-logo{width:75.35px;flex-shrink:0}
@media(max-width:700px){
#rental h2{font-size:clamp(16px,4.6vw,25px)}
.rental-summary{font-size:18px}
.time-slots{width:calc(100% - 32px);max-width:360px;margin:26px auto 32px}
.plan tbody th{width:45%}
.plan tbody td{width:55%}
.monthly-price{font-size:19.2px}
footer .brand-logo{width:61.89px}
}
@media(max-width:370px){.monthly-price{font-size:18.4px}}

/* TERAKOYA base: a slimmer text-only hero band and a 30% narrower time list. */
.hero-brand-panel{padding:14px 36px;gap:0}
.hero-brand-panel p{line-height:1.6}
.time-slots{width:70%;max-width:560px}
.time-slots>div{padding-inline:4px}
.time-slots strong{white-space:nowrap}
@media(min-width:701px) and (max-width:1000px){.time-slots{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){
.hero-brand-panel{padding:12px 22px;display:block}
.hero-brand-panel p{font-size:18px;line-height:1.7;letter-spacing:0}
.time-slots{width:calc(70% - 22.4px);max-width:252px}
}
@media(max-width:370px){.hero-brand-panel{padding:10px 14px}.hero-brand-panel p{font-size:15px}}

/* Keep the full studio name readable at each placement. */
.brand-main{white-space:nowrap;letter-spacing:.02em}
.brand-name{gap:8px}
.site-city{font-size:.72em;font-weight:600;letter-spacing:.04em;margin-left:.3em;white-space:nowrap}
.hero-site-name{display:inline-block;white-space:nowrap}
.about h2 .about-brand,.access-name{white-space:nowrap;letter-spacing:0}
.about>div:first-child>.eyebrow{letter-spacing:0}
@media(max-width:700px){
.brand-name,footer .brand-name{flex-direction:column;align-items:flex-start;gap:3px;line-height:1.15;font-size:22px}
.brand-city{font-size:14px;letter-spacing:.08em}
.hero-brand-panel{padding:10px 22px}
.hero-brand-panel p{font-size:18px;line-height:1.55}
.hero-site-name{display:block;font-size:18px}
.hero-site-name .site-city{font-size:14px}
.about>div:first-child>.eyebrow{font-size:20px}
.about h2 .about-brand{font-size:24px}
.access .access-name{font-size:25px}
}
@media(max-width:370px){
.brand-name,footer .brand-name{font-size:20px}
.hero-brand-panel{padding:10px 16px}
.hero-brand-panel p{font-size:16px}
.hero-site-name{font-size:17px}
.about>div:first-child>.eyebrow{font-size:18px}
.about h2 .about-brand{font-size:21px}
.access .access-name{font-size:23px}
}

/* Header branding: natural letter widths, with a compact side label on phones. */
header{padding-block:10px}
header .brand{gap:12px;min-width:0;flex-shrink:1}
header .brand-logo{width:72.8px;flex-shrink:0}
header .brand-copy{min-width:0}
header .brand-kicker{display:block;font-size:14px;line-height:1.4;margin-bottom:2px;letter-spacing:0}
header .brand-name{display:flex;flex-direction:row;align-items:baseline;gap:8px;width:max-content;max-width:100%;font-size:28px;line-height:1.1;letter-spacing:0;white-space:nowrap}
header .brand-main{font-size:1em;font-weight:800;letter-spacing:.02em;white-space:nowrap;flex-shrink:0}
header .brand-sub{display:flex;align-items:baseline;gap:8px;font-size:.8em;font-weight:800;line-height:1.1;white-space:nowrap;flex-shrink:0}
header .brand-base{color:var(--blue);letter-spacing:.02em}
header .brand-city{font-size:14px;font-weight:500;line-height:1.1;letter-spacing:.03em;margin:0;color:var(--muted)}
@media(max-width:700px){
header{padding:12px 18px;gap:10px}
header .brand{gap:8px}
header .brand-logo{width:59.8px}
header .brand-kicker{font-size:13px}
header .brand-name{align-items:center;gap:8px;font-size:clamp(26px,6.95vw,28px)}
header .brand-sub{flex-direction:column;align-items:flex-start;gap:1px;font-size:.48em;line-height:1.05}
header .brand-city{font-size:.88em;line-height:1.05}
}
@media(max-width:370px){
header{padding-inline:12px;gap:6px}
header .brand{gap:8px}
header .brand-logo{width:54.6px}
header .brand-kicker{font-size:12px}
header .brand-name{font-size:21px;gap:6px}
}
.inline-brand{display:inline-block;white-space:nowrap}
.inline-base{font-size:.65em;font-weight:inherit;letter-spacing:.01em}
.rental-summary{font-size:21.6px}

/* Align descriptions with their content and give the rental conditions vertical type. */
.layout>div:first-child>p:last-child{max-width:800px;margin-inline:auto;text-align:left}
.plan-lead{max-width:660px;margin-inline:auto}
.rental-summary{flex-direction:row-reverse;align-items:flex-start;justify-content:center;gap:clamp(30px,6vw,72px);padding:36px 16px}
.rental-summary>span{writing-mode:vertical-rl;text-orientation:upright;line-height:1.5;letter-spacing:.1em;white-space:nowrap}
@media(min-width:701px){.plan table{width:70%;margin-inline:auto}}
@media(min-width:701px) and (max-width:900px){.plan th,.plan td{padding-inline:12px}}

/* Reference wordmark: joined name, smaller BASE on the same baseline. */
.brand-main .brand-base{font-size:.65em;font-weight:inherit;letter-spacing:0}
@media(max-width:700px){header .brand-name{flex-direction:column;align-items:flex-start;gap:3px;font-size:clamp(22px,6vw,26px)}header .brand-city{font-size:12px;align-self:flex-end}}
@media(max-width:370px){header .brand-name{font-size:21px}}

@media(min-width:701px) and (max-width:900px){.features article:last-child{grid-column:1/-1;justify-self:center}}

/* Preserve the uploaded logo artwork and its complete outer ring. */
header .brand-logo[src$="terakoya-logo-blue.jpg"],footer .brand-logo[src$="terakoya-logo-blue.jpg"]{filter:none;clip-path:circle(50%)}

/* Match the supplied mobile lockup: name and place on one baseline. */
@media(max-width:700px){
header{padding:10px 16px;gap:16px}
header .brand{gap:8px}
header .brand-logo{width:56px}
header .brand-name,footer .brand-name{flex-direction:row;align-items:baseline;gap:0;white-space:nowrap}
header .brand-name,footer .brand-name{font-size:clamp(20px,5.65vw,24px)}
header .brand-main{letter-spacing:.012em}
header .brand-kicker{font-size:clamp(11.5px,3.1vw,13px);line-height:1.4}
header .brand-city,footer .brand-city{font-size:clamp(10px,2.8vw,12px);line-height:1.1;align-self:baseline;letter-spacing:0;margin:0 0 0 .1em;white-space:nowrap}
footer .brand{gap:8px}
footer .brand-logo{width:56px}
footer .brand-kicker{font-size:12px}
}
@media(max-width:370px){header{padding-inline:12px;gap:8px}header .brand-logo,footer .brand-logo{width:50px}header .brand-name,footer .brand-name{font-size:18.5px}header .brand-city,footer .brand-city{font-size:9px}header .brand-kicker{font-size:10.5px}}
