:root { --ink:#1d2433; --navy:#1f2f4f; --gold:#8a6a1f; --bg:#f5f4f0; --card:#fff; --line:#e3e0d8; --muted:#5b6475; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:"Hiragino Sans","Noto Sans JP","Yu Gothic",system-ui,sans-serif; line-height:1.9; font-size:16px; }
a { color:var(--navy); }
.wrap { max-width:760px; margin:0 auto; padding:0 16px; }
.site-header { background:var(--navy); }
.site-header .wrap { display:flex; flex-wrap:wrap; gap:8px 20px; align-items:center; justify-content:space-between; padding-top:14px; padding-bottom:14px; }
.site-name { color:#fff; font-weight:700; text-decoration:none; font-size:18px; }
.site-header nav a { color:#fff; margin-left:16px; text-decoration:none; font-size:14px; }
.site-header nav a:first-child { margin-left:0; }
main.wrap { padding-top:28px; padding-bottom:48px; }
.page-title { font-size:24px; color:var(--navy); }
.post-list { list-style:none; padding:0; margin:0; }
.post-list li { background:var(--card); border-radius:10px; margin-bottom:12px; }
.post-list a { display:block; padding:16px 18px; text-decoration:none; color:var(--ink); }
.post-list .date, .post .date { display:block; color:var(--muted); font-size:13px; }
.post-list .title { display:block; font-weight:700; font-size:17px; color:var(--navy); }
.post-list .desc { display:block; font-size:14px; color:var(--muted); }
.post { background:var(--card); border-radius:10px; padding:24px 20px; overflow-wrap:anywhere; }
.post h1 { font-size:24px; color:var(--navy); margin-top:0; line-height:1.5; }
.post h2 { font-size:19px; color:var(--navy); border-left:4px solid var(--gold); padding-left:10px; margin-top:32px; }
.post h3 { font-size:17px; color:var(--navy); }
.post img { max-width:100%; height:auto; }
.post pre { background:#f0eee8; padding:12px; overflow-x:auto; border-radius:6px; }
.post table { border-collapse:collapse; display:block; overflow-x:auto; }
.post th, .post td { border:1px solid var(--line); padding:6px 10px; }
.cta { margin-top:24px; background:var(--card); border:2px solid var(--gold); border-radius:10px; padding:18px 20px; }
.button { display:inline-block; background:var(--gold); color:#fff; border:0; border-radius:8px; padding:12px 28px; font-size:16px; font-weight:700; text-decoration:none; cursor:pointer; }
.button:disabled { opacity:.6; cursor:wait; }
.contact-form { background:var(--card); border-radius:10px; padding:24px 20px; }
.contact-form label { display:block; margin-bottom:16px; font-weight:700; font-size:15px; }
.contact-form input:not([type=checkbox]), .contact-form textarea { display:block; width:100%; margin-top:6px; padding:10px 12px; font-size:16px; border:1px solid #c9c5bb; border-radius:6px; font-family:inherit; }
.contact-form .agree { font-weight:400; }
.contact-form .note { font-size:13px; color:var(--muted); }
.contact-form .hp { position:absolute; left:-9999px; }
.cf-turnstile { margin-bottom:16px; }
.req { color:#b3261e; }
.form-status { font-weight:700; }
.form-status.error { color:#b3261e; }
.site-footer { border-top:1px solid var(--line); font-size:13px; color:var(--muted); }
.site-footer a { margin-left:8px; }

/* --- サービス紹介ページ（/lp/）とフォームの追加分 --- */
.site-name { display:inline-flex; align-items:center; gap:8px; }
.site-name img { background:#fff; border-radius:6px; }
.button.ghost { background:transparent; color:var(--navy); box-shadow:inset 0 0 0 2px var(--navy); }
.contact-form select { display:block; width:100%; margin-top:6px; padding:10px 12px; font-size:16px; border:1px solid #c9c5bb; border-radius:6px; font-family:inherit; background:#fff; }
main.wrap .note { font-size:14px; color:var(--muted); }
/* LP の中は、テマヘリAIの画像に合わせて緑を差し色にする */
.lp { --gold:#1d6048; --soft:#eef4f0; }
.lp .wrap { max-width:960px; }
.lp h2 { font-size:clamp(22px,4.5vw,28px); color:var(--navy); line-height:1.5; margin:0 0 12px; text-align:center; }
.lp h2::after { content:""; display:block; width:48px; height:4px; border-radius:2px; background:var(--gold); margin:12px auto 24px; }
.lp h3 { font-size:17px; color:var(--navy); line-height:1.6; margin:0 0 8px; }
.lp p { margin:0 0 12px; }
.lp-sub { text-align:center; color:var(--muted); margin:-12px 0 24px !important; }
.lp-eyebrow { font-size:13px; letter-spacing:.1em; color:var(--gold); font-weight:700; margin:0 0 8px !important; }
.lp-hero { background:#fdfdfd; text-align:center; padding:48px 0 0; border-bottom:1px solid var(--line); }
.lp-hero h1 { font-size:clamp(26px,6vw,42px); line-height:1.4; margin:0 0 12px; color:var(--navy); }
.lp-brand { display:block; font-size:clamp(40px,10vw,68px); color:var(--gold); letter-spacing:.02em; line-height:1.2; margin-bottom:8px; }
.lp-tagline { font-size:clamp(17px,3.5vw,21px); font-weight:700; color:var(--navy); }
.lp-lead { max-width:38em; margin:0 auto 20px !important; }
.lp-checks { list-style:none; padding:0; margin:0 0 24px; display:flex; flex-wrap:wrap; gap:8px 10px; justify-content:center; font-size:14px; font-weight:700; color:var(--gold); }
.lp-checks li { background:var(--soft); border-radius:999px; padding:4px 14px 4px 10px; }
.lp-checks li::before { content:"✓ "; }
.lp-cta { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.lp-cta .button, .lp-check .button { font-size:17px; padding:14px 32px; }
.lp-cta-note { font-size:13px; color:var(--muted); margin:12px 0 0 !important; }
.lp-hero-art { display:block; width:100%; max-width:1200px; height:auto; margin:8px auto 0; }
.lp-sec { padding:56px 0; background:#fdfdfd; }
.lp-sec.alt { background:var(--soft); }
.lp-worries { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.lp-worries li { background:var(--soft); border-radius:8px; padding:12px 14px 12px 44px; position:relative; font-size:15px; line-height:1.7; }
.lp-worries li::before { content:"!"; position:absolute; left:12px; top:13px; width:22px; height:22px; border-radius:50%; background:var(--gold); color:#fff; font-weight:700; font-size:14px; display:flex; align-items:center; justify-content:center; }
.lp-bridge { margin-top:24px !important; padding:16px 18px; border-left:4px solid var(--gold); background:var(--soft); border-radius:0 8px 8px 0; }
.lp-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.lp-grid.three { grid-template-columns:repeat(3,1fr); }
.lp-card { background:#fff; border:1px solid var(--line); border-radius:10px; padding:18px 18px 10px; font-size:15px; line-height:1.8; }
.lp-card.featured { border:2px solid var(--gold); }
.lp-card ul { margin:0 0 8px; padding-left:20px; }
.lp-card li { margin-bottom:4px; }
.lp-phase, .lp-step-no { display:inline-block; font-size:12px; font-weight:700; letter-spacing:.06em; color:#fff; background:var(--gold); border-radius:4px; padding:1px 8px; margin-bottom:8px; }
.lp-small { font-size:14px; color:var(--muted); margin-top:16px !important; }
.lp-steps { list-style:none; padding:0; margin:0 0 20px; }
.lp-steps li { background:#fff; border:1px solid var(--line); border-radius:10px; padding:14px 18px; margin-bottom:10px; font-size:15px; line-height:1.8; }
.lp-steps li.option { border-style:dashed; }
.lp-steps li.option .lp-step-no { background:var(--navy); }
.lp-steps b { display:block; color:var(--navy); font-size:17px; }
.lp-ask { background:#fff; border:1px solid var(--line); border-radius:10px; padding:18px 18px 10px; margin-top:16px; font-size:15px; }
.lp-ask ul { margin:0 0 8px; padding-left:20px; }
.lp-check { text-align:center; background:var(--navy) !important; color:#fff; }
.lp-check h2 { color:#fff; }
.lp-check .lp-eyebrow { color:#bfe0d0; }
.lp-check p { max-width:36em; margin-left:auto !important; margin-right:auto !important; }
.lp-check .lp-checks li { background:rgba(255,255,255,.12); color:#fff; }
.lp-table { overflow-x:auto; }
.lp-table table { width:100%; min-width:640px; border-collapse:collapse; background:#fff; border-radius:10px; font-size:15px; line-height:1.7; }
.lp-table th, .lp-table td { border-bottom:1px solid var(--line); padding:12px 14px; text-align:left; vertical-align:top; }
.lp-table th { color:var(--navy); font-size:14px; }
.lp-table th small { font-weight:400; color:var(--muted); }
.lp-table .own { background:var(--soft); font-weight:700; }
.lp-table th.own { color:var(--gold); border-top:3px solid var(--gold); }
.lp-table tr:last-child > * { border-bottom:0; }
.lp-info { display:grid; grid-template-columns:9em 1fr; max-width:720px; margin:0 auto; background:#fff; border:1px solid var(--line); border-radius:10px; overflow:hidden; font-size:15px; }
.lp-info dt, .lp-info dd { margin:0; padding:14px 18px; border-bottom:1px solid var(--line); }
.lp-info dt { background:var(--soft); font-weight:700; color:var(--navy); }
.lp-info dt:last-of-type, .lp-info dd:last-of-type { border-bottom:0; }
.lp-faq { max-width:760px; margin:0 auto; }
.lp-faq details { background:#fff; border:1px solid var(--line); border-radius:8px; margin-bottom:8px; padding:0 16px; }
.lp-faq summary { cursor:pointer; font-weight:700; color:var(--navy); padding:14px 0; }
.lp-faq summary::before { content:"Q　"; color:var(--gold); }
.lp-faq details > :not(summary) { font-size:15px; }
.lp-faq details ul { margin:0 0 12px; padding-left:20px; }
.lp-flow { list-style:none; counter-reset:flow; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.lp-flow li { counter-increment:flow; background:var(--soft); border-radius:10px; padding:16px; font-size:14px; line-height:1.7; }
.lp-flow li::before { content:counter(flow); display:flex; width:32px; height:32px; border-radius:50%; background:var(--gold); color:#fff; font-weight:700; align-items:center; justify-content:center; margin-bottom:8px; }
.lp-flow b { display:block; color:var(--navy); font-size:16px; }
.lp #contact .wrap { max-width:720px; }
.lp-company { margin-top:24px !important; font-size:13px; color:var(--muted); line-height:1.8; text-align:center; }
@media (max-width:720px) {
  .lp-worries, .lp-grid, .lp-grid.three { grid-template-columns:1fr; }
  .lp-flow { grid-template-columns:1fr 1fr; }
  .lp-hero { padding-top:32px; }
  .lp-cta .button { width:100%; text-align:center; }
  .lp-sec { padding:40px 0; }
  .lp-info { grid-template-columns:1fr; }
  .lp-info dt { border-bottom:0; padding-bottom:6px; }
  .lp-info dd { padding-top:6px; }
  .lp-info dt:last-of-type { border-bottom:0; }
}
.lp-eyebrow.center, .lp-small.center { text-align:center; }
.site-tagline { font-weight:400; font-size:12px; opacity:.85; }
.post .date a { color:inherit; }
.post .made { margin-top:32px; padding-top:12px; border-top:1px solid var(--line); font-size:13px; color:var(--muted); }
.post th, .post td { text-align:left; vertical-align:top; min-width:6em; }
