:root{--navy:#0f2740;--ink:#1c2b3a;--muted:#5b6b7b;--line:#dbe3ea;--mist:#f3f6f9;--accent:#1f6f8b}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Noto Sans JP',system-ui,sans-serif;color:var(--ink);line-height:1.85;background:#fff;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:var(--accent);text-decoration:none}
a:hover{opacity:.75}
[id]{scroll-margin-top:88px}
.wrap{max-width:1160px;margin:0 auto;padding:0 22px}
/* header */
.site-head{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.2) blur(6px);border-bottom:1px solid var(--line)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;height:74px}
.site-logo img{height:34px;width:auto;display:block}
.nav{display:flex;gap:30px;list-style:none;margin:0;padding:0}
.nav a{color:var(--navy);font-weight:500;font-size:14px;letter-spacing:.04em;line-height:1.3;display:block;text-align:center}
.nav a small{display:block;font-size:10px;font-weight:400;color:var(--muted);letter-spacing:.02em;margin-top:2px}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;font-size:26px;color:var(--navy)}
body{padding-top:74px}
/* hero */
.hero{position:relative;min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;background:linear-gradient(180deg,#0f2740,#173753);color:#fff;padding:80px 22px}
.hero .display{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(40px,7vw,76px);letter-spacing:.06em;margin:0 0 10px;color:#fff}
.hero p{color:#cfe0ee;font-size:15px;letter-spacing:.18em;text-transform:uppercase;margin:0}
/* sections */
.section{padding:84px 0}
.section--mist{background:var(--mist)}
.eyebrow{font-family:'Cormorant Garamond',serif;font-size:15px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin:0 0 6px}
.section h2{font-size:clamp(26px,4vw,36px);margin:0 0 6px;color:var(--navy);font-weight:600}
.section h2 .jp{display:block;font-size:15px;color:var(--muted);font-weight:500;letter-spacing:.06em;margin-top:6px}
.lead{color:var(--ink);max-width:720px;margin:22px auto 0;font-size:17px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px}
.grid3 img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;display:block}
.btn{display:inline-block;margin-top:30px;padding:13px 34px;background:var(--navy);color:#fff;border-radius:2px;font-size:14px;letter-spacing:.14em;text-transform:uppercase;font-weight:500}
.btn:hover{opacity:.9}
.btn--ghost{background:transparent;color:var(--navy);border:1px solid var(--navy)}
.center{text-align:center}
/* portfolio */
.pf{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;margin-top:40px}
.pf-item{background:#fff;border:1px solid var(--line);border-radius:8px;padding:34px 30px;text-align:center;transition:box-shadow .25s}
.pf-item:hover{box-shadow:0 12px 34px rgba(15,39,64,.08)}
.pf-item .logo{height:52px;object-fit:contain;margin:0 auto 18px;display:block}
.pf-item h3{margin:0 0 10px;font-size:20px;color:var(--navy)}
.pf-item p{color:var(--muted);font-size:15px;margin:0 0 16px}
/* company table */
.info-table{width:100%;max-width:760px;margin:34px auto 0;border-collapse:collapse}
.info-table th,.info-table td{text-align:left;padding:16px 8px;border-bottom:1px solid var(--line);vertical-align:top;font-size:16px}
.info-table th{width:34%;color:var(--navy);font-weight:600;white-space:nowrap}
.info-table td{color:var(--ink)}
/* contact */
.contact-box{max-width:680px;margin:30px auto 0}
.contact-box .wpcf7 input,.contact-box .wpcf7 textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:4px;font-size:16px;margin-top:6px}
.contact-box .wpcf7 label{display:block;margin-bottom:14px;font-size:14px;color:var(--navy)}
.contact-box .wpcf7 [type=submit]{background:var(--navy);color:#fff;border:0;padding:13px 40px;border-radius:2px;letter-spacing:.12em;cursor:pointer;width:auto}
/* footer */
.site-foot{background:var(--navy);color:#c7d4e0;padding:56px 22px 30px;text-align:center}
.site-foot .fname{font-family:'Cormorant Garamond',serif;font-size:24px;letter-spacing:.1em;color:#fff;margin:0 0 14px}
.site-foot p{margin:4px 0;font-size:14px}
.site-foot .copy{margin-top:26px;font-size:12px;color:#8aa0b4;letter-spacing:.04em}
.site-foot a{color:#fff}
/* drawer */
@media(max-width:860px){
 .nav{position:fixed;top:0;right:-300px;width:280px;height:100vh;background:#fff;flex-direction:column;gap:0;padding:90px 26px;box-shadow:-8px 0 30px rgba(0,0,0,.12);transition:right .3s;align-items:flex-start}
 .nav.open{right:0}
 .nav a{text-align:left;padding:14px 0;border-bottom:1px solid var(--line);width:100%}
 .nav-toggle{display:block;z-index:60}
 .grid3{grid-template-columns:1fr 1fr}
 .pf{grid-template-columns:1fr}
}
@media(max-width:520px){.grid3{grid-template-columns:1fr}}
/* Forminator contact form */
.contact-box .forminator-ui{max-width:640px;margin:0 auto}
.contact-box .forminator-row{display:block!important;margin:0!important}
.contact-box .forminator-col{width:100%!important;max-width:100%!important;flex:0 0 100%!important;padding:0!important;margin:0 0 16px!important}
.contact-box .forminator-field{margin:0!important}
.contact-box .forminator-input,.contact-box .forminator-textarea{width:100%!important;padding:13px 15px!important;border:1px solid var(--line)!important;border-radius:4px!important;font-size:16px!important;background:#fff!important;color:var(--ink)!important;box-shadow:none!important}
.contact-box .forminator-textarea{min-height:150px!important}
.contact-box .forminator-input:focus,.contact-box .forminator-textarea:focus{border-color:var(--navy)!important;outline:none!important}
.contact-box .forminator-label{font-size:14px!important;color:var(--navy)!important;font-weight:600!important;margin-bottom:6px!important}
.contact-box .forminator-button-submit,.contact-box .forminator-ui button[type=submit]{background:var(--navy)!important;color:#fff!important;border:0!important;padding:14px 46px!important;border-radius:2px!important;letter-spacing:.14em!important;font-size:15px!important;font-weight:500!important;cursor:pointer;width:auto!important}
.contact-box .forminator-button-submit:hover{opacity:.9}
