/* ============================================================
 株式会社Shylph コーポレートサイト 共通スタイル
 design/ の各ページの <style> をそのまま移したもの（変換時の追加は末尾）
 ============================================================ */

/* ---- 共通・メインページ（design/ のメインページより） ---- */
:root {
  --ink:#16211d; --sub:#4a5651; --muted:#5f6a65; --line:#e3e7e4; --soft:#f3f5f2;
  --green:#0b6b4a; --green-d:#08523a; --logo:#0a9956; --deep:#0c2a21; --on-deep:#c9d8d0; --mint:#7fd6ad;
  --serif:"Noto Serif JP", "Hiragino Mincho ProN", serif;
  --sans:"Noto Sans JP", "Hiragino Sans", system-ui, sans-serif;
  --latin:"EB Garamond", Georgia, serif;
}
html { scroll-behavior:smooth; }
body { margin:0; background:#ffffff; color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; }
* { box-sizing:border-box; }
a { color:var(--green); }
.page { width:100%; overflow-x:clip; }
.page h1, .page h2, .page h3, .page p, .page li, .page dd, .page summary { word-break:auto-phrase; }
.wrap { max-width:1160px; margin:0 auto; padding:0 clamp(16px,4vw,48px); }
section[id] { scroll-margin-top:72px; }
.sec { padding:clamp(80px,11vw,144px) 0; }
.sec-soft { background:var(--soft); }
.sec-deep { background:var(--deep); color:#ffffff; }

/* section heading: number + English label + Japanese heading */
.eyebrow { margin:0 0 22px; display:flex; align-items:center; gap:14px; font-family:var(--sans); font-size:12px; font-weight:500; letter-spacing:0.24em; color:var(--green); }
.eyebrow .num { font-family:var(--latin); font-size:15px; letter-spacing:0.06em; font-feature-settings:"lnum"; }
.eyebrow .bar { width:32px; height:1px; background:currentColor; opacity:0.6; }
.sec-deep .eyebrow { color:var(--mint); }
.h2 { margin:0; font-family:var(--serif); font-weight:500; font-size:clamp(26px,3.4vw,40px); line-height:1.5; letter-spacing:0.04em; text-wrap:balance; }
.lead { margin:24px 0 0; font-size:16px; line-height:2.05; color:var(--sub); max-width:620px; text-wrap:pretty; }
.sec-deep .lead { color:var(--on-deep); }
.split { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(420px,100%), 1fr)); gap:32px clamp(32px,6vw,96px); align-items:end; }

/* buttons */
.btn { display:inline-flex; align-items:center; gap:14px; font-size:15px; font-weight:500; letter-spacing:0.08em; padding:18px 30px; text-decoration:none; transition:background .2s, color .2s, border-color .2s; }
.btn .arrow { font-family:var(--latin); font-size:18px; line-height:1; }
.btn-primary { background:var(--green); color:#ffffff; }
.btn-primary:hover { background:var(--green-d); color:#ffffff; }
.btn-light { background:#ffffff; color:var(--deep); }
.btn-light:hover { background:#e6f2ec; color:var(--deep); }
.btn-line { border:1px solid var(--green); color:var(--green); padding:13px 22px; font-size:14px; }
.btn-line:hover { background:var(--green); color:#ffffff; }

/* HERO */
.hero { position:relative; background:var(--deep); color:#ffffff; overflow:hidden; }
.hero-wave { position:absolute; right:-8%; top:6%; width:min(980px,90vw); height:auto; pointer-events:none; }
.hero-inner { position:relative; padding-top:clamp(96px,14vw,176px); padding-bottom:clamp(72px,9vw,120px); }
.hero-tag { margin:0 0 28px; font-family:var(--latin); font-style:italic; font-size:clamp(18px,2vw,24px); letter-spacing:0.06em; color:var(--mint); }
.hero h1 { margin:0; font-family:var(--serif); font-weight:500; font-size:clamp(34px,5.8vw,68px); line-height:1.38; letter-spacing:0.06em; }
.hero h1 span { display:block; }
.hero-lead { margin:32px 0 44px; max-width:560px; font-size:clamp(15px,1.4vw,16px); line-height:2.1; color:var(--on-deep); text-wrap:pretty; }
.stats { position:relative; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); border-top:1px solid rgba(255,255,255,0.16); }
.stat { padding:36px clamp(16px,3vw,40px) 44px 0; }
.stat + .stat { padding-left:clamp(16px,3vw,40px); border-left:1px solid rgba(255,255,255,0.16); }
.stat-label { margin:0 0 14px; font-size:13px; letter-spacing:0.12em; color:var(--on-deep); }
.stat-value { margin:0; display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; color:#ffffff; }
.stat-value .n { font-family:var(--latin); font-feature-settings:"lnum"; font-size:clamp(44px,6vw,76px); line-height:1; letter-spacing:0.01em; }
.stat-value .u { font-family:var(--serif); font-size:clamp(15px,1.6vw,20px); }
.stat-value .w { font-family:var(--serif); font-size:clamp(28px,3.6vw,44px); line-height:1.15; letter-spacing:0.08em; }

/* 01 purpose */
.purpose-body { margin:0; font-family:var(--serif); font-size:clamp(17px,1.7vw,20px); line-height:2.2; letter-spacing:0.04em; color:var(--ink); text-wrap:pretty; }

/* 02 next step */
.entries { margin-top:clamp(48px,6vw,72px); display:grid; grid-template-columns:repeat(auto-fit, minmax(min(300px,100%), 1fr)); gap:clamp(16px,2vw,24px); }
.entry { background:#ffffff; border:1px solid var(--line); padding:clamp(28px,3vw,40px); display:flex; flex-direction:column; gap:16px; transition:border-color .2s, box-shadow .2s; }
.entry:hover { border-color:#b9cfc4; box-shadow:0 18px 40px -28px rgba(12,42,33,0.35); }
.entry-en { margin:0; display:flex; justify-content:space-between; align-items:baseline; font-size:12px; font-weight:500; letter-spacing:0.22em; color:var(--green); }
.entry-en .i { font-family:var(--latin); font-size:15px; letter-spacing:0.04em; color:var(--muted); font-feature-settings:"lnum"; }
.entry h3 { margin:8px 0 0; font-family:var(--serif); font-weight:500; font-size:22px; line-height:1.5; letter-spacing:0.04em; }
.entry p.t { margin:0; font-size:14.5px; line-height:1.95; color:var(--sub); flex:1; }
.entry .btn-line { align-self:flex-start; margin-top:12px; }

/* 03 strengths */
.strengths { margin-top:clamp(48px,6vw,80px); display:grid; grid-template-columns:repeat(auto-fit, minmax(min(440px,100%), 1fr)); column-gap:clamp(32px,6vw,96px); }
.strength { border-top:1px solid var(--line); padding:36px 0 44px; display:grid; grid-template-columns:72px minmax(0,1fr); gap:0 20px; }
.strength .no { font-family:var(--latin); font-feature-settings:"lnum"; font-size:40px; line-height:1; color:var(--logo); }
.strength .en { margin:4px 0 12px; font-size:12px; font-weight:500; letter-spacing:0.22em; color:var(--muted); }
.strength h3 { margin:0 0 14px; font-family:var(--serif); font-weight:500; font-size:21px; line-height:1.5; letter-spacing:0.04em; }
.strength p.t { margin:0; font-size:14.5px; line-height:1.95; color:var(--sub); text-wrap:pretty; }

/* 04 services */
.services { margin-top:clamp(48px,6vw,72px); display:grid; grid-template-columns:repeat(auto-fit, minmax(min(440px,100%), 1fr)); gap:clamp(16px,2vw,24px); }
.service { border:1px solid rgba(255,255,255,0.18); padding:clamp(32px,4vw,52px); display:flex; flex-direction:column; gap:18px; background:rgba(255,255,255,0.02); }
.service .en { margin:0; font-size:12px; font-weight:500; letter-spacing:0.22em; color:var(--mint); }
.service h3 { margin:0; font-family:var(--serif); font-weight:500; font-size:clamp(24px,2.6vw,30px); letter-spacing:0.06em; }
.service p.t { margin:0; font-size:15px; line-height:2; color:var(--on-deep); text-wrap:pretty; }
.tags { margin:10px 0 0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:8px; }
.tags li { font-size:13px; letter-spacing:0.04em; padding:8px 14px; border:1px solid rgba(255,255,255,0.28); color:#ffffff; }

/* 05 fees */
.fee-figs { margin-top:clamp(48px,6vw,72px); display:grid; grid-template-columns:repeat(auto-fit, minmax(min(360px,100%), 1fr)); border-top:1px solid var(--ink); border-bottom:1px solid var(--line); }
.fee-fig { padding:40px 0 44px; }
.fee-fig + .fee-fig { border-left:1px solid var(--line); padding-left:clamp(24px,5vw,72px); }
.fee-label { margin:0 0 18px; font-size:14px; letter-spacing:0.16em; color:var(--sub); }
.fee-num { margin:0; display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 10px; }
.fee-num .n { font-family:var(--latin); font-feature-settings:"lnum"; font-size:clamp(72px,10vw,128px); line-height:0.9; color:var(--green); letter-spacing:-0.01em; }
.fee-num .u { font-family:var(--serif); font-size:clamp(22px,2.6vw,32px); color:var(--ink); }
.fee-num .tax { font-size:14px; color:var(--muted); }
.fee-note { margin:28px 0 0; max-width:820px; font-size:14px; line-height:2; color:var(--sub); }
.fee-detail { margin-top:clamp(48px,6vw,72px); display:grid; grid-template-columns:repeat(auto-fit, minmax(min(440px,100%), 1fr)); gap:40px clamp(32px,5vw,72px); align-items:start; }
.sub-h { margin:0 0 18px; font-family:var(--serif); font-weight:500; font-size:18px; letter-spacing:0.06em; }
.rate { width:100%; border-collapse:collapse; font-size:15px; }
.rate caption { text-align:left; }
.rate th, .rate td { padding:16px 4px; border-bottom:1px solid var(--line); text-align:left; font-weight:400; }
.rate thead th { font-size:12px; letter-spacing:0.14em; color:var(--muted); border-bottom:1px solid var(--ink); padding-top:0; }
.rate td.r { text-align:right; font-family:var(--latin); font-feature-settings:"lnum"; font-size:22px; color:var(--green); }
.rate thead th.r { text-align:right; }
.calc { background:var(--soft); padding:clamp(28px,3vw,40px); }
.calc .case { margin:0 0 16px; font-size:15px; color:var(--ink); }
.calc .formula { margin:0; font-size:15px; line-height:2; color:var(--sub); }
.calc .result { margin:18px 0 0; padding-top:18px; border-top:1px solid #dbe1dd; display:flex; align-items:baseline; gap:10px; }
.calc .result .n { font-family:var(--latin); font-feature-settings:"lnum"; font-size:44px; line-height:1; color:var(--green); }
.calc .result .u { font-family:var(--serif); font-size:18px; }
.calc .memo { margin:20px 0 0; font-size:12.5px; line-height:1.9; color:var(--muted); }
.dd-row { margin-top:clamp(40px,5vw,56px); display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:12px 32px; padding:28px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.dd-row .name { margin:0; font-family:var(--serif); font-size:18px; font-weight:500; letter-spacing:0.06em; }
.dd-row .price { margin:0; display:flex; align-items:baseline; gap:6px; }
.dd-row .price .n { font-family:var(--latin); font-feature-settings:"lnum"; font-size:40px; line-height:1; color:var(--green); }
.dd-row .price .u { font-family:var(--serif); font-size:16px; }
.dd-row .price .tax { font-size:13px; color:var(--muted); }

/* 06 message */
.msg { display:grid; grid-template-columns:272px minmax(0,1fr); gap:40px clamp(48px,7vw,104px); align-items:start; }
.msg-photo { width:100%; height:auto; aspect-ratio:4 / 5; object-fit:cover; object-position:46% 24%; display:block; background:#eceeee; }
.msg-sign { margin-top:40px; padding-top:24px; border-top:1px solid #dbe1dd; }
.msg-quote { margin:0; font-family:var(--serif); font-weight:500; font-size:clamp(24px,3vw,36px); line-height:1.6; letter-spacing:0.04em; text-wrap:balance; }
.msg-body { margin:28px 0 0; font-size:15.5px; line-height:2.1; color:var(--sub); text-wrap:pretty; }
.msg-name { margin:0; display:flex; align-items:baseline; gap:18px; flex-wrap:wrap; }
.msg-name .role { font-size:13px; letter-spacing:0.12em; color:var(--muted); }
.msg-name .nm { font-family:var(--serif); font-size:22px; letter-spacing:0.12em; }
.msg-career { margin:12px 0 0; font-size:13px; line-height:1.95; color:var(--muted); }

/* 07 flow */
.steps { margin:clamp(48px,6vw,72px) 0 0; padding:0; list-style:none; display:grid; grid-template-columns:repeat(auto-fit, minmax(min(220px,100%), 1fr)); gap:0; counter-reset:none; }
.step { position:relative; padding:28px 28px 8px 0; border-top:1px solid var(--line); }
.step::before { content:""; position:absolute; top:-4px; left:0; width:7px; height:7px; border-radius:50%; background:var(--green); }
.step .s { margin:0 0 14px; font-size:12px; font-weight:500; letter-spacing:0.2em; color:var(--green); }
.step .s b { font-family:var(--latin); font-weight:400; font-size:15px; letter-spacing:0.04em; margin-left:6px; font-feature-settings:"lnum"; }
.step h3 { margin:0 0 12px; font-family:var(--serif); font-weight:500; font-size:19px; letter-spacing:0.04em; }
.step p { margin:0; font-size:14px; line-height:1.95; color:var(--sub); }

/* 08 faq */
.faq { margin-top:clamp(40px,5vw,64px); border-top:1px solid var(--ink); }
.faq details { border-bottom:1px solid var(--line); }
.faq summary { list-style:none; cursor:pointer; display:grid; grid-template-columns:36px minmax(0,1fr) 24px; gap:12px; align-items:center; padding:26px 0; font-size:16px; line-height:1.7; font-weight:500; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary .q { font-family:var(--latin); font-size:24px; line-height:1; color:var(--green); }
.faq summary .pm { position:relative; width:16px; height:16px; justify-self:end; }
.faq summary .pm::before, .faq summary .pm::after { content:""; position:absolute; left:0; top:7.5px; width:16px; height:1px; background:var(--ink); transition:transform .25s; }
.faq summary .pm::after { transform:rotate(90deg); }
.faq details[open] summary .pm::after { transform:rotate(0deg); }
.faq summary:hover { color:var(--green); }
.faq .a { display:grid; grid-template-columns:36px minmax(0,1fr) 24px; gap:12px; padding:0 0 28px; }
.faq .a .al { font-family:var(--latin); font-size:24px; line-height:1.2; color:var(--muted); }
.faq .a p { margin:0; font-size:15px; line-height:2; color:var(--sub); }

/* 09 company */
.company { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2.6fr); gap:40px clamp(40px,6vw,96px); align-items:start; }
.company dl { margin:0; display:grid; grid-template-columns:minmax(0,160px) minmax(0,1fr); border-top:1px solid var(--ink); }
.company dt, .company dd { padding:22px 0; border-bottom:1px solid var(--line); }
.company dt { font-size:13.5px; letter-spacing:0.08em; color:var(--muted); padding-right:16px; }
.company dd { margin:0; font-size:15px; line-height:1.9; color:var(--ink); }
.tree { display:grid; gap:22px; }
.tree .div { margin:0; font-family:var(--serif); font-size:16.5px; font-weight:600; letter-spacing:0.04em; color:var(--ink); }
.tree ul { margin:8px 0 0; padding:0 0 0 22px; list-style:none; display:grid; gap:4px; }
.tree li { position:relative; font-size:14px; line-height:1.85; color:var(--sub); }
.tree li::before { content:""; position:absolute; left:-14px; top:0.95em; width:6px; height:1px; background:#9aa6a0; }

/* 10 contact */
.contact-note { margin:40px 0 0; padding-top:24px; border-top:1px solid rgba(255,255,255,0.18); max-width:420px; font-size:14px; line-height:2; letter-spacing:0.04em; color:var(--on-deep); }
.contact-note span { display:block; }
.contact { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(380px,100%), 1fr)); gap:48px clamp(40px,6vw,96px); align-items:start; }
.form { background:#ffffff; color:var(--ink); padding:clamp(24px,4vw,48px); display:grid; gap:20px; }
.row2 { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(130px,100%), 1fr)); gap:20px 16px; }
.fld { display:grid; gap:8px; font-size:13px; font-weight:500; letter-spacing:0.04em; color:var(--ink); }
.form-note { margin:0 0 -4px; font-size:12.5px; letter-spacing:0.04em; color:var(--muted); }
.fld-err { display:block; margin-top:-2px; font-size:12px; font-weight:400; letter-spacing:0.04em; color:#8a5a2b; }
.fld input[aria-invalid="true"], .fld select[aria-invalid="true"], .fld textarea[aria-invalid="true"] { border-color:#c8a27a; background:#fdfaf6; }
.agree-wrap { display:grid; gap:6px; }
.agree-wrap .fld-err { padding-left:30px; margin-top:0; }
.fld input, .fld select, .fld textarea { font:inherit; font-weight:400; font-size:16px; padding:13px 14px; border:1px solid #cdd5d0; background:#ffffff; color:var(--ink); border-radius:0; width:100%; }
.fld input:focus, .fld select:focus, .fld textarea:focus { outline:2px solid var(--green); outline-offset:-1px; border-color:var(--green); }
.fld textarea { resize:vertical; min-height:140px; }
.agree { display:flex; gap:12px; align-items:flex-start; font-size:14px; line-height:1.8; color:var(--sub); }
.agree input { margin-top:5px; width:18px; height:18px; accent-color:var(--green); flex-shrink:0; }
.turnstile-slot { width:300px; max-width:100%; min-height:65px; }
.submit { font:inherit; font-size:15px; font-weight:500; letter-spacing:0.16em; color:#ffffff; background:var(--green); border:0; padding:19px 24px; cursor:pointer; transition:background .2s; }
.submit:hover { background:var(--green-d); }

@media (max-width: 720px) {
  .stats { grid-template-columns:minmax(0,1fr); }
  .stat, .stat + .stat { padding:24px 0; border-left:0; }
  .stat + .stat { border-top:1px solid rgba(255,255,255,0.16); }
  .stat-label { margin-bottom:8px; }
  .hero-wave { opacity:0.6; right:-40%; top:2%; width:150vw; }
  .fee-fig + .fee-fig { border-left:0; padding-left:0; border-top:1px solid var(--line); }
  .company dl { grid-template-columns:minmax(0,1fr); }
  .company dt { border-bottom:0; padding:20px 0 4px; }
  .company dd { padding:0 0 20px; }
  .msg { grid-template-columns:minmax(0,1fr); }
  .msg-photo { width:min(52%, 200px); }
  .faq summary { grid-template-columns:28px minmax(0,1fr) 20px; font-size:15px; }
  .faq .a { grid-template-columns:28px minmax(0,1fr); }
  .btn { padding:17px 24px; }
}
@media (min-width: 721px) and (max-width: 1000px) {
  .msg { grid-template-columns:220px minmax(0,1fr); }
}
@media (max-width: 1000px) {
  .company { grid-template-columns:minmax(0,1fr); }
}

/* ---- sub pages ---- */
.phero { position:relative; background:var(--deep); color:#ffffff; overflow:hidden; }
.phero-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 60%; }
.phero-veil { position:absolute; inset:0; background:linear-gradient(100deg, rgba(12,42,33,0.94) 0%, rgba(12,42,33,0.86) 55%, rgba(12,42,33,0.72) 100%); }
.phero-inner { position:relative; padding-top:clamp(80px,11vw,136px); padding-bottom:clamp(64px,8vw,104px); }
.phero .eyebrow { color:var(--mint); }
.phero h1 span { display:inline-block; }
.phero h1 { margin:0; font-family:var(--serif); font-weight:500; font-size:clamp(28px,4.4vw,48px); line-height:1.5; letter-spacing:0.06em; text-wrap:balance; max-width:900px; }
.narrow { max-width:840px; margin:0 auto; }

/* spec (募集要項) */
.spec-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(36px,5vw,56px); }
.spec-grid > div:last-child { max-width:960px; width:100%; margin-left:auto; }
.spec { margin:0; display:grid; grid-template-columns:minmax(0,160px) minmax(0,1fr); border-top:1px solid var(--ink); }
.spec dt, .spec dd { padding:22px 0; border-bottom:1px solid var(--line); }
.spec dt { font-size:13.5px; letter-spacing:0.08em; color:var(--muted); padding-right:16px; }
.spec dd { margin:0; font-size:15px; line-height:1.95; color:var(--ink); }
.spec dd p { margin:0; }
.spec dd p + p, .spec dd p + ul, .spec dd ul + p { margin-top:10px; }
.spec .strong { font-family:var(--serif); font-weight:600; font-size:16px; letter-spacing:0.04em; }
.spec .note { font-size:13.5px; color:var(--sub); }
.spec .tag { margin-top:14px; font-size:12.5px; font-weight:500; letter-spacing:0.08em; color:var(--green); }
.spec ul { margin:4px 0 0; padding:0 0 0 22px; list-style:none; display:grid; gap:2px; }
.spec li { position:relative; font-size:14.5px; color:var(--sub); }
.spec li::before { content:""; position:absolute; left:-14px; top:0.95em; width:6px; height:1px; background:#9aa6a0; }
.flow { margin:4px 0 0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:8px; counter-reset:f; }
.spec .flow li::before { position:static; width:auto; height:auto; background:none; top:auto; left:auto; }
.flow li { counter-increment:f; display:flex; align-items:center; gap:8px; font-size:14px; padding:8px 14px 8px 10px; border:1px solid var(--line); background:#ffffff; }
.flow li::before { content:counter(f); font-family:var(--latin); font-size:16px; color:var(--green); font-feature-settings:"lnum"; }
.spec-cta { margin-top:32px; display:flex; justify-content:flex-end; }

/* interview */
.archive-note { margin:0; display:inline-flex; align-items:center; gap:10px; font-size:12px; font-weight:500; letter-spacing:0.16em; color:var(--muted); border:1px solid var(--line); padding:6px 12px; background:#ffffff; }
.article { margin-top:clamp(40px,5vw,64px); padding-top:clamp(32px,4vw,48px); border-top:1px solid var(--ink); }
.article h3.a-title { margin:0 0 28px; font-family:var(--serif); font-weight:500; font-size:clamp(22px,2.8vw,30px); line-height:1.6; letter-spacing:0.04em; }
.article h4 { margin:clamp(48px,6vw,72px) 0 24px; padding-top:28px; border-top:1px solid var(--line); font-family:var(--serif); font-weight:500; font-size:clamp(19px,2.2vw,23px); line-height:1.6; letter-spacing:0.04em; }
.article p { margin:0 0 18px; font-size:15px; line-height:2.05; color:var(--sub); }
.article p.intro { color:var(--ink); }
.article p.q { color:var(--ink); font-weight:500; margin-top:30px; }
.article p.who { margin:0 0 8px; font-size:12px; font-weight:500; letter-spacing:0.16em; color:var(--green); }
.article ul { margin:0 0 18px; padding:18px 22px 18px 40px; background:var(--soft); display:grid; gap:4px; font-size:14.5px; line-height:1.9; color:var(--ink); }
.article figure { margin:8px 0 30px; }
.article figure img { width:100%; height:auto; display:block; background:#ffffff; }
.article figcaption { margin-top:10px; font-size:13px; line-height:1.8; color:var(--muted); }
.article .a-cta { margin-top:40px; display:flex; justify-content:center; }

/* forms on this page */
.thanks { min-height:320px; align-content:center; text-align:center; }
.thanks p { margin:0; font-family:var(--serif); font-size:clamp(17px,1.8vw,20px); line-height:2; letter-spacing:0.04em; }

/* legal documents */
.doc { font-size:15px; line-height:2.05; color:var(--sub); }
.doc p { margin:0 0 14px; }
.doc a { color:var(--green); text-decoration:underline; text-underline-offset:3px; }
.toc { margin:0 0 clamp(48px,6vw,72px); padding:28px clamp(20px,3vw,36px); background:var(--soft); }
.toc-label { margin:0 0 12px; font-size:12px; font-weight:500; letter-spacing:0.22em; color:var(--green); }
.toc ol { margin:0; padding:0; list-style:none; display:grid; gap:6px; counter-reset:t; }
.toc li { counter-increment:t; display:grid; grid-template-columns:32px minmax(0,1fr); font-size:14.5px; line-height:1.8; }
.toc li::before { content:counter(t, decimal-leading-zero); font-family:var(--latin); color:var(--green); font-feature-settings:"lnum"; }
.toc a { color:var(--ink); text-decoration:none; }
.toc a:hover { color:var(--green); text-decoration:underline; }
.g-pre { color:var(--ink); }
.g-ki { margin:clamp(40px,5vw,56px) 0 0; text-align:center; font-family:var(--serif); font-size:18px; letter-spacing:0.3em; color:var(--ink); }
.g-sec { margin-top:clamp(56px,7vw,88px); }
.g-sec-no { margin:0 0 10px; font-family:var(--latin); font-size:15px; letter-spacing:0.08em; color:var(--green); font-feature-settings:"lnum"; }
.g-sec h2 { margin:0 0 8px; padding-bottom:18px; border-bottom:1px solid var(--ink); font-family:var(--serif); font-weight:500; font-size:clamp(20px,2.4vw,26px); line-height:1.6; letter-spacing:0.04em; color:var(--ink); }
.g-sec h3 { margin:40px 0 4px; font-family:var(--serif); font-weight:600; font-size:16.5px; letter-spacing:0.06em; color:var(--green); }
.g-lead { margin:28px 0 0 !important; color:var(--ink); font-weight:500; }
.gi { display:grid; grid-template-columns:44px minmax(0,1fr); gap:0 12px; padding:22px 0; border-bottom:1px solid var(--line); }
.gi-no { font-family:var(--latin); font-size:22px; line-height:1.5; color:var(--green); font-feature-settings:"lnum"; }
.gi-body > :last-child { margin-bottom:0; }
.gi-body p.gi-first { color:var(--ink); }
.doc ul.g-ul { margin:4px 0 16px; padding:0 0 0 22px; list-style:none; display:grid; gap:8px; }
.doc ul.g-ul li { position:relative; }
.doc ul.g-ul li::before { content:""; position:absolute; left:-16px; top:0.95em; width:5px; height:5px; border-radius:50%; background:#9aa6a0; }
.doc p.mk { padding-left:1.6em; text-indent:-1.6em; }
.g-end { margin:40px 0 0 !important; text-align:right; color:var(--ink); }
.p-sec { margin-top:clamp(40px,5vw,56px); }
.p-sec h2 { margin:0 0 14px; display:flex; align-items:baseline; gap:14px; font-family:var(--serif); font-weight:500; font-size:clamp(18px,2vw,21px); line-height:1.6; letter-spacing:0.04em; color:var(--ink); }
.p-sec h2 .n { font-family:var(--latin); font-size:15px; color:var(--green); font-feature-settings:"lnum"; flex-shrink:0; }
.p-sec ul { margin:0 0 14px; padding:0 0 0 22px; list-style:none; display:grid; gap:6px; }
.p-sec li { position:relative; }
.p-sec li::before { content:""; position:absolute; left:-16px; top:0.95em; width:5px; height:5px; border-radius:50%; background:#9aa6a0; }
.issuer { margin-top:clamp(56px,7vw,80px); padding-top:24px; border-top:1px solid var(--line); font-size:13px; line-height:1.95; color:var(--muted); }
.issuer p { margin:0 0 10px; }
@media (max-width: 720px) {
  .spec { grid-template-columns:minmax(0,1fr); }
  .spec dt { border-bottom:0; padding:20px 0 4px; }
  .spec dd { padding:0 0 20px; }
  .spec-cta { justify-content:flex-start; }
  .gi { grid-template-columns:34px minmax(0,1fr); gap:0 8px; }
  .gi-no { font-size:19px; }
}

/* ---- ヘッダー（design/ のヘッダー部品より） ---- */
.sh-header { display:flex; align-items:center; justify-content:space-between; gap:24px; height:72px; padding:0 clamp(16px,4vw,48px); background:rgba(255,255,255,0.94); backdrop-filter:saturate(160%) blur(10px); -webkit-backdrop-filter:saturate(160%) blur(10px); border-bottom:1px solid #e3e7e4; font-family:"Noto Sans JP", system-ui, sans-serif; }
.sh-logo { display:flex; align-items:center; flex-shrink:0; }
.sh-logo img { height:30px; width:auto; display:block; }
.sh-nav { display:flex; align-items:center; gap:clamp(14px,1.8vw,30px); }
.sh-nav a.sh-link { color:#16211d; font-size:13.5px; letter-spacing:0.06em; text-decoration:none; white-space:nowrap; padding:6px 0; border-bottom:1px solid transparent; transition:border-color .2s, color .2s; }
.sh-nav a.sh-link:hover { color:#0b6b4a; border-bottom-color:#0b6b4a; }
.sh-cta { display:inline-flex; align-items:center; gap:10px; background:#0b6b4a; color:#ffffff; font-size:13.5px; font-weight:500; letter-spacing:0.08em; padding:12px 22px; text-decoration:none; white-space:nowrap; transition:background .2s; }
.sh-cta:hover { background:#08523a; color:#ffffff; }
.sh-menu-btn { display:none; width:44px; height:44px; border:1px solid #d5dbd7; background:#ffffff; cursor:pointer; padding:0; align-items:center; justify-content:center; }
.sh-menu-btn span { display:block; width:18px; height:1.5px; background:#16211d; position:relative; }
.sh-menu-btn span::before, .sh-menu-btn span::after { content:""; position:absolute; left:0; width:18px; height:1.5px; background:#16211d; }
.sh-menu-btn span::before { top:-6px; } .sh-menu-btn span::after { top:6px; }
.sh-drawer { display:none; }
@media (max-width: 1080px) {
  .sh-nav .sh-link { display:none; }
  .sh-menu-btn { display:inline-flex; }
  .sh-drawer { display:block; background:#ffffff; border-bottom:1px solid #e3e7e4; padding:8px clamp(16px,4vw,48px) 20px; font-family:"Noto Sans JP", system-ui, sans-serif; }
  .sh-drawer a { display:flex; justify-content:space-between; align-items:center; padding:14px 0; border-bottom:1px solid #eef1ef; color:#16211d; font-size:15px; text-decoration:none; }
}
@media (max-width: 560px) {
  .sh-cta { padding:11px 14px; font-size:12.5px; letter-spacing:0.04em; }
  .sh-logo img { height:26px; }
  .sh-header { gap:12px; height:64px; }
}

/* ---- フッター（design/ のフッター部品より） ---- */
.sf { background:#ffffff; border-top:1px solid #e3e7e4; padding:clamp(48px,6vw,72px) clamp(16px,4vw,48px) 28px; font-family:"Noto Sans JP", system-ui, sans-serif; color:#4a5651; }
.sf-inner { max-width:1160px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit, minmax(min(260px,100%), 1fr)); gap:40px clamp(24px,4vw,64px); align-items:start; }
.sf-logo { height:30px; width:auto; display:block; margin-bottom:20px; }
.sf-addr { margin:0; font-size:13px; line-height:1.9; }
.sf-links { display:grid; gap:12px; font-size:13px; }
.sf-links a { color:#16211d; text-decoration:none; width:fit-content; border-bottom:1px solid transparent; }
.sf-links a:hover { color:#0b6b4a; border-bottom-color:#0b6b4a; }
.sf-certs { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.sf-certs img { height:40px; width:auto; object-fit:contain; display:block; flex-shrink:0; }
.sf-bottom { max-width:1160px; margin:48px auto 0; padding-top:20px; border-top:1px solid #dfe4e0; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.sf-copy { margin:0; font-size:12px; letter-spacing:0.08em; color:#5f6a65; font-family:"EB Garamond", Georgia, serif; }

/* ---- 変換時に追加したもの ---- */
/* hidden 属性で隠す要素（スマホのメニュー、入力漏れの表示、送信後の表示）を確実に隠す */
[hidden] { display:none !important; }
/* 制作環境では <dc-import style="position:sticky; top:0; z-index:30; display:block"> だったヘッダーの外枠 */
.sh-sticky { position:sticky; top:0; z-index:30; display:block; }
/* 見つからないページ（404） */
.nf-text { margin:0; font-size:16px; line-height:2.05; color:var(--sub); }
.nf-actions { margin:40px 0 0; }
/* 送信できなかったときの表示（D-4） */
.form-error { margin:0; font-size:13px; line-height:1.8; letter-spacing:0.04em; color:#8a5a2b; }
