/* Service headlines get a real reading column, rather than three narrow strips. */
html[data-theme] .site-v9 .sv-section-title{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);column-gap:clamp(36px,5vw,80px);row-gap:22px;align-items:end;margin-bottom:48px}
html[data-theme] .site-v9 .sv-section-title>.eyebrow{grid-column:1/-1;margin:0}
html[data-theme] .site-v9 .sv-section-title h2{margin:0;font-size:clamp(32px,3.6vw,52px);line-height:1.6;letter-spacing:.02em;min-width:0}
html[data-theme] .site-v9 .sv-section-title>p:last-child:not(.eyebrow){font-size:18px;line-height:2;margin:0;max-width:36em;text-wrap:pretty}
.phrase-line-v9{display:block}
.phrase-line-v9>span{display:inline-block;white-space:nowrap}
.engagement-v9{margin:4px 0 80px}
.engagement-map-v9{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;margin:0 0 38px;padding:0;background:#f6f3ef;border:1px solid #e1d9d1}
.engagement-map-v9>li{min-width:0;position:relative}
.engagement-map-v9>li+li:before{content:'→';position:absolute;left:-11px;top:calc(50% - 15px);color:#9b4a38;font-size:23px;line-height:30px}
.engagement-map-v9 a{display:flex;align-items:center;justify-content:center;gap:13px;padding:24px 12px;min-height:94px;text-decoration:none}
.engagement-map-v9 b{display:grid;place-items:center;width:37px;height:37px;flex:0 0 auto;border:1px solid #baab9a;border-radius:50%;color:#7f3429;font:500 16px/1 var(--sans)}
.engagement-map-v9 span{font-size:18px;line-height:1.6;font-weight:600}
.engagement-map-v9 a:hover,.engagement-map-v9 a:focus-visible{background:#eee5db}
.engagement-steps-v9{margin:0;padding:0;list-style:none;display:grid;gap:0}
.engagement-steps-v9>li{display:grid;grid-template-columns:minmax(250px,.9fr) minmax(0,1.4fr);column-gap:clamp(30px,5vw,80px);padding:33px 0;border-bottom:1px solid #dedbd7;scroll-margin-top:115px;min-width:0}
.engagement-step-heading{display:flex;align-items:baseline;gap:22px}
.engagement-step-heading>span{font-family:var(--serif);font-size:33px;line-height:1.4;color:#98624f;flex:0 0 auto}
html[data-theme] .engagement-step-heading h3{font-family:var(--serif);font-size:clamp(24px,2.3vw,30px);line-height:1.65;letter-spacing:.01em;margin:0}
.engagement-steps-v9 dl{display:grid;gap:14px;margin:0}
.engagement-steps-v9 dl>div{display:grid;grid-template-columns:49px minmax(0,1fr);gap:14px}
.engagement-steps-v9 dt{font-size:14px;line-height:1.7;padding:4px 0;text-align:center;background:#f3e9e1;color:#6d3529;align-self:start}
.engagement-steps-v9 dl>div+div dt{background:#f1f1ef;color:#535552}
.engagement-steps-v9 dd{font-size:18px;line-height:1.95;margin:0}
.engagement-loop-v9{display:flex;align-items:center;gap:25px;background:#f6f3ef;padding:28px 34px;margin-top:28px}
.engagement-loop-v9>span{font-size:53px;line-height:1;color:#965241}
.engagement-loop-v9 strong{font-size:22px;line-height:1.7;font-weight:500}
.engagement-loop-v9 p{font-size:17px;line-height:1.85;margin:7px 0 0}
.engagement-note-v9{font-size:15px;line-height:1.9;color:#625d58;margin-top:19px}
.service-menu-heading-v9{margin:0 0 35px}
.service-menu-heading-v9 h3{font-family:var(--serif);font-size:clamp(28px,2.9vw,40px);line-height:1.65;margin:16px 0}
.service-menu-heading-v9>p:last-child{font-size:18px;line-height:1.95;max-width:43em}
html[data-theme] .site-v9 .sv-service-grid .sv-service-phase{font-size:16px;margin-top:0}
@media(max-width:1000px){
 .engagement-map-v9 a{flex-direction:column;gap:10px;padding:20px 7px}
 .engagement-map-v9 span{font-size:16px}
 .engagement-steps-v9>li{grid-template-columns:minmax(215px,.8fr) minmax(0,1.2fr);gap:28px}
 html[data-theme] .site-v9 .sv-section-title{grid-template-columns:1fr;gap:20px}
}
@media(max-width:650px){
 html[data-theme] .site-v9 .sv-section-title h2{font-size:clamp(28px,7vw,38px);line-height:1.65}
 html[data-theme] .site-v9 .sv-section-title{margin-bottom:32px}
 .engagement-v9{margin-bottom:55px}
 .engagement-map-v9{grid-template-columns:1fr;margin-bottom:14px;padding:10px 18px}
 .engagement-map-v9 a{flex-direction:row;justify-content:flex-start;gap:17px;min-height:66px;padding:12px 8px}
 .engagement-map-v9 span{font-size:18px}
 .engagement-map-v9>li+li{border-top:1px solid #dfd5ca}
 .engagement-map-v9>li+li:before{content:'↓';top:-12px;left:auto;right:14px;font-size:18px;line-height:22px;background:#f6f3ef}
 .engagement-map-v9 b{width:31px;height:31px;font-size:14px}
 .engagement-steps-v9>li{grid-template-columns:1fr;gap:20px;padding:27px 0}
 .engagement-step-heading{gap:16px}
 .engagement-step-heading>span{font-size:30px}
 html[data-theme] .engagement-step-heading h3{font-size:25px}
 .engagement-steps-v9 dl>div{grid-template-columns:44px minmax(0,1fr);gap:12px}
 .engagement-loop-v9{padding:22px;gap:16px;align-items:flex-start}
 .engagement-loop-v9>span{font-size:36px;margin-top:3px}
 .engagement-loop-v9 strong{font-size:21px}
 .service-menu-heading-v9 h3{font-size:27px}
 .service-menu-heading-v9 h3 br{display:none}
}
/* Preserve the original portrait framing, including the top of the hair. */
html[data-theme] .site-v9 .representative .portrait{height:auto;aspect-ratio:4/5;overflow:hidden;max-width:520px;width:100%;margin:0 auto;background:#f0f0ed}
html[data-theme] .site-v9 .representative .portrait img{display:block;width:100%;height:100%;object-fit:contain;object-position:center top;aspect-ratio:4/5}
/* Recruitment films form a compact pair with an editorial heading above. */
html[data-theme] .career-page-v8 .career-videos-v8{display:block;max-width:1440px;margin-left:auto;margin-right:auto}
html[data-theme] .career-page-v8 .career-videos-v8__heading{display:grid;grid-template-columns:1fr 1fr;gap:14px 50px;align-items:end;margin:0 0 35px}
html[data-theme] .career-page-v8 .career-videos-v8__heading>.eyebrow{grid-column:1/-1}
html[data-theme] .career-page-v8 .career-videos-v8__heading h2{margin:0;font-size:clamp(30px,3.3vw,44px)}
html[data-theme] .career-page-v8 .career-videos-v8__heading>p:last-child{margin:0;max-width:32em}
html[data-theme] .career-page-v8 .career-youtube-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 30px;max-width:1080px;margin:auto}
html[data-theme] .career-page-v8 .career-youtube-item-v9{min-width:0}
html[data-theme] .career-page-v8 .career-video-source-v8{display:inline-block;margin:12px 0 0;font-size:15px}
html[data-theme] .career-page-v8 .career-field-scene img{aspect-ratio:16/9;object-fit:contain;background:#091929}
@media(max-width:800px){
 html[data-theme] .career-page-v8 .career-videos-v8__heading{grid-template-columns:1fr;gap:20px}
 html[data-theme] .career-page-v8 .career-youtube-grid{grid-template-columns:1fr;max-width:580px;gap:34px}
}
html[data-theme] .career-page-v8 .career-special-v8{grid-template-columns:1fr;max-width:1440px;margin:auto;gap:32px}
html[data-theme] .career-page-v8 .career-special-v8__heading{display:grid;grid-template-columns:1fr 1fr;gap:15px 50px;align-items:end}
html[data-theme] .career-page-v8 .career-special-v8__heading>.eyebrow{grid-column:1/-1}
html[data-theme] .career-page-v8 .career-special-v8__heading h2{margin:0;font-size:clamp(32px,3.5vw,48px)}
html[data-theme] .career-page-v8 .career-special-v8__heading>p:last-child{margin:0}
html[data-theme] .career-page-v8 .career-native-video-wrap{width:100%;max-width:980px;margin:auto}
.tv-actions-v9{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:8px 18px 22px;color:#fff}
.tv-actions-v9 button{font:500 16px/1.7 var(--sans);padding:13px 20px;min-height:50px;border:1px solid #718899;border-radius:3px;background:transparent;color:#fff;cursor:pointer}
.tv-actions-v9 .tv-full-v9{background:#fff;color:#102d4b;border-color:#fff}
.tv-actions-v9 button:focus-visible{outline:3px solid #85c8ff;outline-offset:3px}
.tv-actions-v9 [hidden]{display:none!important}
html[data-theme] .career-page-v8 .career-native-video-wrap figcaption{font-size:15px;line-height:1.8}
@media(max-width:800px){html[data-theme] .career-page-v8 .career-special-v8__heading{grid-template-columns:1fr;gap:20px}}

/* Keep the fixed contact action readable against its dark surface. */
html[data-theme] .contact-entry-v8,html[data-theme] .contact-entry-v8:visited{color:#fff;background:#272b30}
html[data-theme] .contact-entry-v8:hover{color:#fff;background:#434a53}
html[data-theme] .tv-noscript-v9{padding:0 18px 22px;margin:0;font-size:16px;line-height:1.8}
html[data-theme] .tv-noscript-v9 a{color:#fff;text-decoration:underline;text-underline-offset:4px}

/* Leave the fixed contact action its own space beside film controls. */
@media(min-width:951px){.hero .cinema-controls{right:300px}}

html[data-theme] .site-v9 .sv-service-grid h3{text-wrap:balance}

/* Keep short Japanese phrases together without shrinking body text. */
.page-masthead-v12 h1 .phrase-v17{display:inline-block;white-space:nowrap}
@media(max-width:600px){
 html[data-theme] .logo-wall-heading{flex-direction:column;align-items:stretch}
 html[data-theme] .logo-wall-actions{flex-direction:row;align-items:center;justify-content:space-between;padding-top:0;gap:16px}
 html[data-theme] .logo-wall-heading>div>p:last-child{max-width:none}
 html[data-theme] .site-v9 .sv-media-copy h2{font-size:clamp(25px,7.15vw,32px);letter-spacing:.02em}
 .media-phrase-v17{white-space:nowrap}
}

/* Balance short headings and avoid isolated endings in narrow text columns. */
html[data-theme] main :is(h1,h2){text-wrap:balance}
html[data-theme] main p{text-wrap:pretty}

html[data-theme] main :is(h1,h2,h3) .phrase-v17{display:inline-block;white-space:nowrap}

@media(max-width:370px){html[data-theme] .embedded-contact .form-heading{grid-template-columns:minmax(0,1fr)}html[data-theme] .embedded-contact .form-heading h2{font-size:28px;letter-spacing:.03em}}
