:root{--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:clamp(1.15rem,1.1rem + .3vw,1.4rem);--text-xl:clamp(1.6rem,1.2rem + 1vw,2.3rem);--text-2xl:clamp(2.3rem,1.4rem + 3vw,4.4rem);--text-hero:clamp(2.7rem,1.6rem + 4vw,5.9rem);--bg:#fff;--ink:#171717;--muted:#555;--line:#d8d8d8;--accent:#c32222;--surface:#f4f3f0;--font-body:Montserrat,sans-serif;--font-display:Montserrat,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--s5);-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:400 var(--text-base)/1.75 var(--font-body)}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--font-display);line-height:1.15;text-wrap:balance}h1{font-size:var(--text-hero)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}p{margin-block:var(--s4);max-width:72ch}img{display:block;max-width:100%;height:auto}a{color:inherit;text-underline-offset:4px}button,input,select{font:inherit;color:inherit}button{cursor:pointer}a,button{transition:color .18s,background .18s}a:hover{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.wrap{width:min(1200px,calc(100% - 64px));margin-inline:auto}.section{padding-block:var(--s8)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:var(--s6);margin-bottom:var(--s7)}.eyebrow{display:block;font-size:var(--text-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:var(--s4);color:var(--accent)}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;padding:var(--s4) var(--s5);font-size:var(--text-sm);font-weight:700;text-decoration:none;min-height:48px;border:1px solid var(--accent)}.button:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}.button.secondary{background:transparent;color:inherit;border-color:currentColor}.actions{display:flex;flex-wrap:wrap;gap:var(--s4);margin-top:var(--s6)}.topline{background:var(--ink);color:var(--bg);font-size:var(--text-xs);padding-block:var(--s2)}.topline>.wrap{display:flex;justify-content:space-between;gap:var(--s4)}.topline a{white-space:nowrap;text-decoration:none}header{border-bottom:1px solid var(--line)}.navrow{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);min-height:104px;position:relative}.brand{display:block;text-decoration:none;flex-shrink:0}.brand>img{width:170px;max-height:75px;object-fit:contain}.navrow nav{display:flex;align-items:center;gap:var(--s6);font-size:var(--text-sm);font-weight:600}.navrow nav a{text-decoration:none;padding-block:var(--s3)}.navrow nav a[aria-current]{border-bottom:2px solid var(--accent)}.menu-toggle{display:none;background:none;border:1px solid var(--line);padding:var(--s2) var(--s3);font-size:var(--text-sm)}.skip{position:absolute;left:var(--s4);top:-100px;z-index:100;background:var(--bg);padding:var(--s4)}.skip:focus{top:var(--s4)}.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s8);align-items:center}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5)}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.surface{background:var(--surface)}.page-heading{padding-block:var(--s8);border-bottom:1px solid var(--line)}.page-heading h1{font-size:var(--text-2xl)}.page-heading p{font-size:var(--text-lg);color:var(--muted);max-width:65ch}.prose{max-width:820px;margin-inline:auto;padding-block:var(--s8)}.prose h2{margin:var(--s7) 0 var(--s5)}.prose h2:first-child{margin-top:0}.prose h3{margin-top:var(--s6)}.prose li{margin-bottom:var(--s3)}.prose p{margin-block:var(--s5)}.contact-panel{padding:var(--s7);background:var(--surface);height:100%}.contact-panel a{display:block;overflow-wrap:anywhere}.contact-panel h2{margin-bottom:var(--s5)}.hours{width:100%;border-collapse:collapse;margin-top:var(--s5)}.hours td,.hours th{text-align:left;padding:var(--s3) 0;border-bottom:1px solid var(--line);vertical-align:top}.hours th{font-weight:600}.hours td{padding-left:var(--s5)}footer{background:var(--ink);color:var(--bg);padding-top:var(--s8)}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:var(--s7)}.footer-brand img{max-width:180px;max-height:85px;object-fit:contain}.footer-grid nav,.footer-grid>div:last-child{display:flex;flex-direction:column;align-items:start;gap:var(--s3)}.footer-grid a{font-size:var(--text-sm);overflow-wrap:anywhere}.footer-grid h2{font-size:var(--text-lg);margin-bottom:var(--s3)}.footer-grid p{font-size:var(--text-sm)}.footer-bottom{border-top:1px solid #555;margin-top:var(--s7);padding-block:var(--s5);font-size:var(--text-xs)}.quiet{color:var(--muted);font-size:var(--text-sm)}.filter{display:flex;align-items:center;gap:var(--s4);margin-bottom:var(--s6)}.filter input{border:1px solid var(--line);background:var(--bg);padding:var(--s3) var(--s4);min-width:0;width:min(100%,480px)}[hidden]{display:none!important}.empty{padding:var(--s6);border:1px solid var(--line)}.breadcrumb{font-size:var(--text-xs);margin-bottom:var(--s5)}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4)}.gallery button{display:block;padding:0;background:none;border:0}.gallery img{aspect-ratio:1;object-fit:cover;width:100%}.lightbox{border:0;padding:var(--s6);background:var(--bg);color:var(--ink);max-width:92vw;max-height:95vh}.lightbox::backdrop{background:#000d}.lightbox>button{display:block;margin-left:auto;margin-bottom:var(--s4);padding:var(--s2) var(--s4);background:var(--ink);color:var(--bg);border:0}.lightbox img{max-height:78vh;width:auto;margin:auto;object-fit:contain}
@media(max-width:850px){.wrap{width:calc(100% - 40px)}.navrow{min-height:90px}.menu-toggle{display:block;margin-left:auto}.navrow nav{display:none;position:absolute;top:100%;left:-20px;right:-20px;z-index:30;background:var(--bg);padding:var(--s5);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:var(--s2);box-shadow:0 12px 20px #0001}.navrow nav.open{display:flex}.split{gap:var(--s6)}.grid{grid-template-columns:repeat(2,1fr)}.footer-grid{gap:var(--s5);grid-template-columns:1fr 1fr}.footer-grid>div:last-child{grid-column:1/-1}.section-head{display:block}.section-head>a{display:inline-block;margin-top:var(--s4)}}
@media(max-width:600px){.topline>.wrap>span{max-width:70%;line-height:1.4}.section{padding-block:var(--s7)}.split,.grid.two{grid-template-columns:1fr}.grid{gap:var(--s4)}.brand>img{width:140px;max-height:64px}.page-heading{padding-block:var(--s7)}.prose{padding-block:var(--s7)}.contact-panel{padding:var(--s5)}.gallery{grid-template-columns:repeat(2,1fr)}.filter{display:block}.filter label{display:block;margin-bottom:var(--s2)}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.footer-grid>div:last-child{grid-column:auto}.footer-grid{gap:var(--s6) var(--s4)}.hours{font-size:var(--text-sm)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

@font-face{font-family:Montserrat;src:url(montserrat-400.ttf);font-weight:400;font-display:swap}@font-face{font-family:Montserrat;src:url(montserrat-700.ttf);font-weight:600 900;font-display:swap}
.ippon{--accent:#bd191d;--bg:#fff;--surface:#f3f3f3;--ink:#121212;--muted:#505050}.ippon header{background:#111;color:#fff;border:0}.ippon .topline{background:#b71519}.ippon .navrow nav.open{background:#111}.ippon .navrow nav a:hover{color:#ffb9bb}.ippon .navrow nav a[aria-current]{border-color:#ed3337}.ippon .brand>img{width:150px;height:82px}.ippon .hero{background:#efefed;overflow:hidden;position:relative}.ippon .hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;min-height:620px;gap:var(--s5)}.ippon .hero h1{font-size:clamp(2.7rem,1.5rem + 3.5vw,5rem);font-weight:800;letter-spacing:-.055em;max-width:12ch}.ippon .hero p{max-width:45ch}.ippon .hero-figure{position:relative;align-self:stretch;display:grid;align-items:center}.ippon .hero-figure:before{content:"";position:absolute;width:85%;height:75%;background:#bd191d;right:-15%;top:12%;transform:skew(-10deg)}.ippon .hero-figure img{position:relative;width:100%;object-fit:contain;max-height:610px}.ippon .brand-strip{display:flex;align-items:center;justify-content:space-between;gap:var(--s6);padding-block:var(--s6);border-bottom:1px solid var(--line)}.ippon .brand-strip img{width:110px;height:70px;object-fit:contain}.ippon .discipline{display:block;text-decoration:none;background:#111;color:white;position:relative;overflow:hidden}.ippon .discipline img{width:100%;aspect-ratio:1.25;object-fit:cover;filter:brightness(.78)}.ippon .discipline h3{position:absolute;bottom:var(--s5);left:var(--s5);right:var(--s5);font-size:var(--text-lg);text-shadow:0 2px 8px #000}.ippon .discipline:hover img{filter:brightness(.95)}.ippon .discipline:hover{color:#fff}.ippon .about-image{background:#ededeb;display:grid;place-items:center;height:480px}.ippon .about-image img{height:100%;object-fit:contain}.ippon .numbers{display:flex;gap:var(--s7);padding-block:var(--s5);border-block:1px solid var(--line);margin-top:var(--s6)}.ippon .numbers strong{display:block;font-size:var(--text-xl);color:var(--accent)}.ippon .numbers span{font-size:var(--text-xs)}.ippon .category-hero img{width:100%;aspect-ratio:1.2;object-fit:cover}.ippon .equip-list{padding-left:var(--s5);margin-block:var(--s5)}.ippon .equip-list li{padding:var(--s2) 0}.ippon .service{padding:var(--s6);border-top:3px solid var(--accent);background:var(--surface)}.ippon .service p{font-size:var(--text-sm)}.ippon .cta{background:#b71519;color:white;padding-block:var(--s7)}.ippon .cta .button{background:#111;border-color:#111}.ippon .cta .wrap{display:flex;justify-content:space-between;gap:var(--s6);align-items:center}
@media(max-width:850px){.ippon .hero .wrap{min-height:540px}.ippon .hero-figure:before{right:-5%}.ippon .brand-strip{gap:var(--s5);flex-wrap:wrap;justify-content:center}.ippon .brand-strip img{width:90px;height:50px}}
.ippon .grid:has(.service){grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:600px){.ippon .grid:has(.service){grid-template-columns:1fr}}
@media(max-width:600px){.ippon .hero .wrap{grid-template-columns:1fr;padding-top:var(--s7);gap:0}.ippon .hero h1{font-size:var(--text-2xl);max-width:15ch}.ippon .hero-figure{height:330px;margin-top:var(--s5)}.ippon .hero-figure img{height:330px;width:100%}.ippon .hero-figure:before{width:66%;height:80%;right:0}.ippon .about-image{height:360px}.ippon .discipline h3{left:var(--s4);bottom:var(--s4);font-size:var(--text-base)}.ippon .cta .wrap{display:block}.ippon .cta .button{margin-top:var(--s5)}}
