/* Mobile first: one-column layouts by default, enhanced at 768 and 1024px. */
:root{--paper:#f7f5ef;--ink:#272a24;--muted:#646d5e;--sage:#eaece3;--red:#873d32;--line:#cbd0c1;--gutter:clamp(20px,5vw,40px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.75 'DM Sans',sans-serif}img{max-width:100%;display:block}a{color:inherit;text-decoration:none;overflow-wrap:anywhere}button{font:inherit;cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,sans-serif}h1{font-size:clamp(44px,12vw,68px);line-height:1.08;letter-spacing:-2px;font-weight:500;margin:24px 0}h2{font-size:clamp(29px,8vw,38px);line-height:1.25;letter-spacing:-1px;font-weight:500;margin-bottom:24px}h3{font-size:23px;line-height:1.35;font-weight:500;margin-bottom:16px}p{margin-bottom:22px}a:focus-visible,button:focus-visible{outline:3px solid #b57b53;outline-offset:4px}[hidden]{display:none!important}
header{height:80px;padding:0 var(--gutter);display:flex;align-items:center;gap:12px;justify-content:space-between;background:var(--paper);position:sticky;top:0;z-index:20;border-bottom:1px solid #dedfd5}
.brand{display:flex;align-items:center;gap:8px;font-family:Manrope,sans-serif;font-size:18px;font-weight:800;letter-spacing:1.5px;line-height:1.2;min-width:0}.brand small{display:block;margin-top:5px;font-family:'DM Sans',sans-serif;font-size:8px;font-weight:600;letter-spacing:.6px}.school-logo{position:relative;width:57px;height:45px;flex:0 0 57px;overflow:hidden}.school-logo img{position:absolute;width:117px;height:auto;max-width:none;left:-30px;top:-10px}.nav-cta{display:none}.menu{display:block;width:48px;height:48px;flex-shrink:0;background:transparent;border:1px solid #d2d6ca;font-size:24px;line-height:1}
header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:16px var(--gutter) 24px;max-height:calc(100svh - 80px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 15px 24px #0001}header nav.open{display:flex;flex-direction:column;gap:4px}header nav>a,.nav-parent>a{display:flex;align-items:center;min-height:48px;font-size:16px}.nav-group{position:relative}.nav-parent{display:flex;align-items:center;justify-content:space-between;gap:8px}.nav-parent>a{flex:1}.submenu-toggle{width:48px;min-height:48px;border:0;background:transparent;font-size:20px;flex-shrink:0}.submenu-toggle[aria-expanded="true"]{color:var(--red)}.submenu{border-left:1px solid var(--line);margin:0 0 12px 10px;padding-left:14px}.submenu a{display:block;padding:12px 10px;min-height:48px;font-size:15px;line-height:1.6}.submenu small{display:block;font-size:12px;color:var(--muted)}nav a:hover,.under-link:hover{color:var(--red)}.submenu a:hover{background:var(--sage)}
.hero{position:relative;background:#343b32;color:white;isolation:isolate;overflow:hidden}.hero-photo{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:65% center}.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#162018e6,#16201880),linear-gradient(0deg,#162018a6,transparent)}.hero-content{position:relative;padding:70px var(--gutter) 44px;max-width:860px}.eyebrow,.section-label{font-size:11px;letter-spacing:1.4px;font-weight:600;line-height:1.8}.eyebrow{display:flex;align-items:center;gap:10px}.eyebrow>span{height:5px;width:5px;flex-shrink:0;background:#d8ac85;border-radius:50%}.hero-copy{font-size:16px;line-height:1.8;color:#e0e1d9;margin-bottom:30px}.button{display:inline-flex;width:100%;min-height:56px;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;font-size:14px;line-height:1.5;font-weight:600;transition:background .2s}.button span{flex-shrink:0}.light{background:#f5f3ec;color:#252921}.dark{background:var(--red);color:white;margin-top:12px}.dark:hover{background:#713329}.text-link{display:flex;align-items:center;justify-content:space-between;min-height:48px;font-size:14px;margin-top:16px;padding:8px 0;border-bottom:1px solid #8f9789;max-width:280px}.hero-bottom{position:relative;padding:0 var(--gutter) 26px;display:flex;gap:20px;justify-content:space-between;font-size:9px;letter-spacing:1px;line-height:1.8}.hero-bottom i{font-style:normal;margin:0 8px}.hero-bottom>span:last-child{display:none}.hero-kanji{position:absolute;right:var(--gutter);top:24px;font-family:serif;font-size:32px;line-height:1.2;opacity:.35}
.values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:24px var(--gutter);border-bottom:1px solid #dedfd5;text-align:center;font-size:12px}.values b{display:none}.section{padding:60px var(--gutter)}.section-label{color:#866a55;margin-bottom:24px}.heritage-grid,.information-section,.contact{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}.heritage-grid>*,.practice-grid>*,.contact>*{min-width:0}.intro{font-family:Georgia,serif;font-size:20px;line-height:1.6;color:#6d7663}.body-copy p,.approach-copy>p{color:var(--muted);line-height:1.85}.under-link{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #b8b9ad;padding:12px 0;margin-top:20px;min-height:48px;font-size:14px;width:100%;max-width:320px}.practice,.services-section,.location-section{background:var(--sage)}.section-top{margin-bottom:28px}.section-top>p{color:var(--muted);font-size:15px;line-height:1.8}.practice-grid{display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.practice-grid article{padding:28px 0;position:relative;min-width:0}.practice-grid article+article{border-top:1px solid var(--line)}.practice-grid h3{margin-bottom:14px}.practice-grid p{font-size:16px;line-height:1.85;color:var(--muted)}.number{font-size:12px;color:var(--muted)}.line-icon{font-size:38px;color:#606d52;line-height:1;margin:14px 0 20px}.tag{display:block;font-size:11px;letter-spacing:1.5px;color:#657057;margin-top:18px}.practice-note{font-size:13px;color:var(--muted);margin:22px 0 0}.information-section p{overflow-wrap:anywhere}
.approach{display:grid;grid-template-columns:minmax(0,1fr)}.approach-image{position:relative;aspect-ratio:1;background:#d6d7cc;overflow:hidden}.approach-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:48% center}.approach-image:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#1e2a2180,transparent 50%)}.approach-image>span{position:absolute;z-index:1;bottom:24px;left:var(--gutter);right:var(--gutter);color:white;font-size:10px;letter-spacing:1.5px}.approach-copy{padding:60px var(--gutter)}.approach-item{display:flex;gap:16px;padding:24px 0;border-top:1px solid #dddcd2}.approach-item>span{font-size:12px;color:#8f6650;flex-shrink:0}.approach-item h3{font-size:17px;margin-bottom:10px}.approach-item p{font-size:15px;line-height:1.75;color:var(--muted);margin:0}.quote{text-align:center}.quote-mark{font-size:65px;line-height:.8;font-family:Georgia,serif;color:#9a4938}.quote p{font-family:Georgia,serif;font-size:clamp(26px,7vw,36px);line-height:1.4;margin:18px 0 26px}.quote em{color:#667358}.quote .eyebrow{justify-content:center;color:var(--muted)}
.contact{background:#272e25;color:#f5f3eb;gap:32px}.contact .section-label{color:#c3ac8c}.contact>div>p{color:#c8cebf;font-size:16px}.location{display:flex;gap:14px;margin-top:28px;align-items:center;font-size:12px;letter-spacing:1px}.location>span{font-size:25px;color:#c3ac8c}.location small{display:block;font-size:14px;letter-spacing:0;line-height:1.75;color:#c2cbb9;margin-top:8px}.contact-card{padding:28px 22px;background:#f0eee5;color:var(--ink)}.contact-card .eyebrow{color:#806148}.contact-card h3{font-size:28px;letter-spacing:-.8px}.contact-card p{font-size:16px;color:var(--muted)}.contact-card>small{display:block;margin-top:16px;font-size:14px;line-height:1.75;color:var(--muted)}.contact-card>small a{display:inline-flex;align-items:center;min-height:44px}
footer{padding:36px var(--gutter) 24px;display:flex;flex-direction:column;align-items:flex-start;gap:22px}footer>p{font:17px/1.6 Georgia,serif;color:var(--muted);margin:0}footer>a:last-of-type{display:flex;align-items:center;min-height:44px;font-size:14px}.footer-bottom{width:100%;display:flex;flex-direction:column;gap:12px;border-top:1px solid #dedfd5;padding-top:24px;font-size:12px;line-height:1.8;color:var(--muted)}.footer-bottom a{display:flex;align-items:center;min-height:44px}
@media(min-width:768px){
:root{--gutter:6vw}.section{padding-block:80px}h1{font-size:76px;letter-spacing:-3px}h2{font-size:38px}.hero-content{padding-top:95px;padding-bottom:70px}.hero .button{width:auto;min-width:245px}.hero-bottom>span:last-child{display:block}.hero-kanji{font-size:55px}.hero-shade{background:linear-gradient(90deg,#111913e6,#11191388 45%,#11191315),linear-gradient(0deg,#11191399,transparent 35%)}.values{display:flex;justify-content:space-between;font-size:12px}.values b{display:block;color:#a15542}.heritage-grid,.information-section,.contact{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:6%}.practice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}#enseignement .practice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-grid article{padding:30px 20px}.practice-grid article:first-child{padding-left:0}.practice-grid article+article{border-top:0;border-left:1px solid var(--line)}.practice-grid p{font-size:15px}.practice-grid h3{font-size:21px}.approach-image{aspect-ratio:1.7}.contact-card{padding:32px}.quote p{font-size:40px}footer{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between}.footer-bottom{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}.footer-bottom a{margin-left:auto}
}
@media(min-width:1024px){
header{height:96px}html{scroll-padding-top:116px}.brand{font-size:21px;gap:12px}.brand small{font-size:9px}.school-logo{width:76px;height:60px;flex-basis:76px}.school-logo img{width:156px;left:-40px;top:-13px}.menu{display:none}header nav,header nav.open{display:flex;position:static;flex-direction:row;align-items:center;gap:20px;max-height:none;overflow:visible;padding:0;box-shadow:none;background:transparent}header nav>a,.nav-parent>a{font-size:13px;white-space:nowrap}.submenu-toggle{width:32px}.submenu{position:absolute;top:100%;left:-16px;width:260px;border:1px solid #dedfd5;margin:0;padding:12px;background:var(--paper);box-shadow:0 15px 24px #0001}.submenu a{font-size:14px}.hero{min-height:660px}.hero-content{padding:100px var(--gutter) 80px}h1{font-size:clamp(76px,7vw,110px);letter-spacing:-4px}h2{font-size:clamp(38px,3.2vw,46px)}.hero-photo{object-position:70% 44%}.hero-copy{font-size:18px}.hero-kanji{top:55px;font-size:69px}.hero-bottom{padding-bottom:30px}.section{padding-block:100px}.section-top{display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.section-top>p{max-width:350px}.practice-grid article{padding:36px}.practice-grid h3{font-size:24px}.approach{grid-template-columns:repeat(2,minmax(0,1fr))}.approach-image{aspect-ratio:auto;min-height:650px}.approach-copy{padding:80px 12%}.contact-card{padding:40px}.quote p{font-size:47px}
}
@media(min-width:1360px){:root{--gutter:8vw}header{padding-inline:5.5%}.nav-cta{display:flex;align-items:center;gap:18px;min-height:48px;padding:12px 18px;border:1px solid #d2d6ca;font-size:12px;white-space:nowrap}header nav{gap:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}/* Shared navigation landmarks */
.skip-link{position:fixed;top:8px;left:20px;z-index:100;background:var(--paper);padding:12px 20px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}
.submenu .style-menu-link{padding-left:24px;border-left:2px solid #c6cdbb;margin-left:10px}
nav a[aria-current="page"],.footer-navigation a[aria-current="page"]{color:var(--red);font-weight:700;text-decoration:underline;text-underline-offset:5px}
.footer-navigation{display:flex;flex-wrap:wrap;gap:8px 24px;width:100%;border-top:1px solid #dedfd5;padding-top:18px}.footer-navigation a{display:flex;align-items:center;min-height:44px;font-size:14px}
