@charset "UTF-8";
/* =========================================================
   JPN PRO EXPERT - KSH static site
   Rebuild v14: kominka-nozomi style foundation
   ========================================================= */

*{box-sizing:border-box}
html{font-size:62.5%;line-height:1.15;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;padding:0;color:#111;background:#fff;font-family:"Hiragino Mincho ProN","Hiragino Mincho Pro",serif!important;font-weight:400;font-size:16px;line-height:1.8;overflow-x:hidden}
img{display:block;width:100%;height:auto;vertical-align:bottom}a{color:inherit;text-decoration:none;display:inline-block}button,input,textarea,select{font:inherit}ul,ol{margin:0;padding:0;list-style:none}h1,h2,h3,h4,p{margin:0}button{cursor:pointer;background:none;border:0}.pc-br{display:inline}.section-white{background:#fff}.section-gray{background:#e6e6e6}:root{--black:#000;--white:#fff;--gray:#e6e6e6;--gray2:#f2f2f2;--text:#111;--muted:#aaa;--section-space:96px;--container:1200px;--header-height:68px}

/* header */
.site-header{position:fixed;top:0;left:0;width:100%;height:var(--header-height);background:#000;color:#fff;z-index:1000;box-shadow:0 2px 2px rgba(0,0,0,.18)}
.site-header-inner{max-width:1200px;height:100%;margin:0 auto;padding:0 12px;display:flex;align-items:center;justify-content:space-between}.site-logo{font-size:32px;line-height:1;font-weight:700;letter-spacing:.02em;white-space:nowrap}.global-nav{display:flex;align-items:center;gap:15px;font-size:12px;font-weight:700;line-height:1;white-space:nowrap}.global-nav a{transition:.2s}.global-nav a:hover{opacity:.65}.nav-toggle{display:none;width:32px;height:28px;position:relative;z-index:1002}.nav-toggle span{display:block;height:2px;background:#fff;margin:7px 0;transition:.25s}.nav-toggle.is-open span:nth-child(1){transform:translateY(9px) rotate(45deg)}.nav-toggle.is-open span:nth-child(2){opacity:0}.nav-toggle.is-open span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}

main{padding-top:var(--header-height);overflow:hidden}.hero{background:#fff}.hero-inner{max-width:1200px;margin:0 auto;min-height:720px;display:grid;grid-template-columns:1fr 470px;align-items:center;gap:90px;padding:76px 0 90px}.hero-copy{padding-left:20px}.hero h1{font-size:42px;line-height:1.35;margin-bottom:18px;letter-spacing:.02em;white-space:nowrap}.hero-lead{font-size:31px;line-height:1.55;font-weight:700;margin-bottom:46px}.hero-text{font-size:20px;line-height:1.75;font-weight:700;margin-bottom:54px}.hero-logo img{width:470px}.black-button{display:inline-flex;align-items:center;justify-content:center;background:#111;color:#fff;border-radius:8px;min-width:330px;min-height:64px;padding:14px 32px;font-size:18px;font-weight:700;line-height:1.3;transition:.25s}.black-button:hover{transform:translateY(-2px);opacity:.82}

.menu-section{background:#000;color:#fff;min-height:400px;display:flex;align-items:center;justify-content:center;padding:64px 20px}.menu-box{width:180px;font-size:16px}.menu-box h2{font-size:16px;margin:0 0 18px}.menu-icon{font-size:20px;margin-right:8px}.menu-box ol{padding-left:28px;font-size:16px;font-weight:700;line-height:1.6}.menu-box li{padding:2px 0}.menu-box a{color:#fff}

/* common headings */
.section-heading{max-width:1200px;margin:0 auto 36px;padding:0 20px;text-align:center}.section-en{display:block;color:#a9a9a9;font-size:90px;font-weight:400;line-height:.9;letter-spacing:.02em}.section-heading h2{font-size:34px;line-height:1.25;font-weight:700;margin-top:8px}.section-lead{max-width:920px;margin:0 auto 70px;padding:0 20px;text-align:center;font-size:16px;line-height:2;font-weight:700}.section-lead p+p{margin-top:28px}
#about,#service,#problem,#reason,#export,#profile,#question,#contact,#info{padding-top:100px;scroll-margin-top:78px}.section-white + .section-white{ }

/* about media stack */
.about{padding-bottom:70px}.about-strength{position:relative;max-width:1200px;margin:0 auto;min-height:1320px;padding:58px 0 110px}.about-strength .gray-panel{position:absolute;top:0;right:0;width:67%;height:100%;background:var(--gray);z-index:0}.about-strength h3{position:relative;z-index:1;text-align:center;font-size:26px;margin:0 0 64px;color:#333}.about-item{position:relative;z-index:1;display:grid;grid-template-columns:560px 1fr;align-items:center;gap:52px;margin-bottom:104px}.about-item img{width:560px;height:300px;object-fit:cover}.about-item div{font-size:16px;line-height:1.85}.about-item h4{font-size:24px;line-height:1.55;margin:0 0 16px}.about-item-01,.about-item-03{transform:translateX(-8px)}.about-item-01 div,.about-item-03 div{padding-right:40px}.about-item-02{grid-template-columns:1fr 560px;transform:none}.about-item-02 div{padding-left:70px}.about-item-02 img{justify-self:end}.about-item-03{margin-bottom:0}

/* stagger grid sections */
.service{padding-bottom:80px}.stagger-wrap{position:relative;max-width:1200px;margin:0 auto;min-height:1000px;padding:110px 0 90px}.stagger-bg{position:absolute;left:0;top:0;width:74%;height:100%;background:var(--gray);z-index:0}.stagger-card{position:absolute;z-index:1;width:310px}.stagger-card .num{font-size:70px;line-height:.9;margin:0 0 12px;font-weight:700;letter-spacing:.02em}.stagger-card .num span{font-size:17px;margin-right:4px;vertical-align:middle}.stagger-card img{height:195px;object-fit:cover;margin-bottom:20px}.stagger-card h3{font-size:20px;line-height:1.55;margin:0 0 13px}.stagger-card p:not(.num){font-size:16px;line-height:1.75;font-weight:700}.service-wrap{min-height:1040px}.service-wrap .stagger-bg{left:0;top:0;width:74%;height:100%}.card-01{left:0;top:110px}.card-02{left:352px;top:175px}.card-03{left:704px;top:246px}.card-04{left:0;top:625px}.card-05{left:352px;top:675px}.card-06{left:704px;top:750px}

.problem{padding-bottom:100px}.problem .section-heading{padding-top:0}.problem-list{max-width:700px;margin:70px auto 70px;padding:0 20px}.problem-list li{position:relative;font-size:18px;line-height:1.7;margin:0 0 18px;padding-left:42px;font-weight:700}.problem-list li span{background:linear-gradient(transparent 58%,#d9d9d9 58%)}.problem-list li::before{content:"";position:absolute;left:0;top:7px;width:22px;height:14px;border-left:8px solid #000;border-bottom:8px solid #000;transform:rotate(-45deg)}.down-arrow{width:0;height:0;margin:0 auto 42px;border-left:50px solid transparent;border-right:50px solid transparent;border-top:38px solid #000}.problem-answer{text-align:center}.problem-answer h3{font-size:28px;margin:0 0 12px}.problem-answer p{font-size:17px;font-weight:700}

.three-wrap{min-height:790px;margin-top:90px;padding-top:108px}.three-wrap .stagger-bg{left:165px;top:0;width:83%;height:100%}.three-wrap .stagger-card{width:360px}.three-wrap .stagger-card img{height:220px}.three-wrap .card-01{left:0;top:90px}.three-wrap .card-02{left:410px;top:165px}.three-wrap .card-03{left:820px;top:238px}.reason{padding-bottom:80px}.reason-wrap .stagger-bg{left:165px;width:83%;height:100%}.export{padding-bottom:80px}.export-wrap{min-height:835px}.export-wrap .stagger-bg{left:0;top:0;width:82%;height:100%}.export-wrap .feature-title{position:absolute;top:70px;left:0;right:0;text-align:center;z-index:2;font-size:28px;color:#333}.export-wrap .card-01{top:250px}.export-wrap .card-02{top:320px}.export-wrap .card-03{top:390px}

.profile{padding-bottom:0}.profile-panel{max-width:1100px;margin:40px auto 105px;background:var(--gray);display:grid;grid-template-columns:1fr 540px;align-items:center;gap:42px;padding:70px 70px}.profile-text{font-size:18px;line-height:2;font-weight:700}.profile-text p{margin:0 0 34px}.profile-text ul{padding-left:0;list-style:none}.profile-text li{margin:0 0 8px}.profile-text li::before{content:"・"}.profile-photo img{width:540px;height:640px;object-fit:cover;object-position:center top}.message-block{background:var(--gray);padding:58px 20px 86px}.message-block h3{text-align:center;font-size:28px;margin:0 0 40px}.message-card{background:#fff;max-width:920px;margin:0 auto;padding:42px 55px 56px;font-size:16px;line-height:1.9}.message-card p{margin:0 0 22px}.more-hidden{display:none}.message-card.is-open .more-hidden{display:block}.more-btn{min-width:170px;min-height:48px;margin:24px auto 0;display:flex}

.question{padding-bottom:98px}.faq-list{max-width:860px;margin:68px auto 48px;padding:0 20px}details{margin:0 0 28px;background:#efefef;border:1px solid #d0d0d0}summary{list-style:none;cursor:pointer;background:#aaa;color:#fff;min-height:70px;display:flex;align-items:center;padding:18px 58px 18px 24px;font-size:18px;line-height:1.5;font-weight:700;position:relative}summary::-webkit-details-marker{display:none}summary::after{content:"+";position:absolute;right:24px;top:50%;transform:translateY(-50%);font-size:32px;line-height:1;color:#fff}details[open] summary::after{content:"×"}summary span,.answer span{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;min-width:26px;border-radius:50%;background:#fff;color:#111;font-size:15px;margin-right:12px;line-height:1}.answer{display:flex;padding:26px 24px 30px;font-size:16px;line-height:1.75;font-weight:700}.faq-hidden{display:none}.faq-list.is-expanded .faq-hidden{display:block}.faq-more{min-width:220px;min-height:54px;margin:0 auto;display:flex}.faq-more.is-hidden{display:none!important}

.contact{padding:0 20px 86px}.contact .section-heading{padding-top:100px;margin-bottom:58px}.contact-form{max-width:880px;margin:0 auto}form#mail_form{max-width:880px;font-size:16px;background:transparent}form#mail_form dl{margin:0}form#mail_form dl:after{content:"";display:block;clear:both}form#mail_form dl dt,form#mail_form dl dd{border-top:1px solid #cfcfcf;padding:22px 0;margin:0}form#mail_form dl dt{width:34%;float:left;display:grid;grid-template-columns:44px 1fr;align-items:start;text-align:right;gap:18px;clear:both}form#mail_form dl dd{width:66%;float:right;padding-left:20px}form#mail_form dl dt span.required,form#mail_form dl dt span.optional{display:inline-flex;align-items:center;justify-content:center;width:42px;height:30px;color:#fff;background:#000;border:1px solid #000;border-radius:2px;font-size:13px;padding:0;line-height:1}form#mail_form dl dt span.optional{background:#fff;color:#000}form#mail_form dl dt em{font-style:normal;font-size:18px;line-height:1.25;color:#333}form#mail_form dl dt small{display:block;color:#999;font-size:11px;margin-top:4px;font-weight:400}form#mail_form input[type="text"],form#mail_form input[type="email"],form#mail_form input[type="tel"]{width:100%;max-width:520px;height:28px;padding:4px 8px;border:1px solid #c7c7c7;border-radius:0;background:#fff;font-size:16px}form#mail_form textarea{width:100%;max-width:520px;height:210px;padding:8px;border:1px solid #c7c7c7;border-radius:0;background:#fff;font-size:16px}.checks{font-size:16px;line-height:1.7}#form_submit{clear:both;text-align:center;padding-top:45px;margin:0}#form_submit_button{background:#000;color:#fff;border:0;border-radius:3px;padding:10px 22px;font-weight:700}

.info{background-image:linear-gradient(rgba(255,255,255,.74),rgba(255,255,255,.74)),url(../images/info-bg.webp);background-size:cover;background-position:center;min-height:650px}.info-overlay{padding:78px 20px 90px}.info .section-heading{padding-top:0;margin-bottom:35px}.company-table{width:min(760px,100%);margin:0 auto;border-collapse:collapse;font-size:17px;line-height:1.6}.company-table th,.company-table td{border-bottom:1px solid #bdbdbd;padding:15px 4px;text-align:left;vertical-align:top}.company-table th{width:180px;font-weight:700}.company-table td{font-weight:400}.footer{background:#000;color:#fff;padding:82px 20px 78px}.footer nav{width:210px;margin:0 auto 45px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;text-align:left;font-size:16px;line-height:1.35;font-weight:700}.footer p{width:210px;margin:0 auto;font-size:14px;text-align:left}.page-top{position:fixed;right:0;bottom:0;background:#000;color:#fff;width:46px;height:46px;display:flex;align-items:center;justify-content:center;z-index:999;font-size:18px;opacity:0;pointer-events:none;transition:.3s}.page-top.is-show{opacity:1;pointer-events:auto}

/* scroll effects */
.js-fadein{opacity:0;transition:opacity .85s ease,transform .85s ease,filter .85s ease}.js-fadein.is-active{opacity:1;transform:none;filter:none}.u-fadein{transform:translateY(25px)}.u-fadeinUp{transform:translateY(55px)}.u-fadeinLeft{transform:translateX(-45px)}.u-fadeinRight{transform:translateX(45px)}.u-slidein{transform:translateX(65px)}.u-slideinleft{transform:translateX(-65px)}.u-blurin{filter:blur(10px);transform:scale(1.03)}

@media screen and (max-width:1240px){.site-header-inner,.hero-inner,.section-heading,.about-strength,.stagger-wrap{max-width:calc(100% - 40px)}.global-nav{gap:10px}.site-logo{font-size:28px}.hero-inner{grid-template-columns:1fr 420px;gap:50px}.hero-logo img{width:420px}.about-item-01,.about-item-03{transform:none}.stagger-card{width:29%}.card-02,.card-05{left:35.5%}.card-03,.card-06{left:71%}.three-wrap .stagger-card{width:30%}.three-wrap .card-02{left:35%}.three-wrap .card-03{left:70%}.profile-panel{max-width:calc(100% - 80px)}}

@media screen and (max-width:767px){:root{--header-height:58px}body{font-size:16px;line-height:1.85}.pc-br{display:none}.site-header{height:58px}.site-header-inner{height:58px;padding:0 14px}.site-logo{font-size:17px;max-width:calc(100vw - 76px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-toggle{display:block}.global-nav{position:fixed;top:58px;left:0;right:0;height:calc(100dvh - 58px);overflow-y:auto;background:#000;display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:20px 28px 38px;transform:translateY(-120%);opacity:0;visibility:hidden;transition:.3s;font-size:16px;line-height:1.4}.global-nav.is-open{transform:translateY(0);opacity:1;visibility:visible}.global-nav a{width:100%;padding:10px 0}.hero-inner{display:flex;flex-direction:column-reverse;width:100%;max-width:430px;min-height:0;gap:24px;padding:38px 22px 58px}.hero-logo{width:min(64vw,250px);max-width:250px;margin:0 auto}.hero h1{font-size:30px;line-height:1.45;white-space:normal;margin-bottom:16px}.hero-lead{font-size:21px;line-height:1.55;margin-bottom:24px}.hero-text{font-size:16px;line-height:1.85;margin-bottom:30px}.black-button{width:100%;min-width:0;min-height:54px;border-radius:6px;font-size:16px;padding:13px 18px}.menu-section{min-height:360px;padding:52px 20px 58px}.menu-box{width:190px}.menu-box h2{font-size:16px}.menu-box ol{font-size:16px;line-height:1.65}.section-heading{max-width:430px;margin:0 auto 34px;padding:0 20px}.section-en{font-size:clamp(52px,16vw,68px);line-height:.95;white-space:nowrap}.section-heading h2{font-size:28px;line-height:1.35}.section-lead{max-width:430px;margin:0 auto 52px;padding:0 22px;text-align:left;font-size:16px;line-height:1.9}#about,#service,#problem,#reason,#export,#profile,#question,#contact,#info{padding-top:68px}.about{padding-bottom:64px}.about-strength{width:100%;max-width:430px;margin:0 auto;min-height:0;padding:34px 18px 60px;overflow:visible;background:transparent}.about-strength .gray-panel{display:block;position:absolute;top:0;right:0;left:auto;width:62%;height:100%;background:var(--gray);z-index:0}.about-strength h3{font-size:20px;line-height:1.5;margin:0 0 30px}.about-item,.about-item-02,.about-item-03{position:relative;z-index:1;display:flex!important;flex-direction:column!important;gap:0;transform:none!important;width:100%;margin:0 0 46px!important}.about-item-02 img{order:-1}.about-item img{width:100%!important;height:auto;aspect-ratio:16/10;object-fit:cover;margin:0 0 22px}.about-item div{padding:0 12px 0 0;font-size:16px;line-height:1.9}.about-item h4{font-size:20px;line-height:1.6;margin:0 0 10px}.service,.reason,.export{padding-bottom:66px}.stagger-wrap,.three-wrap,.service-wrap,.reason-wrap,.export-wrap{width:100%;max-width:430px;min-height:0!important;margin:0 auto;padding:34px 18px 38px;overflow:visible;background:transparent}.stagger-bg,.three-wrap .stagger-bg,.export-wrap .stagger-bg{display:block!important;position:absolute;top:0;bottom:0;left:0;right:auto;width:62%;height:100%;background:var(--gray);z-index:0}.reason-wrap .stagger-bg,.about-strength .gray-panel{right:0;left:auto}.export-wrap .stagger-bg{left:0}.stagger-card,.three-wrap .stagger-card{position:relative!important;left:auto!important;top:auto!important;width:100%!important;margin:0 0 54px!important;padding:0!important;background:transparent!important;z-index:1}.stagger-card .num{display:flex;align-items:flex-end;gap:4px;font-size:52px;line-height:.95;margin:0 0 12px}.stagger-card .num span{font-size:16px;line-height:1.4;margin:0 1px 4px 0}.stagger-card img,.three-wrap .stagger-card img{width:100%;height:auto!important;aspect-ratio:16/10;object-fit:cover;margin:0 0 18px}.stagger-card h3,.three-wrap .stagger-card h3{font-size:20px;line-height:1.65;margin:0 0 10px}.stagger-card p:not(.num),.three-wrap .stagger-card p:not(.num){font-size:16px;line-height:1.85;margin:0}.export-wrap .feature-title{position:relative;top:auto;left:auto;right:auto;font-size:21px;line-height:1.5;margin:0 0 30px;text-align:center;z-index:1}.problem{padding-bottom:66px}.problem-list{width:100%;max-width:430px;margin:38px auto 44px;padding:0 28px}.problem-list li{display:block;font-size:16px;line-height:1.75;margin-bottom:18px;padding-left:38px}.problem-list li span{background:none}.problem-list li::before{top:5px}.down-arrow{border-left-width:36px;border-right-width:36px;border-top-width:28px;margin-bottom:30px}.problem-answer{max-width:430px;margin:0 auto;padding:0 22px}.problem-answer h3{font-size:24px}.problem-answer p{font-size:16px;line-height:1.8}.profile-panel{width:100%;max-width:430px;margin:0 auto 56px;padding:28px 18px 38px;display:flex;flex-direction:column;gap:22px;background:var(--gray)}.profile-photo{order:-1}.profile-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center top}.profile-text{font-size:16px;line-height:1.9}.profile-text p{margin:0 0 20px}.profile-text li{margin-bottom:8px}.message-block{padding:46px 18px 60px}.message-block h3{font-size:24px;margin-bottom:28px}.message-card{max-width:430px;padding:28px 20px 34px;font-size:16px;line-height:1.9}.question{padding-bottom:66px}.faq-list{width:100%;max-width:430px;margin:46px auto 36px;padding:0 18px}details{margin-bottom:18px}summary{min-height:58px;padding:15px 46px 15px 15px;font-size:16px}.answer{padding:20px 15px 22px;font-size:16px;line-height:1.8}.faq-more{width:210px;min-height:52px}.contact{padding:0 18px 60px}.contact .section-heading{padding-top:58px;margin-bottom:34px}.contact-form,form#mail_form{width:100%;max-width:430px}form#mail_form dl dt,form#mail_form dl dd{float:none!important;width:100%!important;border-top:0!important;padding:0;margin:0;text-align:left}form#mail_form dl dt{display:grid!important;grid-template-columns:45px 1fr;gap:12px;padding:18px 0 8px}form#mail_form dl dd{padding:0 0 18px!important;border-bottom:1px solid #c9c9c9!important}form#mail_form input[type="text"],form#mail_form input[type="email"],form#mail_form input[type="tel"],form#mail_form textarea{width:100%!important;max-width:none!important;font-size:16px;border-radius:0}form#mail_form input[type="text"],form#mail_form input[type="email"],form#mail_form input[type="tel"]{height:42px}form#mail_form textarea{min-height:180px}.info{min-height:0;background-position:center top}.info-overlay{max-width:430px;margin:0 auto;padding:54px 22px 60px}.info .section-heading{padding:0;margin-bottom:28px}.company-table{font-size:16px;line-height:1.75}.company-table th,.company-table td{display:block;width:100%!important;padding:7px 0}.company-table th{border-bottom:0;padding-top:16px}.company-table td{padding-bottom:16px}.footer{padding:58px 20px 62px}.footer nav{font-size:16px;margin-bottom:36px}.page-top{width:42px;height:42px}}
@media screen and (max-width:374px){.section-en{font-size:48px}.hero h1{font-size:28px}.hero-lead{font-size:20px}.site-logo{font-size:15px}.stagger-card .num{font-size:46px}}

/* KSH layout tidy */
body{font-family:"Hiragino Mincho ProN","Hiragino Mincho Pro",serif!important}

#about,#service,#reason,#profile{background:var(--gray)}
.about-strength .gray-panel,.stagger-bg{display:none}
.about-strength{min-height:0;padding:58px 0 100px}
.about-item{margin-bottom:76px}

.stagger-wrap,.three-wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:64px 42px;min-height:0;margin:0 auto;padding:64px 0 92px}
.stagger-card,.three-wrap .stagger-card{position:relative;left:auto!important;top:auto!important;width:auto;z-index:1}
.service-wrap{grid-template-rows:auto;min-height:0}
.three-wrap{margin-top:40px}
.export-wrap{min-height:0}
.export-wrap .feature-title{position:relative;top:auto;left:auto;right:auto;grid-column:1/-1;margin:0 0 8px}
.stagger-card img,.three-wrap .stagger-card img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}

@media screen and (max-width:1024px) and (min-width:768px){
  .site-header-inner{max-width:calc(100% - 32px)}
  .site-logo{font-size:22px}
  .global-nav{gap:8px;font-size:11px}
  .hero-inner{grid-template-columns:1fr 360px;gap:34px;padding-left:20px;padding-right:20px}
  .hero h1{font-size:36px}
  .hero-lead{font-size:25px}
  .hero-text{font-size:17px}
  .hero-logo img{width:360px}
  .about-item,.about-item-02{grid-template-columns:1fr 1fr;gap:32px}
  .about-item img{width:100%;height:auto;aspect-ratio:16/10}
  .about-item-02 div{padding-left:24px}
  .about-item-01 div,.about-item-03 div{padding-right:24px}
  .stagger-wrap,.three-wrap{grid-template-columns:repeat(2,1fr);gap:56px 34px;padding-left:20px;padding-right:20px}
  .three-wrap .stagger-card{width:auto}
  .export-wrap .feature-title{grid-column:1/-1}
  .profile-panel{grid-template-columns:1fr 420px;padding:52px 40px;gap:32px}
  .profile-photo img{width:100%;height:auto;aspect-ratio:4/5}
}

@media screen and (max-width:767px){
  #about,#service,#reason,#profile{background:var(--gray)}
  .about-strength{min-height:0;padding:34px 18px 60px}
  .about-strength .gray-panel,.stagger-bg{display:none!important}
  .stagger-wrap,.three-wrap,.service-wrap,.reason-wrap,.export-wrap{display:block;min-height:0!important;margin:0 auto;padding:34px 18px 38px}
  .stagger-card,.three-wrap .stagger-card{position:relative!important;width:100%!important;margin:0 0 54px!important}
  .export-wrap .feature-title{display:block;margin:0 0 30px}
}

/* PC layout stabilization */
@media screen and (min-width:768px){
  #about,#service,#reason,#export,#profile{background:var(--gray)}
  #problem,#question{background:#fff}

  .site-header-inner,
  .hero-inner,
  .section-heading,
  .about-strength,
  .stagger-wrap{
    width:min(1200px,calc(100% - 48px));
    max-width:none;
  }

  .hero-inner{
    grid-template-columns:minmax(0,1fr) minmax(320px,420px);
    gap:clamp(36px,5vw,72px);
    padding:76px 20px 90px;
  }
  .hero-logo img{width:100%;max-width:420px;margin-left:auto}

  .about-strength{
    min-height:0;
    padding:58px 0 96px;
  }
  .about-strength .gray-panel,
  .stagger-bg{display:none!important}
  .about-item,
  .about-item-02{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:clamp(34px,5vw,56px);
    margin-bottom:72px;
  }
  .about-item img{
    width:100%;
    height:auto;
    aspect-ratio:16/9;
  }
  .about-item-01 div,
  .about-item-03 div{padding-right:0}
  .about-item-02 div{padding-left:0}

  .stagger-wrap,
  .three-wrap{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:64px 42px;
    min-height:0!important;
    margin:0 auto;
    padding:64px 0 92px;
  }
  .stagger-card,
  .three-wrap .stagger-card{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    width:auto!important;
    margin:0!important;
  }
  .stagger-card img,
  .three-wrap .stagger-card img{
    width:100%;
    height:auto!important;
    aspect-ratio:16/10;
    object-fit:cover;
  }
  .export-wrap .feature-title{
    position:relative;
    top:auto;
    left:auto;
    right:auto;
    grid-column:1/-1;
    margin:0 0 8px;
  }

  .profile-panel{
    max-width:1100px;
    grid-template-columns:minmax(0,1fr) minmax(360px,460px);
    gap:42px;
    padding:64px 54px;
  }
  .profile-photo img{
    width:100%;
    height:auto;
    aspect-ratio:4/5;
  }
}

/* Mobile layout stabilization */
@media screen and (max-width:767px){
  html,
  body{
    width:100%;
    overflow-x:hidden;
  }

  main{overflow:hidden}
  #about,#service,#reason,#export,#profile{background:var(--gray)}
  #problem,#question,#contact,#info{background:#fff}

  .site-header-inner,
  .hero-inner,
  .section-heading,
  .section-lead,
  .about-strength,
  .stagger-wrap,
  .three-wrap,
  .profile-panel,
  .message-card,
  .faq-list,
  .contact-form,
  form#mail_form,
  .info-overlay{
    width:100%;
    max-width:390px;
    margin-left:auto;
    margin-right:auto;
  }

  .hero-inner{
    padding:32px 20px 52px;
    gap:22px;
  }
  .hero-copy{
    width:100%;
    padding-left:0;
  }
  .hero-logo{
    width:min(64.8vw,234px);
    max-width:234px;
  }
  .hero-logo img{width:100%}
  .hero h1{
    font-size:28px;
    line-height:1.45;
  }
  .hero-lead{
    font-size:20px;
    line-height:1.6;
  }
  .hero-text{
    font-size:15px;
    line-height:1.85;
  }

  .section-heading{padding:0 18px}
  .section-en{
    font-size:clamp(44px,14vw,56px);
    white-space:normal;
  }
  .section-heading h2{font-size:24px}
  .section-lead{
    padding:0 20px;
    margin-bottom:42px;
  }

  .about-strength,
  .stagger-wrap,
  .three-wrap,
  .service-wrap,
  .reason-wrap,
  .export-wrap{
    display:block;
    padding:30px 20px 44px;
  }
  .about-strength .gray-panel,
  .stagger-bg{display:none!important}

  .about-item,
  .about-item-02,
  .about-item-03,
  .stagger-card,
  .three-wrap .stagger-card{
    display:block!important;
    width:100%!important;
    margin:0 0 42px!important;
    padding:0!important;
    position:relative!important;
    left:auto!important;
    top:auto!important;
    transform:none!important;
  }
  .about-item:last-child,
  .stagger-card:last-child{margin-bottom:0!important}
  .about-item img,
  .stagger-card img,
  .three-wrap .stagger-card img{
    width:100%!important;
    height:auto!important;
    aspect-ratio:16/10;
    object-fit:cover;
    margin:0 0 18px;
  }
  .about-item div,
  .about-item-02 div,
  .about-item-03 div{
    padding:0!important;
  }
  #about .about-item-02{
    display:flex!important;
    flex-direction:column!important;
  }
  #about .about-item-02 img{
    order:-1;
  }
  .about-item h4,
  .stagger-card h3,
  .three-wrap .stagger-card h3{
    font-size:19px;
    line-height:1.6;
  }
  .stagger-card .num{
    font-size:46px;
    margin-bottom:10px;
  }
  .export-wrap .feature-title{
    display:block;
    margin:0 0 26px;
    font-size:20px;
  }

  .profile-panel{
    padding:28px 20px 36px;
    margin-bottom:48px;
    background:transparent;
  }
  .profile-photo img{
    width:100%;
    height:auto;
    aspect-ratio:4/5;
    object-fit:cover;
  }
  .message-block{
    background:transparent;
    padding:42px 20px 56px;
  }
  .message-card{
    padding:26px 20px 32px;
  }

  .contact{
    padding-left:20px;
    padding-right:20px;
  }
  form#mail_form dl dt{
    grid-template-columns:45px minmax(0,1fr);
  }
  .checks label{
    display:inline-flex;
    align-items:flex-start;
    gap:6px;
  }
}

/* Restore KSH gray section backgrounds without absolute card layout */
#about,#service,#reason,#export,#profile{
  position:relative;
  isolation:isolate;
  background:#fff;
}
#about::before,#service::before,#reason::before,#export::before,#profile::before{
  content:"";
  position:absolute;
  z-index:0;
  background:var(--gray);
  pointer-events:none;
}
#about > *,#service > *,#reason > *,#export > *,#profile > *{
  position:relative;
  z-index:1;
}
#about::before,#reason::before,#profile::before{
  top:400px;
  right:0;
  bottom:78px;
  width:58%;
}
#service::before,#export::before{
  top:400px;
  left:0;
  bottom:78px;
  width:58%;
}
#profile .profile-panel{
  max-width:1200px;
  background:transparent;
  margin:40px auto 110px;
  padding:70px 70px;
}
#profile .message-block{
  background:var(--gray);
  margin-top:0;
}

@media screen and (min-width:768px){
  #profile::before{
    top:400px;
    right:0;
    bottom:auto;
    width:58%;
    height:610px;
  }
}

@media screen and (min-width:768px){
  #about,#service,#reason,#export,#profile{background:#fff}
  #about::before,#service::before,#reason::before,#export::before,#profile::before{
    display:block;
  }
}

@media screen and (max-width:767px){
  #about,#service,#reason,#export,#profile{
    background:#fff;
    overflow:hidden;
  }
  #about::before,#service::before,#reason::before,#export::before,#profile::before{
    display:block;
    top:170px;
    bottom:34px;
    width:75%;
  }
  #about::before,#reason::before,#profile::before{
    right:0;
    left:auto;
  }
  #service::before,#export::before{
    left:0;
    right:auto;
  }
  #profile .profile-panel,
  #profile .message-block{
    background:transparent;
  }
  #profile .profile-panel{
    padding:40px max(20px,calc((100% - 350px) / 2)) 48px;
  }
  #profile .message-block{
    background:var(--gray);
    margin-top:104px;
    padding-top:58px;
    padding-bottom:66px;
  }
  #profile .message-card{
    background:#fff;
  }
  #profile::before{
    display:block;
    top:170px;
    right:0;
    left:auto;
    bottom:auto;
    width:75%;
    height:890px;
    min-height:0;
  }
}

/* Profile image crop */
.profile-photo{
  overflow:hidden;
  aspect-ratio:4/5;
}
.profile-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  transform:scale(1.04);
  transform-origin:center center;
}

/* Profile list */
.profile-text li{
  position:relative;
  margin:0 0 8px;
  padding-left:1.2em;
  font-size:14px;
  line-height:1.9;
}
.profile-text li::before{
  content:"・";
  position:absolute;
  left:0;
  top:0;
}

/* Menu section alignment */
.menu-section{
  align-items:center;
  justify-content:center;
}
.menu-box{
  width:min(470px,100%);
  margin:0 auto;
  padding-left:95px;
}
.menu-box h2{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  margin:0 0 22px;
  font-size:18px;
  line-height:1.2;
}
.menu-icon{
  margin-right:0;
  font-size:18px;
  line-height:1;
}
.menu-box ol{
  list-style:none;
  counter-reset:menu;
  padding-left:0;
  width:100%;
  margin:0;
  font-size:14px;
  line-height:1.85;
}
.menu-box li{
  counter-increment:menu;
  display:grid;
  grid-template-columns:1.4em 1fr;
  column-gap:.5em;
  padding:0;
}
.menu-box li::before{
  content:counter(menu);
}
@media screen and (max-width:767px){
  .menu-section{
    min-height:360px;
    padding:52px 20px 58px;
  }
  .menu-box{
    width:min(470px,100%);
    padding-left:95px;
  }
  .menu-box h2{
    font-size:18px;
  }
  .menu-box ol{
    font-size:14px;
  }
}

/* Info background */
#info.info{
  background-image:linear-gradient(rgba(255,255,255,.74),rgba(255,255,255,.74)),url(../images/info-bg.webp);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
@media screen and (max-width:767px){
  #info.info{
    background-position:center top;
  }
}

/* Contact background */
#contact.contact{
  background:var(--gray);
}
@media screen and (max-width:767px){
  #contact.contact{
    background:var(--gray);
  }
}

/* Fixed contact footer */
.fixed-contact{
  display:none;
}
@media screen and (max-width:767px){
  body{
    padding-bottom:48px;
  }
  .fixed-contact{
    position:fixed;
    left:0;
    bottom:0;
    width:calc(100% - 48px);
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#111;
    color:#fff;
    font-size:14px;
    font-weight:700;
    line-height:1;
    z-index:1001;
  }
  .page-top{
    right:0;
    bottom:0;
    width:48px;
    height:48px;
    background:#fff;
    color:#111;
    border-left:1px solid rgba(0,0,0,.18);
    opacity:1;
    pointer-events:auto;
    z-index:1002;
  }
}
