:root{--color-background:#f3efe8;--color-surface:#fff;--color-text-primary:#2f2f2f;--color-text-secondary:#5c5c5c;--color-accent:#8c7a5a;--color-accent-hover:#756448;--color-border:#d6d1c4;--color-line-accent:#b7a98a;--color-button-disabled:#b8b3a6;--font-body:"Helvetica Neue", Arial, sans-serif;--font-heading:"Georgia", serif;--text-sm:.9rem;--text-base:1rem;--text-lg:1.2rem;--text-xl:1.6rem;--text-2xl:2.4rem;--text-hero:2.8rem;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:3rem;--space-6:4rem;--space-7:6rem;--content-width:900px;--wide-width:1100px;--transition-fast:.2s ease;--transition-normal:.3s ease}
*{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-background);color:var(--color-text-primary);font-family:var(--font-body);font-size:var(--text-base);letter-spacing:.01em;line-height:1.7}main{padding-top:80px}h1,h2,h3{font-family:var(--font-heading);letter-spacing:.02em;font-weight:500;line-height:1.3}h1{font-size:var(--text-2xl);margin-bottom:var(--space-3)}h2{font-size:var(--text-xl);margin-bottom:var(--space-2)}h3{font-size:var(--text-lg);margin-bottom:var(--space-1)}p{max-width:65ch;margin-bottom:var(--space-3)}p+p{margin-top:var(--space-2)}.section-intro{text-align:center;margin-bottom:var(--space-5)}.section-intro p{margin:0 auto}
.site-container{max-width:1100px;margin:0 auto;padding-left:clamp(16px,4vw,28px);padding-right:clamp(16px,4vw,28px)}.site-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:1000;width:100%;transition:transform var(--transition-normal);position:fixed;top:0}.site-header.show{transform:translateY(0)}.site-header.hide{transform:translateY(-100%)}.header-inner{max-width:var(--wide-width);padding:var(--space-2) clamp(16px, 4vw, 28px);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.logo{font-size:var(--text-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-secondary)}.desktop-nav{gap:var(--space-3);display:flex}.desktop-nav a{color:var(--color-text-primary);font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;position:relative}.desktop-nav a:hover{color:var(--color-accent)}.desktop-nav a:after{content:"";background:var(--color-accent);width:0%;height:1px;transition:width var(--transition-fast);position:absolute;bottom:-3px;left:0}.desktop-nav a:hover:after{width:100%}.menu-button{cursor:pointer;touch-action:manipulation;min-width:44px;min-height:44px;color:var(--color-text-primary);background:0 0;border:none;justify-content:center;align-items:center;padding:8px;font-size:1.4rem;line-height:1;display:none}.mobile-nav{background:var(--color-surface);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding:var(--space-1) clamp(16px, 4vw, 28px);flex-direction:column;display:flex}.mobile-nav a{color:var(--color-text-primary);font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--color-border);padding:12px 0;text-decoration:none;display:block}.mobile-nav a:last-child{border-bottom:none}.mobile-nav a:hover{color:var(--color-accent)}@media (max-width:768px){.desktop-nav{display:none}.menu-button{display:flex}}.site-footer{border-top:1px solid var(--color-border);text-align:center;color:var(--color-text-secondary);margin-top:80px;padding-top:40px;padding-bottom:40px;font-size:.95rem}.footer-inner{max-width:var(--wide-width);align-items:center;gap:var(--space-1);flex-direction:column;margin:0 auto;padding-left:clamp(16px,4vw,28px);padding-right:clamp(16px,4vw,28px);display:flex}.footer-inner p{text-align:center;max-width:100%;margin-bottom:0}.footer-inner a{color:var(--color-accent);text-decoration:none}.footer-inner a:hover{color:var(--color-accent-hover)}.footer-small{opacity:.7;font-size:.85rem}
.button{padding:var(--space-2) var(--space-3);background:var(--color-accent);color:var(--color-surface);cursor:pointer;transition:background var(--transition-fast);border:none;border-radius:6px}.button:hover{background:var(--color-accent-hover)}.button:disabled{background:var(--color-button-disabled);cursor:not-allowed}.contact-form{gap:var(--space-2);flex-direction:column;display:flex}.contact-form input,.contact-form textarea{width:100%;padding:var(--space-2);font-family:inherit;font-size:var(--text-base);border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--color-accent);outline:none}.contact-form button{margin-top:var(--space-1);padding:var(--space-2);font-size:var(--text-sm);background:var(--color-accent);color:var(--color-surface);cursor:pointer;border:none;border-radius:6px}.contact-form button:hover{background:var(--color-accent-hover)}.section-divider{background:var(--color-border);width:60px;height:1px;margin:var(--space-4) auto}.social-links{gap:20px;display:flex}.social-links a{font-weight:500;text-decoration:none}.social-section{margin-top:48px}
.hero-home{height:55vh;max-width:var(--wide-width);background-image:url(/images/dojo-hero.jpeg);background-position:50%;background-size:cover;justify-content:center;align-items:stretch;margin:0 auto;display:flex;position:relative}.hero-home:before{content:"";background:linear-gradient(#f3efe800 0%,#f3efe84d 40%,#f3efe8eb 75%,#f3efe8 100%);position:absolute;inset:0}.hero-home .hero-overlay{width:100%;max-width:720px;padding:var(--space-5) var(--space-3);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.hero-home .hero-overlay h1{font-size:var(--text-hero);margin-bottom:0}.hero-home .hero-overlay p{font-size:var(--text-lg);color:var(--color-text-secondary);max-width:55ch;padding-bottom:var(--space-2);margin:auto auto 0}.page-hero{text-align:center;padding:var(--space-6) clamp(16px, 4vw, 28px);max-width:var(--wide-width);border-bottom:1px solid var(--color-border);margin:0 auto}.page-hero h1{margin-bottom:var(--space-2)}.page-hero h2{font-size:var(--text-lg);color:var(--color-text-secondary);max-width:55ch;margin:0 auto;font-weight:400}.history-hero{background-color:var(--color-background);justify-content:center;align-items:center;height:65vh;min-height:500px;display:flex;position:relative;overflow:hidden}.hero-bg{will-change:transform;background-image:url(/images/kanko.jpeg);background-position:50%;background-repeat:no-repeat;background-size:contain;transition:transform .1s linear;position:absolute;inset:0;transform:translateY(0)}.history-hero .hero-overlay{background:#f3efe8a6;position:absolute;inset:0}.hero-overlay-content{text-align:center;max-width:720px;padding:var(--space-3);opacity:0;transition:opacity 1.2s,transform 1.2s;position:relative;transform:translateY(10px)}.hero-overlay-content.fade-in{opacity:1;transform:translateY(0)}.hero-overlay-content h1{margin-bottom:var(--space-3);font-size:2.8rem}.hero-overlay-content p{color:var(--color-text-secondary);max-width:60ch;margin:0 auto;font-size:1.1rem}.home-intro,.home-schedule,.home-dojo,.home-location{max-width:var(--wide-width);padding:var(--space-6) clamp(16px, 4vw, 28px);border-bottom:1px solid var(--color-border);text-align:center;margin:0 auto}.home-intro h2,.home-schedule h2,.home-dojo h2,.home-location h2{margin-bottom:var(--space-3)}.home-intro h3{font-size:var(--text-lg);color:var(--color-text-secondary);max-width:60ch;margin:0 auto;font-weight:400}.home-dojo p,.home-location p{max-width:60ch;margin:0 auto var(--space-4);color:var(--color-text-secondary);line-height:1.8}.home-location{border-bottom:none}.schedule-link{margin-top:var(--space-3);color:var(--color-accent);font-size:var(--text-sm);letter-spacing:.06em;border-bottom:1px solid var(--color-line-accent);transition:color var(--transition-fast), border-color var(--transition-fast);padding-bottom:2px;text-decoration:none;display:inline-block}.schedule-link:hover{color:var(--color-accent-hover);border-color:var(--color-accent-hover)}.schedule-section{max-width:var(--wide-width);margin:var(--space-5) auto;text-align:center;padding:0 clamp(16px,4vw,28px)}.schedule-note{text-align:center;font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-4);max-width:100%}.schedule-grid{gap:var(--space-5);margin-top:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.schedule-day{flex-direction:column;align-items:center;display:flex}.schedule-day h3{text-align:center}.schedule-grid strong{font-size:var(--text-base);margin-bottom:var(--space-1)}.schedule-grid p,.schedule-day p{color:var(--color-text-secondary);text-align:center;max-width:100%;margin-bottom:0}.time{font-size:var(--text-base);color:var(--color-text-primary);margin-bottom:var(--space-1)}.instructors-section{max-width:var(--wide-width);margin:var(--space-5) auto;padding:0 clamp(16px,4vw,28px)}.instructor-row{gap:var(--space-5);margin-bottom:var(--space-6);grid-template-columns:320px 1fr;align-items:start;display:grid}.instructor-image img{aspect-ratio:3/4;object-fit:cover;border-radius:6px;width:100%;height:auto;display:block}.instructor-text{max-width:520px}.rank{font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:var(--space-2)}.aikido-section{max-width:720px;margin:var(--space-6) auto;padding:0 clamp(16px,4vw,28px)}.aikido-section h2{margin-top:var(--space-5);margin-bottom:var(--space-2);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-1)}.aikido-section h2:first-of-type{margin-top:0}.aikido-section ul{margin-left:var(--space-3);margin-bottom:var(--space-3);padding-left:1rem}.aikido-section li{margin-bottom:var(--space-1)}.aikido-section p{max-width:100%}.aikido-section em{margin-top:var(--space-4);text-align:center;font-size:1.1rem;display:block}.location-section{max-width:var(--wide-width);margin:var(--space-5) auto;padding:0 clamp(16px,4vw,28px)}.location-row{gap:var(--space-6);grid-template-columns:1fr 1.2fr;display:grid}.location-text h3{text-align:left}.location-text p{max-width:100%}.location-map iframe{filter:grayscale(80%)contrast(95%);border:none;width:100%;height:420px}.map-load-btn{background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;width:100%;min-height:300px;font-family:inherit;font-size:var(--text-base);color:var(--color-text-secondary);transition:background var(--transition-fast);border-radius:4px;justify-content:center;align-items:center;display:flex}.map-load-btn:hover{background:var(--color-background)}.contact-intro{max-width:var(--wide-width);margin:var(--space-5) auto 0;padding:0 clamp(16px,4vw,28px)}.contact-intro h1{margin-bottom:var(--space-2)}.contact-intro a{color:var(--color-accent);font-size:var(--text-lg);text-decoration:none}.contact-grid{max-width:var(--wide-width);margin:var(--space-4) auto var(--space-6);gap:var(--space-5);grid-template-columns:1fr 1.4fr;padding:0 clamp(16px,4vw,28px);display:grid}.blog-intro{margin-bottom:var(--space-5);max-width:640px;line-height:1.6}.blog-list{margin-top:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.blog-post{padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.blog-post h2{margin-bottom:8px;font-size:1.4rem;line-height:1.4}.blog-excerpt{margin-top:var(--space-1);max-width:600px;color:var(--color-text-secondary);font-size:1rem;line-height:1.6}.blog-date{color:var(--color-text-secondary);margin-top:4px;font-size:.85rem;display:block}.blog-social{gap:24px;margin-top:60px;display:flex}.blog-post.seminar{border-left:4px solid var(--color-accent);padding-left:var(--space-2)}.blog-post.news{border-left:4px solid var(--color-text-secondary);padding-left:var(--space-2)}.blog-post.article{border-left:4px solid var(--color-line-accent);padding-left:var(--space-2)}.blog-article{max-width:720px;margin:0 auto;font-size:1.05rem;line-height:1.7}.blog-header{margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-2)}.blog-header h1{margin-bottom:6px;font-size:2.2rem;line-height:1.3}.blog-content{margin-top:var(--space-4);color:var(--color-text-primary);font-family:Libre Baskerville,serif;line-height:1.75}.blog-content p{margin-bottom:var(--space-3);max-width:100%;font-size:1.05rem}.blog-content h2{margin-top:var(--space-5);margin-bottom:var(--space-2);border-bottom:1px solid var(--color-border);padding-bottom:4px;font-size:1.6rem}.blog-content h3{margin-top:var(--space-4);margin-bottom:var(--space-1);font-size:1.3rem}.blog-content ul{margin-left:var(--space-3);margin-bottom:var(--space-3);padding-left:1rem}.blog-content li{margin-bottom:6px}.blog-content a{color:var(--color-accent);text-decoration:underline}.blog-content blockquote{border-left:3px solid var(--color-border);margin:var(--space-4) 0;color:var(--color-text-secondary);padding-left:1rem;font-style:italic}.blog-content img{max-width:100%;margin:var(--space-4) 0;border-radius:6px}.quote-block{border-left:4px solid var(--color-accent);background:#f9f7f4;margin:2rem 0;padding:1.5rem;font-style:italic}.quote-author{color:var(--color-text-secondary);margin-top:.75rem;font-size:.85rem;font-style:normal}.related-posts{margin-top:var(--space-6);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.blog-navigation{margin-top:var(--space-6);padding-top:var(--space-3);border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.section-divider{background:var(--color-border);width:60px;height:1px;margin:var(--space-4) auto}.social-links{gap:20px;display:flex}.social-links a{font-weight:500;text-decoration:none}.social-section{margin-top:48px}@media (max-width:900px){.instructor-row,.location-row,.contact-grid{grid-template-columns:1fr}}@media (max-width:700px){.schedule-grid{gap:var(--space-4);grid-template-columns:1fr}}@media (max-width:768px){.history-hero{height:55vh;min-height:420px}.hero-bg{transform:none!important}.hero-overlay-content h1{font-size:2rem}.page-hero,.home-intro,.home-schedule,.home-dojo,.home-location{padding:var(--space-4) clamp(16px, 4vw, 28px)}}

