/* Home art direction: warm paper, clear hierarchy, product-led motion. */
.home { --space-5:20px; --radius-card:14px; --shadow-card:0 8px 24px #25231e08; }
.home .container { max-width:1280px; padding-inline:40px; }
.home .section-pad { padding-block:112px; }
.home .section-title { font-size:clamp(28px,3vw,40px); line-height:1.55; letter-spacing:-.035em; }
.home .section-lead { font-size:16px; line-height:2; max-width:760px; }
.home .eyebrow { border:0; border-radius:0; background:none; padding:0; gap:10px; font-size:12px; letter-spacing:.1em; }
.home .eyebrow::before { content:''; width:20px; height:2px; background:var(--color-brand-teal); }
.home .btn { border-radius:8px; transition:background .2s, transform .2s; }
.home .btn-primary { background:var(--color-brand-orange); box-shadow:none; }
.home .btn:hover { transform:translateY(-2px); box-shadow:none; }
.home .btn-primary:hover { background:var(--color-orange-dark); }
.home :focus-visible { outline:3px solid var(--color-brand-teal); outline-offset:5px; }
.home .site-header { background:#fffdf9f2; }
.home .site-nav { margin-right:20px; }
.home .site-nav a { font-size:13px; }
.home .btn-login { border:0; font-size:13px; padding-inline:12px; }
.home .header-actions .btn { font-size:13px; padding:12px 20px; }
.home .hero { padding:80px 0 0; background:var(--color-cream); }
.home .hero::before,.home .hero::after { display:none; }
.home .hero-bg-full { opacity:.16; }
.home .hero-bg-decoration::after { background:linear-gradient(90deg,var(--color-cream) 35%,transparent); }
.home .hero > .container:first-of-type { grid-template-columns:1.1fr 1fr; gap:48px; }
.home .hero-copy { position:relative; z-index:2; padding-bottom:30px; }
.home .hero-copy h1 { font-size:clamp(40px,4.5vw,64px); line-height:1.42; letter-spacing:-.055em; margin-bottom:24px; }
.home .hero-copy .section-lead { font-size:15px; margin-bottom:20px; }
.home .hero-copy .section-lead .text-teal { color:inherit; font-weight:700; }
.home .hero-subhook { font-size:12px; margin-bottom:24px; }
.home .hero-ctas { margin-bottom:36px; }
.home .hero-ctas .btn { min-width:236px; justify-content:space-between; padding:18px 24px; }
.home .hero-stats { gap:20px; padding-top:24px; border-top:1px solid #dedbd4; flex-wrap:nowrap; }
.home .heart-box { background:none; width:32px; }
.home .hero-stat-items { gap:12px; }
.home .hero-stat-item { font-size:10px; }
.home .hero-stat-item img { width:20px; height:20px; }
.home .hero-stat-satisfaction-text .note { font-size:9px; }
.home .hero-media { position:relative; min-width:0; height:520px; display:flex; align-items:center; transform:translateY(var(--hero-shift,0px)); }
.home .hero-cards { width:calc(100% + 160px); flex:none; gap:22px; padding:60px 20px; transform:rotate(-12deg); mask-image:none; scroll-behavior:auto; }
.home .hero-card { flex-basis:220px; border:5px solid white; border-radius:18px; box-shadow:0 12px 24px #362a1914; }
.home .hero-card:hover { transform:none; box-shadow:0 12px 24px #362a1914; }
.hero-motion-toggle { position:absolute; z-index:3; bottom:0; right:0; border:1px solid #dedbd4; background:var(--color-cream); border-radius:6px; padding:8px 12px; font-size:11px; color:var(--color-text-secondary); }
.home .hero .hero-sns-row { display:flex; margin-top:32px; padding-block:24px; border-top:1px solid #dedbd4; }
.home .hero-sns-list { gap:28px; }
.home .sns-label { font-size:11px; letter-spacing:.08em; }
.home .sns-badge { width:28px; height:28px; background:none; }
.home .sns-badge img { width:22px; height:22px; }
.home .intro-video-section .container { display:grid; grid-template-columns:.85fr 1.15fr; column-gap:64px; text-align:left; align-items:start; }
.home .intro-video-section .eyebrow { grid-column:1; margin-top:24px; }
.home .intro-video-section .section-title { grid-column:1; font-size:32px; }
.home .intro-video-section .section-lead { grid-column:1; margin:16px 0 0; }
.home .intro-video-wrap { grid-column:2; grid-row:1 / 4; width:100%; margin:0; border-radius:12px; box-shadow:none; }
.home .reproduce-section { background:var(--color-cream); }
.home .reproduce-list { max-width:none; gap:32px; margin-top:56px; }
.home .reproduce-case { border-top:1px solid #d9d5cc; padding-top:22px; }
.home .repro-case-no { background:none; color:var(--color-brand-teal); padding:0; margin-right:8px; letter-spacing:.12em; }
.home .repro-case-tag { background:none; padding:0; color:var(--color-text-secondary); }
.home .repro-case-hook { min-height:3em; margin-top:8px; font-size:13px; }
.home .repro-compare { gap:12px; }
.home .repro-phone { max-width:145px; border-radius:12px; box-shadow:none; }
.home .repro-label { background:none; padding:0; font-size:10px; }
.home .repro-label.made { background:none; color:var(--color-orange-dark); }
.home .step-section { text-align:left; }
.home .step-section .section-lead { margin-left:0; }
.home .step-list { position:relative; gap:32px; padding-top:32px; text-align:left; }
.home .step-list::before,.home .step-list::after { content:''; position:absolute; top:0; left:0; width:100%; height:2px; background:var(--color-border); }
.home .step-list::after { background:var(--color-brand-teal); transform:scaleX(var(--step-progress,1)); transform-origin:left; }
.home .step-item { align-items:flex-start; }
.home .step-item .step-badge { color:var(--color-brand-teal); background:none; padding:0; letter-spacing:.1em; }
.home .step-item .step-media { max-width:190px; align-self:center; box-shadow:none; margin-block:12px 28px; }
.home .step-item h3,.home .step-item p { margin-left:0; margin-right:0; max-width:none; }
.home .step-item h3 { font-size:17px; min-height:3em; line-height:1.7; }
.home .step-item p { font-size:13px; line-height:1.9; }
.home .time-section { background:var(--color-teal-light); }
.home .time-card { box-shadow:none; border-radius:12px; }
.home .time-banner { background:none; border-top:1px solid #3ba7bf40; border-radius:0; padding:32px 0 0; }
.home .pricing-section { background:var(--color-cream); }
.home .pricing-grid { gap:16px; }
.home .pricing-card { box-shadow:none; border:1px solid #dedbd4; padding:28px 20px; border-radius:10px; }
.home .pricing-card.popular { border:2px solid var(--color-brand-teal); box-shadow:none; }
.home .pricing-card.popular,.home .popular-badge,.home .pricing-card.popular .btn,.home .final-cta-btn { animation:none; }
.home .pricing-card .btn { padding-inline:12px; font-size:13px; }
.home .founder-section { background:#fff; overflow:visible; }
.home .founder-section .container { grid-template-columns:.8fr 1.2fr; gap:100px; }
.home .founder-photo-wrap { position:sticky; top:112px; }
.home .founder-photo { box-shadow:none; border-radius:8px; }
.home .founder-badge { position:static; padding:24px 0; box-shadow:none; }
.home .founder-copy h2 { font-size:32px; line-height:1.7; }
.home .founder-quote { font-size:12px; }
.home .founder-copy .body-text { font-size:14px; line-height:2.1; }
.home .final-cta { background:var(--color-brand-teal); }
.home .final-cta-decoration { display:none; }
.home .final-cta .final-cta-btn { background:#fff; }
.home .final-footer-nav { flex-direction:row; flex-wrap:wrap; gap:20px; }
.home .final-app-img { filter:none; }
.js .home .reveal,.js .home .reveal-right,.js .home .reveal-left { transform:translateY(20px); transition-duration:.65s; }
.js .home .is-visible { transform:none; }
.js .home .hero-copy,.js .home .hero-media { opacity:1; }
.js .home .hero-media { transform:translateY(var(--hero-shift,0px)); transition:none; }
@media (max-width:1100px) {
  .home .hero > .container:first-of-type { gap:24px; }
  .home .hero-stats { flex-wrap:wrap; }
  .home .hero-stat-divider { display:none; }
  .home .hero-stat-items { gap:16px; }
  .home .hero-copy h1 { font-size:44px; }
}
@media (max-width:768px) {
  .home .container { padding-inline:24px; }
  .home .section-pad { padding-block:72px; }
  .home .hero { padding-top:40px; }
  .home .hero > .container:first-of-type { grid-template-columns:1fr; gap:8px; }
  .home .hero-copy { padding:0; }
  .home .hero-copy h1 { font-size:clamp(34px,7.5vw,52px); }
  .home .hero-copy h1 br { display:block; }
  .home .hero-copy .section-lead { font-size:13px; }
  .home .hero-subhook { font-size:10px; }
  .home .hero-stats { gap:18px; }
  .home .hero-stat-items { flex:1; gap:10px; }
  .home .hero-media { height:310px; margin-top:24px; }
  .home .hero-cards { width:calc(100% + 60px); margin-left:-20px; gap:16px; padding:30px 16px; transform:rotate(-8deg); }
  .home .hero-card { flex-basis:142px; border-width:3px; }
  .home .hero .hero-sns-row { margin-top:20px; }
  .home .hero-sns-list { gap:20px; }
  .home .sns-badge { width:22px; }
  .home .intro-video-section .container { display:block; }
  .home .intro-video-section .eyebrow { margin-top:0; }
  .home .intro-video-section .section-title { font-size:28px; }
  .home .intro-video-section .section-lead { margin-bottom:28px; }
  .home .reproduce-list { gap:40px; }
  .home .repro-phone { max-width:180px; }
  .home .repro-case-hook { min-height:0; margin-bottom:12px; }
  .home .step-list { gap:32px 20px; }
  .home .step-item .step-media { max-width:150px; }
  .home .step-item h3 { font-size:15px; }
  .home .step-item p { font-size:12px; }
  .home .founder-section .container { grid-template-columns:1fr; gap:32px; }
  .home .founder-photo-wrap { position:static; max-width:360px; }
  .home .founder-copy h2 { font-size:27px; }
  .home .final-cta-phone { order:0; }
  .home .final-app-img { width:160px; }
}
@media (prefers-reduced-motion:reduce) {
  .home .hero-media,.js .home .hero-media { transform:none; }
  .home .step-list::after { transform:none; }
}
/* スマホ・タブレット（指で触る端末）：最初の画面の斜めに流れる動画の帯で、縦に指を動かしても
   帯が横スクロールとして指を取ってしまい、ページが下に進まなかった（帯が -8° 傾いているため、
   縦の動きにも横の成分が乗る）。帯は JS で自動で流れるので、指では横に動かさずページのスクロールに回す。
   overflow:hidden でも JS の scrollLeft は効く。PC（マウス）は今のまま。2026-10-24 */
@media (hover:none) and (pointer:coarse) and (prefers-reduced-motion:no-preference) {
  .home .hero-cards { overflow-x:hidden; touch-action:pan-y; }
}
/* 2026-10-28 AIO・SEO: h1 に「何のアプリか」を小さく入れる／比較表の注記 */
.home .hero-copy h1 .hero-h1-kicker { display:block; font-size:clamp(14px,1.3vw,17px); line-height:1.6; letter-spacing:.02em; font-weight:700; color:var(--color-text-secondary); margin-bottom:10px; }
