@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-latin.woff2') format('woff2');font-weight:400 800;font-style:normal;font-display:swap}
@font-face{font-family:Cormorant;src:url('/assets/fonts/cormorant-latin.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:Cormorant;src:url('/assets/fonts/cormorant-italic-latin.woff2') format('woff2');font-weight:400 700;font-style:italic;font-display:swap}
:root{--ink:#172124;--night:#111719;--paper:#f5f2eb;--white:#fffdf8;--gold:#c5a778;--gold-dark:#795d31;--muted:#626964;--line:#d7d4cb;--serif:Cormorant,Georgia,serif;--sans:Manrope,Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.8 var(--sans);-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
a,button,summary{touch-action:manipulation}
button{cursor:pointer}
button:disabled{cursor:default}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--gold-dark);outline-offset:6px}
.site-header a:focus-visible,.hero a:focus-visible,.contact-band a:focus-visible,.mobile-contact a:focus-visible{outline-color:var(--gold)}
p{margin:0 0 1.3em}
h1,h2,h3{margin:0;font-weight:500}
h1,h2{font-family:var(--serif);line-height:1.04;letter-spacing:-.035em}
h1{font-size:clamp(52px,5.9vw,86px)}
h2{font-size:clamp(40px,4.1vw,60px)}
h2 em,h1 em{font-weight:500}
h3{font-size:20px;line-height:1.3}
svg{vertical-align:middle;flex-shrink:0}
::selection{background:#c5a77866}
.container{width:min(1240px,calc(100% - 96px));margin-inline:auto}
.section{padding:104px 0}
.eyebrow{font-size:10px;letter-spacing:.17em;text-transform:uppercase;font-weight:700;line-height:1.6;margin:0 0 23px;color:var(--gold-dark)}
.lead{font-size:18px;line-height:1.8;max-width:690px}
.muted{color:var(--muted)}
.narrow{max-width:840px}
.skip-link{position:fixed;left:20px;top:-100px;z-index:1000;padding:12px 20px;background:var(--paper);color:var(--ink)}
.skip-link:focus{top:16px}
.site-header{position:sticky;top:0;z-index:40;background:var(--night);color:var(--paper);border-bottom:1px solid #ffffff15}
.header-inner{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:inline-flex;align-items:center;gap:13px;text-decoration:none;font-size:18px;letter-spacing:.08em;font-weight:600;line-height:1.2;white-space:nowrap}
.brand small{display:block;font-size:8px;letter-spacing:.16em;font-weight:500;margin-top:8px;color:var(--gold)}
.brand-suit{font:46px/1 Georgia,serif;color:var(--gold)}
#site-nav{display:flex;align-items:center;gap:30px;font-size:12px}
#site-nav>a:not(.button){text-decoration:none;padding:12px 0}
#site-nav>a:hover,#site-nav>a[aria-current]{color:var(--gold)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:54px;padding:15px 24px;border:1px solid transparent;text-decoration:none;font-size:12px;font-weight:700;line-height:1.5;transition:background .18s,color .18s,border-color .18s}
.button-gold{background:var(--gold);color:var(--night)}
.button-gold:hover{background:#dfc49a;color:#111719}
.button-outline{background:transparent;border-color:currentColor;color:inherit}
.button-outline:hover{background:#ffffff0d}
#site-nav .button{min-height:45px;padding:12px 18px;gap:22px;color:var(--night)}
.menu-toggle{display:none;background:none;color:var(--paper);border:1px solid #ffffff40;padding:10px 13px;font-size:12px;align-items:center;gap:14px}
.hero{background:var(--night);color:var(--paper);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.06fr 1fr;min-height:705px;position:relative;align-items:center}
.hero-copy{position:relative;z-index:2;padding:62px 0 72px}
.hero .eyebrow{color:var(--gold);display:flex;align-items:center;gap:12px;font-size:9px}
.hero .eyebrow>span{width:28px;height:1px;background:var(--gold)}
.hero h1{font-size:clamp(64px,6.6vw,96px);line-height:.98;letter-spacing:-.035em}
.hero-person{font:500 15px/1.6 var(--sans);letter-spacing:.01em;display:block;margin-bottom:22px}
.hero h1 em{color:var(--gold)}
.hero-intro{max-width:445px;font-size:15px;line-height:1.9;color:#c0c4c1;margin:28px 0}
.hero-buttons{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 27px}
.hero-buttons .button-outline{border-color:#6c726c;color:var(--paper)}
.hero-contact{font-size:10px;display:flex;gap:26px;color:#c0c4c1;align-items:center;flex-wrap:wrap}
.hero-contact a{text-decoration:none}
.hero-contact strong{display:block;color:var(--paper);font-size:15px;letter-spacing:.02em}
.hero-visual{align-self:stretch;position:relative;min-height:640px;isolation:isolate}
.hero-visual:before{content:"";position:absolute;inset:8% -25% 0 -25%;background:radial-gradient(ellipse at 57% 48%,#b8a57c23,transparent 65%);z-index:-1}
.stage-ring{position:absolute;width:500px;height:540px;border:1px solid #c5a77830;border-radius:50% 50% 0 0;top:70px;left:55%;transform:translateX(-50%);z-index:-1}
.stage-ring:after{content:"";position:absolute;inset:15px;border:1px solid #c5a77812;border-radius:inherit}
.hero-portrait{height:675px;width:auto;max-width:100%;position:absolute;bottom:0;right:0;object-fit:contain;object-position:bottom}
.hero-badge{position:absolute;right:-8px;bottom:55px;display:flex;gap:12px;align-items:center;border:1px solid #bda47c70;background:#192022f5;padding:17px 20px;color:var(--gold);font-size:8px;letter-spacing:.13em}
.hero-badge>span:first-child{font:35px/1 Georgia,serif}
.hero-badge strong{display:block;font-size:14px;letter-spacing:.08em;font-weight:500;color:var(--paper);margin-top:2px}
.image-caption{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);font-size:7px;letter-spacing:.15em;white-space:nowrap;color:#9ca39c}
.hero-proof{border-top:1px solid #ffffff20;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding-top:26px;padding-bottom:28px;position:relative}
.hero-proof p{margin:0;border-right:1px solid #ffffff20}
.hero-proof p:last-child{border:0}
.hero-proof strong{display:block;font-size:13px;font-weight:600;color:#dfdace}
.hero-proof span{font-size:10px;color:#9ea6a1;display:block;margin-top:2px}
.references-strip{padding:42px 0 35px;background:#eceae3;text-align:center;border-bottom:1px solid var(--line)}
.references-strip .eyebrow{color:#6d726c;letter-spacing:.15em;margin-bottom:18px}
.logo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 40px;align-items:center}
.reference-logo{min-height:85px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px}
.reference-logo span{font-size:9px;color:#626964}
.reference-logo img{width:auto;height:auto;max-height:38px;max-width:150px;object-fit:contain;filter:grayscale(1) brightness(.35);opacity:.75;transition:filter .2s,opacity .2s}
.reference-logo:hover img{filter:none;opacity:1}
.logo-art{display:flex;align-items:center;justify-content:center;max-width:100%}
.references-page .logo-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:24px}
.references-page .reference-logo{align-self:stretch;justify-content:flex-start;text-align:center;gap:12px}
.references-page .logo-art{width:100%;height:88px;padding:14px;background:#fff;border:1px solid var(--line)}
.references-page .logo-art-light{background:var(--night)}
.references-page .reference-logo img{width:100%;max-width:160px;height:56px;max-height:56px;object-fit:contain;filter:none;opacity:1}
.reference-logo-note{font-size:16px;line-height:1.8;color:#3f4943;margin:8px 0 30px}
@media(max-width:1100px){.references-page .logo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:850px){.references-page .logo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}}
.references-strip .text-link{font-size:10px;margin-top:22px;color:var(--muted)}
.text-link{font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:16px;text-decoration:none;border-bottom:1px solid currentColor;padding:0 0 5px}
.text-link:hover{color:var(--gold-dark)}
.section-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:100px;align-items:end;margin-bottom:52px}
.section-heading>p,.section-heading>div>p:not(.eyebrow){max-width:440px;font-size:14px;color:var(--muted);margin:0}
.section-heading>div .text-link{margin-top:22px}
.services-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.service-card{display:flex;align-items:flex-start;gap:20px;padding:35px 24px 35px 0;text-decoration:none;border-bottom:1px solid var(--line);position:relative}
.service-card:nth-child(odd){border-right:1px solid var(--line)}
.service-card:nth-child(even){padding-left:34px}
.service-number{font-size:10px;color:var(--gold-dark);padding-top:8px}
.service-card h3{font:500 33px/1.1 var(--serif);letter-spacing:-.02em;margin:0 0 9px}
.service-card p{font-size:12px;color:var(--muted);margin:0 0 20px}
.service-card-link{font-size:10px;font-weight:700;display:inline-flex;align-items:center;gap:28px}
.service-card:hover h3,.service-card:hover .service-card-link{color:var(--gold-dark)}
.service-suit{font:46px/1 Georgia,serif;color:#a68d6545;margin-left:auto;padding:0 4px}
.closeup-feature{background:#1a2426;color:var(--paper);overflow:hidden}
.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}
.feature-image{position:relative;align-self:stretch;min-height:650px;isolation:isolate}
.cards-portrait{position:absolute;bottom:0;height:610px;width:auto;max-width:100%;object-fit:contain;object-position:center bottom;left:50%;transform:translateX(-50%)}
.feature-giant-suit{position:absolute;z-index:-1;font:640px/.9 Georgia,serif;left:0;bottom:60px;color:#c5a7780b}
.feature-copy{padding:76px 0}
.feature-copy .eyebrow{color:var(--gold)}
.feature-copy h2{margin-bottom:30px}
.feature-copy p:not(.eyebrow){font-size:14px;color:#bfc6c1}
.feature-copy .text-link{color:var(--gold);margin-top:8px}
.feature-quote{margin-top:40px;border-top:1px solid #ffffff20;padding-top:22px}
.feature-quote blockquote{font:italic 500 26px/1.3 var(--serif);margin:0 0 8px}
.feature-quote span{font-size:10px;color:var(--gold)}
.feedback-section{background:#eae6dd}
.quotes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.quote{margin:0;border-top:1px solid #c6beac;padding:20px 0 12px;position:relative}
.quote-mark{font:60px/.7 var(--serif);color:#9e855e;display:block;margin:12px 0 0}
.quote blockquote{margin:0 0 18px;font:500 23px/1.35 var(--serif);letter-spacing:-.01em}
.quote figcaption{font-size:10px;color:var(--gold-dark);font-weight:600;letter-spacing:.03em}
.career-section{background:var(--white)}
.awards-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:48px;border-top:1px solid var(--line);gap:24px}
.awards-grid>div{min-width:0;padding:25px 20px 18px 0;overflow-wrap:anywhere;hyphens:auto}
.awards-grid span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--gold-dark)}
.awards-grid h3{font:500 25px/1.2 var(--serif);margin-top:9px}
.osaka-link{display:flex;align-items:center;gap:22px;border-top:1px solid var(--line);margin-top:30px;padding-top:30px;text-decoration:none}
.osaka-dot{width:28px;height:28px;border-radius:50%;background:#943732;flex-shrink:0;box-shadow:0 0 0 10px #f5f2eb;margin:0 14px}
.osaka-link small{display:block;font-size:8px;color:var(--gold-dark);letter-spacing:.1em;margin-bottom:3px}
.osaka-link>span:nth-child(2){font:500 28px/1.3 var(--serif)}
.osaka-link>svg{margin-left:auto}
.faq-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:110px}
.faq-layout h2{margin-bottom:25px}
.faq-layout>div>p:not(.eyebrow){color:var(--muted);font-size:12px}
.faq-list{border-top:1px solid var(--line)}
summary{list-style:none;cursor:pointer}
summary::-webkit-details-marker{display:none}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{padding:23px 0;display:flex;gap:24px;justify-content:space-between;font-size:13px;font-weight:600;line-height:1.6}
.faq-list summary>span{font-size:22px;font-weight:400;line-height:1}
details[open]>summary>span:last-child{transform:rotate(45deg)}
.faq-list details>div{padding:0 38px 22px 0;font-size:13px;color:var(--muted)}
.faq-list details p{margin:0}
.contact-band{background:#342a26;color:var(--paper);padding:80px 0}
.contact-band>.container{display:flex;align-items:center;justify-content:space-between;gap:60px}
.contact-band .eyebrow{color:var(--gold)}
.contact-band h2{font-size:clamp(42px,4.5vw,64px);margin-bottom:22px}
.contact-band h2 em{color:var(--gold)}
.contact-band p:not(.eyebrow){font-size:12px;color:#ccc3b9;margin:0}
.contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px;flex-shrink:0}
.contact-actions>.button{margin-bottom:8px;min-width:240px}
.phone-link{font:500 30px/1.3 var(--serif);text-decoration:none}
.contact-actions>a:last-child{font-size:12px;text-decoration:none}
.site-footer{padding:62px 0 0;background:var(--night);color:#b1b8b2}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:80px;padding-bottom:50px}
.footer-grid .brand{color:var(--paper);font-size:15px;display:inline-flex;margin-bottom:23px}
.footer-grid p{font-size:12px;line-height:1.8}
.footer-grid h2{font:600 12px/1.5 var(--sans);letter-spacing:.02em;color:var(--paper);margin:8px 0 20px}
.footer-grid>div>a:not(.brand){display:block;font-size:11px;text-decoration:none;padding:4px 0}
.footer-grid a:hover{color:var(--gold)}
.footer-bottom{border-top:1px solid #ffffff20;display:flex;justify-content:space-between;gap:20px;padding-top:22px;padding-bottom:24px;font-size:9px;color:#8e9891}
.footer-bottom a{text-decoration:none}
.mobile-contact{display:none}
.page-heading{background:#eae6dd;padding:30px 0 76px}
.breadcrumb{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-size:10px;color:var(--muted);margin-bottom:45px}
.breadcrumb a{text-decoration:none}
.page-heading h1{max-width:980px}
.page-heading .lead{margin:26px 0 0;color:#59615a;font-size:16px}
.service-hero{background:#eae6dd;overflow:hidden}
.service-hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:70px;align-items:center}
.service-hero-grid>div:first-child{padding:30px 0 55px;z-index:1}
.service-hero h1{font-size:clamp(48px,5vw,68px)}
.service-hero .lead{font-size:15px;margin:25px 0}
.service-hero-image{position:relative;align-self:stretch;min-height:620px;background:radial-gradient(ellipse,#c3ac851b,transparent 70%)}
.service-hero-image img{height:570px;width:auto;max-width:none;position:absolute;bottom:0;left:50%;transform:translateX(-50%)}
.service-hero-image .image-caption{color:#6d756c}
.tags{display:flex;flex-wrap:wrap;gap:9px 16px;margin-top:28px;font-size:9px;letter-spacing:.02em;color:var(--muted)}
.tags span:before{content:"+";color:var(--gold-dark);margin-right:7px}
.article-layout{display:grid;grid-template-columns:minmax(0,720px) 300px;gap:100px;align-items:start}
.prose{font-size:15px;line-height:1.95}
.prose h2{font-size:43px;margin:0 0 25px}
.prose section+section,.prose p+h2{margin-top:52px}
.prose p{color:#505a54}
.prose a{color:#755825}
.booking-aside{position:sticky;top:130px;border-top:2px solid var(--gold);padding:28px;background:#eae6dd}
.booking-aside .eyebrow{font-size:8px}
.booking-aside h2{font-size:39px;margin-bottom:20px}
.booking-aside p:not(.eyebrow){font-size:12px;color:var(--muted)}
.booking-aside>.button{padding:14px 20px;width:100%;margin:6px 0 20px;font-size:11px;gap:15px}
.booking-aside .phone-link{font-size:27px}
.aside-more{border-top:1px solid var(--line);padding-top:20px;margin-top:25px}
.aside-more h3{font-size:10px;margin-bottom:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.service-links a{display:flex;gap:15px;justify-content:space-between;padding:10px 0;font-size:11px;text-decoration:none}
.service-links svg{width:16px}
.references-page{padding-bottom:70px}
.references-page h2{font-size:42px;margin-bottom:30px}
.references-page .logo-grid{padding:15px 0 35px}
.reference-context{columns:2;column-gap:55px;font-size:13px;color:var(--muted);max-width:1050px}
.reference-context p{break-inside:avoid}
.feedback-section>div>h2{margin-bottom:45px}
.section-intro{font-size:13px;color:var(--muted);margin:28px 0 40px}
.statements{border-top:1px solid var(--line)}
.statement{border-bottom:1px solid var(--line)}
.statement>summary{display:flex;justify-content:space-between;gap:30px;align-items:center;padding:23px 0}
.statement summary strong{font:500 30px/1.2 var(--serif)}
.statement summary small{display:block;font-size:10px;line-height:1.6;color:var(--muted);margin-top:8px;max-width:630px}
.statement-toggle{font-size:24px;font-weight:400;flex-shrink:0}
.statement blockquote{margin:0;padding:0 45px 25px 0;font-size:14px;line-height:1.9;color:#505a54}
.statement[open]>summary{padding-bottom:28px}
.older-feedback{margin-top:45px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.older-feedback>summary{padding:22px 0;display:flex;justify-content:space-between;font-weight:600;font-size:13px}
.older-feedback .prose{padding:12px 0;font-size:14px}
.bio-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:90px;align-items:center}
.bio-image{background:#ddd8cd;padding:35px 20px 0;overflow:hidden}
.bio-image img{width:100%}
.osaka-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.osaka-program,.event-photo{margin:0}
.osaka-program img{width:100%;height:auto}
figcaption{font-size:10px;color:var(--muted);margin-top:12px}
.osaka-quotes{display:grid;grid-template-columns:1fr;gap:20px;max-width:900px}
.osaka-quotes .quote blockquote{font-size:27px;line-height:1.45}
.event-photo{max-width:800px;margin:auto}
.event-photo img{width:100%;height:auto}
.contact-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:85px}
.contact-grid>div>p:not(.eyebrow){font-size:14px;color:var(--muted)}
.contact-grid h2{font-size:43px;margin-bottom:28px}
.contact-direct{margin-top:35px;border-top:1px solid var(--line)}
.contact-direct a{display:block;text-decoration:none;padding:25px 0;border-bottom:1px solid var(--line)}
.contact-direct small{font-size:9px;letter-spacing:.15em;color:var(--gold-dark);display:block}
.contact-direct strong{display:block;font:500 30px/1.3 var(--serif);margin:9px 0;overflow-wrap:anywhere}
.contact-direct span{font-size:10px;color:var(--muted)}
.contact-note{display:flex;gap:20px;margin-top:40px;align-items:center}
.contact-note>span{font:50px/1 Georgia,serif;color:var(--gold-dark)}
.contact-note p{font-size:11px;color:var(--muted);margin:0}
.email-composer{padding:35px;background:#eae6dd}
.email-composer h2{font-size:37px}
.email-composer label{display:block;font-size:10px;font-weight:600;margin-bottom:20px;line-height:1.6}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
input,select,textarea{display:block;min-width:0;width:100%;color:var(--ink);background:var(--white);border:1px solid #bdbdb1;border-radius:0;padding:12px;margin:8px 0 0;font-size:13px;line-height:1.5}
input,select{min-height:47px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold-dark);outline-offset:2px}
textarea{resize:vertical}
.email-composer .button{width:100%;min-height:52px}
.email-composer .form-help{font-size:10px;line-height:1.8;color:#5f655d;margin:17px 0 0}
.form-status{font-size:12px;margin:18px 0;color:#465448}
.form-status.is-error{color:#882b22}
.form-trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.button:disabled{opacity:.75;cursor:default}
#email-fallback{border-top:1px solid #bdbdb1;margin-top:25px;padding-top:22px;font-size:12px}
#copy-status{font-size:12px;margin-top:10px}
.error-actions{padding:60px 0 100px}
@media(min-width:1400px){.hero-grid{min-height:760px}.hero-portrait{height:735px;right:0}.stage-ring{top:100px;height:570px;width:520px}}
@media(max-width:1100px){.container{width:calc(100% - 64px)}#site-nav{gap:20px}.brand{font-size:15px}.hero-grid{min-height:650px}.hero h1{font-size:76px}.hero-portrait{height:610px;right:0}.hero-intro{font-size:14px;max-width:370px}.hero-buttons .button{font-size:11px;padding:14px 17px;gap:14px}.hero-badge{right:0;bottom:35px}.hero-contact{gap:15px}.stage-ring{width:390px;height:500px;left:58%}.section-heading{gap:55px}.feature-grid{gap:50px}.cards-portrait{height:540px}.feature-image{min-height:620px}.article-layout{gap:50px;grid-template-columns:minmax(0,1fr) 270px}.service-hero-grid{gap:30px}.service-hero-image img{height:525px}.service-hero-image{min-height:590px}.contact-grid{gap:45px}.contact-direct strong{font-size:27px}.bio-grid,.osaka-layout{gap:50px}.footer-grid{gap:45px}}
@media(max-width:850px){.brand{font-size:14px}.brand small{font-size:7px}#site-nav{gap:17px;font-size:10px}#site-nav .button{padding:12px;gap:10px;font-size:10px}.header-inner{gap:20px;min-height:85px}.hero h1{font-size:64px}.hero-portrait{height:565px;right:-65px}.hero-grid{min-height:620px}.hero-visual{min-height:620px}.hero-copy{padding:50px 0}.hero .eyebrow{font-size:8px;gap:8px}.hero-person{font-size:12px}.hero-intro{font-size:12px;max-width:330px}.hero-buttons .button{min-height:46px;font-size:10px;padding:12px}.hero-contact{font-size:9px}.hero-contact strong{font-size:14px}.hero-badge{padding:13px;bottom:30px}.hero-badge strong{font-size:12px}.hero-proof{gap:15px}.hero-proof strong{font-size:11px}.hero-proof span{font-size:9px}.section{padding:75px 0}.section-heading{gap:40px}.section-heading>p,.section-heading>div>p:not(.eyebrow){font-size:12px}.service-card{padding-right:15px;gap:12px}.service-card:nth-child(even){padding-left:20px}.service-card h3{font-size:29px}.service-suit{font-size:32px;padding:0}.service-card p{font-size:11px}.feature-grid{gap:35px}.feature-image{min-height:590px}.cards-portrait{height:470px;left:45%}.feature-copy{padding:65px 0}.feature-copy p:not(.eyebrow){font-size:12px}.feature-quote blockquote{font-size:23px}.quotes-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.awards-grid{grid-template-columns:repeat(2,1fr)}.faq-layout{gap:50px}.contact-band>.container{gap:35px}.contact-actions>.button{min-width:190px}.contact-actions>a:last-child{font-size:10px}.footer-grid{grid-template-columns:1.3fr 1fr 1fr;gap:30px}.footer-grid .brand{font-size:12px}.footer-grid .brand-suit{font-size:33px}.article-layout{grid-template-columns:minmax(0,1fr)}.booking-aside{position:static;max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:0 35px}.booking-aside .eyebrow,.booking-aside>h2,.booking-aside>p{grid-column:1}.booking-aside>.button,.booking-aside>.phone-link{grid-column:2;grid-row:auto}.booking-aside>.button{grid-row:2;align-self:start}.booking-aside>.phone-link{grid-row:3}.aside-more{grid-column:1/-1}.service-hero h1{font-size:50px}.service-hero-image img{height:470px;left:50%}.service-hero-image{min-height:620px}.contact-grid{gap:35px;grid-template-columns:1fr 1.2fr}.contact-grid h2{font-size:36px}.email-composer{padding:24px}.form-row{gap:12px}.bio-grid{gap:35px}.bio-grid .prose{font-size:13px}.bio-grid h2{font-size:38px}.osaka-layout{gap:35px}.prose{font-size:14px}.osaka-layout h2{font-size:40px}}
@media(max-width:850px){html{scroll-padding-top:84px}body{font-size:14px;padding-bottom:64px}.container{width:calc(100% - 40px)}.header-inner{min-height:77px;flex-wrap:wrap;gap:0;position:relative}.brand{font-size:14px;gap:9px}.brand small{font-size:6px;letter-spacing:.16em;margin-top:6px}.brand-suit{font-size:34px}.menu-toggle:not([hidden]){display:inline-flex}.js #site-nav:not(.is-open){display:none}#site-nav{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:0;border-top:1px solid #ffffff20;padding:12px 0 20px;font-size:14px}#site-nav>a:not(.button){padding:14px 0}#site-nav .button{margin-top:10px;min-height:45px;font-size:12px;justify-content:space-between;padding:14px 18px}.hero-grid{display:flex;flex-direction:column;min-height:0}.hero-visual{order:-1;min-height:0;height:365px;width:100%;align-self:center;margin-top:20px}.hero-portrait{height:370px;width:auto;right:auto;left:50%;transform:translateX(-50%)}.hero-visual:before{inset:-10px -10% 0}.stage-ring{width:300px;height:340px;top:17px;left:50%}.hero-badge{right:0;bottom:20px;gap:9px;padding:11px 13px}.hero-badge>span:first-child{font-size:28px}.hero-badge strong{font-size:11px}.hero-badge{font-size:6px}.hero-visual .image-caption{display:none}.hero-copy{padding:30px 0 42px;width:100%}.hero .eyebrow{font-size:8px;margin-bottom:17px}.hero-person{font-size:12px;margin-bottom:16px}.hero h1{font-size:clamp(55px,13.4vw,86px)}.hero-intro{font-size:13px;line-height:1.8;max-width:480px;margin:22px 0}.hero-buttons{gap:10px;margin-bottom:23px}.hero-buttons .button{min-height:49px;font-size:11px;padding:14px 17px;gap:12px;flex:1}.hero-contact{font-size:10px;gap:22px}.hero-contact strong{font-size:15px}.hero-proof{grid-template-columns:1fr;gap:13px;padding-top:21px;padding-bottom:24px}.hero-proof p{border-right:0;display:flex;align-items:center;justify-content:space-between;gap:20px}.hero-proof strong{font-size:11px}.hero-proof span{font-size:9px;margin:0;text-align:right}.references-strip{padding:31px 0 26px}.references-strip .eyebrow{font-size:8px;letter-spacing:.12em}.logo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 25px}.reference-logo{min-height:57px}.reference-logo img{max-width:125px;max-height:30px}.references-strip .text-link{margin-top:18px}.section{padding:62px 0}h2{font-size:44px}.eyebrow{font-size:9px;margin-bottom:18px}.section-heading{grid-template-columns:1fr;gap:24px;margin-bottom:34px}.section-heading>p,.section-heading>div>p:not(.eyebrow){font-size:13px;max-width:520px}.section-heading>div .text-link{margin-top:18px}.services-grid{grid-template-columns:1fr}.service-card,.service-card:nth-child(even){padding:25px 0;gap:15px}.service-card:nth-child(odd){border-right:0}.service-card h3{font-size:31px}.service-card p{font-size:11px;margin-bottom:16px}.service-number{font-size:9px}.service-suit{font-size:40px}.feature-grid{display:flex;flex-direction:column;gap:0}.feature-image{min-height:0;height:395px;width:100%;margin-top:38px}.cards-portrait{height:400px;left:50%}.feature-giant-suit{font-size:440px;bottom:20px;left:calc(50% - 220px)}.feature-copy{padding:35px 0 55px}.feature-copy h2{margin-bottom:25px}.feature-copy p:not(.eyebrow){font-size:13px;max-width:500px}.feature-quote{margin-top:28px;padding-top:22px}.feature-quote blockquote{font-size:25px}.quotes-grid{grid-template-columns:1fr;gap:24px}.quote{padding-bottom:0}.quote blockquote{font-size:26px}.quote figcaption{font-size:10px}.quote-mark{margin-top:8px}.awards-grid{gap:14px;margin-top:32px}.awards-grid>div{padding:20px 5px 12px 0}.awards-grid h3{font-size:25px}.awards-grid span{font-size:8px}.osaka-link{gap:14px;padding-top:26px;margin-top:20px}.osaka-dot{width:21px;height:21px;margin:0 9px}.osaka-link>span:nth-child(2){font-size:24px}.osaka-link small{font-size:7px}.faq-layout{grid-template-columns:1fr;gap:28px}.faq-layout h2{margin-bottom:20px}.faq-list summary{font-size:12px;padding:21px 0}.faq-list details>div{font-size:12px;padding-right:15px}.contact-band{padding:57px 0}.contact-band>.container{align-items:flex-start;flex-direction:column;gap:30px}.contact-band h2{font-size:45px}.contact-band p:not(.eyebrow){font-size:12px}.contact-actions{width:100%}.contact-actions>.button{width:100%;font-size:12px}.contact-actions .phone-link{font-size:32px}.contact-actions>a:last-child{font-size:12px}.site-footer{padding-top:45px}.footer-grid{grid-template-columns:1fr 1fr;gap:34px 20px;padding-bottom:35px}.footer-grid>div:first-child{grid-column:1/-1}.footer-grid .brand{font-size:16px;margin-bottom:20px}.footer-grid p{margin-bottom:15px}.footer-grid>div>a:not(.brand){font-size:11px;padding:6px 0}.footer-grid h2{font-size:12px;margin-bottom:15px}.footer-bottom{font-size:8px;flex-wrap:wrap;gap:12px;padding-top:20px;padding-bottom:25px}.footer-bottom span:nth-child(2){order:3;width:100%}.mobile-contact{position:fixed;bottom:0;left:0;right:0;z-index:50;display:grid;grid-template-columns:.8fr 1.1fr 1.3fr;background:var(--night);color:var(--paper);padding:0 10px env(safe-area-inset-bottom);border-top:1px solid #c5a77850;min-height:62px;box-shadow:0 -5px 25px #0002}.mobile-contact a{display:flex;justify-content:center;align-items:center;gap:8px;font-size:10px;font-weight:600;text-decoration:none;min-height:62px}.mobile-contact a:last-child{background:var(--gold);color:var(--night);padding:0 6px;margin:8px 0;min-height:46px}.mobile-contact a:last-child svg{width:16px}.page-heading{padding:20px 0 49px}.breadcrumb{font-size:9px;margin-bottom:33px;gap:10px}.page-heading h1{font-size:clamp(46px,11.5vw,66px)}.page-heading .lead{font-size:14px;margin-top:22px}.service-hero-grid{display:flex;flex-direction:column;gap:0}.service-hero-grid>div:first-child{padding:20px 0 0}.service-hero h1{font-size:49px}.service-hero .lead{font-size:14px}.service-hero .button{width:100%}.tags{gap:8px 13px;margin-top:24px;font-size:8px}.service-hero-image{height:360px;min-height:0;width:100%;margin-top:30px}.service-hero-image img{height:360px}.service-hero-image .image-caption{display:none}.article-layout{gap:45px}.prose{font-size:14px;line-height:1.9}.prose h2{font-size:36px;margin-bottom:23px}.prose section+section,.prose p+h2{margin-top:38px}.booking-aside{display:block;padding:26px}.booking-aside h2{font-size:40px}.booking-aside>.button{margin:10px 0 20px}.aside-more{margin-top:22px}.service-links a{font-size:12px}.references-page{padding-bottom:50px}.references-page h2{font-size:38px}.reference-context{columns:1;font-size:13px}.references-page .logo-grid{padding-bottom:25px}.feedback-section>div>h2{margin-bottom:34px}.statement summary strong{font-size:29px}.statement summary small{font-size:9px}.statement>summary{gap:16px;padding:20px 0}.statement blockquote{padding:0 8px 24px 0;font-size:13px}.section-intro{margin:23px 0 32px}.older-feedback .prose{font-size:13px}.bio-grid,.osaka-layout{grid-template-columns:1fr;gap:40px}.bio-image{max-width:400px;margin:auto;width:100%;padding-top:20px}.bio-grid .prose{font-size:14px}.bio-grid h2{font-size:43px}.osaka-quotes .quote blockquote{font-size:25px}.contact-grid{grid-template-columns:1fr;gap:42px}.contact-grid h2{font-size:41px}.contact-grid>div>p:not(.eyebrow){font-size:13px}.contact-direct strong{font-size:32px}.contact-direct a:nth-child(2) strong{font-size:29px}.contact-note{margin-top:26px}.email-composer{padding:25px 20px}.email-composer h2{font-size:36px}.form-row{grid-template-columns:1fr;gap:0}.email-composer label{font-size:11px;margin-bottom:19px}input,select,textarea{font-size:16px}.email-composer .form-help{font-size:11px}.error-actions{padding:40px 0 60px}}
@media(max-width:360px){.awards-grid{grid-template-columns:1fr}.awards-grid>div{padding:16px 0;border-bottom:1px solid var(--line)}}
/* Reading sizes for older visitors, including phones held in landscape. */
@media screen and (max-width:850px) {
    html { scroll-padding-top:104px; }
    body { font-size:18px; line-height:1.8; padding-bottom:84px; }
    .header-inner { min-height:90px; }
    .brand { font-size:16px; letter-spacing:.045em; gap:8px; }
    .brand-suit { font-size:30px; }
    .brand small { font-size:11px; line-height:1.4; letter-spacing:.02em; white-space:normal; max-width:165px; }
    .menu-toggle { font-size:16px; min-height:48px; padding:10px 12px; }
    .menu-toggle>span:last-child { display:none; }
    #site-nav { font-size:18px; }
    #site-nav>a:not(.button) { padding:15px 0; }
    #site-nav .button,
    .button,
    .hero-buttons .button,
    .booking-aside>.button,
    .contact-actions>.button,
    .email-composer .button { font-size:18px; min-height:56px; padding:16px 20px; gap:14px; }
    .eyebrow,
    .hero .eyebrow,
    .references-strip .eyebrow,
    .booking-aside .eyebrow { font-size:14px; letter-spacing:.08em; line-height:1.65; }
    .hero .eyebrow>span { display:none; }
    .hero-person { font-size:18px; font-weight:600; line-height:1.6; }
    .hero-intro,
    .section-heading>p,
    .section-heading>div>p:not(.eyebrow),
    .service-card p,
    .feature-copy p:not(.eyebrow),
    .faq-layout>div>p:not(.eyebrow),
    .contact-band p:not(.eyebrow),
    .page-heading .lead,
    .service-hero .lead,
    .prose,
    .bio-grid .prose,
    .booking-aside p:not(.eyebrow),
    .reference-context,
    .section-intro,
    .statement blockquote,
    .older-feedback .prose,
    .contact-grid>div>p:not(.eyebrow),
    .contact-note p,
    #email-fallback { font-size:18px; line-height:1.8; }
    .section-heading>p,
    .section-heading>div>p:not(.eyebrow),
    .service-card p,
    .faq-layout>div>p:not(.eyebrow),
    .prose p,
    .booking-aside p:not(.eyebrow),
    .reference-context,
    .section-intro,
    .statement blockquote,
    .contact-grid>div>p:not(.eyebrow),
    .contact-note p { color:#3f4943; }
    .hero-intro { color:#e0e4df; max-width:none; }
    .hero-buttons { flex-direction:column; }
    .hero-contact { display:grid; gap:16px; font-size:16px; color:#e0e4df; }
    .hero-contact strong { font-size:22px; }
    .hero-contact a { overflow-wrap:anywhere; }
    .hero-badge { font-size:13px; line-height:1.5; letter-spacing:.04em; }
    .hero-badge strong { font-size:18px; }
    .hero-proof { gap:24px; }
    .hero-proof p { display:block; }
    .hero-proof strong { font-size:18px; line-height:1.5; }
    .hero-proof span { font-size:16px; text-align:left; margin-top:5px; color:#c3ccc5; }
    .reference-logo { min-height:95px; }
    .reference-logo span,
    .references-strip .text-link,
    .text-link,
    .service-card-link,
    .feature-quote span,
    .quote figcaption,
    figcaption,
    .awards-grid span,
    .osaka-link small,
    .breadcrumb,
    .tags,
    .aside-more h3,
    .statement summary small,
    .contact-direct small,
    .contact-direct span,
    .email-composer .form-help,
    .form-status,
    #copy-status { font-size:16px; line-height:1.7; }
    .quote figcaption,
    .awards-grid span,
    .osaka-link small,
    .contact-direct small { color:#68502c; }
    .text-link { min-height:44px; align-items:center; }
    .service-card { padding:30px 0; }
    .service-card h3 { font-size:35px; }
    .service-number,
    .service-suit { display:none; }
    .quote blockquote,
    .feature-quote blockquote,
    .osaka-quotes .quote blockquote { font:500 20px/1.65 var(--sans); letter-spacing:0; }
    .feature-copy p:not(.eyebrow) { color:#e0e6e0; }
    .awards-grid { grid-template-columns:1fr; gap:12px; }
    .awards-grid>div { padding:20px 0; border-bottom:1px solid var(--line); }
    .awards-grid h3 { font-size:30px; line-height:1.25; }
    .osaka-link { align-items:flex-start; }
    .osaka-link>span:nth-child(2) { min-width:0; overflow-wrap:anywhere; }
    .faq-list summary,
    .older-feedback>summary { font-size:18px; line-height:1.6; gap:16px; padding:23px 0; }
    .faq-list details>div { font-size:18px; line-height:1.8; color:#3f4943; }
    .faq-list summary>span { flex-shrink:0; }
    .contact-band p:not(.eyebrow) { color:#e4dcd2; }
    .contact-actions>a:last-child { font-size:18px; overflow-wrap:anywhere; }
    .footer-grid { grid-template-columns:1fr; gap:34px; }
    .footer-grid .brand { font-size:18px; }
    .footer-grid p,
    .footer-grid h2,
    .footer-grid>div>a:not(.brand) { font-size:18px; line-height:1.7; }
    .footer-grid>div>a:not(.brand) { min-height:48px; padding:9px 0; overflow-wrap:anywhere; }
    .footer-bottom { font-size:16px; line-height:1.7; color:#c3ccc5; }
    .footer-bottom a { min-height:44px; padding:8px 0; }
    .service-links a { font-size:18px; padding:14px 0; gap:12px; }
    .statement summary small { color:#3f4943; }
    .contact-direct span { color:#3f4943; }
    .email-composer label { font-size:18px; line-height:1.6; }
    input,select,textarea { font-size:18px; line-height:1.6; }
    input,select { min-height:56px; }
    .email-composer h2 { overflow-wrap:anywhere; }
    .email-composer .form-help { color:#3f4943; }
    .mobile-contact { min-height:76px; padding-inline:10px; grid-template-columns:1fr 1.2fr 1.25fr; }
    .mobile-contact a { font-size:16px; line-height:1.4; min-height:76px; text-align:center; gap:0; padding:8px 4px; }
    .mobile-contact a:last-child { min-height:60px; padding:8px 5px; }
    .mobile-contact a>span,
    .mobile-contact svg { display:none; }
}
/* Shared reading sizes: desktop must be as legible as the phone layout. */
@media screen {
    :root { --reading-size:20px; }
    body { font-size:var(--reading-size); }
    .brand small { font-size:12px; line-height:1.45; letter-spacing:.06em; }
    #site-nav { font-size:18px; }
    #site-nav .button,
    .button,
    .hero-buttons .button,
    .booking-aside>.button,
    .contact-actions>.button,
    .email-composer .button { font-size:18px; min-height:56px; padding:16px 20px; gap:14px; }
    .eyebrow,
    .hero .eyebrow,
    .references-strip .eyebrow,
    .booking-aside .eyebrow { font-size:14px; line-height:1.65; letter-spacing:.08em; }
    .hero-person { font-size:20px; line-height:1.6; font-weight:600; }
    .hero-intro,
    .section-heading>p,
    .section-heading>div>p:not(.eyebrow),
    .service-card p,
    .feature-copy p:not(.eyebrow),
    .faq-layout>div>p:not(.eyebrow),
    .contact-band p:not(.eyebrow),
    .page-heading .lead,
    .service-hero .lead,
    .prose,
    .bio-grid .prose,
    .booking-aside p:not(.eyebrow),
    .reference-context,
    .reference-logo-note,
    .section-intro,
    .statement blockquote,
    .older-feedback .prose,
    .contact-grid>div>p:not(.eyebrow),
    .contact-note p,
    .faq-list summary,
    .faq-list details>div,
    .older-feedback>summary { font-size:var(--reading-size); line-height:1.8; }
    .section-heading>p,
    .section-heading>div>p:not(.eyebrow),
    .service-card p,
    .faq-layout>div>p:not(.eyebrow),
    .prose p,
    .booking-aside p:not(.eyebrow),
    .reference-context,
    .section-intro,
    .statement blockquote,
    .faq-list details>div,
    .contact-grid>div>p:not(.eyebrow),
    .contact-note p { color:#3f4943; }
    .hero-intro { color:#e0e4df; }
    .feature-copy p:not(.eyebrow) { color:#e0e6e0; }
    .contact-band p:not(.eyebrow) { color:#e4dcd2; }
    .hero-contact { font-size:16px; color:#e0e4df; }
    .hero-contact strong { font-size:22px; }
    .hero-contact a { overflow-wrap:anywhere; }
    .hero-proof strong { font-size:18px; line-height:1.5; }
    .hero-proof span { font-size:16px; line-height:1.7; color:#c3ccc5; }
    .reference-logo span,
    .references-strip .text-link,
    .text-link,
    .service-card-link,
    .service-number,
    .feature-quote span,
    .quote figcaption,
    figcaption,
    .awards-grid span,
    .osaka-link small,
    .breadcrumb,
    .tags,
    .aside-more h3,
    .statement summary small,
    .contact-direct small,
    .contact-direct span,
    .email-composer .form-help,
    .form-status { font-size:16px; line-height:1.7; }
    .statement summary small,
    .contact-direct span,
    .email-composer .form-help { color:#3f4943; }
    .text-link { min-height:44px; align-items:center; }
    .quote blockquote,
    .feature-quote blockquote,
    .osaka-quotes .quote blockquote { font:500 22px/1.65 var(--sans); letter-spacing:0; }
    .contact-actions>a:last-child { font-size:18px; overflow-wrap:anywhere; }
    .service-links a { font-size:18px; line-height:1.6; padding:14px 0; }
    .footer-grid p,
    .footer-grid h2,
    .footer-grid>div>a:not(.brand) { font-size:18px; line-height:1.7; }
    .footer-grid>div>a:not(.brand) { min-height:48px; padding:9px 0; overflow-wrap:anywhere; }
    .footer-bottom { font-size:16px; line-height:1.7; color:#c3ccc5; }
    .footer-bottom a { min-height:44px; padding:8px 0; }
    .email-composer label { font-size:18px; line-height:1.6; }
    input,select,textarea { font-size:18px; line-height:1.6; }
    input,select { min-height:56px; }
    .email-composer h2 { overflow-wrap:anywhere; }
}
@media screen and (min-width:851px) {
    .quotes-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .image-caption { font-size:14px; letter-spacing:.05em; white-space:normal; text-align:center; width:90%; }
    .service-card { min-width:0; }
    .service-card-copy { min-width:0; }
    .service-suit { font-size:32px; }
    .hero-buttons { align-items:flex-start; }
}
@media screen and (max-width:1100px) {
    .header-inner { flex-wrap:wrap; gap:0; min-height:90px; }
    .menu-toggle:not([hidden]) { display:inline-flex; font-size:18px; min-height:48px; }
    .js #site-nav:not(.is-open) { display:none; }
    #site-nav { width:100%; flex-direction:column; align-items:stretch; gap:0; padding:12px 0 20px; border-top:1px solid #ffffff20; }
    #site-nav>a:not(.button) { padding:15px 0; }
    #site-nav .button { margin-top:10px; justify-content:space-between; }
    .form-row { grid-template-columns:1fr; gap:0; }
}
@media screen and (max-width:850px) {
    :root { --reading-size:18px; }
    .hero-person { font-size:18px; }
    .quote blockquote,
    .feature-quote blockquote,
    .osaka-quotes .quote blockquote { font-size:20px; }
    .menu-toggle:not([hidden]) { font-size:16px; }
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.site-header,.site-footer,.mobile-contact,.menu-toggle,.contact-band,.hero-buttons,.booking-aside{display:none!important}body{background:white;color:black;padding:0}.container{width:100%}.section{padding:25px 0}.hero,.closeup-feature{background:white;color:black}.hero-grid,.feature-grid,.service-hero-grid{display:block}.hero-visual,.feature-image,.service-hero-image{display:none}.hero-copy{padding:20px 0}.hero h1{font-size:45px}.hero-intro,.hero-contact,.hero-proof strong,.hero-proof span{color:black}.hero-proof{display:block}.hero h1 em{color:black}details:not([open])>blockquote,details:not([open])>div{display:block}h1,h2,h3{break-after:avoid}.quote{break-inside:avoid}.article-layout{display:block}.quotes-grid{display:block}.page-heading{padding:25px 0}}
