:root{--ink:#111827;--ink-2:#18263a;--red:#d92332;--red-dark:#b91624;--cream:#faf7f0;--white:#fff;--blue:#1769aa;--gold:#f4c430;--green:#258449;--purple:#7046a0;--text:#203047;--muted:#667085;--border:#dedbd3;--shadow:0 12px 30px rgba(17,24,39,.16);--radius:22px;--display:"Barlow Condensed","Arial Narrow",sans-serif;--body:"Inter",system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--text);font-family:var(--body);line-height:1.55}img{display:block;max-width:100%}a{color:inherit}.skip-link{position:absolute;top:-60px;left:12px;background:#fff;padding:10px 14px;z-index:100}.skip-link:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{height:86px;display:flex;align-items:center;gap:28px;padding:0 clamp(22px,5vw,76px);background:rgba(250,247,240,.97);position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(17,24,39,.08);backdrop-filter:blur(14px)}.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);margin-right:auto}.brand-mark{width:45px;height:45px;display:grid;place-items:center;border-radius:50% 45% 52% 44%;background:var(--red);color:#fff;font:italic 900 30px/1 var(--display);transform:rotate(-6deg);box-shadow:inset 0 0 0 5px rgba(255,255,255,.18)}.brand-copy{display:grid;line-height:.88}.brand-copy strong{font:900 30px/1 var(--display);letter-spacing:.02em}.brand-copy small{font:700 11px/1 var(--body);letter-spacing:.24em;margin-top:7px}.primary-nav{display:flex;gap:30px}.primary-nav a{font:700 14px/1 var(--body);text-decoration:none;position:relative;padding:32px 0}.primary-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:22px;height:3px;background:var(--red);transition:right .22s}.primary-nav a:hover:after,.primary-nav a:focus-visible:after{right:0}.header-actions{display:flex;align-items:center;gap:18px}.language-toggle{border:0;background:transparent;padding:10px;cursor:pointer;color:var(--ink);font:700 13px var(--body)}.language-toggle span{margin-left:5px;color:var(--muted)}.language-toggle strong{color:var(--red)}.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:52px;padding:0 24px;border:0;border-radius:14px;text-decoration:none;font:700 15px var(--body);cursor:pointer;box-shadow:0 6px 0 rgba(17,24,39,.16);transition:transform .18s,box-shadow .18s,background .18s}.button:hover,.button:focus-visible{transform:translateY(-3px);box-shadow:0 10px 18px rgba(17,24,39,.22)}.button-primary{background:var(--red);color:#fff}.button-primary:hover{background:var(--red-dark)}.header-cta{min-height:46px;padding-inline:20px}.menu-toggle{display:none}
.hero{background:var(--ink);color:#fff;position:relative;overflow:hidden}.hero:before{content:"空 手 道";position:absolute;inset:35px auto auto 1.5vw;color:rgba(255,255,255,.055);font:800 72px/1.35 serif;writing-mode:vertical-rl;letter-spacing:.15em}.hero:after{content:"";position:absolute;bottom:-7px;left:-3%;right:-3%;height:22px;background:var(--cream);clip-path:polygon(0 62%,12% 34%,23% 58%,37% 27%,49% 56%,65% 30%,78% 63%,91% 36%,100% 60%,100% 100%,0 100%)}.hero-inner{max-width:1340px;margin:auto;min-height:650px;padding:64px clamp(22px,5vw,76px) 76px;display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}.hero-copy{position:relative;z-index:2}.hero h1{font:900 clamp(64px,7.1vw,112px)/.82 var(--display);text-transform:uppercase;letter-spacing:-.02em;margin:0 0 34px;max-width:650px}.hero h1 span{display:block}.hero h1 em{display:block;color:var(--red);font-style:normal;text-shadow:3px 3px 0 rgba(0,0,0,.25)}.hero-copy>p{font-size:18px;max-width:620px;margin:0 0 30px;color:#e6ebf1}.hero-actions{display:flex;align-items:center;gap:30px}.text-link{font-weight:700;text-underline-offset:8px}.hero-photo{margin:0;position:relative;padding-top:8px}.hero-photo:before{content:"";position:absolute;inset:-10px -14px 24px 16px;border-top:9px solid var(--gold);border-radius:34px 18px 42px 20px;transform:rotate(-1deg)}.hero-photo img{width:100%;height:510px;object-fit:cover;object-position:center 24%;border-radius:34px 18px 42px 20px;position:relative;box-shadow:var(--shadow)}.hero-photo figcaption{position:absolute;bottom:-18px;right:10px;background:var(--red);color:#fff;padding:10px 18px;border-radius:12px 4px;font:700 14px var(--body);transform:rotate(-1deg)}
.trust-strip{max-width:1340px;margin:auto;padding:30px clamp(22px,5vw,76px);display:grid;grid-template-columns:repeat(4,1fr);gap:0}.trust-strip>div{display:flex;align-items:center;gap:15px;padding:4px 24px;border-right:1px solid var(--border)}.trust-strip>div:first-child{padding-left:0}.trust-strip>div:last-child{border:0}.trust-icon{width:46px;height:46px;flex:0 0 46px;display:grid;place-items:center;color:var(--red);font:800 15px var(--display);border:3px solid currentColor;border-radius:50%}.trust-icon svg{width:48px;height:48px;overflow:visible}.map-icon,.kids-icon{border:0}.map-icon path{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.map-icon circle{fill:var(--blue);stroke:var(--cream);stroke-width:2}.kids-icon circle{fill:none;stroke:currentColor;stroke-width:3}.kids-icon path{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round}.language-icon{width:58px;flex-basis:58px;border-radius:16px;grid-template-columns:auto auto auto;gap:2px;padding:0 5px;font-family:var(--display)}.language-icon b{font-size:13px}.language-icon i{font:700 11px var(--body);font-style:normal;color:var(--blue)}.trust-strip p{margin:0}.trust-strip strong{display:block;color:var(--ink);font:800 19px/1 var(--display);text-transform:uppercase}.trust-strip small{display:block;color:var(--muted);font-size:11px;margin-top:7px}.belt-icon{border:0;border-radius:4px;height:12px;background:var(--red);position:relative}.belt-icon:after{content:"";position:absolute;inset:-8px 17px;background:var(--red);transform:rotate(45deg)}
.section-pad{padding:100px clamp(22px,5vw,76px)}.benefits{max-width:1340px;margin:auto}.section-heading h2{font:900 clamp(54px,6.4vw,92px)/.86 var(--display);text-transform:uppercase;letter-spacing:-.02em;color:var(--ink);margin:0}.split-heading{display:grid;grid-template-columns:1fr .8fr;gap:100px;align-items:end}.split-heading h2::first-line,.programs-heading h2::first-line{color:var(--ink)}.split-heading>div>p:first-child{font-size:18px;max-width:520px}.handwritten{font:italic 700 27px var(--display);color:var(--red);transform:rotate(-2deg);border-bottom:4px solid var(--red);display:inline-block}.values{display:grid;grid-template-columns:repeat(5,1fr);gap:32px;margin-top:68px}.value span{display:block;width:82px;height:9px;background:currentColor;border-radius:50%;transform:rotate(-7deg);margin-bottom:22px}.value h3{font:800 27px/1 var(--display);text-transform:uppercase;color:var(--ink);margin:0 0 12px}.value p{font-size:14px;margin:0;color:var(--muted)}.value-yellow{color:var(--gold)}.value-green{color:var(--green)}.value-red{color:var(--red)}.value-blue{color:var(--blue)}.value-purple{color:var(--purple)}
.programs{background:var(--ink);color:#fff}.programs-heading{max-width:1200px;margin:0 auto 50px;display:grid;grid-template-columns:1fr .65fr;gap:80px;align-items:end}.programs-heading h2{color:#fff}.programs-heading h2::first-line{color:#fff}.programs-heading p{color:#d6dde7;font-size:18px}.program-grid{max-width:1280px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.program-card{--accent:var(--red);display:flex;flex-direction:column}.program-card img{aspect-ratio:1/1.08;object-fit:cover;border-radius:20px 6px 20px 6px;filter:saturate(.9);transition:transform .28s,filter .28s}.program-card:hover img{transform:translateY(-5px);filter:saturate(1.1)}.program-card h3{font:800 29px/1 var(--display);text-transform:uppercase;margin:24px 0 11px}.program-card h3:after{content:"";display:block;width:42px;height:4px;border-radius:4px;background:var(--accent);margin-top:12px}.program-card p{color:#cfd7e2;font-size:14px;margin:0 0 24px;flex:1}.program-card a{align-self:flex-start;color:#fff;text-decoration:none;font-weight:700;border-bottom:2px solid var(--accent);padding:7px 0}.accent-yellow{--accent:var(--gold)}.accent-green{--accent:#35a45b}.accent-blue{--accent:#248fe5}
.after-school-band{display:grid;grid-template-columns:1.08fr .92fr;background:var(--blue);color:#fff}.after-school-photo{min-height:590px}.after-school-photo img{width:100%;height:100%;object-fit:cover}.after-school-copy{padding:80px clamp(30px,6vw,100px);align-self:center}.after-school-copy h2{font:900 clamp(54px,6vw,88px)/.88 var(--display);text-transform:uppercase;margin:0 0 25px}.after-school-copy>p{font-size:18px;max-width:550px}.after-school-copy ul{list-style:none;padding:0;margin:28px 0 34px}.after-school-copy li{padding:9px 0 9px 31px;position:relative}.after-school-copy li:before{content:"✓";position:absolute;left:0;color:var(--gold);font-weight:900}.button-light{background:#fff;color:var(--ink)}
.gallery-section{max-width:1340px;margin:auto}.gallery-heading{display:grid;grid-template-columns:1fr .75fr;gap:80px;align-items:end;margin-bottom:48px}.gallery-heading p{font-size:18px;max-width:520px;color:var(--muted)}.photo-mosaic{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:230px;grid-auto-flow:dense;gap:16px}.gallery-item{grid-column:span 3;position:relative;border:0;padding:0;background:var(--ink);overflow:hidden;border-radius:18px 6px 18px 6px;cursor:zoom-in;box-shadow:0 7px 18px rgba(17,24,39,.12)}.gallery-item:nth-child(1){grid-column:span 6}.gallery-item:nth-child(2),.gallery-item:nth-child(3),.gallery-item:nth-child(4){grid-column:span 3}.gallery-item:nth-child(5){grid-column:span 5}.gallery-item:nth-child(6){grid-column:span 4}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .35s,filter .35s}.gallery-item span{position:absolute;left:12px;right:12px;bottom:12px;padding:10px 12px;background:rgba(17,24,39,.88);color:#fff;border-left:4px solid var(--red);border-radius:5px;text-align:left;font:700 13px var(--body);transform:translateY(4px);transition:transform .25s}.gallery-item:hover img,.gallery-item:focus-visible img{transform:scale(1.045);filter:saturate(1.12)}.gallery-item:hover span,.gallery-item:focus-visible span{transform:translateY(0)}.photo-dialog{width:min(960px,calc(100vw - 32px));border:0;padding:0;background:var(--ink);color:#fff;border-radius:20px;box-shadow:0 24px 80px rgba(0,0,0,.55)}.photo-dialog::backdrop{background:rgba(6,12,22,.82);backdrop-filter:blur(3px)}.photo-dialog img{width:100%;max-height:75vh;object-fit:contain;background:#080d15}.photo-dialog p{margin:0;padding:18px 64px 20px 22px;font-weight:700}.dialog-close{position:absolute;top:12px;right:12px;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:var(--ink);font-size:30px;line-height:1;cursor:pointer;box-shadow:var(--shadow)}
.first-class{max-width:1340px;margin:auto}.centered{text-align:center}.centered h2{font-size:clamp(48px,5vw,76px)}.centered>p{font-size:18px;color:var(--muted)}.steps{list-style:none;margin:60px 0 52px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:44px}.steps li{display:flex;gap:20px;position:relative}.steps li:not(:last-child):after{content:"→";position:absolute;right:-30px;top:9px;color:var(--blue);font-size:26px}.steps strong{display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;border-radius:50%;background:var(--red);color:#fff}.steps h3{font:800 25px/1 var(--display);text-transform:uppercase;margin:2px 0 8px;color:var(--ink)}.steps p{font-size:14px;color:var(--muted);margin:0}.schedule-callout{background:#e8f2fb;border-left:7px solid var(--blue);padding:28px 30px;display:flex;gap:30px;align-items:center;justify-content:space-between;border-radius:6px 18px 18px 6px}.schedule-callout h3{font:800 27px/1 var(--display);text-transform:uppercase;color:var(--blue);margin:0 0 8px}.schedule-callout p{margin:0;max-width:720px}.button-blue{background:var(--blue);color:#fff;white-space:nowrap}
.enrollment{padding:88px clamp(22px,6vw,96px);background:var(--red);color:#fff;display:grid;grid-template-columns:.72fr 1.28fr;gap:70px;align-items:center;position:relative;overflow:hidden}.enrollment:before{content:"空手道";position:absolute;right:-15px;bottom:-20px;color:rgba(255,255,255,.1);font:900 170px/1 serif;writing-mode:vertical-rl}.enrollment-intro{position:relative;z-index:1}.enrollment h2{font:900 clamp(60px,7vw,100px)/.84 var(--display);text-transform:uppercase;margin:0 0 28px}.enrollment h2 em{font-style:normal;color:var(--gold)}.enrollment-intro>p{font-size:18px;max-width:470px}.privacy-note{font-size:13px!important;opacity:.82}.lead-form{background:#fff;color:var(--ink);border-radius:22px 8px 22px 8px;padding:34px;display:grid;grid-template-columns:1fr 1fr;gap:18px;position:relative;z-index:1;box-shadow:0 18px 45px rgba(80,4,11,.28)}.lead-form label{display:grid;gap:7px;font-size:12px;font-weight:700}.lead-form input,.lead-form select,.lead-form textarea{width:100%;border:1px solid #cdd5df;border-radius:10px;padding:12px 13px;background:#fff;color:var(--ink);font:500 14px var(--body)}.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{outline:3px solid rgba(23,105,170,.2);border-color:var(--blue)}.full-field{grid-column:1/-1}.consent{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start}.consent input{width:18px;height:18px;margin:0}.lead-form .button{width:100%}.form-status{margin:0;text-align:center;font-size:13px;min-height:1.5em}.form-status.success{color:var(--green)}.form-status.error{color:var(--red)}.honeypot{position:absolute;left:-10000px}
.visit{max-width:1340px;margin:auto}.visit-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:58px;align-items:center;margin-top:48px}.visit-grid>img{width:100%;height:450px;object-fit:cover;border-radius:24px 8px 24px 8px;box-shadow:var(--shadow)}.contact-list{display:grid;gap:10px}.contact-list a,.contact-list p{display:flex;align-items:center;gap:18px;text-decoration:none;padding:17px 10px;border-bottom:1px solid var(--border);margin:0}.contact-list span{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;background:#fff;color:var(--red);font-size:21px;box-shadow:0 5px 15px rgba(17,24,39,.1)}.contact-list a:hover strong{text-decoration:underline;text-underline-offset:5px}
footer{background:var(--ink);color:#fff;padding:48px clamp(22px,5vw,76px) 96px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px}.brand-footer{color:#fff}.brand-footer .brand-mark{background:var(--red)}footer>p{grid-column:1;margin:0;color:#aeb9c8;font-size:12px;letter-spacing:.08em;text-transform:uppercase}footer>div{grid-column:2;grid-row:1/3;display:grid;text-align:right;gap:8px;font-size:13px}footer>div a{font-weight:700}.floating-whatsapp{position:fixed;left:50%;bottom:20px;z-index:40;background:#20b95a;color:#fff;text-decoration:none;padding:14px 18px;border-radius:999px;display:flex;align-items:center;gap:9px;box-shadow:0 9px 25px rgba(0,0,0,.25);transform:translateX(-50%);transition:transform .2s,box-shadow .2s}.floating-whatsapp:hover{transform:translate(-50%,-4px) scale(1.02);box-shadow:0 14px 30px rgba(0,0,0,.3)}.floating-whatsapp span{font-size:21px}
@media(max-width:1050px){.primary-nav{gap:17px}.primary-nav a{font-size:12px}.header-cta{display:none}.hero-inner{grid-template-columns:1fr 1fr;gap:32px}.hero h1{font-size:66px}.program-grid{grid-template-columns:1fr 1fr;gap:45px 24px}.values{gap:18px}.trust-strip{grid-template-columns:1fr 1fr}.trust-strip>div:nth-child(2){border:0}.trust-strip>div{padding:14px 20px}.after-school-band{grid-template-columns:1fr}.after-school-photo{min-height:430px}.enrollment{grid-template-columns:1fr}.enrollment-intro{max-width:700px}}
@media(max-width:760px){.site-header{height:72px;padding:0 18px}.brand-mark{width:40px;height:40px}.brand-copy strong{font-size:24px}.brand-copy small{font-size:8px}.header-actions{margin-left:auto}.language-toggle{padding:7px}.menu-toggle{display:grid;gap:4px;border:0;background:transparent;padding:10px;order:3}.menu-toggle span:not(.sr-only){width:24px;height:2px;background:var(--ink)}.primary-nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--cream);padding:15px 22px 24px;box-shadow:var(--shadow)}.primary-nav.open{display:grid}.primary-nav a{padding:11px 0;font-size:15px}.primary-nav a:after{bottom:3px}.hero-inner{min-height:auto;grid-template-columns:1fr;padding:55px 22px 76px;gap:42px}.hero h1{font-size:clamp(58px,17vw,82px)}.hero-copy>p{font-size:16px}.hero-actions{align-items:flex-start;flex-direction:column;gap:22px}.hero-photo img{height:390px}.hero-photo figcaption{font-size:11px}.trust-strip{grid-template-columns:1fr;padding:22px}.trust-strip>div{border-right:0;border-bottom:1px solid var(--border);padding:15px 0}.section-pad{padding:74px 22px}.split-heading,.programs-heading{grid-template-columns:1fr;gap:24px}.split-heading h2,.programs-heading h2{font-size:58px}.values{grid-template-columns:1fr 1fr;gap:34px 22px}.value:last-child{grid-column:1/-1}.program-grid{grid-template-columns:1fr}.program-card img{aspect-ratio:1.35/1}.after-school-photo{min-height:320px}.after-school-copy{padding:64px 24px}.steps{grid-template-columns:1fr;gap:34px}.steps li:not(:last-child):after{content:"↓";right:auto;left:16px;top:auto;bottom:-31px}.schedule-callout{align-items:stretch;flex-direction:column}.button-blue{white-space:normal}.enrollment{padding:70px 22px;gap:38px}.enrollment h2{font-size:64px}.lead-form{grid-template-columns:1fr;padding:24px 18px}.full-field{grid-column:auto}.visit-grid{grid-template-columns:1fr;gap:30px}.visit-grid>img{height:300px}footer{grid-template-columns:1fr}footer>p,footer>div{grid-column:1;grid-row:auto;text-align:left}.floating-whatsapp strong{display:none}.floating-whatsapp{padding:15px}.floating-whatsapp span{line-height:1}}
@media(max-width:1050px){.photo-mosaic{grid-auto-rows:200px}.gallery-item,.gallery-item:nth-child(1),.gallery-item:nth-child(2),.gallery-item:nth-child(3),.gallery-item:nth-child(4),.gallery-item:nth-child(5),.gallery-item:nth-child(6){grid-column:span 6}}
@media(max-width:760px){.gallery-heading{grid-template-columns:1fr;gap:24px}.gallery-heading h2{font-size:58px}.photo-mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:170px;gap:10px}.photo-mosaic>.gallery-item{grid-column:span 1;grid-row:span 1;border-radius:13px 4px}.gallery-item:first-child,.gallery-item:last-child{grid-column:1/-1}.gallery-item span{font-size:10px;left:7px;right:7px;bottom:7px;padding:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Footer alignment: keep the floating action at the right and center contact details. */
.floating-whatsapp{left:auto;right:22px;transform:none}
.floating-whatsapp:hover{transform:translateY(-4px) scale(1.02)}
.whatsapp-icon{display:block;width:22px;height:22px;fill:currentColor;flex:0 0 22px}
.floating-whatsapp .whatsapp-icon{width:24px;height:24px;fill:#fff;flex-basis:24px}
.portfolio-mode [aria-disabled="true"]{cursor:not-allowed!important;filter:grayscale(.25);opacity:.68;text-decoration:none!important}
.portfolio-mode .owner-link{display:none}
.portfolio-mode #lead-form :disabled{cursor:not-allowed;opacity:.65}
@media(min-width:761px){footer{grid-template-columns:1fr auto 1fr}footer>div{grid-column:2;text-align:center}}
.bilingual-icon{border:0;width:54px;flex-basis:54px}
.bilingual-icon svg{width:54px;height:54px}
.bilingual-icon .bubble-one{fill:#fff;stroke:var(--red);stroke-width:3;stroke-linejoin:round}
.bilingual-icon .bubble-two{fill:#fff;stroke:var(--blue);stroke-width:3;stroke-linejoin:round}
.bilingual-icon .bubble-lines{fill:none;stroke:var(--ink);stroke-width:2.5;stroke-linecap:round}
.owner-link{margin-top:5px;color:#aeb9c8;font-size:11px;font-weight:600!important;text-underline-offset:4px}
.preview-watermark{position:fixed;inset:0;z-index:38;display:grid;place-items:center;pointer-events:none;overflow:hidden}.preview-watermark span{width:min(720px,82vw);padding:15px 28px;border:3px double rgba(185,22,36,.55);border-radius:8px;background:rgba(250,247,240,.76);color:rgba(150,15,29,.68);font:900 clamp(15px,2vw,22px)/1 var(--display);letter-spacing:.22em;text-align:center;text-transform:uppercase;transform:rotate(-12deg);box-shadow:0 5px 18px rgba(17,24,39,.08);backdrop-filter:blur(1px)}
