@charset "UTF-8";

/* Match the fixed header on company/#member without importing legacy page CSS. */
:root{--fuji-header-height:76px;--fuji-header-navy:#1a357f;--fuji-header-font:"Syncopate","游ゴシック体",YuGothic,"Yu Gothic Medium","Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,Arial,sans-serif}
html{scroll-padding-top:calc(var(--fuji-header-height) + 16px)}
.fuji-main,body.fuji-menu-open .fuji-main{padding-top:var(--fuji-header-height)}
.fuji-header{position:fixed;inset:0 0 auto;z-index:60;height:var(--fuji-header-height);padding:0 0 0 55px;border:0;background:rgba(255,255,255,.8);color:#222;font-family:"游ゴシック体",YuGothic,"Yu Gothic Medium","Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;font-weight:500;line-height:1.75;letter-spacing:1.6px;-webkit-font-smoothing:antialiased}
.fuji-header-logo{width:233px;max-width:none}
.fuji-header-actions{height:100%;gap:0}
.fuji-header-phone{position:relative;padding:0 25px;text-align:center;text-shadow:1px 1px 0 rgba(255,255,255,.25),-1px -1px 0 rgba(255,255,255,.25)}
.fuji-header-phone>a{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--fuji-header-navy);font-family:var(--fuji-header-font);font-size:18px;font-weight:500;line-height:1;white-space:nowrap}
.fuji-header-phone .fuji-icon{width:18px;height:18px;margin:0}
.fuji-header-phone p{padding-left:24px;font-size:12px;line-height:1.75;letter-spacing:1.4px}
.fuji-header-phone::after,.fuji-header-contact::after{position:absolute;top:50%;right:0;width:1px;height:50px;content:"";background:var(--fuji-header-navy);transform:translateY(-50%)}
.fuji-header-contact{position:relative;display:flex;align-items:center;gap:5px;padding:8px 25px;border:0;color:var(--fuji-header-navy)!important;font-family:var(--fuji-header-font);font-size:12px;font-weight:500;line-height:1.75;letter-spacing:1.6px}
.fuji-header-contact .fuji-icon{width:14.4px;height:14.4px;color:var(--fuji-header-navy)}
.fuji-menu-toggle{position:relative;display:block;flex:none;width:76px;height:76px;margin:0;padding:0;color:var(--fuji-header-navy)!important}
.fuji-menu-toggle::before{position:absolute;top:calc(50% - 1px);left:50%;width:55px;height:55px;content:"";border-radius:50%;background:rgba(26,53,127,0);transform:translate(-50%,-50%) scale(.6);transition:background .3s,transform .3s}
.fuji-menu-toggle span{position:absolute;left:50%;display:block;width:30px;height:3%;margin:0;background:currentColor;transform:translateX(-50%);transition:transform .2s,top .2s,opacity .2s}
.fuji-menu-toggle span:nth-child(1){top:calc(50% - 14px)}
.fuji-menu-toggle span:nth-child(2){top:calc(50% - 2px)}
.fuji-menu-toggle span:nth-child(3){top:calc(50% + 10px)}
.fuji-menu-toggle[aria-expanded=true] span:nth-child(1){top:50%;transform:translate(-50%,-50%) rotate(45deg)}
.fuji-menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
.fuji-menu-toggle[aria-expanded=true] span:nth-child(3){top:50%;transform:translate(-50%,-50%) rotate(-45deg)}
body.fuji-menu-open .fuji-header{background:transparent;pointer-events:none}
body.fuji-menu-open .fuji-header-logo,body.fuji-menu-open .fuji-header-phone,body.fuji-menu-open .fuji-header-contact{visibility:hidden}
body.fuji-menu-open .fuji-menu-toggle{color:#fff!important;pointer-events:auto}
.fuji-navigation{inset:0;z-index:55;overflow:hidden;padding:0;background:rgba(34,34,34,.5)}
.fuji-navigation-inner{width:100%;max-width:435px;height:100%;margin:0 0 0 auto;padding:90px 20px 40px;overflow:auto;overscroll-behavior:contain;background:var(--fuji-header-navy);color:#fff}
.fuji-navigation-inner{text-align:center}
.fuji-navigation ul{display:block;margin:0 0 30px}
.fuji-navigation li a{display:block;gap:0;padding:11px 0;border:0;color:#fff;font-family:inherit;font-size:16px;letter-spacing:.1em;line-height:1.6;text-align:center}
.fuji-navigation .fuji-button{width:100%;min-height:90px;border:0;background:#e8f1fe;color:var(--fuji-navy)!important;font-size:18px;letter-spacing:.1em}
.fuji-navigation .fuji-navigation-contact{flex-direction:column;gap:6px;--fuji-icon-line:#e8f1fe}
.fuji-navigation .fuji-navigation-contact .fuji-icon{width:26px;height:26px}
.fuji-navigation .fuji-navigation-contact:hover{--fuji-icon-line:#fff}
.fuji-navigation .fuji-button:hover{background:#fff}
.fuji-navigation-phone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:90px;margin-top:10px;background:#fff;color:var(--fuji-navy)!important}
.fuji-navigation-phone span{display:flex;align-items:center;gap:10px;font-family:var(--fuji-english);font-size:28px;font-weight:300;letter-spacing:.06em;line-height:1.4}
.fuji-navigation-phone .fuji-icon{width:24px;height:24px}
.fuji-navigation-phone small{font-size:11px;letter-spacing:.05em}

/* Header and main visual together occupy the opening viewport. */
.fuji-home-page .fuji-hero{height:calc(100vh - var(--fuji-header-height));height:calc(100svh - var(--fuji-header-height));min-height:0;max-height:none}

@media(min-width:1025px){.fuji-menu-toggle:hover::before{background:rgba(26,53,127,.1);transform:translate(-50%,-50%) scale(1)}}
@media(max-width:1024px){
  .fuji-header{padding:0 8px 0 16px}
  .fuji-header-logo{width:170px}
  .fuji-header-phone{display:block;padding:0 21px}
  .fuji-header-phone>a{gap:0}
  .fuji-header-phone .fuji-icon{width:26px;height:26px}
  .fuji-header-phone-number,.fuji-header-phone p,.fuji-header-phone::after,.fuji-header-contact{display:none}
  .fuji-menu-toggle::before{width:50px;height:50px}
  .fuji-menu-toggle span{height:2px}
}
@media(max-width:767px){
  :root{--fuji-header-height:60px}
  .fuji-header{background:#fff}
  .fuji-header-logo{width:160px;max-width:none}
  .fuji-menu-toggle{width:50px;height:50px;min-width:50px;min-height:50px;margin:0}
  .fuji-navigation-inner{max-width:none;padding:74px 24px 40px}
  .fuji-navigation ul{margin:0 0 26px}
  .fuji-navigation li a{font-size:15px;padding:10px 0}
}
@media(max-height:599px) and (max-width:767px){
  .fuji-hero-copy{top:24px;font-size:clamp(18px,calc((100svh - var(--fuji-header-height) - 90px)/12),29px)}
  .fuji-hero-english{bottom:20px;font-size:clamp(36px,10svh,61px)}
}

/* Sub-page title block: matches the current site's .c-subpage-header (hero under a translucent header, framed title, breadcrumb straddling the hero's bottom edge). */
body.fuji-private-page .fuji-main,body.fuji-faq-page .fuji-main,body.fuji-contact-page .fuji-main,
body.fuji-private-page.fuji-menu-open .fuji-main,body.fuji-faq-page.fuji-menu-open .fuji-main,body.fuji-contact-page.fuji-menu-open .fuji-main{padding-top:0}
body .fuji-private-hero,body .fuji-faq-hero,body .fuji-inquiry-hero{position:relative;display:flex;align-items:center;justify-content:center;height:500px;max-height:none}
body .fuji-private-hero-title,body .fuji-faq-hero-title,body .fuji-inquiry-hero-title{position:relative;left:auto;top:auto;transform:none;width:auto;max-width:80%;margin-top:30px;padding:40px 78px 40px 84px;border:0;text-align:center;color:#fff}
body .fuji-private-hero-title h1,body .fuji-faq-hero-title h1,body .fuji-inquiry-hero-title h1{font-family:var(--fuji-mincho);font-size:35px;font-weight:500;line-height:1.2;letter-spacing:8px}
body .fuji-private-hero-title p,body .fuji-faq-hero-title p,body .fuji-inquiry-hero-title p{display:block;margin-top:8px;font-family:"Syncopate",var(--fuji-english);font-size:15px;font-weight:400;line-height:1.5;letter-spacing:1px;color:#fff}
body .fuji-private-hero-title::before,body .fuji-faq-hero-title::before,body .fuji-inquiry-hero-title::before{content:"";position:absolute;top:0;left:0;right:auto;bottom:auto;width:90px;height:90px;border:0;border-top:1px solid #fff;border-left:1px solid #fff}
body .fuji-private-hero-title::after,body .fuji-faq-hero-title::after,body .fuji-inquiry-hero-title::after{content:"";position:absolute;top:auto;left:auto;right:0;bottom:0;width:90px;height:90px;border:0;border-right:1px solid #fff;border-bottom:1px solid #fff}
body .fuji-private-breadcrumb,body .fuji-faq-breadcrumb,body .fuji-inquiry-breadcrumb{display:block;width:calc(100% - 50px);max-width:1280px;height:auto;min-height:0;margin:-40px auto 0;padding:28px 34px;border-left:6px solid #1a357f;background:#fff;box-shadow:0 10px 40px rgba(34,34,34,.05);font-size:14px;line-height:1.75}
body .fuji-private-breadcrumb ol,body .fuji-faq-breadcrumb ol,body .fuji-inquiry-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:0;font-size:14px;line-height:1.75}
body .fuji-private-breadcrumb li+li::before,body .fuji-faq-breadcrumb li+li::before,body .fuji-inquiry-breadcrumb li+li::before{content:"/";margin:0 14px}
@media(max-width:767px){
  body .fuji-private-hero,body .fuji-faq-hero,body .fuji-inquiry-hero{box-sizing:border-box;height:240px;padding-top:var(--fuji-header-height)}
  body .fuji-private-hero-title h1,body .fuji-faq-hero-title h1,body .fuji-inquiry-hero-title h1{font-size:21px;letter-spacing:1px}
  body .fuji-private-hero-title p,body .fuji-faq-hero-title p,body .fuji-inquiry-hero-title p{display:block;margin-top:8px;font-family:"Syncopate",var(--fuji-english);font-size:10px;font-weight:400;line-height:1.5;letter-spacing:1px}
  body .fuji-private-hero-title,body .fuji-faq-hero-title,body .fuji-inquiry-hero-title{max-width:80%;margin-top:-25px;padding:20px 30px}
  body .fuji-private-hero-title::before,body .fuji-private-hero-title::after,body .fuji-faq-hero-title::before,body .fuji-faq-hero-title::after,body .fuji-inquiry-hero-title::before,body .fuji-inquiry-hero-title::after{width:48px;height:48px}
  body .fuji-private-breadcrumb,body .fuji-faq-breadcrumb,body .fuji-inquiry-breadcrumb{width:calc(100% - 32px);margin-top:-24px;padding:13px;font-size:13px}
  body .fuji-private-breadcrumb ol,body .fuji-faq-breadcrumb ol,body .fuji-inquiry-breadcrumb ol{font-size:13px}
}

/* Public works: same title block, using a text-free hero photo. */
body.fuji-public-page .fuji-main,body.fuji-public-page.fuji-menu-open .fuji-main{padding-top:0}
body .fuji-public-hero{position:relative;display:flex;align-items:center;justify-content:center;height:500px}
body .fuji-public-hero picture{position:absolute;inset:0}
body .fuji-public-hero-title{position:relative;inset:auto;display:block;width:auto;max-width:80%;height:auto;margin-top:30px;padding:40px 78px 40px 84px;overflow:visible;clip-path:none;white-space:normal;text-align:center;color:#fff}
body .fuji-public-hero-title h1{font-family:var(--fuji-mincho);font-size:35px;font-weight:500;line-height:1.2;letter-spacing:8px}
body .fuji-public-hero-title p{display:block;margin-top:8px;font-family:"Syncopate",var(--fuji-english);font-size:15px;font-weight:400;line-height:1.5;letter-spacing:1px;color:#fff}
body .fuji-public-hero-title::before{content:"";position:absolute;top:0;left:0;right:auto;bottom:auto;width:90px;height:90px;border:0;border-top:1px solid #fff;border-left:1px solid #fff}
body .fuji-public-hero-title::after{content:"";position:absolute;top:auto;left:auto;right:0;bottom:0;width:90px;height:90px;border:0;border-right:1px solid #fff;border-bottom:1px solid #fff}
body .fuji-public-breadcrumb{display:block;width:calc(100% - 50px);max-width:1280px;height:auto;min-height:0;margin:-40px auto 0;padding:28px 34px;border-left:6px solid #1a357f;background:#fff;box-shadow:0 10px 40px rgba(34,34,34,.05);font-size:14px;line-height:1.75}
body .fuji-public-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:0;font-size:14px;line-height:1.75}
body .fuji-public-breadcrumb li+li::before{content:"/";margin:0 14px}
@media(max-width:767px){
  body .fuji-public-hero{box-sizing:border-box;height:240px;padding-top:var(--fuji-header-height)}
  body .fuji-public-hero-title{margin-top:-25px;padding:20px 30px}
  body .fuji-public-hero-title h1{font-size:21px;letter-spacing:1px}
  body .fuji-public-hero-title p{font-size:10px}
  body .fuji-public-hero-title::before,body .fuji-public-hero-title::after{width:48px;height:48px}
  body .fuji-public-breadcrumb{width:calc(100% - 32px);margin-top:-24px;padding:13px;font-size:13px}
  body .fuji-public-breadcrumb ol{font-size:13px}
}

/* Private works hero: single photo */
body .fuji-private-hero-image{left:0;width:100%;object-position:center 55%}
body .fuji-private-hero::after{background:rgba(0,16,41,.35)}

/* Private works: load and scroll animation */
@media(prefers-reduced-motion:no-preference){
  body .fuji-private-hero-image,body .fuji-faq-hero>img{animation:fuji-private-hero-zoom 2.2s cubic-bezier(.22,.61,.36,1) both}
  body .fuji-private-hero-title,body .fuji-faq-hero-title{animation:fuji-card-rise 1s cubic-bezier(.22,.61,.36,1) .35s both}
  body .fuji-private-breadcrumb,body .fuji-faq-breadcrumb{animation:fuji-card-rise .9s cubic-bezier(.22,.61,.36,1) .7s both}
  .fuji-private-intro figure.fuji-slide-pending{opacity:0;transform:translateX(-8vw)}
  .fuji-private-intro>div.fuji-slide-pending{opacity:0;transform:translateX(8vw)}
  .fuji-private-eyebrow.fuji-slide-pending{opacity:0;transform:translateY(16px)}
  .fuji-private-intro figure.fuji-slide-pending.is-in,.fuji-private-intro>div.fuji-slide-pending.is-in,.fuji-private-eyebrow.fuji-slide-pending.is-in{opacity:1;transform:none}
  .fuji-private-intro figure.fuji-slide-pending,.fuji-private-intro>div.fuji-slide-pending,.fuji-private-eyebrow.fuji-slide-pending{transition:opacity .6s cubic-bezier(.22,.61,.36,1),transform .6s cubic-bezier(.22,.61,.36,1)}
}
@keyframes fuji-private-hero-zoom{from{transform:scale(1.14)}to{transform:scale(1)}}
body .fuji-public-hero img{object-position:center 22%}
body .fuji-public-hero::after{content:"";position:absolute;inset:0;background:rgba(0,16,41,.35);z-index:0}
body .fuji-public-hero-title{z-index:1}

/* Public works: load and scroll animation */
@media(prefers-reduced-motion:no-preference){
  body .fuji-public-hero img{animation:fuji-private-hero-zoom 2.2s cubic-bezier(.22,.61,.36,1) both}
  body .fuji-public-hero-title{animation:fuji-card-rise 1s cubic-bezier(.22,.61,.36,1) .35s both}
  body .fuji-public-breadcrumb,body .fuji-public-hero+nav{animation:fuji-card-rise .9s cubic-bezier(.22,.61,.36,1) .7s both}
  .fuji-public-intro figure.fuji-slide-pending{opacity:0;transform:translateX(-8vw)}
  .fuji-public-intro-grid>div.fuji-slide-pending{opacity:0;transform:translateX(8vw)}
  .fuji-public-intro figure.fuji-slide-pending,.fuji-public-intro-grid>div.fuji-slide-pending{transition:opacity .6s cubic-bezier(.22,.61,.36,1),transform .6s cubic-bezier(.22,.61,.36,1)}
  .fuji-public-intro figure.fuji-slide-pending.is-in,.fuji-public-intro-grid>div.fuji-slide-pending.is-in{opacity:1;transform:none}
}
body .fuji-private-strengths{background-position:center,center 30%}

/* Top hero: larger PAVE THE WAY on SP */
@media(max-width:767px){body .fuji-hero-english{font-size:15.6vw}}
@media(max-width:767px){body .fuji-hero-slide-base .fuji-hero-photo{object-position:35% 0%}}

/* Top service rows on SP: title, then photo, then the text */
@media(max-width:767px){
  body .fuji-service-content,body .fuji-service-private .fuji-service-content{display:contents}
  body .fuji-service-title{order:0;padding:5px var(--fuji-gutter) 0;margin-bottom:36px}
  body .fuji-service-photo{order:1}
  body .fuji-service-intro,body .fuji-service-details{order:2;padding-inline:var(--fuji-gutter)}
  body .fuji-service-intro{padding-top:36px}
  body .fuji-service-content>.fuji-button{order:2;align-self:center;margin:0 0 35px}
}

/* Company crest centered over the photo on SP */
@media(max-width:767px){body .fuji-company-watermark{left:calc(50% - 117px)}}
