@charset "UTF-8";
:root{--navy:#0b1f44;--navy2:#13305f;--blue:#005db9;--ink:#141b29;--muted:#687386;--line:#d9e1eb;--soft:#f7f9fc;--white:#fff;--max:1200px}
*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;color:var(--ink);background:#fff;font-family:"Yu Gothic","Hiragino Kaku Gothic ProN","BIZ UDPGothic",sans-serif;line-height:1.8;letter-spacing:.02em}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.wrap{width:min(calc(100% - 56px),var(--max));margin:auto}.section{padding:132px 0}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.3;letter-spacing:-.025em}h2{margin-bottom:0;color:var(--navy);font-size:clamp(2.2rem,4.5vw,4.4rem)}header{position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(11,31,68,.08);background:rgba(255,255,255,.97)}.header{display:flex;min-height:88px;align-items:center;justify-content:space-between;gap:36px}.logo{width:185px;height:58px;object-fit:contain}.header nav{display:flex;align-items:center;gap:34px;color:var(--navy);font-size:.84rem;font-weight:800;letter-spacing:.06em}.navbtn{padding:13px 22px;color:#fff;background:var(--navy)}#menu,.hamb{display:none}.hero{position:relative;min-height:calc(100vh - 88px);display:grid;align-items:center;overflow:hidden;background:url('../assets/hero.jpg') center/cover no-repeat}.overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,18,42,.96) 0%,rgba(8,28,61,.79) 48%,rgba(8,28,61,.25) 100%)}.hero:before,.hero:after{content:"";position:absolute;z-index:1;top:-40%;width:1px;height:170%;background:rgba(255,255,255,.15);transform:rotate(28deg)}.hero:before{right:18%}.hero:after{right:35%}.heroText{position:relative;z-index:2;padding:120px 0;color:#fff}.heroText small,.en,.sectionTag{font-size:.76rem;font-weight:800;letter-spacing:.2em}.heroText small{color:#a9d7ff}.hero h1{max-width:920px;margin:18px 0 30px;font-size:clamp(3.6rem,7.4vw,7.2rem)}.heroText>p{max-width:680px;margin-bottom:42px;color:rgba(255,255,255,.84);font-size:clamp(1rem,1.8vw,1.23rem)}.btn{display:inline-flex;min-height:58px;align-items:center;justify-content:center;padding:0 30px;margin-right:12px;border:1px solid transparent;font-weight:800}.blue{color:#fff;background:var(--blue)}.line{border-color:rgba(255,255,255,.52);color:#fff;background:rgba(255,255,255,.04)}.sectionTag{display:grid;grid-template-columns:34px auto;gap:12px;align-items:center;width:max-content;margin-bottom:34px;color:var(--navy);white-space:nowrap}.sectionTag span{color:var(--blue);font-variant-numeric:tabular-nums}.sectionTag b{line-height:1;letter-spacing:.18em}.serviceTag{margin-bottom:42px}.cols{display:grid;grid-template-columns:.95fr 1.05fr;gap:88px}.en{color:var(--blue)}.copy{padding-top:42px;color:var(--muted);font-size:1.04rem}.copy p+p{margin-top:25px}.photoBlock{position:relative;margin-top:78px}.photoBlock>img{width:82%;min-height:570px;object-fit:cover}.panel{position:absolute;right:0;bottom:-52px;width:min(480px,46%);padding:48px;color:#fff;background:var(--navy)}.panel small,.strategy small{color:#a9d7ff;font-size:.74rem;font-weight:800;letter-spacing:.16em}.panel h3{font-size:1.85rem}.panel p{margin-bottom:0;color:rgba(255,255,255,.78)}.pale{background:var(--soft)}.serviceHead{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:end}.serviceHead>p{color:var(--muted)}.services{margin-top:74px;border-top:1px solid var(--line)}.services article{display:grid;grid-template-columns:90px minmax(250px,.85fr) minmax(0,1.15fr);gap:35px;align-items:center;min-height:auto;padding:38px 0;border:0;border-bottom:1px solid var(--line);background:transparent}.services article img{display:none}.services article>b{color:var(--blue);font-size:.78rem}.services article small{display:block;margin-bottom:6px;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.16em}.serviceName{min-width:0}.services article h3{margin-bottom:0;color:var(--navy);font-size:1.8rem}.services article p{margin-bottom:0;color:var(--muted)}.strategy{display:grid;grid-template-columns:1fr 1fr;margin-top:74px;color:#fff;background:var(--navy)}.strategy img{width:100%;height:100%;min-height:390px;object-fit:cover}.strategy>div{display:flex;flex-direction:column;justify-content:center;padding:58px}.strategy h3{font-size:clamp(1.9rem,3vw,2.7rem)}.strategy p{margin-bottom:0;color:rgba(255,255,255,.76)}.sub{max-width:390px;margin-top:34px;color:var(--muted)}dl{margin:0;border-top:1px solid var(--line)}dl>div{display:grid;grid-template-columns:140px 1fr;gap:30px;padding:26px 0;border-bottom:1px solid var(--line)}dt{color:var(--navy);font-weight:800}dd{margin:0;color:var(--muted)}.contact{padding:0 0 132px}.contactBox{display:grid;grid-template-columns:.84fr 1.16fr;gap:74px;padding:78px;color:#fff;background:linear-gradient(135deg,var(--navy),var(--navy2))}.contactBox h2{color:#fff;font-size:clamp(2.2rem,4vw,3.9rem)}.contactBox>div>p{color:rgba(255,255,255,.74)}.contactBox>div>small{color:#a9d7ff;font-weight:800;letter-spacing:.18em}form{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding:34px;color:var(--ink);background:#fff}form label{display:grid;gap:8px;font-size:.9rem;font-weight:800}.full{grid-column:1/-1}form input,form textarea{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:0;outline:none;background:var(--soft)}form input:focus,form textarea:focus{border-color:var(--blue)}.check{display:flex!important;align-items:center;font-weight:400!important}.check input{width:auto}.check a{text-decoration:underline}form button{min-height:56px;border:0;color:#fff;background:var(--blue);font-weight:800}form em{color:var(--muted);font-size:.76rem;font-style:normal}footer{padding:68px 0 30px;border-top:1px solid var(--line)}.foot{display:flex;align-items:center;justify-content:space-between;gap:44px}.foot img{width:200px}.foot nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:18px 28px;color:var(--muted);font-size:.8rem;font-weight:800}.bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-top:48px;padding-top:24px;border-top:1px solid var(--line)}.bottom b{color:var(--navy)}.bottom small{color:var(--muted)}
@media(max-width:920px){.section{padding:100px 0}.header nav{position:fixed;inset:88px 0 auto;display:none;padding:28px;flex-direction:column;align-items:stretch;background:#fff;border-bottom:1px solid var(--line)}#menu:checked~nav{display:flex}.hamb{display:grid;width:42px;height:42px;place-content:center;gap:5px}.hamb i{display:block;width:24px;height:2px;background:var(--navy)}.cols,.serviceHead,.contactBox{grid-template-columns:1fr}.photoBlock>img{width:100%}.panel{position:relative;bottom:auto;width:min(92%,520px);margin:-70px 0 0 auto}.services article{grid-template-columns:70px .9fr 1.1fr}.contactBox{padding:56px}}
@media(max-width:640px){.wrap{width:min(calc(100% - 32px),var(--max))}.header{min-height:74px}.logo{width:145px;height:46px}.header nav{inset-top:74px}.hero{min-height:calc(100svh - 74px)}.heroText{padding:90px 0}.hero h1{font-size:clamp(2.9rem,14vw,4.6rem)}.btn{width:100%;margin:0 0 12px}.section{padding:76px 0}.cols{gap:38px}.copy{padding-top:0}.photoBlock{margin-top:48px}.photoBlock>img{min-height:340px}.panel{width:96%;margin-top:-40px;padding:30px}.services{margin-top:48px}.services article{grid-template-columns:42px 1fr;gap:18px}.services article p{grid-column:2}.services article h3{font-size:1.45rem}.strategy{grid-template-columns:1fr}.strategy img{min-height:280px}.strategy>div{padding:36px 28px}dl>div{grid-template-columns:1fr;gap:8px}.contact{padding-bottom:76px}.contactBox{padding:42px 22px}.contactBox form{grid-template-columns:1fr;padding:24px}.contactBox form>*{grid-column:1}.foot,.bottom{align-items:flex-start;flex-direction:column}.foot nav{justify-content:flex-start}}


/* ===== Ver.2.2 polish ===== */
:root{
  --shadow:0 18px 45px rgba(11,31,68,.10);
  --radius:3px;
}
body{
  font-family:"BIZ UDPGothic","Yu Gothic UI","Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
header{
  box-shadow:0 1px 0 rgba(11,31,68,.04);
}
.logo{
  object-position:left center;
}
.header nav a:not(.navbtn){
  position:relative;
  padding:8px 0;
}
.header nav a:not(.navbtn)::after{
  content:"";
  position:absolute;
  right:0;
  bottom:2px;
  left:0;
  height:1px;
  background:var(--blue);
  transform:scaleX(0);
  transform-origin:left;
}
.navbtn,
.btn,
form button{
  border-radius:var(--radius);
  letter-spacing:.04em;
}
.heroText{
  max-width:980px;
}
.heroText>p{
  line-height:2;
}
.sectionTag{
  margin-bottom:40px;
}
.cols{
  align-items:start;
}
.copy p{
  max-width:680px;
}
.photoBlock{
  margin-top:88px;
}
.photoBlock>img{
  box-shadow:var(--shadow);
}
.panel{
  box-shadow:0 22px 50px rgba(11,31,68,.18);
}
.serviceHead>p{
  max-width:520px;
  margin-bottom:8px;
}
.services article{
  position:relative;
  padding:42px 0;
}
.services article::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:-24px;
  width:3px;
  background:var(--blue);
  opacity:0;
}
.services article h3{
  letter-spacing:-.035em;
}
.strategy{
  box-shadow:var(--shadow);
}
.strategy>div{
  position:relative;
}
.strategy>div::before{
  content:"";
  position:absolute;
  top:40px;
  right:40px;
  width:58px;
  height:58px;
  border-top:1px solid rgba(255,255,255,.28);
  border-right:1px solid rgba(255,255,255,.28);
}
dl>div{
  padding:29px 0;
}
.contactBox{
  position:relative;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.contactBox::before{
  content:"";
  position:absolute;
  top:-200px;
  right:-70px;
  width:1px;
  height:700px;
  background:rgba(255,255,255,.16);
  transform:rotate(28deg);
}
.contactBox>div,
.contactBox form{
  position:relative;
  z-index:1;
}
form{
  box-shadow:0 15px 35px rgba(0,0,0,.12);
}
form input,
form textarea{
  min-height:50px;
  border-radius:2px;
}
form textarea{
  min-height:150px;
  resize:vertical;
}
form label>b{
  margin-left:6px;
  color:var(--blue);
  font-size:.7rem;
}
footer{
  background:#fbfcfe;
}
.foot img{
  height:66px;
  object-fit:contain;
  object-position:left center;
}

@media (hover:hover){
  .header nav a:not(.navbtn):hover::after{
    transform:scaleX(1);
  }
  .navbtn:hover,
  .blue:hover,
  form button:hover{
    background:#064e96;
  }
  .line:hover{
    background:rgba(255,255,255,.12);
  }
  .services article:hover::before{
    opacity:1;
  }
}

@media(max-width:920px){
  .header nav a:not(.navbtn)::after{display:none}
  .photoBlock{margin-top:64px}
  .services article::before{left:-12px}
}

@media(max-width:640px){
  body{font-size:15px}
  h2{font-size:clamp(2rem,10vw,3.2rem)}
  .sectionTag{margin-bottom:28px}
  .heroText>p br{display:none}
  .photoBlock{margin-top:42px}
  .panel h3{font-size:1.55rem}
  .services article{padding:31px 0}
  .services article::before{left:-8px}
  .strategy>div::before{top:20px;right:20px;width:38px;height:38px}
  .contactBox h2{font-size:clamp(2rem,10vw,3.1rem)}
  form{box-shadow:none}
}


/* ===== Ver.2.3 company / contact / footer refinement ===== */
.companySection{overflow:hidden}
.companyLead{display:grid;grid-template-columns:.92fr 1.08fr;gap:88px;align-items:end}
.companyLead>p{max-width:560px;margin:0 0 8px;color:var(--muted);font-size:1.04rem}
.companyGrid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:84px;align-items:start;margin-top:72px}
.companyVisual{position:relative}
.companyVisual>img{width:100%;min-height:560px;object-fit:cover;box-shadow:var(--shadow)}
.companyStatement{position:absolute;right:-28px;bottom:-38px;width:min(88%,470px);padding:34px 38px;color:#fff;background:var(--navy);box-shadow:0 22px 50px rgba(11,31,68,.18)}
.companyStatement small{display:block;margin-bottom:12px;color:#a9d7ff;font-size:.7rem;font-weight:800;letter-spacing:.16em}
.companyStatement strong{font-size:1.25rem;line-height:1.6}
.companyGrid dl{background:#fff}
.companyGrid dl>div{grid-template-columns:130px 1fr}
.contactIntro{max-width:500px}
.contactNotes{display:grid;gap:0;margin-top:42px;border-top:1px solid rgba(255,255,255,.2)}
.contactNotes p{display:grid;grid-template-columns:38px 1fr;gap:12px;margin:0;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.78)!important;font-size:.88rem}
.contactNotes b{color:#a9d7ff;font-size:.72rem}
form select{width:100%;min-height:50px;padding:13px 14px;border:1px solid var(--line);border-radius:2px;color:var(--ink);background:var(--soft)}
form input::placeholder,form textarea::placeholder{color:#98a2b3}
footer{padding:74px 0 28px}
.footerGrid{display:grid;grid-template-columns:1.1fr .8fr 1.1fr;gap:68px;align-items:start}
.footerBrand img{width:205px;height:66px;object-fit:contain;object-position:left center}
.footerBrand p{margin:22px 0 0;color:var(--navy);font-weight:800}
.footerNav>p,.footerContact>p{margin:0 0 19px;color:var(--blue);font-size:.7rem;font-weight:800;letter-spacing:.16em}
.footerNav nav{display:grid;gap:10px;color:var(--muted);font-size:.82rem;font-weight:800}
.footerContact strong{display:block;margin-bottom:22px;color:var(--navy);line-height:1.7}
.footerContact a{display:inline-flex;min-height:46px;align-items:center;padding:0 20px;color:#fff;background:var(--navy);font-size:.82rem;font-weight:800}
.bottom{align-items:center}
.bottom a{color:var(--navy);font-size:.72rem;font-weight:800;letter-spacing:.12em}
@media(max-width:920px){.companyLead,.companyGrid{grid-template-columns:1fr;gap:42px}.companyGrid{margin-top:54px}.companyVisual>img{min-height:470px}.footerGrid{grid-template-columns:1fr 1fr}.footerContact{grid-column:1/-1}}
@media(max-width:640px){.companyLead{gap:24px}.companyGrid{margin-top:42px}.companyVisual>img{min-height:340px}.companyStatement{position:relative;right:auto;bottom:auto;width:95%;margin:-44px 0 0 auto;padding:28px}.companyGrid dl>div{grid-template-columns:1fr}.contactNotes{margin-top:30px}.footerGrid{grid-template-columns:1fr;gap:38px}.footerContact{grid-column:auto}.bottom{gap:12px}.bottom a{order:-1}}


/* ===== Ver.2.4 logo refinement ===== */
.logo,
.brand img,
.foot img,
.footer-top img,
.footer-main img {
  object-fit: contain;
  object-position: left center;
  background: #fff;
}
.logo,
.brand img {
  width: 185px;
  height: 62px;
}
.foot img,
.footer-top img,
.footer-main img {
  width: 190px;
  height: 68px;
}
@media (max-width: 640px) {
  .logo,
  .brand img {
    width: 145px;
    height: 50px;
  }
}


/* ===== Final completion ===== */
.legal-inner a {
  color: var(--blue);
  text-decoration: underline;
}
.error-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 60px 0;
  background: var(--soft);
}
.error-inner {
  max-width: 760px;
  text-align: center;
}
.error-inner img {
  width: 210px;
  margin: 0 auto 42px;
}
.error-inner h1 {
  margin-bottom: 20px;
  color: var(--navy);
  font-size: clamp(2.2rem, 6vw, 4.6rem);
}
.error-inner p:not(.eyebrow) {
  margin-bottom: 34px;
  color: var(--muted);
}


/* Formspree spam honeypot */
.form-honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}


/* PHP contact form */
.form-alert {
  grid-column: 1 / -1;
  padding: 14px 16px;
  border: 1px solid;
  font-style: normal;
  font-weight: 700;
}
.form-alert-error {
  border-color: #b42318;
  color: #8a1c13;
  background: #fff1ef;
}
.form-honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
