:root{
  --black:#0f0f0f;
  --white:#fafaf8;
  --green:#1a3a2a;
  --accent:#4a8c62;
  --gray:#888;
  --border:#d4d4cc;
  --bg-off:#f5f5f1;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Noto Sans JP',sans-serif;background:var(--white);color:var(--black);font-weight:300;line-height:1.8;}

/* ── NAV ── */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:20px 48px;background:rgba(250,250,248,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);}
.nav-logo,.nav-logo:hover,.nav-logo:visited,.nav-logo:focus{display:flex;align-items:center;gap:16px;text-decoration:none;color:inherit;}
.nav-logo svg{width:36px;height:36px;}
.nav-logo-text{display:flex;flex-direction:column;}
.nav-logo-en{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.22em;color:var(--accent);}
.nav-logo-ja{font-size:15px;font-weight:500;letter-spacing:.06em;color:var(--green);}
.nav-links{display:flex;gap:36px;list-style:none;}
.nav-links a{text-decoration:none;font-size:13px;letter-spacing:.1em;color:var(--black);transition:color .3s;position:relative;padding-bottom:2px;}
.nav-links a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--accent);transition:width .3s;}
.nav-links a:hover{color:var(--accent);}
.nav-links a:hover::after{width:100%;}
.nav-cta{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.15em;text-decoration:none;color:var(--white);background:var(--green);padding:10px 24px;transition:background .3s;}
.nav-cta:hover{background:var(--accent);}

/* ── NAV: ハンバーガーメニュー（モバイル） ── */
.nav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;background:none;border:none;padding:0;cursor:pointer;}
.nav-burger span{display:block;width:100%;height:2px;background:var(--green);transition:transform .3s,opacity .3s;}
.nav-burger.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-burger.active span:nth-child(2){opacity:0;}
.nav-burger.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.nav-mobile-panel{display:none;}

/* ── PAGE ── */
.page{padding-top:78px;min-height:100vh;}

/* ══════════════════════════════
   HOME
══════════════════════════════ */
.hero{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--border);}
.hero-l{padding:80px 48px;border-right:1px solid var(--border);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;}
.hero-bg{position:absolute;bottom:-30px;right:-20px;font-family:'Cormorant Garamond',serif;font-size:200px;font-weight:300;color:rgba(26,58,42,.04);line-height:1;pointer-events:none;letter-spacing:-.05em;}
.eyebrow{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.25em;color:var(--accent);display:flex;align-items:center;gap:12px;margin-bottom:36px;}
.eyebrow::before{content:'';width:28px;height:1px;background:var(--accent);}
.hero-h1{font-family:'Cormorant Garamond',serif;font-size:68px;font-weight:300;color:var(--green);line-height:1.1;letter-spacing:-.02em;margin-bottom:12px;}
.hero-sub{font-size:18px;font-weight:300;letter-spacing:.06em;color:#555;margin-bottom:48px;}
.hero-desc{font-size:14px;line-height:2.1;color:#555;max-width:400px;margin-bottom:52px;}
.btn-line{display:inline-flex;align-items:center;gap:14px;text-decoration:none;font-family:'DM Mono',monospace;font-size:12px;letter-spacing:.15em;color:var(--green);border-bottom:1px solid var(--green);padding-bottom:4px;transition:gap .3s;}
.btn-line:hover{gap:22px;}

.hero-r{padding:80px 48px;display:flex;flex-direction:column;justify-content:center;gap:56px;}
.stat{padding-left:28px;border-left:2px solid var(--accent);}
.stat-n{font-family:'Cormorant Garamond',serif;font-size:76px;font-weight:300;color:var(--green);line-height:1;}
.stat-l{font-size:13px;color:var(--gray);letter-spacing:.08em;margin-top:4px;}

/* Feature strip */
.features{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--border);}
.fi{padding:44px 32px;border-right:1px solid var(--border);transition:background .3s;}
.fi:last-child{border-right:none;}
.fi:hover{background:rgba(74,140,98,.04);}
.fi-n{font-family:'DM Mono',monospace;font-size:10px;color:var(--accent);letter-spacing:.2em;margin-bottom:16px;}
.fi-t{font-size:15px;font-weight:500;color:var(--green);margin-bottom:10px;}
.fi-d{font-size:13px;color:#666;line-height:1.9;}

/* About 2col */
.sec2{display:grid;grid-template-columns:1fr 1fr;}
.sec2-l{background:var(--green);padding:96px 56px;display:flex;flex-direction:column;justify-content:center;}
.sec2-r{background:var(--bg-off);padding:96px 56px;display:flex;flex-direction:column;justify-content:center;}
.sec-label{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.25em;color:var(--accent);margin-bottom:20px;}
.sec2-h{font-family:'Cormorant Garamond',serif;font-size:42px;font-weight:300;color:var(--white);line-height:1.45;margin-bottom:28px;}
.sec2-p{font-size:14px;color:rgba(250,250,248,.7);line-height:2.1;}
.dr-logo{display:flex;align-items:center;gap:14px;margin-bottom:20px;}
.dr-logo svg{width:48px;height:48px;}
.dr-en{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:300;color:var(--green);}
.dr-ja{font-size:19px;font-weight:500;letter-spacing:.1em;color:var(--black);margin-bottom:4px;}
.dr-sub{font-size:12px;color:var(--gray);margin-bottom:32px;}
.quals{list-style:none;display:flex;flex-direction:column;gap:10px;}
.quals li{font-size:13px;color:#444;padding-left:14px;border-left:1px solid var(--accent);line-height:1.7;}

footer{border-top:1px solid var(--border);padding:36px 48px;display:flex;justify-content:space-between;align-items:center;}
.f-logo{display:flex;align-items:center;gap:12px;}
.f-logo svg{width:24px;height:24px;}
.f-name{font-size:14px;font-weight:500;color:var(--green);}
.f-copy{font-family:'DM Mono',monospace;font-size:11px;color:var(--gray);}

/* ══════════════════════════════
   PAGE HEADER (共通)
══════════════════════════════ */
.ph{padding:72px 48px 56px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-end;}
.ph-label{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.25em;color:var(--accent);margin-bottom:14px;}
.ph-title{font-family:'Cormorant Garamond',serif;font-size:64px;font-weight:300;color:var(--green);line-height:1;}
.ph-en{font-family:'Cormorant Garamond',serif;font-size:100px;font-weight:300;color:rgba(26,58,42,.05);line-height:1;letter-spacing:-.05em;}

/* ══════════════════════════════
   SERVICE
══════════════════════════════ */
.svc-grid{display:grid;grid-template-columns:1fr 1fr;}
.svc-card{padding:52px 44px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);transition:background .3s;}
.svc-card:nth-child(even){border-right:none;}
.svc-card:hover{background:rgba(26,58,42,.02);}
.svc-n{font-family:'DM Mono',monospace;font-size:10px;color:var(--accent);letter-spacing:.2em;margin-bottom:18px;}
.svc-t{font-size:20px;font-weight:500;color:var(--green);margin-bottom:14px;}
.svc-d{font-size:14px;color:#555;line-height:2;}
.svc-more{margin-top:18px;padding-top:18px;border-top:1px solid var(--border);font-size:12px;color:var(--gray);line-height:1.8;}
.svc-banner{grid-column:1/-1;background:var(--green);padding:52px 56px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
.svc-banner-h{font-family:'Cormorant Garamond',serif;font-size:34px;font-weight:300;color:var(--white);line-height:1.5;}
.svc-banner-p{font-size:14px;color:rgba(250,250,248,.7);line-height:2.1;}

/* ══════════════════════════════
   PROFILE
══════════════════════════════ */
.prof-body{display:grid;grid-template-columns:340px 1fr;}
.prof-side{background:var(--green);padding:72px 44px;position:sticky;top:78px;height:fit-content;}
.prof-side-logo{display:flex;justify-content:center;margin-bottom:32px;}
.prof-side-logo svg{width:80px;height:80px;}
.prof-en{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:300;color:var(--white);margin-bottom:4px;}
.prof-ja{font-size:20px;font-weight:500;letter-spacing:.1em;color:var(--white);margin-bottom:6px;}
.prof-sub{font-size:12px;color:rgba(250,250,248,.55);letter-spacing:.06em;line-height:1.7;margin-bottom:32px;}
.tags{display:flex;flex-wrap:wrap;gap:8px;}
.tag{font-size:11px;padding:4px 12px;border:1px solid rgba(74,140,98,.45);color:var(--accent);letter-spacing:.04em;}
.prof-main{padding:72px 56px;}
.ps{margin-bottom:52px;padding-bottom:52px;border-bottom:1px solid var(--border);}
.ps:last-child{border-bottom:none;}
.ps-label{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.25em;color:var(--accent);margin-bottom:16px;}
.ps-title{font-size:20px;font-weight:500;color:var(--green);margin-bottom:18px;}
.ps-text{font-size:14px;color:#444;line-height:2.2;max-width:580px;}
.career{list-style:none;}
.ci{display:grid;grid-template-columns:130px 1fr;gap:24px;padding:16px 0;border-bottom:1px solid var(--border);}
.ci-y{font-family:'DM Mono',monospace;font-size:12px;color:var(--accent);}
.ci-d{font-size:14px;color:#444;line-height:1.8;}
.qg{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.qi{padding:16px 20px;background:var(--bg-off);border-left:2px solid var(--accent);font-size:13px;color:#333;line-height:1.7;}

/* ══════════════════════════════
   CONTACT
══════════════════════════════ */
.cont-body{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 270px);}
.cont-l{background:var(--green);padding:72px 56px;display:flex;flex-direction:column;justify-content:center;}
.cont-h{font-family:'Cormorant Garamond',serif;font-size:38px;font-weight:300;color:var(--white);line-height:1.5;margin-bottom:16px;}
.cont-p{font-size:14px;color:rgba(250,250,248,.65);line-height:2.1;margin-bottom:44px;}
.cont-info{display:flex;flex-direction:column;gap:26px;}
.ci-label{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.2em;color:var(--accent);}
.ci-val{font-size:15px;color:var(--white);margin-top:4px;}
.cont-note{margin-top:44px;padding-top:40px;border-top:1px solid rgba(255,255,255,.12);font-size:12px;color:rgba(250,250,248,.4);line-height:1.9;}
.cont-r{padding:72px 56px;display:flex;flex-direction:column;justify-content:center;}
.fg{margin-bottom:26px;}
.fl{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.22em;color:var(--accent);display:block;margin-bottom:7px;}
.fg input,.fg select,.fg textarea{width:100%;padding:12px 0;border:none;border-bottom:1px solid var(--border);background:transparent;font-family:'Noto Sans JP',sans-serif;font-size:14px;font-weight:300;color:var(--black);outline:none;transition:border-color .3s;-webkit-appearance:none;}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--accent);}
.fg textarea{height:110px;resize:none;}
.fsub{display:inline-flex;align-items:center;gap:14px;background:var(--green);color:var(--white);border:none;padding:15px 44px;font-family:'DM Mono',monospace;font-size:12px;letter-spacing:.15em;cursor:pointer;transition:background .3s,gap .3s;margin-top:10px;}
.fsub:hover{background:var(--accent);gap:22px;}

/* ══════════════════════════════
   送信内容確認モーダル
══════════════════════════════ */
.confirm-overlay{position:fixed;inset:0;z-index:200;background:rgba(15,15,15,.55);display:flex;align-items:center;justify-content:center;padding:24px;}
.confirm-overlay[hidden]{display:none;}
.confirm-box{background:var(--white);max-width:520px;width:100%;max-height:85vh;overflow-y:auto;padding:44px;}
.confirm-title{font-family:'Cormorant Garamond',serif;font-size:26px;font-weight:300;color:var(--green);margin-bottom:28px;}
.confirm-list{display:flex;flex-direction:column;gap:18px;margin-bottom:32px;}
.confirm-list dt{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.2em;color:var(--accent);margin-bottom:6px;}
.confirm-list dd{font-size:14px;color:var(--black);line-height:1.8;}
.confirm-message{white-space:pre-wrap;}
.confirm-actions{display:flex;gap:16px;flex-wrap:wrap;}
.confirm-btn{font-family:'DM Mono',monospace;font-size:12px;letter-spacing:.1em;padding:14px 28px;border:none;cursor:pointer;transition:background .3s,color .3s;}
.confirm-btn-ghost{background:transparent;color:var(--green);border:1px solid var(--border);}
.confirm-btn-ghost:hover{background:var(--bg-off);}
.confirm-btn-solid{background:var(--green);color:var(--white);}
.confirm-btn-solid:hover{background:var(--accent);}

/* ── RESPONSIVE ── */
@media(max-width:768px){
  nav{padding:16px 20px;}
  .nav-links,.nav-cta,.ph-en{display:none;}
  .nav-burger{display:flex;}
  .nav-mobile-panel{display:block;position:absolute;top:100%;left:0;right:0;background:var(--white);border-bottom:1px solid var(--border);max-height:0;overflow:hidden;transition:max-height .3s ease;}
  .nav-mobile-panel.open{max-height:320px;}
  .nav-mobile-links{list-style:none;}
  .nav-mobile-links a{display:block;padding:16px 24px;text-decoration:none;font-size:15px;letter-spacing:.05em;color:var(--black);border-bottom:1px solid var(--border);}
  .nav-mobile-links a:last-child{border-bottom:none;}
  .nav-mobile-links a:hover{background:var(--bg-off);color:var(--accent);}
  .hero,.sec2,.svc-grid,.prof-body,.cont-body{grid-template-columns:1fr;}
  .hero-l,.hero-r,.sec2-l,.sec2-r,.prof-side,.prof-main,.cont-l,.cont-r{padding:48px 24px;}
  .hero-h1{font-size:44px;}
  .features{grid-template-columns:1fr 1fr;}
  .svc-card:nth-child(even){border-right:1px solid var(--border);}
  .prof-side{position:static;}
  .qg{grid-template-columns:1fr;}
  .svc-banner{grid-template-columns:1fr;}
  .ph{flex-direction:column;align-items:flex-start;padding:48px 24px 36px;}
  .ph-title{font-size:40px;}
}
