:root { --green:#064d36; --ink:#15372c; --muted:#596d64; --gold:#dfb44e; --cream:#faf8f2; --border:#d8e2dc; }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { margin:0; color:var(--ink); background:#fff; font-family:"Hiragino Sans","Noto Sans JP","Yu Gothic",sans-serif; line-height:1.8; line-break:strict; word-break:normal; overflow-wrap:normal; -webkit-font-smoothing:antialiased; }
h1,h2,h3,p,figure { margin:0; }
h2,h3 { text-wrap:balance; line-height:1.5; }
h2 { font-size:32px; font-weight:700; }
h3 { font-size:23px; }
p,li { text-wrap:pretty; }
img { display:block; max-width:100%; height:auto; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
a,button,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid #be8c23; outline-offset:4px; }
[hidden] { display:none!important; }
.keep { display:inline-block; white-space:nowrap; max-width:100%; }
.wrap { width:min(1160px,calc(100% - 64px)); margin-inline:auto; }
.section { padding-block:84px; }
.eyebrow { color:#927019; font-size:12px; font-weight:800; letter-spacing:2px; margin-bottom:16px; }
.lead { max-width:680px; margin-top:24px; font-size:17px; color:var(--muted); }
.note { font-size:12px; color:var(--muted); margin-top:20px; }
.text-link { display:inline-block; font-size:15px; font-weight:700; padding-block:10px; text-decoration:underline; text-underline-offset:5px; }
.button { min-height:54px; display:inline-flex; align-items:center; justify-content:center; gap:20px; padding:14px 24px; background:var(--green); border:1px solid var(--green); color:#fff; font-size:15px; font-weight:700; border-radius:6px; white-space:nowrap; line-height:1.5; }
.button:hover { background:#093c2e; }
.button.small { min-height:44px; padding:10px 18px; font-size:13px; }
.button.gold { background:var(--gold); color:var(--green); border-color:var(--gold); }
.button.secondary { background:#fff; color:var(--green); }
.button:disabled { opacity:.6; cursor:wait; }
.site-header { position:sticky; top:0; background:#ffffffed; z-index:20; border-bottom:1px solid var(--border); backdrop-filter:blur(10px); }
.header-inner { width:min(1280px,calc(100% - 64px)); margin:auto; min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand { width:220px; min-width:0; }
nav { display:flex; align-items:center; gap:30px; font-size:14px; font-weight:700; }
.hero { padding-top:32px; }
.hero-visual { width:100%; border-radius:8px; }
.hero-bottom { display:flex; gap:24px; align-items:center; justify-content:space-between; margin-top:24px; }
.hero-bottom p { font-size:18px; font-weight:600; }
.hero-note { margin-top:14px; font-size:13px; color:var(--muted); }
.example-shortcuts { display:flex; flex-wrap:wrap; gap:12px 28px; margin-top:18px; font-size:13px; font-weight:700; }
.example-shortcuts a { text-decoration:underline; text-underline-offset:5px; white-space:nowrap; }
.benefit-grid { display:grid; grid-template-columns:1fr 1fr; gap:56px; margin-top:48px; }
.benefit-grid>* { min-width:0; }
.number { display:block; font-size:12px; font-weight:800; color:#8e6c20; letter-spacing:1px; margin-bottom:16px; }
.benefit-grid h3 { margin-bottom:16px; }
.benefit-grid p { color:var(--muted); font-size:15px; margin-bottom:24px; }
.visual-zoom { padding:0; border:0; background:transparent; width:100%; text-align:left; border-radius:6px; }
.visual-zoom img { border-radius:6px; }
.flow { background:var(--cream); }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; padding:0; margin:48px 0 32px; list-style:none; }
.steps li { min-width:0; border-top:1px solid #c5cec7; padding-top:24px; }
.step-index { display:flex; width:42px; height:42px; background:var(--green); color:var(--gold); align-items:center; justify-content:center; border-radius:50%; font-size:22px; margin-bottom:16px; }
.steps h3 { font-size:20px; margin-bottom:12px; }
.steps p { color:var(--muted); font-size:14px; }
.support-line { padding-top:24px; border-top:1px solid #dce2db; font-size:15px; font-weight:600; }
.director-grid { display:grid; grid-template-columns:1.35fr 1fr; gap:40px; align-items:center; margin-top:36px; }
.director-grid>* { min-width:0; }
.director-requests { padding:28px; border:1px solid var(--border); border-radius:8px; background:var(--cream); }
.director-requests h3 { font-size:22px; margin-bottom:20px; }
.director-caption { color:var(--green); font-size:12px; font-weight:700; }
.director-requests ul { list-style:none; padding:0; margin:16px 0 24px; display:grid; gap:12px; font-size:15px; font-weight:600; }
.director-requests li { padding-left:12px; border-left:3px solid var(--gold); }
.director-requests>p:not(.director-caption) { color:var(--muted); font-size:14px; }
.voice-visual { margin-top:32px; }
.voice-visual img { width:100%; }
.voice-owner { margin-top:24px; color:var(--muted); font-size:14px; }
.voice-quote { margin:20px 0 0; padding-left:24px; border-left:3px solid var(--gold); max-width:850px; font-size:17px; }
.proof-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:36px; }
.proof-grid>* { min-width:0; }
.proof-media { background:var(--cream); }
.proof-media img { width:100%; aspect-ratio:4/5; object-fit:contain; }
.proof-grid figcaption { text-align:left; margin-top:18px; }
.proof-grid h3 { font-size:19px; margin-block:10px; }
.proof-grid figcaption p { color:var(--muted); font-size:13px; }
.example-label { display:inline-block; padding:3px 10px; color:var(--green); background:#edf3ee; border-radius:3px; font-size:10px; letter-spacing:1px; font-weight:700; }
.after-label { background:var(--green); color:#fff; }
.telop-guide { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; margin-top:36px; padding-top:32px; border-top:1px solid var(--border); }
.telop-guide>* { min-width:0; }
.telop-guide h3 { font-size:22px; margin-bottom:14px; }
.telop-guide p { color:var(--muted); font-size:14px; }
.line-message { margin:0; padding:24px; border-left:4px solid var(--green); background:var(--cream); border-radius:0 6px 6px 0; }
.line-message span { display:block; color:var(--green); font-size:12px; font-weight:700; margin-bottom:10px; }
.line-message p { color:var(--ink); font-weight:600; }
.video-examples { background:var(--cream); }
.video-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:36px; }
.video-grid>* { min-width:0; }
.video-label { display:flex; flex-wrap:wrap; gap:8px 16px; align-items:center; justify-content:space-between; margin-bottom:16px; }
.video-label h3 { font-size:19px; }
.video-label span { padding:3px 10px; border-radius:3px; font-size:11px; font-weight:700; white-space:nowrap; }
.video-grid video { display:block; width:100%; max-width:100%; height:auto; aspect-ratio:9/12; object-fit:contain; background:#102b21; border-radius:6px; }
.video-caption { margin-top:12px; color:var(--muted); font-size:13px; }
.editing-points { display:flex; flex-wrap:wrap; gap:10px 24px; padding:0; margin:28px 0 0; list-style:none; font-size:13px; font-weight:600; }
.editing-points li { white-space:nowrap; }
.editing-points li::before { content:'✓'; color:var(--green); margin-right:8px; }
figcaption { font-size:12px; margin-top:10px; text-align:center; }
.price { background:var(--green); color:#fff; }
.price .eyebrow { color:var(--gold); }
.price-inner { display:grid; grid-template-columns:1fr 1fr; gap:64px; }
.price-inner>div { min-width:0; }
.price h2 { margin-bottom:24px; }
.price-value { display:flex; align-items:baseline; flex-wrap:nowrap; gap:8px; line-height:1.4; }
.price-value strong { font-size:64px; font-family:Georgia,"Times New Roman",serif; color:#f1d28b; }
.price-value span { font-size:15px; white-space:nowrap; }
.price-frequency { margin-block:18px; font-weight:700; }
.price ul { margin:20px 0; padding-left:20px; columns:2; font-size:14px; }
.price li { margin-bottom:8px; break-inside:avoid; }
.price .note { color:#e2eee7; margin-bottom:28px; }
.faq details { border-bottom:1px solid var(--border); padding-block:22px; }
.faq h2 { margin-bottom:20px; }
summary { cursor:pointer; font-size:16px; font-weight:700; }
.faq details p { color:var(--muted); font-size:15px; max-width:800px; padding-top:16px; }
.consult-section { background:var(--cream); }
.consult-grid { display:grid; grid-template-columns:.82fr 1fr; gap:68px; align-items:start; }
.consult-grid>* { min-width:0; }
.consult-intro h2 { margin-bottom:24px; }
.consult-intro>p:not(.eyebrow) { color:var(--muted); font-size:15px; }
.consult-free { margin-top:26px; font-weight:700; }
.contact-alternative { border-top:1px solid var(--border); margin-top:32px; padding-top:24px; display:flex; flex-direction:column; align-items:flex-start; font-size:13px; }
.form-panel { background:#fff; border:1px solid var(--border); border-radius:8px; padding:32px; min-width:0; }
.field { min-width:0; margin-bottom:20px; }
.field label,legend { font-size:13px; font-weight:700; display:block; margin-bottom:8px; }
.required,.optional { font-size:10px; vertical-align:middle; padding:3px 6px; margin-left:6px; border-radius:3px; background:#eef4ef; color:var(--green); white-space:nowrap; }
.optional { background:#f3f3f0; color:#6a756f; }
.field input,.field select,.field textarea { display:block; width:100%; min-width:0; max-width:100%; padding:12px; min-height:48px; border:1px solid #c7d5cd; border-radius:4px; background:#fff; color:var(--ink); font-size:16px; line-height:1.5; }
.field textarea { resize:vertical; }
.field input::placeholder,.field textarea::placeholder { font-size:13px; color:#6b7972; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-row>* { min-width:0; }
fieldset { border:0; padding:0; margin:0 0 24px; min-width:0; }
.goal-options { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.goal-options label { border:1px solid #c7d5cd; border-radius:4px; padding:12px 8px; display:flex; align-items:center; justify-content:center; gap:5px; cursor:pointer; font-size:12px; font-weight:600; white-space:nowrap; }
.goal-options label:has(input:checked) { border-color:var(--green); background:#edf5ef; }
.goal-options input,.consent input { accent-color:var(--green); flex-shrink:0; width:16px; height:16px; margin:0; }
.consent { display:flex; gap:10px; align-items:flex-start; font-size:12px; }
.consent input { margin-top:3px; }
.consent a { text-decoration:underline; text-underline-offset:3px; }
.form-submit { width:100%; margin-top:24px; }
.centered { text-align:center; margin-top:10px; }
.trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.form-error { color:#b82929; font-size:13px; margin-top:16px; }
.receipt { padding-block:24px; }
.receipt h3 { font-size:22px; margin-block:24px; }
.receipt p { margin-bottom:18px; font-size:14px; }
.receipt-icon { display:inline-flex; align-items:center; justify-content:center; width:60px; height:60px; background:#edf5ef; border-radius:50%; color:var(--green); font-size:30px; }
.footer { padding-block:48px; display:flex; justify-content:space-between; gap:32px; font-size:13px; }
.footer img { width:200px; margin-bottom:16px; }
.footer-links { display:flex; flex-direction:column; gap:12px; }
.mobile-cta { display:none; }
dialog { max-width:min(620px,calc(100% - 32px)); width:100%; max-height:calc(100dvh - 48px); padding:0; border:1px solid var(--border); border-radius:8px; color:var(--ink); }
dialog::backdrop { background:#092419b8; }
.dialog-body { padding:32px; }
.dialog-body h2 { font-size:23px; }
.dialog-body dl { font-size:13px; margin-block:24px; }
.dialog-body dt { font-weight:700; margin-top:14px; }
.dialog-body dd { margin:0; white-space:pre-wrap; overflow-wrap:break-word; }
.dialog-actions { display:flex; gap:12px; margin-top:24px; flex-wrap:wrap; }
.dialog-actions .button { flex:1; }
#zoom-dialog { width:min(780px,calc(100% - 32px)); background:#fff; padding:52px 12px 12px; }
.zoom-close { position:absolute; right:16px; top:12px; border:0; background:var(--green); color:#fff; border-radius:4px; padding:8px 14px; font-size:13px; }
#zoom-image { width:100%; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip { position:fixed; visibility:hidden; top:8px; left:8px; transform:translateY(-150%); background:#fff; z-index:50; padding:10px; }
.skip:focus { visibility:visible; transform:none; }
.preview-banner { padding:8px 16px; background:#fff1c7; text-align:center; font-size:12px; }
.consulting .mobile-cta { display:none; }
@media(max-width:900px) {
  .desktop-link { display:none; }
  .benefit-grid,.price-inner { gap:32px; }
  .consult-grid { grid-template-columns:1fr; gap:36px; }
  .hero-bottom { align-items:flex-start; }
  .hero-bottom p { font-size:15px; }
  h2 { font-size:27px; }
}
@media(max-width:700px) {
  .wrap,.header-inner { width:calc(100% - 32px); }
  .header-inner { min-height:68px; gap:12px; }
  .brand { width:174px; }
  nav { gap:0; flex-shrink:0; }
  .desktop-link { display:none; }
  .button.small { padding:10px 14px; font-size:12px; }
  .hero { padding-top:16px; }
  .hero-visual { aspect-ratio:4/5; }
  .hero-bottom { display:block; margin-top:20px; }
  .hero-bottom p { font-size:16px; margin-bottom:16px; }
  .hero-bottom .button { width:100%; font-size:13px; gap:10px; padding-inline:12px; }
  .hero-note { font-size:12px; }
  .section { padding-block:56px; }
  h2 { font-size:24px; }
  h3 { font-size:20px; }
  .lead { font-size:14px; }
  .benefit-grid { gap:24px; margin-top:32px; }
  .benefit-grid h3 { font-size:17px; }
  .benefit-grid p { font-size:13px; }
  .benefit-grid .text-link { font-size:12px; }
  .number { letter-spacing:0; font-size:10px; }
  .steps { grid-template-columns:1fr; gap:24px; margin-top:32px; }
  .steps li { display:grid; grid-template-columns:42px 1fr; gap:0 16px; padding-top:20px; }
  .step-index { grid-row:1/3; }
  .steps h3 { font-size:18px; }
  .steps p { font-size:13px; }
  .support-line { font-size:13px; }
  .director-grid { grid-template-columns:1fr; gap:24px; margin-top:28px; }
  .director-requests { padding:22px; }
  .director-requests h3 { font-size:20px; }
  .director-requests ul { font-size:14px; }
  .proof-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; margin-top:28px; }
  .proof-grid h3 { font-size:15px; }
  .proof-grid figcaption p { font-size:12px; }
  .telop-example { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:center; }
  .telop-example figcaption { margin:0; }
  .telop-guide { grid-template-columns:1fr; gap:20px; margin-top:28px; padding-top:24px; }
  .telop-guide h3 { font-size:20px; }
  .telop-guide p { font-size:13px; }
  .line-message { padding:20px; }
  .video-grid { grid-template-columns:1fr; gap:28px; margin-top:28px; }
  .video-label h3 { font-size:17px; }
  .video-grid video { aspect-ratio:9/13; }
  .video-caption { font-size:12px; }
  .editing-points { gap:10px 16px; font-size:12px; }
  .price-inner { grid-template-columns:1fr; gap:32px; }
  .price-value strong { font-size:48px; }
  .price ul { font-size:13px; }
  summary { font-size:14px; }
  .faq details p { font-size:13px; }
  .form-panel { padding:20px; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .goal-options { gap:5px; }
  .goal-options label { font-size:11px; padding:12px 4px; }
  .goal-options input { width:14px; height:14px; }
  .form-submit { font-size:13px; gap:12px; }
  .footer { flex-direction:column; padding-bottom:110px; }
  .mobile-cta { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); position:fixed; z-index:15; bottom:0; width:100%; background:#fffffff5; border-top:1px solid var(--border); }
  .mobile-cta>span { font-size:11px; font-weight:700; white-space:nowrap; }
  .dialog-body { padding:20px; }
  .dialog-body h2 { font-size:20px; }
  .dialog-actions { flex-direction:column; }
  .dialog-actions .button { width:100%; font-size:13px; }
}
@media(max-width:360px) { .benefit-grid { gap:14px; } .brand { width:156px; } .goal-options label { font-size:10px; gap:3px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
