*{box-sizing:border-box}
body{margin:0;background:#F4F2EC;color:#1B2333;font-family:'Noto Sans JP',sans-serif;font-size:16px;line-height:1.9}
img{max-width:100%;display:block}
a{color:#223A70}a:hover{color:#14254A}
a:focus-visible,button:focus-visible,input:focus-visible+label{outline:2px solid #223A70;outline-offset:2px}
.serif{font-family:'Shippori Mincho',serif}
.wrap{max-width:1160px;margin:0 auto;padding-left:24px;padding-right:24px}
.narrow{max-width:880px;margin:0 auto;padding-left:24px;padding-right:24px}
.section{padding-top:96px;padding-bottom:96px}
.label{font-size:13px;letter-spacing:.3em;color:#223A70;font-weight:700}
.h2{margin:0;font-family:'Shippori Mincho',serif;font-size:34px;line-height:1.5}
.stack{display:flex;flex-direction:column}
.white{background:#FFFFFF}.paper{background:#F4F2EC}.indigo{background:#223A70;color:#FFFFFF}.ink{background:#1B2333;color:#FFFFFF}

/* header */
.site-header{background:#FFFFFF;border-bottom:1px solid #E2DED4}
.site-header .wrap{padding-top:18px;padding-bottom:18px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.logo{display:flex;flex-direction:column;text-decoration:none;color:#1B2333;line-height:1.2}
.logo b{font-family:'Shippori Mincho',serif;font-size:26px;letter-spacing:.18em}
.logo small{font-size:11px;letter-spacing:.2em;color:#5A6274}
.nav{display:flex;flex-wrap:wrap;gap:4px 24px;font-size:14px;align-items:center}
.nav a{text-decoration:none;color:#1B2333}
.nav a.cta{color:#FFFFFF;background:#223A70;padding:6px 16px;border-radius:4px;font-weight:700}

/* buttons */
.btn{display:inline-flex;align-items:center;min-height:52px;padding:0 28px;border-radius:4px;text-decoration:none;font-weight:700}
.btn-light{background:#FFFFFF;color:#223A70}
.btn-ghost{border:1px solid #FFFFFF;color:#FFFFFF}
.btn-ghost:hover{color:#FFFFFF;background:rgba(255,255,255,.08)}

/* hero */
.hero .wrap{padding-top:96px;padding-bottom:96px;display:flex;flex-wrap:wrap;align-items:center;gap:48px}
.hero-text{flex:1 1 440px;min-width:0;gap:24px}
.hero-eyebrow{font-size:14px;letter-spacing:.2em;color:#C9D3E8}
.hero h1{margin:0;font-family:'Shippori Mincho',serif;font-size:52px;line-height:1.4;letter-spacing:.06em}
.hero p{margin:0;max-width:520px;color:#E4E9F4}
.hero-img{flex:1 1 400px;min-width:0;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 60%;border-radius:6px}
.btns{display:flex;flex-wrap:wrap;gap:12px;padding-top:8px}

/* vision */
.split{display:flex;flex-wrap:wrap;gap:48px;align-items:center}
.split>div{flex:1 1 420px;min-width:0;gap:20px}
.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pair img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:6px}

/* works */
.works{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:48px 32px}
.work{gap:16px}
.work .num{font-family:'Shippori Mincho',serif;font-size:28px;color:#223A70}
.work h3{margin:0;font-size:21px;line-height:1.5}
.work p{margin:0;color:#3E4658}
.work .wide{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:6px}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gallery img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px}

/* news */
.news{list-style:none;margin:0;padding:0;border-top:1px solid #D6D1C4}
.news li{display:flex;align-items:center;gap:24px;padding:20px 0;border-bottom:1px solid #D6D1C4}
.news img{flex:0 0 140px;width:140px;height:105px;object-fit:cover;border-radius:4px}
.news time{color:#5A6274;font-size:14px}
.news li>div{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}

/* company */
.dl{margin:0;border-top:1px solid #D6D1C4}
.dl>div{display:flex;flex-wrap:wrap;gap:4px 32px;padding:20px 0;border-bottom:1px solid #D6D1C4}
.dl dt{flex:0 0 160px;font-weight:700}
.dl dd{margin:0;flex:1 1 300px}

/* footer */
.site-footer{background:#1B2333;color:#C9CED9}
.site-footer .wrap{padding-top:32px;padding-bottom:32px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:13px}
.site-footer a{color:#C9CED9}
.site-footer .links{display:flex;gap:20px}

/* contact */
.page-head .wrap{padding-top:72px;padding-bottom:64px;gap:12px}
.page-head h1{margin:0;font-family:'Shippori Mincho',serif;font-size:44px;line-height:1.35;letter-spacing:.06em}
.page-head p{margin:0;max-width:640px;color:#E4E9F4}
.contact-main{padding-top:56px;padding-bottom:80px;display:flex;flex-wrap:wrap;gap:40px;align-items:flex-start}
.form{flex:999 1 560px;min-width:0;background:#FFFFFF;border:1px solid #E2DED4;border-radius:6px;padding:40px;gap:28px}
.field{gap:8px}
.field label,.legend{font-weight:700}
.req{color:#A8455A;font-size:13px;font-weight:500;margin-left:6px}
.form input[type=text],.form input[type=email],.form input[type=tel],.form textarea{width:100%;padding:0 14px;height:48px;border:1px solid #C9C4B8;border-radius:4px;font-size:16px;font-family:inherit;background:#FFFFFF;color:#1B2333}
.form textarea{height:auto;padding:12px 14px;line-height:1.7;resize:vertical}
.form input:focus,.form textarea:focus{outline:2px solid #223A70;outline-offset:1px}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px}
fieldset{border:0;margin:0;padding:0}
.legend{padding:0;margin-bottom:12px}
.pills{display:flex;flex-wrap:wrap;gap:10px}
.pills input{position:absolute;opacity:0;width:1px;height:1px}
.pills label{display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;border-radius:999px;font-size:14px;cursor:pointer;background:#FFFFFF;color:#1B2333;border:1px solid #C9C4B8;font-weight:400}
.pills input:checked+label{background:#223A70;color:#FFFFFF;border-color:#223A70;font-weight:700}
.agree{display:flex;align-items:flex-start;gap:10px}
.agree input{width:20px;height:20px;margin:4px 0 0;accent-color:#223A70}
.agree label{font-size:15px;font-weight:400}
.submit{min-width:280px;height:56px;padding:0 32px;border:0;border-radius:4px;background:#223A70;color:#FFFFFF;font-size:16px;font-weight:700;letter-spacing:.15em;cursor:pointer;font-family:inherit}
.submit:hover{background:#14254A}
.aside{flex:1 1 280px;gap:20px}
.card{background:#FFFFFF;border:1px solid #E2DED4;border-radius:6px;padding:28px;gap:12px}
.card h2{margin:0;font-family:'Shippori Mincho',serif;font-size:20px}
.card p{margin:0;font-size:14px;color:#3E4658}
.card dl{margin:0;display:flex;flex-direction:column;gap:10px;font-size:14px}
.card dt{color:#5A6274;font-size:12px}
.card dd{margin:0}
.hidden{display:none}

@media (max-width:640px){
  .hero h1{font-size:36px}
  .page-head h1{font-size:34px}
  .h2{font-size:28px}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form{padding:24px}
  .submit{min-width:0;width:100%}
  .news li{align-items:flex-start;gap:16px}
  .news img{flex-basis:96px;width:96px;height:72px}
}
