/* MORI role-level layout study: footer hierarchy and continuous inner pages.
   Uses Marutomo's own content and approved free fonts. No simulated search,
   social accounts or language destinations are introduced. */

.site-footer,.site-footer.section-shell,.inner-page .site-footer{padding:0;margin:0;background:#fff;border-top:1px solid #9fa0a0}
.site-footer>.footer-inner{padding:50px;display:flex;flex-direction:column;gap:50px;width:100%}
.site-footer .footer-header{display:flex;align-items:center;justify-content:space-between;gap:35px;width:100%}
.site-footer .footer-brand{margin:0;flex:none}
.site-footer .footer-brand>a:first-child,.site-footer .footer-brand img{width:120px;height:auto;margin:0;display:block}
.site-footer .footer-brand>a{transition:opacity .3s ease}
.site-footer .footer-phone{display:flex;align-items:center;justify-content:center;width:242px;min-height:46px;padding:10px 20px;margin:0;max-width:none;background:rgba(0,0,0,.1);border-radius:100px;font-family:var(--font-latin);font-size:16px;font-weight:400;line-height:1.5;letter-spacing:.03em;color:#111;transition:background-color .3s ease}
.site-footer .footer-information{display:flex;align-items:stretch;gap:0;width:100%}
.site-footer .footer-links{display:flex;flex-wrap:wrap;align-items:stretch;gap:30px 0;padding:0;margin:0;border:0;flex:none}
.site-footer .footer-link-group{display:flex;flex-direction:column;gap:18px;width:242px;padding:5px 50px 5px 20px;border-left:1px solid rgba(0,0,0,.3)}
.site-footer .footer-links a{position:relative;display:block;width:fit-content;max-width:100%;padding:0 0 4px;margin:0;color:#000;font-family:var(--font-sans);font-size:14px;font-weight:400;line-height:1.28;letter-spacing:-.28px;text-decoration:none;transition:color .3s ease}
.site-footer .footer-links a::after{position:absolute;content:'';left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .3s ease}
.site-footer .footer-links a::before{position:absolute;content:'';inset:-10px -12px}
.site-footer .footer-company{border-left:1px solid rgba(0,0,0,.3);padding:5px 0 5px 20px;max-width:340px}
.site-footer .footer-company p{margin:0;font-family:var(--font-sans);font-size:12px;font-weight:400;line-height:1.7;letter-spacing:-.28px;color:#515252}
.site-footer .footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px 25px;width:100%;padding:0;margin:-25px 0 0;border:0;color:#515252}
.site-footer .footer-bottom>p{margin:0 auto 0 0;font-size:10px;line-height:1.7}
.site-footer .footer-bottom>span,.site-footer .footer-bottom small{margin:0;font-family:var(--font-latin);font-size:10px;line-height:1.73;letter-spacing:.3px;color:#000}
.site-footer .footer-bottom>a{margin:0;font-size:10px;line-height:1.7}
.site-footer a:focus-visible{outline:2px solid #c92b37;outline-offset:5px}
.site-footer .footer-links a:focus-visible{color:#515252}
.site-footer .footer-links a:focus-visible::after{transform:scaleX(1)}
@media(hover:hover) and (pointer:fine){
 .site-footer .footer-brand>a:hover{opacity:.65}
 .site-footer .footer-phone:hover{background:rgba(0,0,0,.16)}
 .site-footer .footer-links a:hover{text-decoration:none;color:#515252}
 .site-footer .footer-links a:hover::after{transform:scaleX(1)}
}
@media(hover:none) and (pointer:coarse){
 .site-footer .footer-phone:active{background:rgba(0,0,0,.16)}
 .site-footer .footer-links a:active{color:#515252}
 .site-footer .footer-links a:active::after{transform:scaleX(1)}
}

/* The reference's inner pages use one light-gray surface, not white cards. */
.inner-page{--paper:#f3f3f3;--paper-light:#f3f3f3;--line:rgba(0,0,0,.3);background:#f3f3f3}
.inner-page main{padding-top:166px;background:linear-gradient(to right,#f3f3f3 0,#f3f3f3 calc(100% - 100px),#e2e2e2 calc(100% - 100px),#e2e2e2 100%);padding-bottom:1px}
.inner-page main>.inner-hero.section-shell{display:flex;flex-direction:column;align-items:stretch;margin:0 200px 90px 100px;padding:0;background:transparent;border:0;border-radius:0}
.inner-hero>.breadcrumb{order:0;gap:16px;margin:0 0 26px;font-family:var(--font-sans);font-size:12px;line-height:1.28;letter-spacing:-.28px;color:#111;flex-wrap:wrap}
.inner-hero>.breadcrumb a{text-decoration:none}
.inner-hero>.breadcrumb>[aria-hidden=true]{font-size:0;display:block;width:5px;height:5px;border-top:1px solid #9fa0a0;border-right:1px solid #9fa0a0;transform:rotate(45deg);flex:none}
.inner-hero>.inner-title{order:1;margin:0;font-family:var(--font-sans);font-size:24px;font-weight:700;line-height:1.28;letter-spacing:-.28px;max-width:none}
.inner-page .inner-hero>p.eyebrow{order:2;margin:6px 0 0;color:#515252;font-size:14px;line-height:1.37;letter-spacing:1.36px}
.inner-page .inner-hero>p.inner-intro{order:3;margin:40px 0 0;max-width:800px;font-size:16px;line-height:1.7}
.inner-hero>.rental-note{order:4}
.inner-hero>.text-link{order:5;align-self:flex-start;margin-top:28px}
.inner-page main>.section-shell:not(.inner-hero):not(.site-footer){margin:0 200px 100px 100px;padding:0;background:transparent;border:0;border-radius:0}
.inner-page .section-heading{margin:0 0 40px;gap:14px 50px}
.inner-page .section-heading>.section-kicker{margin:0;color:#515252;font-size:12px;line-height:1.7;letter-spacing:.08em}
.inner-page .section-heading h2{font-size:21px;line-height:1.28;font-weight:700;letter-spacing:-.28px}
.inner-page .company-introduction{grid-template-columns:minmax(0,35fr) minmax(0,65fr);gap:0}
.inner-page .company-introduction>.section-heading{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding-right:50px}
.company-introduction>.section-heading h2{order:0}
.company-introduction>.section-heading>.section-kicker{order:1}
.inner-page .company-prose p{margin:0 0 22px;font-size:16px;line-height:1.7;letter-spacing:-.28px}
.inner-page .company-prose .text-link{margin-top:15px}
.inner-page .company-overview{position:relative;display:grid;grid-template-columns:minmax(0,35fr) minmax(0,65fr);gap:0}
.inner-page .company-overview>.section-heading{position:absolute;left:-100px;top:0;display:flex;flex-direction:column;align-items:center;gap:18px;width:50px;padding:20px 12px;margin:0;background:#fff;border-left:5px solid #111}
.company-overview>.section-heading h2{order:0;writing-mode:vertical-rl;font-size:16px;line-height:1;letter-spacing:0}
.company-overview>.section-heading>.section-kicker{order:1;writing-mode:vertical-rl;font-size:12px;line-height:1;letter-spacing:1.2px}
.inner-page dl.company-table{grid-column:2;width:100%;margin:0}
/* Reference table cells include both borders; the one-border dl rows add
   0.5px at each edge to retain the measured 58px / 42px single-line rhythm. */
.inner-page .company-row{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:0;padding:14.9px 0;font-size:16px;line-height:1.7;border-color:rgba(0,0,0,.3)}
.inner-page .company-row dt{padding-right:50px;font-weight:400}
.inner-page .company-row dd{min-width:0;margin:0;overflow-wrap:anywhere}
.inner-page .company-row a{transition:text-decoration-color .3s ease}
.page-services main>.inner-hero.section-shell{margin-bottom:45px}
.inner-feature{margin:0 200px 45px 100px;overflow:hidden;border-radius:3px;aspect-ratio:57/16}
.inner-feature img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.inner-page main>.service-lead.section-shell{margin-bottom:90px}
.service-lead .inner-intro{margin:0;max-width:none;font-size:14px;font-weight:700;line-height:1.7;letter-spacing:-.28px}
.service-lead>.text-link{margin-top:25px}
.inner-page .service-concerns>.section-heading{grid-template-columns:minmax(0,35fr) minmax(0,65fr);gap:14px 0;align-items:start}
.service-concerns>.section-heading h2{grid-column:1;grid-row:1}
.service-concerns>.section-heading>.section-kicker{grid-column:1;grid-row:2;max-width:90%;font-size:11px;letter-spacing:.04em}
.service-concerns>.section-heading>p:not(.section-kicker){grid-column:2;grid-row:1/3;margin:0;font-size:16px;line-height:1.7}
.inner-page .service-theme-panel{padding:0;margin:0;background:transparent;border-radius:0}
/* Keep each answer next to its question in the source. On wider screens the
   selected answer retains the original position below the question grid. */
.inner-page .concern-list>.concern-copy{grid-column:1/-1;order:1}
.inner-page .service-process>.section-heading{grid-template-columns:minmax(0,35fr) minmax(0,65fr);align-items:start;gap:14px 0}
.service-process>.section-heading h2{grid-column:1;grid-row:1;padding-right:35px}
.service-process>.section-heading>.section-kicker{grid-column:1;grid-row:2}
.service-process>.section-heading>p:not(.section-kicker){grid-column:2;grid-row:1/3;margin:0;font-size:16px;line-height:1.7}
.inner-page .process-grid{gap:50px}
.inner-page .process-card{border-color:rgba(0,0,0,.3)}
.inner-page main>.inner-cta.section-shell{padding-top:50px;border-top:1px solid rgba(0,0,0,.3)}
.inner-page .inner-cta>.section-kicker{margin:0 0 20px;color:#515252}
.inner-page .inner-cta h2{font-size:21px;line-height:1.5}
.inner-page main>.privacy-content.section-shell,.inner-page main>.news-article.section-shell{max-width:none;padding-left:calc((100vw - 300px)*.35)}
.inner-page .privacy-content section{padding:30px 0;border-color:rgba(0,0,0,.3)}
.inner-page .news-article>.button{margin-top:25px}
@media(hover:hover) and (pointer:fine){.inner-hero .breadcrumb a:hover{text-decoration:underline;text-underline-offset:4px}}

@media(min-width:701px) and (max-width:1100px){
 .inner-page main{padding-top:145px;background:linear-gradient(to right,#f3f3f3 calc(100% - 60px),#e2e2e2 calc(100% - 60px))}
 .inner-page main>.inner-hero.section-shell,.inner-page main>.section-shell:not(.inner-hero):not(.site-footer){margin-left:60px;margin-right:100px}
 .inner-feature{margin-left:60px;margin-right:100px}
 .inner-page .company-overview>.section-heading{left:-60px;width:35px;padding-left:7px;padding-right:7px}
 .inner-page .company-introduction>.section-heading{padding-right:30px}
 .inner-page .company-row dt{padding-right:30px}
 .inner-page .process-grid{gap:25px}
 .inner-page main>.privacy-content.section-shell,.inner-page main>.news-article.section-shell{padding-left:calc((100vw - 160px)*.25)}
 .site-footer .footer-information{flex-wrap:wrap;gap:30px}
 .site-footer .footer-company{max-width:none}
}
@media(max-width:700px){
 .site-footer>.footer-inner{padding:40px;gap:40px}
 .site-footer .footer-header{align-items:flex-start;flex-direction:column;gap:35px}
 .site-footer .footer-brand>a:first-child,.site-footer .footer-brand img{width:110px}
 .site-footer .footer-phone{width:100%;min-height:42px;padding:9px 14px;font-size:15px}
 .site-footer .footer-information{display:flex;flex-direction:column;gap:50px}
 .site-footer .footer-links{width:100%;flex-direction:column;gap:30px;margin:0;padding:0}
 .site-footer .footer-link-group{width:219px;max-width:100%;gap:23px;padding:5px 30px 5px 20px}
 .site-footer .footer-links a{font-size:14px;line-height:1.28;letter-spacing:-.28px;padding-bottom:4px}
 .site-footer .footer-company{max-width:none;border-left:0;padding:0}
 .site-footer .footer-company p{font-size:12px;line-height:1.7}
 .site-footer .footer-bottom,.inner-page .site-footer .footer-bottom{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:16px;margin:0;padding:0;width:100%}
 .site-footer .footer-bottom>p,.inner-page .site-footer .footer-bottom>p{width:auto;max-width:100%;margin:0;font-size:10px;line-height:1.7}
 .site-footer .footer-bottom>span,.site-footer .footer-bottom small,.inner-page .site-footer .footer-bottom small{display:block;margin:0;width:auto;font-size:10px;line-height:1.73;letter-spacing:.3px}
 .site-footer .footer-bottom>a{font-size:10px}
 .inner-page main{padding-top:88px;background:linear-gradient(to right,#f3f3f3 calc(100% - 20px),#e2e2e2 calc(100% - 20px))}
 .inner-page main>.inner-hero.section-shell{margin:0 40px 50px;padding:0}
 .inner-hero>.breadcrumb{gap:12px;margin-bottom:18.8px;font-size:10px;line-height:1.28;letter-spacing:-.28px}
 .inner-hero>.inner-title{font-size:19px;line-height:1.28;letter-spacing:-.28px}
 .inner-page .inner-hero>p.eyebrow{margin-top:6px;font-size:10px;line-height:1.37;letter-spacing:1.36px}
 .inner-page .inner-hero>p.inner-intro{margin-top:28px;font-size:14px;line-height:1.7;letter-spacing:-.2px}
 .inner-hero>.text-link{margin-top:25px}
 .inner-page main>.section-shell:not(.inner-hero):not(.site-footer){margin:0 40px 60px;padding:0}
 .inner-page .section-heading{margin-bottom:30px;gap:12px}
 .inner-page .section-heading h2{font-size:16px;line-height:1.28;letter-spacing:-.2px}
 .inner-page .section-heading>.section-kicker{font-size:10px;line-height:1.7;letter-spacing:1px}
 .inner-page .company-introduction{display:block}
 .inner-page .company-introduction>.section-heading{padding:0;margin:0 0 30px;gap:12px}
 .inner-page .company-prose p{font-size:14px;line-height:1.7;margin-bottom:22px;letter-spacing:-.2px}
 .inner-page .company-overview{display:block}
 .inner-page .company-overview>.section-heading{left:-40px;width:24px;padding:14px 5px;gap:18px;border-left-width:3px}
 .company-overview>.section-heading h2{font-size:12px;line-height:1;letter-spacing:0}
 .company-overview>.section-heading>.section-kicker{font-size:10px;line-height:1;letter-spacing:1px}
 .inner-page .company-row{grid-template-columns:minmax(0,113fr) minmax(0,197fr);padding:10.3px 0;font-size:12px;line-height:1.7}
 .inner-page .company-row dt{padding-right:30px}
 .page-services main>.inner-hero.section-shell{margin-bottom:30px}
 .inner-feature{margin:0 0 25px;border-radius:0;aspect-ratio:13/5}
 .inner-page main>.service-lead.section-shell{margin-bottom:50px}
 .service-lead .inner-intro{font-size:14px;line-height:1.7}
 .service-lead>.text-link{margin-top:25px}
 .inner-page .service-concerns>.section-heading,.inner-page .service-process>.section-heading{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
 .service-concerns>.section-heading h2,.service-process>.section-heading h2{order:0;padding:0}
 .service-concerns>.section-heading>.section-kicker,.service-process>.section-heading>.section-kicker{order:1;max-width:none;font-size:10px}
 .service-concerns>.section-heading>p:not(.section-kicker),.service-process>.section-heading>p:not(.section-kicker){order:2;margin:15px 0 0;font-size:14px;line-height:1.7}
 .inner-page .service-theme-panel{padding:0;margin:0}
 .inner-page .concern-list{display:block;overflow-anchor:none}
 .inner-page .concern-list>button{width:100%}
 .inner-page .concern-list>.concern-copy{min-height:0;margin:0;padding:22px 10px 28px}
 .inner-page .concern-list>button:focus-visible{outline:2px solid #c92b37;outline-offset:3px}
 .inner-page .process-grid{gap:35px}
 .inner-page .process-card{grid-template-columns:40px minmax(0,1fr);column-gap:15px}
 .inner-page .process-card .step-number{font-size:28px}
 .inner-page .process-card p,.inner-page .process-card li{font-size:14px;line-height:1.7}
 .inner-page main>.inner-cta.section-shell{padding-top:35px}
 .inner-page .inner-cta h2{font-size:16px;line-height:1.5}
 .inner-page main>.privacy-content.section-shell,.inner-page main>.news-article.section-shell{padding-left:0}
 .inner-page .contact-layout{display:block}
 .inner-page .contact-memo{margin-top:60px}
 .inner-page .contact-form input,.inner-page .contact-form select,.inner-page .contact-form textarea{font-size:16px}
 .inner-page .form-field label>span,.inner-page .form-note{font-size:12px!important;line-height:1.7}
}
@media(max-width:360px){
 .site-footer>.footer-inner{padding:40px 30px}
 .inner-page main>.inner-hero.section-shell,.inner-page main>.section-shell:not(.inner-hero):not(.site-footer){margin-left:30px;margin-right:30px}
 .inner-page .company-overview>.section-heading{left:-30px;width:20px;padding-left:3px;padding-right:3px}
 .inner-page .company-row dt{padding-right:18px}
 .inner-page .company-row{grid-template-columns:minmax(0,105fr) minmax(0,155fr)}
}
@media(prefers-reduced-motion:reduce){.site-footer a,.site-footer .footer-links a::after{transition:none}}
