@charset "UTF-8";

@import url("https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;600;700&family=Unbounded:wght@400;700&family=Zen+Antique+Soft&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap");

:root { --navy:#232b56; --gold:#c8b687; --serif:"Shippori Mincho","Noto Serif JP",serif; --sans:"Zen Kaku Gothic New","Noto Sans JP",sans-serif; }
*,*::before,*::after { box-sizing:border-box; }
html { overflow-x:hidden; scroll-behavior:smooth; }
body { overflow-x:hidden; color:var(--navy); font-family:var(--sans); }
body.menu-open { overflow:hidden; }
.fade-in { opacity:0; transform:translateY(32px); transition:opacity .8s ease,transform .8s ease; }
.fade-in.is-visible { opacity:1; transform:none; }

/* Hero */
.service-hero { position:relative; height:779px; background:linear-gradient(#e6e7ec 0 267px,#fff 267px); }
.service-hero__heading { position:absolute; top:174px; left:max(40px,calc((100% - 1290px)/2)); display:flex; align-items:flex-end; gap:20px; }
.service-hero__heading h1 { font-family:"Unbounded",var(--sans); font-size:40px; font-weight:700; line-height:1; letter-spacing:3.2px; }
.service-hero__heading p { padding-bottom:2px; color:var(--gold); font-family:var(--serif); font-size:16px; font-weight:700; }
.service-hero__breadcrumb { position:absolute; top:184px; right:max(40px,calc((100% - 1290px)/2)); font-family:var(--serif); font-size:16px; line-height:50px; }
.service-hero__visual { position:absolute; top:267px; left:0; width:50%; height:512px; overflow:hidden; }
.service-hero__visual img { width:100%; height:100%; object-fit:cover; object-position:58% center; }
.service-hero__message { position:absolute; top:340px; left:calc(50% + 50px); width:590px; }
.service-hero__message h2 { font-family:var(--serif); font-size:40px; font-weight:700; line-height:1.5; }
.service-hero__message p { margin-top:26px; font-size:14px; line-height:2.5; }

/* Business sections */
.business { height:1001px; background:#fff; }
.business--consulting,.business--estate { background:#e6e7ec; }
.business--estate { height:1027px; }
.business__inner { display:grid; grid-template-columns:456px 589px; gap:246px; width:min(1290px,calc(100% - 80px)); height:100%; margin:0 auto; padding-top:159px; }
.business__title { display:flex; align-items:baseline; gap:7px; }
.business__title>b { font-family:"Unbounded",var(--sans); font-size:16px; line-height:38px; }
.business__title h2 { font-family:var(--serif); font-size:24px; font-weight:700; line-height:38px; }
.business__copy>p { margin-top:46px; font-size:14px; line-height:2.5; }
.business-flow { margin:0; list-style:none; }
.business-flow li { position:relative; display:grid; grid-template-columns:68px 1fr; align-items:center; gap:26px; height:102px; }
.business-flow li::after { position:absolute; right:0; bottom:0; width:505px; height:1px; background:#949ab1; content:""; }
.business-flow li:not(:last-child)::before { position:absolute; bottom:-4px; left:30px; z-index:2; width:8px; height:8px; background:url("../image/service/flow-chevron.svg") center/contain no-repeat; content:""; transform:rotate(180deg); }
.business-flow li>span { display:grid; place-items:center; width:68px; height:68px; background:#fff; }
.business-flow li img { display:block; width:100%; height:100%; object-fit:contain; }
.business-flow li b { font-family:var(--serif); font-size:18px; font-weight:700; line-height:28px; letter-spacing:1.44px; }
.business-flow__text { grid-template-columns:0 1fr!important; gap:0!important; padding-left:0; }
.business-flow__text::after { width:589px!important; }

.footer { margin-top:-2px; }

@media (max-width:1199px) {
  .service-hero__message { right:55px; left:auto; width:43%; }
  .service-hero__message h2 { font-size:clamp(28px,3.4vw,40px); }
  .business { height:auto; min-height:940px; padding:110px 0; }
  .business__inner { grid-template-columns:minmax(280px,.8fr) minmax(400px,1.2fr); gap:60px; width:calc(100% - 80px); padding:0; }
  .business-flow li::after { width:calc(100% - 84px); }
}

@media (max-width:767px) {
  .service-hero { height:auto; padding-bottom:70px; background:linear-gradient(#e6e7ec 0 260px,#fff 260px); }
  .service-hero__heading { position:relative; top:auto; left:auto; display:block; padding:125px 25px 0; height:260px; }
  .service-hero__heading h1 { font-size:30px; letter-spacing:2.4px; }
  .service-hero__heading p { margin-top:10px; font-size:14px; }
  .service-hero__breadcrumb { top:213px; right:25px; font-size:14px; line-height:1.5; }
  .service-hero__visual { position:relative; top:auto; width:100%; height:270px; }
  .service-hero__message { position:static; width:auto; padding:50px 25px 0; }
  .service-hero__message h2 { font-size:22px; line-height:1.55; }
  .service-hero__message p { font-size:14px; }
  .service-hero__message p br { display:none; }

  .business { min-height:0; padding:70px 0 80px; }
  .business__inner { display:block; width:calc(100% - 50px); }
  .business__title { align-items:flex-start; gap:8px; }
  .business__title>b { font-size:14px; line-height: 2.3em; }
  .business__title h2 { font-size:19px; line-height:1.6; }
  .business__copy>p { margin-top:28px; font-size:14px; line-height:2.1; }
  .business-flow { margin-top:45px; }
  .business-flow li { grid-template-columns:56px 1fr; gap:18px; height:86px; }
  .business-flow li>span { width:56px; height:56px; }
  .business-flow li b { font-size:14px; line-height:1.6; letter-spacing:.7px; }
  .business-flow li::after { width:calc(100% - 66px); }
  .business-flow li:not(:last-child)::before { bottom:-4px; left:24px; }
  .business-flow__text { min-height:100px; }
  .business-flow__text::after { width:100%!important; }
  .footer__brand p,
  .footer nav { font-size:14px; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .fade-in { opacity:1; transform:none; transition:none; }
}
