/* ============================================================
   ハリガミ Product LP — 共有スタイルシート
   デザインハンドオフ「ハリガミ LP」hi-fi 準拠（2026-08-30）。
   harigami.html から読み込む単一の CSS。値の変更は必ずこのファイルに対して行うこと。
   ?v= はキャッシュバスター。CSS を変更したら harigami.html の
   <link rel="stylesheet" href="harigami-lp.css?v=..."> の値を必ず更新すること
   （X アプリ内ブラウザ等の古い CSS ヒューリスティックキャッシュ対策。KAETAO/SwingDiff LP と同じ運用）。
   ============================================================ */

/* ── Fonts（自前ホスト。tools/subset-kaetao-fonts.py でサブセット生成済み） ──
   ⚠️ ページの文言（harigami.html / このCSS）を変更したら、
   tools/subset-kaetao-fonts.py を再実行してサブセットを作り直すこと。
   新しく使った文字がサブセットに含まれていないと、その文字だけ別フォントで描画される。 */
@font-face{font-family:'Space Grotesk';src:url('fonts/SpaceGrotesk-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('fonts/SpaceGrotesk-Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('fonts/SpaceGrotesk-SemiBold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('fonts/SpaceGrotesk-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Zen Kaku Gothic New';src:url('fonts/ZenKakuGothicNew-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Zen Kaku Gothic New';src:url('fonts/ZenKakuGothicNew-Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Zen Kaku Gothic New';src:url('fonts/ZenKakuGothicNew-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}

/* ── Design Tokens ──
   ハンドオフ tokens/{colors,typography,spacing}.css のうち、この LP で使う値のみ。
   ダークテーマ [data-theme="dark"] は未使用のため移植しない。 */
:root{
  color-scheme:light;

  --accent:#D95B43;
  --accent-hover:#B84A35;
  --on-accent:#FFFFFF;
  --board:#F1E7D3;
  --background:#FBF6EE;
  --scrap:#FFFDF8;
  --tape:rgba(242,222,182,.85);
  --ink:#3B3129;
  --ink-secondary:#756C64;
  --ink-tertiary:#8B8177;
  --separator:rgba(59,49,41,.10);
  --link:var(--accent);
  --scrap-shadow:rgba(59,49,41,.18);
  --scrap-radius:3px;
  --scrap-shadow-card:0 2px 6px var(--scrap-shadow);
  --tape-shadow:0 1px 2px rgba(59,49,41,.15);
  --cta-radius:999px;
  --cta-pad:14px 36px;
  --cta-shadow:0 3px 8px rgba(217,91,67,.35);
  --fs-cta:16px;
  --font-brand:'Space Grotesk','Zen Kaku Gothic New',sans-serif;
  --maxw:1080px;
}

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-brand);background:var(--board);color:var(--ink);text-wrap:pretty}
a{color:var(--link);text-decoration:none}a:hover{color:var(--accent-hover)}
img{max-width:100%;height:auto}
:where(a,button,summary):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}

/* ── Reduced Motion ── */
@media (prefers-reduced-motion: reduce) {
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important}
}

/* 印刷/PDF保存では IntersectionObserver が発火しないため、スクロール出現の
   対象要素が opacity:0 のまま残り、未 reveal の要素が真っ白に印刷されてしまう。
   印刷時はまとめて可視状態に強制する。 */
@media print {
  .hg-index__row,.hg-feat__txt,.hg-feat__art,.hg-pgrid,.hg-faq__inner,.hg-closing__inner{opacity:1!important;transform:none!important;transition:none!important}
}

/* ── Skip to Content ── */
.skip-to-content{position:absolute;top:-100%;left:0;padding:.75rem 1.5rem;background:var(--ink);color:var(--board);font-weight:600;z-index:9999;transition:top .2s ease}
.skip-to-content:focus{top:0}

/* sticky nav（60px + 下罫線 1px）の分だけアンカー着地位置を下げる（swingdiff/kaetao と同様）。 */
section[id]{scroll-margin-top:61px}

/* ── Layout Helpers ── */
/* ハンドオフは reset 無し（content-box）で、コンテンツ幅 1080px ＋ 左右 padding 28px。
   上の border-box リセットに引きずられて内容幅が 1024px に縮まないよう content-box を明示する。 */
.hg-wrap{box-sizing:content-box;max-width:var(--maxw);margin:0 auto;padding:0 28px}

/* ── Eyebrow ── */
/* .hg-eyebrow / .hg-num / .hg-note / .hg-fig はハンドオフでは <div> だったが、
   ここでは <p> にしているため UA デフォルトの margin を明示的に打ち消す。 */
.hg-eyebrow{font:500 12px/1 var(--font-brand);letter-spacing:.22em;color:var(--ink-tertiary);display:flex;align-items:center;gap:12px;margin:0}
/* eyebrow 内の <span lang="en"> を独立した flex アイテムにしない（gap 分だけ幅が増え、
   390px で INDEX 行が折り返してしまうため）。 */
.hg-eyebrow span{display:contents}
.hg-eyebrow::after{content:"";flex:1;height:1px;background:var(--separator)}
.hg-eyebrow b{color:var(--accent);font-weight:700}
.hg-eyebrow--center{justify-content:center}
.hg-closing .hg-eyebrow{justify-content:center}
.hg-closing .hg-eyebrow::after{display:none}

/* ── Buttons ── */
.hg-cta{display:inline-block;background:var(--accent);color:var(--on-accent);font-weight:700;font-size:var(--fs-cta);line-height:1;padding:var(--cta-pad);border-radius:var(--cta-radius);box-shadow:var(--cta-shadow)}
.hg-cta:hover{color:var(--on-accent);opacity:.9}
.hg-cta:active{opacity:.75}
.hg-ghost{display:inline-block;font-weight:700;font-size:15px;color:var(--accent);padding:14px 10px}

/* ── Nav ── */
.hg-nav{position:sticky;top:0;z-index:50;background:rgba(241,231,211,.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--separator)}
.hg-nav__inner{display:flex;align-items:center;gap:26px;height:60px}
.hg-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;color:var(--ink)}
.hg-brand img{width:28px;height:28px;border-radius:7px;display:block}
.hg-navlinks{display:flex;gap:22px;margin-left:auto;align-items:center;font:500 13px/1 var(--font-brand)}
.hg-navcta{background:var(--accent);color:var(--on-accent);font-weight:700;font-size:13px;padding:9px 18px;border-radius:999px}
.hg-navcta:hover{color:var(--on-accent)}

/* ── Paper scrap + phone ── */
.hg-scrap{background:var(--scrap);border-radius:var(--scrap-radius);box-shadow:var(--scrap-shadow-card);position:relative}
.hg-tape{position:absolute;top:-9px;left:50%;transform:translateX(-50%) rotate(-2deg);width:64px;height:18px;background:var(--tape);box-shadow:var(--tape-shadow)}
.hg-phone{width:min(320px,78vw);aspect-ratio:1320/2868;border-radius:42px;overflow:hidden;box-shadow:0 14px 36px rgba(59,49,41,.26),0 0 0 7px #3B3129,0 0 0 9px #2A241E;background:#FBF6EE;position:relative}
.hg-phone img{width:100%;height:100%;object-fit:cover;display:block}
.hg-phonewrap{position:relative;display:inline-block}
.hg-phonewrap .hg-tape{top:-10px;z-index:2}
.hg-fig{font:500 11px/1.6 var(--font-brand);letter-spacing:.14em;color:var(--ink-tertiary);margin:18px 0 0;text-align:center}

/* ── Hero (#top) ── */
.hg-hero{padding:72px 0 84px;overflow:hidden}
.hg-hero .hg-wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hg-hero__title{font:700 clamp(38px,5vw,56px)/1.42 var(--font-brand);margin:20px 0 22px;letter-spacing:.01em}
.hg-hero__title em{font-style:normal;color:var(--accent)}
.hg-lede{font:400 15px/2.1 var(--font-brand);color:var(--ink-secondary);margin:0 0 30px;max-width:30em}
.hg-note{font:400 12px/1.9 var(--font-brand);color:var(--ink-tertiary);margin:16px 0 0}
.hg-hero__art{display:flex;justify-content:center}
.hg-phonewrap--hero{transform:rotate(1.1deg)}
.hg-btnrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* ページ読み込み時のヒーロー演出。ヒーロー内テキストと図版を上から順に
   fadeInUp で段階表示する（KAETAO/SwingDiff LP を踏襲）。回転 transform を持つ
   .hg-phonewrap--hero 自体には付けない（アニメーションの transform が回転を潰すため）
   — 代わりに外側の .hg-hero__art に付ける。 */
@keyframes hg-fade-in-up {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
.hg-hero .hg-eyebrow{animation:hg-fade-in-up .7s ease-out backwards}
.hg-hero__title{animation:hg-fade-in-up .7s ease-out .08s backwards}
.hg-hero .hg-lede{animation:hg-fade-in-up .7s ease-out .16s backwards}
.hg-btnrow{animation:hg-fade-in-up .7s ease-out .24s backwards}
.hg-hero .hg-note{animation:hg-fade-in-up .7s ease-out .32s backwards}
.hg-hero__art{animation:hg-fade-in-up .8s ease-out .1s backwards}

/* ── Index ── */
.hg-index{padding:10px 0 26px}
.hg-index__row{display:flex;flex-wrap:wrap;gap:14px;margin-top:20px}
.hg-chip{background:var(--scrap);border-radius:3px;box-shadow:var(--scrap-shadow-card);padding:14px 18px 12px;position:relative;font:500 13px/1.5 var(--font-brand);color:var(--ink);display:block}
.hg-chip:nth-child(1){transform:rotate(-1deg)}
.hg-chip:nth-child(2){transform:rotate(.8deg)}
.hg-chip:nth-child(3){transform:rotate(-.7deg)}
.hg-chip:nth-child(4){transform:rotate(1.1deg)}
.hg-chip:nth-child(5){transform:rotate(-.9deg)}
.hg-chip:hover{color:var(--ink);transform:rotate(0deg) translateY(-2px)}
.hg-chip small{display:block;font:700 10px/1 'Space Grotesk',sans-serif;letter-spacing:.16em;color:var(--accent);margin-bottom:5px}
.hg-chip__tape{position:absolute;top:-6px;left:50%;transform:translateX(-50%) rotate(-2deg);width:34px;height:11px;background:var(--tape)}

/* ── Feature Sections (#f01–#f04) ── */
.hg-feat{padding:74px 0}
.hg-feat--alt{background:var(--background)}
.hg-feat .hg-wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.hg-feat--flip .hg-feat__txt{order:2}
.hg-feat--flip .hg-feat__art{order:1}
.hg-num{font:700 15px/1 'Space Grotesk',sans-serif;color:var(--accent);letter-spacing:.1em;margin:0 0 14px}
/* h2 は機能見出し(.hg-feat__title)・privacy/faq/closing の素の h2 すべてで共通の値。 */
h2{font:700 clamp(28px,3.4vw,38px)/1.5 var(--font-brand);margin:14px 0 18px}
h2 em{font-style:normal;color:var(--accent)}
.hg-sub{font:400 14px/2.1 var(--font-brand);color:var(--ink-secondary);max-width:26em}
.hg-feat__art{display:flex;flex-direction:column;align-items:center}
.hg-phonewrap--f01{transform:rotate(-1deg)}
.hg-phonewrap--f02{transform:rotate(1deg)}
.hg-phonewrap--f03{transform:rotate(-.8deg)}
.hg-phonewrap--f04{transform:rotate(.9deg)}

/* ── Privacy (#privacy) ── */
.hg-privacy{padding:80px 0 88px}
.hg-privacy h2{text-align:center}
.hg-lede--center{text-align:center;max-width:34em;margin:0 auto 44px}
.hg-pgrid{display:flex;gap:22px;justify-content:center;flex-wrap:wrap}
/* 同上: ハンドオフは content-box で内容幅 250px（全幅 294px）。狭幅では flex-shrink で縮む（ハンドオフと同じ挙動）。 */
.hg-pcard{box-sizing:content-box;width:250px;padding:30px 22px 22px;text-align:center}
.hg-pcard .hg-tape{width:52px}
.hg-pcard h3{font:700 15px/1.5 var(--font-brand);margin:6px 0 8px}
.hg-pcard p{font:400 12.5px/1.9 var(--font-brand);color:var(--ink-secondary);margin:0}
.hg-icon{color:var(--accent);display:inline-block}
.hg-pcard:nth-child(1){transform:rotate(-1deg)}
.hg-pcard:nth-child(2){transform:rotate(.8deg)}
.hg-pcard:nth-child(3){transform:rotate(-.6deg)}
.hg-note--center{text-align:center;margin:30px 0 12px} /* ハンドオフでは <p> なので下余白 1em(12px) が付く */

/* ── FAQ (#faq) ── */
.hg-faq{padding:72px 0 80px;background:var(--background)}
.hg-faq h2{text-align:center;margin-bottom:34px}
.hg-qa{max-width:720px;margin:0 auto;border-top:1px solid var(--separator)}
.hg-qa details{border-bottom:1px solid var(--separator)}
.hg-qa summary{cursor:pointer;list-style:none;display:flex;gap:14px;align-items:baseline;padding:18px 4px;font:700 14px/1.7 var(--font-brand)}
.hg-qa summary::before{content:"Q.";font:700 14px/1 'Space Grotesk',sans-serif;color:var(--accent)}
.hg-qa summary::-webkit-details-marker{display:none}
.hg-qa p{font:400 13.5px/2 var(--font-brand);color:var(--ink-secondary);margin:0 4px 20px 32px}

/* ── Closing (#get) ── */
.hg-closing{padding:92px 0;text-align:center}
.hg-closing h2{font-size:clamp(30px,4vw,42px)}
.hg-closing h2 em{white-space:nowrap} /* 狭幅で「はじめ／よう。」と途中改行させない */
.hg-lede--closing{max-width:26em;margin:0 auto 30px}

/* ── Footer ── */
.hg-footer{background:var(--ink);color:#CFC8BE;padding:44px 0 40px}
.hg-footer .hg-wrap{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;font:400 12px/1.8 var(--font-brand)}
.hg-footer a{color:#CFC8BE}
.hg-footer a:hover{color:#FFFDF8}
.hg-footer__brand{font-weight:700;font-size:15px;color:#FFFDF8;margin-right:auto}

/* ── Responsive ── */
@media (max-width:860px){
  .hg-hero .hg-wrap,.hg-feat .hg-wrap{grid-template-columns:1fr;gap:44px}
  .hg-feat--flip .hg-feat__txt{order:0}
  .hg-feat--flip .hg-feat__art{order:1}
  .hg-navlinks__link{display:none}
  .hg-hero{padding-top:48px}
  /* INDEX 行が収まらない幅では「＋ 気軽なはじめ方」ごと次行へ送る（語の途中で折らない）。 */
  .hg-index .hg-eyebrow{flex-wrap:wrap;row-gap:8px}
}

/* 狭幅（305〜390px 目安）で横スクロールが出ないための最小限の調整。
   見た目の値（色・サイズ・余白・回転角）は変更しない。 */
@media (max-width:390px){
  .hg-chip{max-width:100%}
  .hg-nav__inner{gap:16px}
}
