/* Shared page ending, followed by content-led narrow layouts. */
.phrase{display:inline-block}
.recruit-title-line{display:block}
.site-footer{background:#153b33;color:#f7f5ee;padding:0 6% 30px;position:relative}
.footer-actions{display:grid;grid-template-columns:1.12fr 1fr;border-bottom:1px solid #ffffff36}
.footer-action{display:flex;flex-direction:column;align-items:flex-start;padding:64px 9% 55px 0;position:relative}
.footer-action+.footer-action{border-left:1px solid #ffffff36;padding-left:13%;padding-right:0}
.footer-action .eyebrow{font-size:9px;letter-spacing:.19em;color:#d6e7a7}
.footer-action-title{font-family:var(--serif);font-size:clamp(28px,2.6vw,40px);line-height:1.8;letter-spacing:.06em;margin:20px 0 23px}
.footer-action-label{display:flex;align-items:center;justify-content:space-between;gap:45px;font-size:13px;min-height:48px;width:100%;max-width:365px;border-top:1px solid #ffffff55;padding-top:15px}
.footer-action-arrow{font-size:24px;line-height:1;transition:transform 240ms}
.footer-action-recruit .footer-action-title{font-size:clamp(26px,2.3vw,35px);color:#e0e9dd}
.footer-directory{display:grid;grid-template-columns:1fr 1.6fr;gap:9%;padding:69px 0 68px;align-items:start}
.footer-brand{display:inline-block;font-family:var(--serif);font-weight:400;font-size:112px;line-height:1;letter-spacing:-.015em;padding:0 0 13px}
.footer-brand span{color:#d6e7a7}
.footer-tagline{font-family:var(--serif);font-size:17px;letter-spacing:.15em;margin-top:13px}
.footer-brand-en{display:block;font-size:9px;letter-spacing:.2em;margin-top:17px;color:#c1d0c5}
.footer-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding-top:6px}
.footer-nav-group h2{font-size:12px;font-weight:400;letter-spacing:.08em;margin:0 0 18px;color:#a8bea8}
.footer-nav ul{padding:0;margin:0;list-style:none}
.footer-nav li{margin:0}
.footer-nav a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;line-height:1.6;position:relative;white-space:nowrap}
.footer-nav a:after{content:'';height:1px;background:#d6e7a7;position:absolute;left:0;right:100%;bottom:8px;transition:right 240ms}
.site-footer .footer-bottom{display:grid;grid-template-columns:1fr auto;gap:20px 35px;border-color:#ffffff36;padding-top:22px;align-items:center;font-size:10px;line-height:1.9}
.site-footer .footer-bottom>p{max-width:650px;color:#b6c9bd;grid-column:1}
.site-footer .footer-bottom>span{grid-column:1;font-size:9px;letter-spacing:.1em;color:#b6c9bd}
.site-footer .back-top{grid-column:2;grid-row:1/3;margin:0;min-height:44px;font-size:11px;gap:21px;white-space:nowrap}
.site-footer :is(a,button):focus-visible{outline:2px solid #d6e7a7;outline-offset:5px}
.footer-nav a:focus-visible:after{right:0}
.footer-action:focus-visible .footer-action-arrow{transform:translate(3px,-3px)}
@media(hover:hover) and (pointer:fine){
 .footer-action:hover .footer-action-arrow{transform:translate(4px,-4px)}
 .footer-nav a:hover:after{right:0}
 .footer-action:hover .footer-action-label{color:#d6e7a7}
}
@media(max-width:1050px){
 .footer-directory{grid-template-columns:.85fr 1.5fr;gap:6%}
 .footer-brand{font-size:92px}
 .footer-nav{gap:22px}
 .footer-nav a{font-size:12px}
}
@media(min-width:701px) and (max-width:1050px){
 .prose,.service-item p,.living-copy>p:last-child,.flow-intro>p:not(.eyebrow),.flow-list p,.faq details p,.work-columns p,.day-list p,.growth-copy>p,.consultation-intro>p:not(.eyebrow){font-size:15px;line-height:1.9}
 .section-side-note{font-size:13px;max-width:44%}
 .recruit-banner h2{font-size:28px;white-space:normal;text-wrap:balance}
 .flow,.faq,.day-section{grid-template-columns:1fr;gap:35px}
 .flow-list h3,.faq summary{font-size:15px}
 .service-grid{gap:15px}
 .service-item,.service-item:first-child,.service-item:last-child{padding-inline:12px}
 .service-item:first-child{padding-left:0}
 .service-item:last-child{padding-right:0}
 .service-item h3{font-size:23px}
 .service-link{font-size:12px;gap:8px}
 .form-row label{font-size:14px}
 .form-row input,.form-row select,.form-row textarea{font-size:16px}
 .footer-directory{grid-template-columns:1fr;gap:42px}
 .footer-nav{grid-template-columns:repeat(3,1fr);gap:30px}
 .footer-nav a{font-size:14px}
}
@media(max-width:700px){
 body{font-size:16px;line-height:1.85;letter-spacing:.035em}
 .section-pad{padding:72px 24px}
 .section-number{font-size:10px;padding-bottom:21px}
 .eyebrow,.tiny-label{font-size:10px;letter-spacing:.13em}
 .section-heading,.serif-heading{font-size:clamp(27px,7.6vw,34px);line-height:1.72;letter-spacing:.035em;text-wrap:balance}
 .section-heading{margin-top:18px}
 .section-top{display:block}
 .section-side-note{max-width:none;font-size:14px;line-height:1.9;padding:23px 0 0}
 .section-side-note small,.small-note{font-size:12px;line-height:1.8}
 .small-note{margin-top:18px}
 .about-content{display:grid;grid-template-columns:1fr;gap:29px;padding-top:35px}
 .prose,.about .prose,.work-intro .prose{padding:0;font-size:15px;line-height:1.95}
 .prose p+p{margin-top:22px}
 .prose br,.living-copy>p:not(.eyebrow) br,.flow-intro>p:not(.eyebrow) br,.consultation-intro>p:not(.eyebrow) br,.growth-copy>p br{display:none}
 .prose-sign{font-size:21px}
 .service-grid{display:grid;grid-template-columns:1fr;gap:0;margin-top:34px}
 .service-item,.service-item:first-child,.service-item:last-child{padding:31px 0 32px;border-left:0;border-top:1px solid var(--line)}
 .service-item:last-child{padding-bottom:0}
 .service-art{height:220px;width:100%;position:static;margin:0 0 25px}
 .service-art img{max-width:355px;margin-inline:auto;object-fit:contain}
 .service-item .service-num{font-size:10px;max-width:none;margin:0}
 .service-item h3{font-size:27px;margin:11px 0 18px;max-width:none}
 .service-item p{font-size:15px;line-height:1.9;min-height:0;max-width:none;margin:0}
 .service-link{font-size:14px;min-height:60px;margin-top:21px;padding:16px 0;gap:14px;line-height:1.7}
 .service-link>span{flex:0 0 20px;text-align:right;font-size:20px}
 .living-section{display:grid;grid-template-columns:1fr;gap:0;padding:72px 0 60px}
 .living-photo{height:340px;margin-right:24px}
 .living-copy{padding:36px 24px 0}
 .living-copy .serif-heading{font-size:clamp(26px,7.2vw,33px);line-height:1.8;margin:23px 0}
 .living-copy>.eyebrow{font-size:9px}
 .living-copy>p:last-child{font-size:15px;line-height:1.95}
 .flow,.faq,.day-section{display:grid;grid-template-columns:1fr;gap:34px}
 .flow .section-heading,.faq .section-heading,.day-section .section-heading{font-size:clamp(27px,7.5vw,33px);line-height:1.75}
 .flow-intro>p:not(.eyebrow){font-size:15px;line-height:1.9;margin-top:22px}
 .flow-list li{gap:19px;padding:26px 0}
 .step-number{font-size:29px;flex:0 0 35px}
 .flow-list h3{font-size:16px;line-height:1.9;margin:0 0 9px;text-wrap:pretty}
 .flow-list p{font-size:15px;line-height:1.9}
 .flow-list li>span:last-child:not(.step-number){display:none}
 .faq{padding-top:64px;padding-bottom:72px}
 .faq summary{font-size:15px;line-height:1.85;gap:20px;padding:23px 0}
 .faq details p{font-size:15px;line-height:1.95;padding:0 5px 25px 0}
 .recruit-banner{grid-template-columns:1fr;margin:0 24px}
 .recruit-banner-photo{height:290px}
 .recruit-banner-copy{padding:33px 24px 37px}
 .recruit-banner h2{font-size:clamp(24px,6.7vw,31px);line-height:1.8;white-space:normal;text-wrap:balance}
 .recruit-banner .eyebrow{font-size:10px}
 .recruit-banner .text-link{font-size:14px;gap:25px;margin-top:22px}
 .consultation{display:grid;grid-template-columns:1fr;gap:38px;padding-top:72px;padding-bottom:62px}
 .consultation-intro .serif-heading{font-size:clamp(27px,7.5vw,34px);line-height:1.75;margin:22px 0}
 .consultation-intro>p:not(.eyebrow){font-size:15px;line-height:1.9}
 .form-demo-note{font-size:12px;line-height:1.85;margin-top:22px}
 .demo-form{margin:0}
 .form-row{margin-bottom:26px}
 .form-row label{font-size:15px;line-height:1.7;margin-bottom:10px}
 .form-row label>span{font-size:11px;margin-left:12px}
 .form-row input,.form-row select,.form-row textarea{font-size:16px;line-height:1.75;padding:11px 0 14px;min-height:51px}
 .form-row input::placeholder,.form-row textarea::placeholder{font-size:14px}
 .form-row textarea{min-height:112px}
 .form-privacy{font-size:12px;line-height:1.9;margin:25px 0}
 .submit-button{min-height:62px;font-size:15px;padding:18px 20px;gap:18px;white-space:nowrap;line-height:1.6}
 .submit-button>span{flex:0 0 20px;text-align:right}
 .form-result{font-size:14px;line-height:1.85;margin-top:17px}
 .work-intro{padding-top:70px}
 .work-columns{grid-template-columns:1fr;gap:30px;margin-top:38px;padding-top:30px}
 .work-columns h3{font-size:25px;margin:13px 0 16px}
 .work-columns p{font-size:15px;line-height:1.95;max-width:none}
 .work-columns .service-num{font-size:10px}
 .day-list li{gap:20px;padding:26px 0}
 .day-list li>span{font-size:12px;flex:0 0 20px;padding-top:5px}
 .day-list h3{font-size:21px;line-height:1.8;margin-bottom:12px;text-wrap:balance}
 .day-list p{font-size:15px;line-height:1.95}
 .growth>.serif-heading{font-size:clamp(27px,7.3vw,33px);line-height:1.8;margin:24px 0 32px}
 .growth-grid{grid-template-columns:1fr;gap:32px}
 .growth-photo{height:310px}
 .growth-copy{padding:0}
 .growth-copy>p{font-size:15px;line-height:1.95}
 .growth-copy>p+p{margin-top:23px}
 .growth-note{padding-top:24px;margin-top:29px}
 .growth-note p{font-size:13px;line-height:1.9}
 .growth-note .tiny-label{font-size:10px}
 .recruitment{padding-top:8px}
 .conditions{margin-top:31px}
 .conditions>div{display:grid;grid-template-columns:1fr;gap:8px;padding:23px 0;font-size:16px;line-height:1.85}
 .conditions dt{font-size:14px;line-height:1.8;color:var(--muted)}
 .conditions dd{font-size:16px;line-height:1.8}
 .conditions dd span{font-size:14px;line-height:1.85;margin-top:5px}
 .recruit-demo{padding-top:70px}
 .menu-dialog nav a{font-size:27px;line-height:1.7;padding:18px 0}
 .menu-close{font-size:13px}
 .menu-bottom{font-size:9px}
 .site-footer{padding:0 24px 27px}
 .footer-actions{grid-template-columns:1fr}
 .footer-action,.footer-action+.footer-action{padding:43px 0 35px;border-left:0}
 .footer-action+.footer-action{border-top:1px solid #ffffff36;padding-top:34px}
 .footer-action .eyebrow{font-size:9px}
 .footer-action-title{font-size:30px;line-height:1.75;letter-spacing:.05em;margin:20px 0 21px}
 .footer-action-label{max-width:none;font-size:15px;min-height:56px;gap:25px;padding-top:15px}
 .footer-action-recruit .footer-action-title{font-size:27px;line-height:1.75}
 .footer-action-arrow{font-size:25px}
 .footer-directory{display:grid;grid-template-columns:1fr;gap:43px;padding:48px 0 39px}
 .footer-brand{font-size:103px;line-height:1;padding-bottom:8px}
 .footer-tagline{font-size:18px;margin-top:16px}
 .footer-brand-en{font-size:10px;margin-top:14px}
 .footer-nav{grid-template-columns:1fr 1fr;gap:30px 22px;padding:0}
 .footer-nav-group h2{font-size:12px;line-height:1.8;margin-bottom:12px}
 .footer-nav a{min-height:46px;font-size:14px;line-height:1.8}
 .footer-nav-group:last-child{grid-column:1/-1;padding-top:4px}
 .footer-nav-group:last-child ul{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}
 .site-footer .footer-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding-top:23px;font-size:11px;line-height:1.9}
 .site-footer .footer-bottom>p{max-width:none;font-size:11px;line-height:1.9}
 .site-footer .footer-bottom>span{display:block;font-size:9px;margin:0;order:3}
 .site-footer .back-top{font-size:12px;min-height:44px;gap:22px;align-self:flex-end;margin-top:0;order:2}
}
@media(min-width:601px) and (max-width:700px){
 .site-header{left:24px;right:24px;height:96px}
 .hero{min-height:850px}
 .hero h1{font-size:clamp(46px,7.3vw,52px);line-height:1.5}
 .hero-copy{padding:165px 24px 190px}
 .hero-services{left:24px;right:24px}
 .hero-visual img{object-position:60% center}
 .hero-description{font-size:14px;line-height:2}
 .recruit-hero{padding:170px 24px 100px;min-height:820px}
 .recruit-hero h1{font-size:clamp(47px,7.8vw,54px)}
 .header-actions{gap:15px}
}
@media(max-width:600px){
 .site-header{left:24px;right:24px;gap:12px;height:88px}
 .site-header .brand{gap:11px}
 .site-header .brand-jp{font-size:30px}
 .site-header .brand-en{font-size:7px}
 .site-header .contact-link{font-size:12px;min-height:44px;padding:0 12px;gap:8px}
 .site-header .contact-link span{font-size:16px}
 .header-actions{gap:8px}
 .hero-copy{padding-left:24px;padding-right:24px;padding-top:157px;padding-bottom:185px}
 .hero .eyebrow{font-size:8px;letter-spacing:.12em}
 .hero h1{font-size:clamp(40px,11.7vw,54px);line-height:1.55;letter-spacing:.02em}
 .hero-description{font-size:14px;line-height:1.95;letter-spacing:.05em}
 .hero .text-link,.recruit-hero .text-link{font-size:14px;gap:23px;min-height:48px}
 .hero .arrow-circle,.recruit-hero .arrow-circle{width:38px;height:38px;flex-basis:38px}
 .hero-services{left:24px;right:24px;bottom:18px;min-height:108px;row-gap:6px}
 .hero-services>.tiny-label{font-size:9px}
 .hero-services>a{font-size:11px;min-height:44px;padding-inline:11px;gap:8px;line-height:1.6}
 .hero-services>a:first-of-type{padding-left:0}
 .hero-services>a:last-of-type{padding-right:0}
 .hero-services>a span{font-size:8px}
 .hero-visual img{object-position:61% center}
 .recruit-hero{padding:155px 24px 100px}
 .recruit-hero .eyebrow{font-size:9px;letter-spacing:.11em}
 .recruit-hero h1{font-size:clamp(32px,9.4vw,44px);line-height:1.65;letter-spacing:.025em}
 .recruit-hero-copy>p:not(.eyebrow){font-size:14px;line-height:1.95}
 .recruit-hero .photo-label{font-size:8px;left:24px;right:24px;letter-spacing:.1em}
 .hero-visual:after{background:linear-gradient(90deg,rgba(8,35,28,.75),rgba(8,35,28,.44) 50%,rgba(8,35,28,.08)),linear-gradient(0deg,rgba(8,35,28,.6),transparent 30%)}
}
@media(max-width:374px){
 .section-pad{padding-left:20px;padding-right:20px}
 .site-header{left:20px;right:20px;gap:10px}
 .site-header .brand-en{display:none}
 .header-actions{gap:9px}
 .hero-copy,.recruit-hero{padding-left:20px;padding-right:20px}
 .hero .eyebrow{font-size:7px}
 .hero h1{font-size:40px}
 .hero-services{left:20px;right:20px}
 .hero-services>a{font-size:10px;padding-inline:8px;gap:5px}
 .hero-services>a span{font-size:8px}
 .hero-description{font-size:13px}
 .recruit-hero h1{font-size:32px}
 .living-photo{margin-right:20px;height:300px}
 .living-copy{padding-left:20px;padding-right:20px}
 .service-art{height:200px}
 .recruit-banner{margin-inline:20px}
 .recruit-banner-copy{padding-inline:20px}
 .recruit-banner h2{font-size:24px}
 .growth-photo{height:280px}
 .site-footer{padding-left:20px;padding-right:20px}
 .footer-nav{gap:26px 15px}
 .footer-nav a{font-size:13px}
 .footer-nav-group:last-child ul{gap:0 15px}
}
@media(prefers-reduced-motion:reduce){.footer-action-arrow,.footer-nav a:after{transition:none}.footer-action:hover .footer-action-arrow{transform:none}}
