/* Editorial refinement — retain the original brand palette and photograph. */
:root{--navy:#192747;--ink:#202c41;--gray:#69717d;--line:#dce0e5;--paper:#f5f6f7}
body{font-weight:400;-webkit-font-smoothing:antialiased}
.header{height:106px;padding:0 4.2%;background:#fff;gap:24px;border-bottom:0}
.header nav{gap:28px;font-size:14px;font-weight:400}
.header nav>a span{font-size:12px}
.header nav .contact-nav{background:transparent;border-left:1px solid #d0d6de;color:var(--ink);padding:10px 0 10px 28px;margin-left:4px;gap:22px}
.header nav .contact-nav span{color:var(--blue);font-size:21px}
.logo{perspective:380px;perspective-origin:86% 50%;overflow:visible}
.logo-x{background:none;position:relative;transform-style:preserve-3d;transform-origin:50% 55%;animation:brand-y-turn 10s cubic-bezier(.45,0,.2,1) infinite}
.x-depth{position:absolute;inset:0;background:url('assets/jpex-logo.png') right center/174px 50px no-repeat;transform:translateZ(var(--depth));backface-visibility:visible;filter:brightness(.66)}
.x-depth:last-child{filter:none}.x-depth:first-child{filter:brightness(.87)}
@keyframes brand-y-turn{0%,52%{transform:rotateY(0deg)}84%,100%{transform:rotateY(360deg)}}
.hero{height:calc(100svh - 106px);min-height:660px;max-height:930px;margin:0 22px;background:#10223e}
.hero:before{animation:none;background-position:center center}
.hero:after{background:linear-gradient(90deg,rgba(9,20,43,.22),transparent 75%)}
.hero-content{padding:clamp(90px,13vh,160px) 6.5% 110px;max-width:1200px;animation:arrive 1.05s both}
.hero .eyebrow{font-size:12px;letter-spacing:.16em;font-weight:400;color:#d3deef;margin:0 0 39px}
.hero h1{font-family:var(--sans);font-size:clamp(40px,4.15vw,68px);font-weight:500;line-height:1.65;letter-spacing:.025em;margin-bottom:33px}
.hero-lead{font-size:17px;font-weight:400;letter-spacing:.08em;line-height:1.9}
.hero-bottom{left:6.5%;right:5%;bottom:38px;align-items:center;border-top:1px solid #ffffff38;padding-top:20px}
.hero-caption{font-family:Arial,sans-serif;font-size:13px;letter-spacing:.025em;color:#d0daea}
.scroll-link{font-family:var(--sans);font-size:13px;letter-spacing:.03em;gap:25px}.scroll-link:after{border:0;border-radius:0;width:20px;height:20px;font-size:20px}
.section{padding:115px 9%}
.eyebrow{font-weight:400;letter-spacing:.12em}
.intro{grid-template-columns:1.05fr 1fr;column-gap:13%;row-gap:80px;padding-top:145px;padding-bottom:85px}
.intro-heading .eyebrow{color:var(--blue);margin:0 0 34px;font-family:Arial,sans-serif;text-transform:none;font-size:14px;letter-spacing:.025em}
.intro h2{font-size:clamp(30px,3.15vw,46px);font-family:var(--serif);font-weight:500;line-height:1.9;letter-spacing:.015em;margin:0}
.intro-body{padding-top:62px}
.intro .intro-opening{font-size:21px;line-height:1.8;color:var(--ink);margin-bottom:28px;font-weight:500}
.intro-body p{line-height:2.2;font-size:16px;letter-spacing:.015em;color:#586171;margin-bottom:27px}
.text-link{border-bottom:1px solid #b8bec8;gap:60px;font-size:14px;font-weight:400;padding:13px 0}.text-link span{font-size:21px}
.name-note{grid-column:1/-1;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:25px;padding-top:28px}
.name-note>span{font:12px Arial,sans-serif;letter-spacing:.07em;color:#6c7585}
.name-note p{margin:0;font-size:14px;color:#7a808b;letter-spacing:0}
.section-heading{align-items:end;margin-bottom:48px}.section-heading h2{font:14px Arial,sans-serif;color:var(--blue);letter-spacing:.015em;margin-bottom:15px}.section-heading p{font-size:32px;font-weight:500;letter-spacing:.025em;line-height:1.5}.section-no:empty{display:none}
.services{background:var(--paper);padding-top:88px;padding-bottom:95px}
.service-list{border-top:1px solid #cdd2db}
.service-row{grid-template-columns:36px 1.12fr 1fr 35px;column-gap:28px;padding:39px 0;border-color:#d7dce3;transition:color .2s}
.service-row .num{font-family:Arial,sans-serif;color:#858d9c;font-size:12px;align-self:start;padding-top:4px}
.service-row .en{font-size:13px;color:#707989;letter-spacing:.02em;margin-bottom:10px}
.service-row h3{font-size:23px;line-height:1.65;font-weight:500;letter-spacing:.005em}
.service-row p{font-size:15px;line-height:1.95;color:#68717f;max-width:320px}
.service-row .round-arrow{border:0;border-radius:0;font-size:25px;color:var(--blue);width:35px;height:40px;transition:transform .25s}
.service-row:hover{padding-left:0;background:transparent;color:var(--blue)}.service-row:hover .round-arrow{background:transparent;color:var(--blue);transform:translate(3px,-3px)}
.vision{background:#fff;color:var(--ink);border-bottom:1px solid var(--line);grid-template-columns:1fr 1.8fr;gap:10%;padding-top:110px;padding-bottom:110px}
.vision .eyebrow{color:var(--blue);font:14px Arial,sans-serif;text-transform:none;letter-spacing:.02em;margin:0 0 12px}
.vision-label>p:last-child{font-size:14px;color:var(--gray);margin:0}
.vision h2{font-size:35px;font-weight:500;line-height:1.85;letter-spacing:.03em}
.vision p{font-size:16px;color:#626b79;line-height:2.2}
.company-preview{grid-template-columns:1fr 1.3fr;gap:12%;padding-top:100px;padding-bottom:100px;align-items:center}
.company-preview .section-heading{margin-bottom:28px}.company-summary{font-size:16px;line-height:2.05;margin:0 0 20px;color:#65707e}
.home-team{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start}.home-person img{width:100%;height:auto;aspect-ratio:1;display:block;background:#fff;border-radius:50%}
.home-person>div{padding:20px 2px 0}.home-person small{display:block;font-size:12px;line-height:1.6;color:#6b7380}.home-person h3{font-weight:400;font-size:21px;letter-spacing:.08em;margin:6px 0 0}
.contact-band{margin:0 22px 0;padding:62px 8%;background:var(--navy);align-items:center}
.contact-band .eyebrow{font:14px Arial,sans-serif;text-transform:none;letter-spacing:.025em;color:#c0ccdf}
.contact-band h2{font-family:var(--sans);font-weight:400;font-size:29px;letter-spacing:.04em;margin-top:10px}.contact-band .round-arrow{border-color:#ffffff50;width:56px;height:56px;font-size:26px}.contact-band:hover .round-arrow{color:var(--navy)}
footer{background:#fff;padding:63px 9% 30px}.footer-top p{font-family:var(--sans);font-size:14px;color:#768090}.footer-brand{font-size:34px}.footer-links{font-size:13px;gap:14px 27px}.footer-bottom{font-size:12px}.mock-label{border:0;padding:0;font-size:12px;color:#98a0ad}
.page-hero{background:#f5f6f8;color:var(--ink);padding:50px 9% 65px;margin:0 22px}.page-hero:after{display:none}.breadcrumb{color:#798494;margin-bottom:36px}.page-hero .eyebrow{color:var(--blue);text-transform:none;font-size:14px;letter-spacing:.02em}.page-hero h1{font-family:var(--sans);font-size:clamp(30px,3.2vw,47px);font-weight:500;letter-spacing:.01em;margin:20px 0}.page-hero p{color:#697485;font-size:16px;max-width:700px}.detail-intro h2{font-family:var(--serif);font-weight:500;font-size:30px}.detail-grid{column-gap:80px}.detail-card small{color:#7c8492;letter-spacing:.035em}.detail-card h3{font-size:23px}.detail-card p{font-size:16px}.company-table{margin-top:60px}.team-card img{border-radius:50%}.team-card .eyebrow{letter-spacing:0;font-size:12px}.team-card p{font-size:15px}.team-card h3{font-size:24px}.contact-panel{border:0;padding:0;margin-top:0}.contact-panel h2{font-family:var(--sans)}
@media(max-width:1200px) and (min-width:1001px){.header nav{gap:18px;font-size:13px}.header nav .contact-nav{padding-left:15px;gap:15px}.service-row{column-gap:20px}.section{padding-left:7%;padding-right:7%}}
@media(max-width:1100px){.x-depth{background-size:145px 42px}}
@media(max-width:1000px){.header{height:86px;padding:0 5%}.header nav{gap:0}.header nav .contact-nav{border-left:0;margin-left:0;padding:17px 0;color:var(--blue)}.hero{height:calc(100svh - 86px);margin:0 12px;min-height:630px}.hero-content{padding:110px 6.5% 100px}.hero h1{font-size:44px}.hero-bottom{bottom:30px}.intro{grid-template-columns:1fr 1fr;gap:55px 7%;padding-top:100px}.intro-body{padding-top:55px}.intro h2{font-size:32px}.intro-body p br{display:none}.intro-opening br{display:block!important}.section{padding-left:7%;padding-right:7%}.name-note{align-items:start;flex-direction:column;gap:12px}.vision{grid-template-columns:1fr 1.8fr;gap:7%}.vision h2{font-size:30px}.vision p br{display:none}.company-preview{gap:7%;grid-template-columns:1fr 1.2fr}.home-team{gap:18px}.home-person h3{font-size:19px}.contact-band{margin:0 12px}.page-hero{margin:0 12px}.section-heading p{font-size:29px}}
@media(max-width:650px){.hero{margin:0 10px;min-height:610px;height:calc(100svh - 86px);max-height:780px}.hero-content{padding:90px 6% 90px}.hero .eyebrow{font-size:12px;margin-bottom:31px;letter-spacing:.14em}.hero h1{font-size:clamp(25px,7.3vw,38px);line-height:1.75;font-weight:500;letter-spacing:0;margin-bottom:27px}.hero-lead{font-size:14px;letter-spacing:.015em;line-height:2;max-width:270px}.hero-bottom{left:6%;right:6%;bottom:24px;padding-top:17px;gap:15px}.hero-caption{font-size:12px;line-height:1.7;max-width:140px}.scroll-link{font-size:12px;gap:12px}.scroll-link:after{width:16px;font-size:17px}.section{padding:70px 8%}.intro{grid-template-columns:1fr;gap:30px;padding-top:82px;padding-bottom:55px}.intro-heading .eyebrow{margin-bottom:25px}.intro h2{font-size:31px;line-height:1.75}.intro-body{padding-top:5px}.intro .intro-opening{font-size:20px}.intro-body p{font-size:16px;line-height:2.05}.name-note{padding-top:24px;margin-top:16px;gap:12px}.name-note p{font-size:13px;line-height:1.9}.name-note span{font-size:12px}.section-heading{margin-bottom:32px}.section-heading h2{font-size:14px;margin-bottom:12px}.section-heading p{font-size:28px}.service-row{grid-template-columns:18px 1fr 22px;gap:8px 13px;padding:28px 0}.service-row .num{padding-top:1px}.service-row h3{font-size:20px;line-height:1.65}.service-row .en{font-size:12px;margin-bottom:8px}.service-row p{font-size:14px;grid-row:2;grid-column:2;line-height:1.9;margin-top:5px}.service-row .round-arrow{grid-row:1/3;grid-column:3;width:22px;font-size:22px}.vision{grid-template-columns:1fr;gap:32px}.vision h2{font-size:28px;line-height:1.8}.vision p{font-size:16px}.vision-label p{font-size:14px}.company-preview{grid-template-columns:1fr;gap:35px}.home-team{gap:22px}.home-person h3{font-size:20px}.home-person small{font-size:12px}.contact-band{margin:0 10px;padding:38px 7%;gap:12px}.contact-band h2{font-size:23px}.contact-band .round-arrow{width:40px;height:40px;font-size:22px}.contact-band .eyebrow{font-size:13px}footer{padding:45px 8% 28px}.footer-top p{font-size:13px}.footer-links{font-size:13px}.page-hero{margin:0 10px;padding:35px 7% 45px}.page-hero h1{font-size:28px;line-height:1.7}.page-hero p{font-size:15px}.breadcrumb{font-size:12px;line-height:1.7;margin-bottom:30px}.detail-intro h2{font-size:25px}.detail-card h3{font-size:21px}.team-grid{gap:40px}.company-table{margin-top:38px;grid-template-columns:80px 1fr;gap:0 15px}.company-table dt,.company-table dd{font-size:14px}.team-card{grid-template-columns:78px 1fr;gap:20px}.team-card img{width:78px;height:78px}.team-card h3{font-size:23px}.team-card p{font-size:15px}}
@media(prefers-reduced-motion:reduce){.logo-x{animation:none!important;transform:none!important}}
/* 2026-09-30: ヒーローのサブタイトルを少し大きく */
.hero-lead{font-size:19px;letter-spacing:.06em}
@media(max-width:600px){.hero-lead{font-size:15px;max-width:none}}
