/* merge-c.css — C案の見た目を、B案(style.css + design-b.css)の土台に重ねる層。
   対象: 01以降のスクロール演出 / スライド(カルーセル) / 機能03-08 / 料金 / PCの01-02拡大。
   FV・01・02・最後のCTA は B案のまま。読み込み順は最後(= 同詳細度なら勝つ)。 */

/* 日本語の改行制御: 文字間での任意改行を止め、読点・句点(<wbr>)でのみ改行。
   長すぎて収まらない場合のみ途中で折り返す(あふれ防止)。 */
body{word-break:keep-all;overflow-wrap:break-word;line-break:normal}
/* keep-all で本文の最小幅がグリッド/フレックスの列を押し広げ、はみ出すのを防ぐ */
.demo-card>*,.mid-card>*{min-width:0}
/* モバイルは中央寄せ本文の幅を確保し、読点までの一文が途中で切れて句読点が孤立しないように */
@media(max-width:759px){.thesis .lead{max-width:min(44ch,100%)}}

/* ============ C reveal motion (01 以降) ============ */
.reveal-ready{opacity:0;translate:0 22px;transition:opacity 1s ease,translate 1.2s cubic-bezier(.22,.61,.36,1)}
.reveal-ready.is-visible{opacity:1;translate:0 0}
.results-gallery.reveal-ready{translate:none}
.c-text-reveal{opacity:0;translate:0 26px;clip-path:inset(0 0 100% 0);transition:clip-path 1.1s cubic-bezier(.22,.61,.36,1),opacity 1s ease,translate 1.1s cubic-bezier(.22,.61,.36,1)}
.c-text-reveal.is-visible{opacity:1;translate:0 0;clip-path:inset(0)}
.demo-copy .lead.c-text-reveal{transition-delay:.18s}
.thesis-prelude.c-text-reveal{translate:-44px 0;clip-path:none;transition:opacity 1.15s ease,translate 1.3s cubic-bezier(.22,.61,.36,1)}
.thesis-prelude.c-text-reveal.is-visible{translate:0 0}
/* 機能見出しは横スライドさせず、左端(カード左端)に揃えたまま縦フェード */
.sec:has(.grid) .wrap>h2.c-text-reveal{translate:0 18px;clip-path:none;transition:opacity 1s ease,translate 1s cubic-bezier(.22,.61,.36,1)}
.sec:has(.grid) .wrap>h2.c-text-reveal.is-visible{translate:0 0}
.c-insert{clip-path:inset(0 100% 0 0);opacity:0;transform:translateX(14px);transition:clip-path 1.4s cubic-bezier(.22,.61,.36,1) .2s,opacity 1.1s .2s,transform 1.4s .2s}
.c-insert.is-visible{clip-path:inset(0);opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal-ready,.c-text-reveal,.c-insert{opacity:1;translate:none;transform:none;clip-path:none;transition:none}}

/* ============ Slides: C案カルーセル ============ */
.results-gallery{position:relative;width:100%;max-width:none;margin:16px 0;padding:12px 0 16px;border-top:1px solid #0abab5;border-bottom:1px solid #0abab52b;border-radius:0;background:linear-gradient(#fff,#f0f7f7);overflow:hidden;color:#111}
.results-heading{display:block;text-align:center;margin:0 auto 8px;padding:0 24px}
.results-heading h2{font-size:14px;letter-spacing:.04em;font-weight:650;color:#31514f;line-height:1.5}
.merge-viewport{position:relative;overflow:hidden;height:138px;perspective:760px}
.merge-stage{position:absolute;inset:0;visibility:hidden;max-width:none;--merge-shift:72px;transform-style:preserve-3d;transform-origin:center center}
.merge-stage.is-active{visibility:visible;z-index:2;filter:none;opacity:1}
.merge-stage.is-prev,.merge-stage.is-next{visibility:visible;pointer-events:none;z-index:0;filter:blur(3px);opacity:.55}
.merge-stage.is-prev{transform:translateX(-47%) scale(.82) rotateY(28deg)}
.merge-stage.is-next{transform:translateX(47%) scale(.82) rotateY(-28deg)}
.merge-panel{position:absolute;top:-14px;left:50%;width:82px;margin:0;transform:translateX(-50%)}
.merge-panel img{display:block;width:100%;height:110px;object-fit:cover;border:0;border-radius:0;box-shadow:none}
.merge-panel figcaption{position:static;display:block;text-align:center;font-size:10px;color:#527173;margin:7px -20px 0;padding:0;background:none;transform:none;white-space:nowrap;line-height:1.4}
.merge-panel:after{content:"";position:absolute;top:107px;left:0;right:0;width:100%;height:7px;background:radial-gradient(ellipse,#103e3e35,transparent 75%);filter:blur(3px);z-index:-1}
.merge-plus{position:absolute;left:50%;top:43px;transform:translateX(-50%);color:#078b85;font-size:18px}
.merge-stage>*{animation:none}
.merge-salon{transform:translateX(calc(-50% - var(--merge-shift)))}
.merge-style{transform:translateX(calc(-50% + var(--merge-shift)))}
.merge-result{opacity:0}
.merge-stage.is-running .merge-salon{animation:generate-salon 5.83s ease-in-out both}
.merge-stage.is-running .merge-style{animation:generate-style 5.83s ease-in-out both}
.merge-stage.is-running .merge-result{animation:generate-result 5.83s ease-in-out both}
.merge-stage.is-running .merge-plus{animation:generate-plus 5.83s ease-in-out both}
.merge-stage.is-prev .merge-salon,.merge-stage.is-prev .merge-style,.merge-stage.is-prev .merge-plus{opacity:0!important}
.merge-stage.is-prev .merge-result{opacity:1!important;transform:translateX(-50%) scale(1)!important}
.merge-stage.is-next .merge-salon,.merge-stage.is-next .merge-style,.merge-stage.is-next .merge-plus{opacity:1}
.merge-stage.is-next .merge-result{opacity:0}
@keyframes generate-salon{0%,22%{transform:translateX(calc(-50% - var(--merge-shift)));opacity:1}42%{transform:translateX(-50%);opacity:.65}50%,100%{transform:translateX(-50%);opacity:0}}
@keyframes generate-style{0%,22%{transform:translateX(calc(-50% + var(--merge-shift)));opacity:1}42%{transform:translateX(-50%);opacity:.65}50%,100%{transform:translateX(-50%);opacity:0}}
@keyframes generate-result{0%,38%{opacity:0;transform:translateX(-50%) scale(.96)}52%,100%{opacity:1;transform:translateX(-50%) scale(1)}}
@keyframes generate-plus{0%,20%{opacity:1}32%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){
 .merge-viewport{height:auto;display:grid;gap:16px}
 .merge-viewport .merge-stage{position:relative;inset:auto;visibility:visible;display:flex;justify-content:center;gap:15px;transform:none;filter:none;opacity:1}
 .merge-stage .merge-panel{position:relative;left:auto;top:auto;transform:none;opacity:1;animation:none}
 .merge-plus{display:none}
}

/* ============ 機能 03-08 / 返金・サポート: C案(明るい面) ============
   B案はこのセクションがダークティール＋白文字設計。B案と同じ詳細度で明色へ上書き。 */
.sec:has(.grid){padding-top:48px}
/* 見出し・カードを同じ左端(18pxガター)に揃える。左端貼り付き/文字切れを防ぐ */
.sec:has(.grid) .wrap{background:none;border:0;border-radius:0;width:auto;padding:0 18px}
.sec:has(.grid) .ey{color:#087f7c;font-size:12px;font-weight:600;letter-spacing:.08em;margin-bottom:12px}
.sec:has(.grid) h2,.sec:has(.grid) .wrap>h2{color:#101718;font-size:28px;font-weight:740;letter-spacing:-.045em;margin-bottom:28px}
/* 03-04 support cards */
.sec:has(.grid) .supporting-features{margin-top:28px;margin-bottom:0}
.supporting-grid{display:grid;grid-template-columns:1fr;gap:12px;max-width:none;align-items:start}
.support-card,.supporting-features .support-card{background:#f0f6f6;border:0;border-radius:12px;padding:16px 12px 18px;min-width:0;overflow:hidden;box-shadow:none}
.support-card h2,.supporting-features .support-card h2{display:block;color:#101718;font-size:16px;line-height:1.5;font-weight:700;letter-spacing:-.035em;text-align:left}
.support-number,.supporting-features .support-number{display:block;color:#089f99;font-size:32px;font-weight:500;letter-spacing:-.06em;margin-bottom:8px}
.support-card>p,.supporting-features .support-card>p{color:#526b6d;font-size:12px;line-height:1.8;min-height:58px;margin:10px 0 16px}
.supporting-features .support-images figcaption{color:#597274;min-height:0}
.support-images{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px;align-items:start;margin-top:12px}
.support-images figure{min-width:0}
.support-images img{width:100%;height:150px;object-fit:cover;object-position:center top;border-radius:4px}
/* 03 髪色は縦長のアプリ画面。余白を作らず実寸比率で表示 */
.support-images.color-images img{width:100%;height:auto;object-fit:fill;border:1px solid #e4edec}
/* 04 テキスト編集は1枚の縦長アプリ画面。中央に実寸比率で表示 */
.support-images.text-images{grid-template-columns:minmax(0,1fr);max-width:190px;margin-inline:auto}
.support-images img{max-width:100%}
.support-images.text-images img{width:100%;height:auto;object-fit:fill;border:1px solid #e4edec}
.support-images figcaption{font-size:9px;color:#597274;text-align:center;line-height:1.6;margin-top:6px;min-height:0}
/* 05-08 mini list */
.sec:has(.grid) .grid,.grid{display:grid;grid-template-columns:1fr 1fr;gap:25px 20px;margin-top:30px;column-gap:20px}
.sec:has(.grid) .mini,.mini{background:transparent;border:0;border-top:1px solid #153c3e35;border-radius:0;padding:16px 0 0;box-shadow:none}
.mini svg,.sec:has(.grid) .mini svg{display:none}
.sec:has(.grid) .mini h3,.mini h3{color:#101718;font-size:15px;line-height:1.5;font-weight:650}
.mini-number{display:inline-block;color:#078f89;font-size:22px;font-weight:500;margin-right:9px;letter-spacing:-.05em}
.sec:has(.grid) .mini p,.mini p{color:#62787a;font-size:12px;line-height:1.8;margin-top:10px}
/* 返金・サポート */
.trust{display:grid;gap:20px;background:none;border:0;border-top:1px solid #153c3e24;border-radius:0;padding:28px 0 0}
.trust .t,.trust>.t{display:flex;gap:15px;align-items:flex-start;font-size:13px;line-height:1.7;color:#101718}
.trust .t svg{width:24px;height:24px;fill:none;stroke:#087f7c;stroke-width:1.4;flex:none}
.trust .t small{display:block;font-size:11px;color:#6b7e80;margin-top:4px}
.sec:has(.trust){padding-top:0;padding-bottom:42px}

/* ============ 料金: 元C案カード意匠 / 情報を1つの枠に集約・コンパクト・色分け ============ */
.pricing{background:#f6f9f9;border-top:1px solid #0abab530;text-align:center;padding:56px 18px 60px}
.pricing h2{font-size:clamp(23px,3vw,34px);letter-spacing:-.04em;margin:0 0 30px}
.plan-grid{display:grid;grid-template-columns:1fr;gap:18px;justify-items:center}
.plan-card{position:relative;max-width:420px;width:100%;margin:auto;border:2px solid #0abab5;border-radius:22px;background:#fff;overflow:hidden;box-shadow:0 18px 50px -34px #073c3e40}
.plan-ribbon{position:relative;background:#0abab5;color:#042c2b;padding:12px 20px;font-size:15px;font-weight:700}
.ribbon-badge{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:#fff;color:#04302e;font-size:11px;font-weight:700;padding:3px 11px;border-radius:20px}
.plan-body{padding:22px 22px 22px}
.plan-en{color:#078b86;font-size:12px;letter-spacing:.1em;font-weight:700}
.plan-body h3{font-size:22px;letter-spacing:-.045em;margin:4px 0 0}
.plan-price{display:flex;justify-content:center;align-items:baseline;gap:4px;font-size:clamp(40px,9vw,50px);font-weight:750;letter-spacing:-.05em;margin:12px 0 16px;color:#101c1e;line-height:1}
.plan-price>span{font-size:22px}
.plan-price small{font-size:12px;font-weight:500;letter-spacing:0;color:#607173;margin-left:5px}
/* 付与クレジット〜消費までを1つの枠に集約 */
.plan-box{text-align:left;border:1px solid #e0e9e8;border-radius:14px;background:#fafcfc;padding:14px 16px}
.plan-grant{font-size:14px;color:#294a4b}
.plan-grant strong{font-size:20px;margin-right:5px;color:#101c1e}
.plan-eq{font-size:13px;color:#078b86;margin-top:5px}
.plan-eq strong{font-size:16px}
.plan-save{display:inline-block;margin-top:8px;background:#eafaf8;color:#0a8f8a;font-size:11px;font-weight:700;padding:4px 9px;border-radius:6px}
.plan-use{margin:12px 0 0;padding-top:12px;border-top:1px solid #e5edec}
.plan-use>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:7px 0;font-size:12px;color:#5a6d6e}
.plan-use dt:before{content:'✓';color:#089e99;font-weight:700;margin-right:6px}
.plan-use dd{margin:0;font-size:11px;color:#8a9a9a;white-space:nowrap}
.plan-use dd strong{font-size:14px;color:#3c4f50;margin-right:3px}
/* CTA: 価格の直下・小さめ・上下に余白 */
.plan-cta{display:flex;justify-content:center;align-items:center;gap:9px;background:#101c1e;color:#fff;font-weight:700;font-size:13px;padding:11px 18px;border-radius:30px;max-width:250px;margin:14px auto 18px;text-decoration:none}
.plan-cta:hover{background:#075c59}
.plan-note{font-size:12px;line-height:1.8;color:#708082;margin:20px auto 0;max-width:520px;text-align:center}
/* --- 色分け --- */
/* ベーシック: ティール(標準) */
.plan--basic{border-color:#0abab5}
/* プラス: 濃色で強調＋人気バッジ＋淡いティール地 */
.plan--plus{border-color:#073c3e;background:#f4fbfa;box-shadow:0 22px 58px -32px #073c3e5c}
.plan--plus .plan-ribbon{background:#073c3e;color:#eafaf8}
.plan--plus .plan-box{background:#fff;border-color:#bfe7e4}
.plan--plus .plan-cta{background:#0abab5;color:#04302e}
.plan--plus .plan-cta:hover{background:#09a49f}
/* 都度チャージ: グレー(補助) */
.plan--charge{border-color:#c9d3d2}
.plan--charge .plan-ribbon{background:#e8edec;color:#415455}
.plan--charge .plan-cta{background:#fff;color:#101c1e;border:1.5px solid #101c1e}
.plan--charge .plan-cta:hover{background:#101c1e;color:#fff}

/* ============ Desktop (760px+) ============ */
@media(min-width:760px){
 /* slides: バンドを詰めて画像を上げる */
 .results-gallery{margin:18px 0;padding:14px 0 16px}
 .results-heading{margin-bottom:6px}
 .results-heading h2{font-size:18px;font-weight:650}
 .merge-viewport{height:262px;perspective:1100px}
 .merge-panel{width:172px;top:-40px}
 .merge-panel img{height:212px}
 .merge-panel:after{top:210px;height:12px}
 .merge-panel figcaption{font-size:14px;margin-top:10px}
 .merge-stage{--merge-shift:145px}
 .merge-plus{top:58px;font-size:26px}
 /* features: 幅を抑え、中身を詰めてコンパクトに(PCで幅いっぱいにしない) */
 .sec:has(.grid) .supporting-grid,.sec .supporting-grid{max-width:860px;margin:0 auto;gap:20px;align-items:stretch;grid-template-columns:1fr 1fr}
 .support-card{padding:24px 24px 26px}
 .support-card h2{font-size:22px}
 .support-number{font-size:42px;display:inline-block;margin-right:14px}
 .support-card>p{font-size:15px;min-height:0;margin:14px 0 18px}
 .support-images{gap:12px;max-width:none;margin:16px 0 0}
 .color-images{max-width:none}
 .support-images img{height:210px;object-fit:cover;object-position:center top;border-radius:6px}
 .support-images.color-images img{height:auto}
 .support-images.text-images{max-width:230px}
 .support-images.text-images img{height:auto}
 .support-images figcaption{font-size:12px}
 .grid{grid-template-columns:repeat(4,1fr);gap:30px}
 .mini h3{font-size:17px}
 .mini p{font-size:14px}
 .trust{grid-template-columns:1fr 1fr}
 .trust .t{font-size:16px}
 .trust .t small{font-size:13px}
 /* pricing: 2列横並び。CTAを下端に揃え、カード高さを均一に */
 .pricing{padding:66px 40px}
 .plan-grid{grid-template-columns:repeat(2,1fr);max-width:720px;gap:22px;margin:0 auto;align-items:stretch;justify-items:stretch}
 .plan-card{max-width:none;height:100%;display:flex;flex-direction:column}
 .plan-card .plan-body{display:flex;flex-direction:column}
 .plan-card .plan-box{margin-top:18px}
 .plan-body{padding:26px 24px}
 .plan-ribbon{font-size:16px}
 .plan-body h3{font-size:24px}
 .plan-price{font-size:clamp(38px,3vw,46px)}
 /* PC: 01-02 のスマホと文字を拡大 */
 .demo-card .demo-media,.demo-card.layout-card .demo-media{width:230px}
 .demo-card .demo-copy .feature-title{font-size:clamp(2rem,3.4vw,2.6rem)}
 .demo-card .demo-copy .lead{font-size:1.15rem;line-height:1.9}
 .demo-card .feature-number{font-size:1.4em}
 .demo-card{grid-template-columns:minmax(0,1fr) 230px}
 .demo-card.layout-card{grid-template-columns:230px minmax(0,1fr)}
}

/* ============ ヘッダー: ログイン(白・アウトライン)＋新規登録 ============ */
.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.login{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:var(--teal,#0abab5);border:1.5px solid var(--teal,#0abab5);border-radius:30px;min-height:40px;padding:9px 18px;font-size:14px;font-weight:700;text-decoration:none;line-height:1;white-space:nowrap}
.login:hover{background:#effbfa}
.register{gap:0}
header .brand{max-width:calc(100% - 214px)}
@media(min-width:760px){.login{padding:11px 22px}header .brand{max-width:calc(100% - 260px)}}
@media(max-width:390px){.login{padding:8px 12px;font-size:13px}header .brand{max-width:calc(100% - 188px)}}

/* ============ 追加テキスト（小見出し・説明・サブ文）============ */
/* FV直下 thesis */
.thesis-lead{font-size:14px;line-height:1.7;color:#4a5c5d;margin:0 0 12px}
.thesis-lead strong{color:#0a8f8a;font-weight:700}
.thesis .lead strong{color:#101718;font-weight:700}
/* 01/02 の太字サブ見出し */
.feature-sub{font-size:clamp(18px,4.6vw,22px);font-weight:750;letter-spacing:-.04em;line-height:1.5;color:#101718;margin:14px 0 10px}
/* 生成事例(スライド) 見出し下のサブ */
.results-sub{font-size:12px;line-height:1.7;color:#5b7476;margin:6px auto 0;max-width:30em;padding:0 24px}
/* 03/04 support-card の太字サブ（本文pより高詳細度で上書き） */
.support-card .support-sub,.supporting-features .support-card .support-sub{font-size:14px;font-weight:700;color:#101718;letter-spacing:-.02em;line-height:1.5;margin:2px 0 8px;min-height:0}
/* 05-08 mini の太字サブ（.sec:has(.grid) .mini p より高詳細度で濃色に） */
.sec:has(.grid) .mini .mini-sub,.mini .mini-sub{font-size:13px;font-weight:700;color:#101718;letter-spacing:-.02em;line-height:1.5;margin:8px 0 4px}
/* FVのスクロール誘導矢印(∨)は非表示 */
.hero .scroll{display:none}
/* 料金 見出し下のサブ */
.pricing-sub{font-size:13px;line-height:1.9;color:#607173;margin:-16px auto 30px;max-width:520px}
.pricing-note{font-size:12px;line-height:1.85;color:#7c8a8b;margin:22px auto 0;max-width:560px;text-align:center}
/* 料金カードの説明(太字) */
.plan-desc{font-size:13px;font-weight:700;color:#294a4b;line-height:1.6;margin:0 0 2px;text-align:center}
/* 最終CTA のサブ */
.final .wrap .final-sub{font-size:14px;line-height:1.9;color:#cfe6e4;margin:0 0 6px}
@media(min-width:760px){
 .results-sub{font-size:13px}
 .support-card .support-sub{font-size:16px}
 .mini .mini-sub{font-size:15px}
 .feature-sub{font-size:clamp(22px,2.6vw,30px)}
 .pricing-sub{font-size:15px}
 .final .wrap .final-sub{font-size:16px}
}

/* FV見出しが長くなったため、行が崩れないようサイズを微調整 */
.hero .intro h1{font-size:clamp(23px,6.2vw,38px)}
@media(min-width:760px){.hero .intro h1{font-size:clamp(30px,2.9vw,40px)}}

/* 「そのほかの機能」は mini(.grid) を廃止し support-card のみの構成に。
   以前 .sec:has(.grid) で当てていた見た目を supporting-grid ベースで再指定。 */
.sec:has(.supporting-grid),.sec:has(.option-grid),.sec.other-lead{padding-top:48px}
.sec:has(.supporting-grid) .wrap,.sec:has(.option-grid) .wrap,.sec.other-lead .wrap{padding:0 18px}
.sec:has(.supporting-grid) .ey,.sec:has(.option-grid) .ey,.sec.other-lead .ey{color:#087f7c;font-size:12px;font-weight:600;letter-spacing:.08em;margin-bottom:12px}
.sec:has(.supporting-grid) .wrap>h2,.sec:has(.option-grid) .wrap>h2,.sec.other-lead .wrap>h2{color:#101718;font-size:28px;font-weight:740;letter-spacing:-.045em;margin-bottom:28px}
/* オプションカードのタイトルは中間カード(テキスト編集など)と同じサイズに */
.option-grid .support-card h2{font-size:clamp(1.15rem,4.4vw,1.4rem)}
.sec:has(.supporting-grid) .supporting-features{margin-top:28px;margin-bottom:0}
.sec.other-lead{padding-top:32px;padding-bottom:20px}
.sec.other-lead .wrap>h2{margin-bottom:0}
/* スタイル生成グループとの区切り線 */
.group-divider{height:1px;background:#0f3b3a29;margin:0 0 30px}
/* 「そのほかの機能」以降は白背景に統一し、スタイル生成グループとの切り替えを見出し位置で行う */
.sec.other-lead,.sec.mid-section,.sec:has(.trust){background:#fff}

/* ===== 中間機能（集客用画像作成・テキスト編集）: 統一デザイン ===== */
.mid-grid{display:grid;grid-template-columns:1fr;gap:16px;max-width:900px;margin:0 auto}
.mid-card{display:flex;flex-direction:column;background:#fff;border:1px solid #073b3a1f;border-top:2px solid var(--teal);border-radius:18px;padding:20px;box-shadow:0 12px 28px -24px #073b3a40}
.mid-media{position:relative;width:100%;max-width:210px;margin:18px auto 0;aspect-ratio:590/1280;border:1px solid #e4edec;border-radius:12px;overflow:hidden;background:#f5f6f6}
.mid-copy{margin-bottom:0}
.mid-media img,.mid-media .operation-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;display:block;background:#f5f6f6}
.mid-media .video-toggle{position:absolute;bottom:8px;right:8px;z-index:2;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid #ffffff66;background:rgba(15,25,24,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:50%;color:#fff;font-size:12px;line-height:1;cursor:pointer}
.mid-media .video-toggle:hover{background:#087e78}
.mid-copy{text-align:center}
.mid-title{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:clamp(1.15rem,4.4vw,1.4rem);font-weight:750;letter-spacing:-.03em;color:#101718;margin:0 0 10px}
.mid-title .feature-icon{width:22px;height:22px;flex:none;fill:none;stroke:var(--teal);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.mid-lead{font-size:14px;line-height:1.85;color:#505255;margin:0 auto;max-width:34ch}
.mid-note{font-size:11px;color:#8a9a9a;margin:12px 0 0}
@media(min-width:760px){
 .mid-grid{grid-template-columns:1fr 1fr;gap:24px}
 .mid-card{padding:28px}
 .mid-media{max-width:220px;margin-bottom:20px}
 .mid-lead{font-size:15px}
}

/* スタイル集セクション */
.stylelib-section{padding-top:8px}
.stylelib-section .ey{color:#087f7c}
/* 見出しはタイトルより少し小さめに */
.stylelib-section .thesis-prelude{font-size:clamp(21px,5.6vw,30px)}
.stylelib-media{margin-top:26px}
.img-pending{display:flex;align-items:center;justify-content:center;text-align:center;height:200px;padding:12px;border:1.5px dashed #0abab566;border-radius:10px;background:#f2fafa;color:#5a8f8c;font-size:12px;line-height:1.6;letter-spacing:.02em}
.stylelib-media .img-pending{height:240px;max-width:520px;margin:0 auto}

/* 単独の support-card（テキスト編集）は中央寄せ */
.supporting-grid.single-card{grid-template-columns:1fr;max-width:560px;margin:0 auto}
@media(min-width:760px){.sec .supporting-grid.single-card{grid-template-columns:1fr;max-width:560px}}

/* 生成オプション（髪色・服装・年齢）3枚 */
.sec:has(.option-grid) h2{margin-bottom:12px}
.option-lead{margin:0 0 24px;max-width:46ch}
.option-grid{display:grid;grid-template-columns:1fr;gap:12px;align-items:stretch}
.option-grid .support-card{display:flex;flex-direction:column}
/* 各カードに2枚を横並び（モバイルでも） */
.support-images.opt-image{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;margin-top:auto}
.support-images.opt-image img{width:100%;height:170px;object-fit:cover;object-position:center;border:1px solid #e4edec;border-radius:6px}
.support-images.opt-image figcaption{font-size:9px;margin-top:5px}
@media(min-width:760px){
 .option-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-width:900px;margin:0 auto}
 .support-images.opt-image img{height:180px}
 .support-images.opt-image figcaption{font-size:11px}
}

/* スタイル集: レディース/メンズの一覧を2枚並べる */
.stylelib-gallery{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:460px;margin:26px auto 0}
.stylelib-gallery figure{margin:0;min-width:0;position:static}
.stylelib-gallery img,.stylelib-gallery video{display:block;width:100%;height:auto;border:1px solid #e4edec;border-radius:10px;background:#f5f6f6}
.stylelib-gallery figcaption{position:static;background:none;text-align:center;font-size:12px;color:#597274;margin-top:8px;white-space:normal}

/* スタイル集セクションに「スタイル生成(demo-card)」と同じカード背景を付与。
   角丸・白→ティールの淡いグラデ・柔らかい内側シャドウ。左右にgutterを確保。 */
.stylelib-section{padding:32px 0}
.stylelib-section>.wrap{width:calc(100% - 32px);max-width:900px;margin-inline:auto;padding:28px 24px;border-radius:28px;background:radial-gradient(ellipse at 50% 42%,#ffffff 0%,#f6fdfc 38%,#e5f5f3 75%,#cfe9e6 100%);box-shadow:inset 0 1px 2px #087e7914}
@media(min-width:760px){.stylelib-section>.wrap{max-width:820px;border-radius:36px;padding:40px 48px}}

/* PC: 「集客用画像作成」「テキスト編集」の2カードで、メディア(スマホ動画/画像・枠を含む)の
   上端位置を揃える。説明文の行数差で生じる上端のズレを、コピー領域の高さを揃えて解消する
   (メディアは元々同サイズなので上端が揃えば下端も揃う)。枠やレイアウトは変更しない。 */
@media(min-width:760px){
 .mid-copy{min-height:184px}
}

/* 集客用画像作成・テキスト編集のメディアを、スタイル生成と同じ「スマホ枠」にする。
   phone-frame.webp を重ね、内側の device-screen に動画/画像を収める(枠付き)。 */
.mid-media{aspect-ratio:854/1842;border:0;border-radius:0;overflow:visible;background:transparent;filter:drop-shadow(0 10px 14px rgba(17,19,21,.12))}
.mid-media .device-frame{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;z-index:0;object-fit:fill}
.mid-media .device-screen{position:absolute;left:5.85%;right:5.85%;top:2.65%;bottom:2.85%;border-radius:10% / 4.6%;overflow:hidden;z-index:1;background:#f5f6f6}
.mid-media .device-screen>img,.mid-media .device-screen>.operation-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;display:block;background:#f5f6f6}
@media(min-width:760px){.mid-media{max-width:230px}}


/* 生成オプション(髪色/服装/年齢)の画像は、モバイルでもPCと同じ縦横比(116:180)に固定。
   固定高さ(170/180px)をやめ、縦横比で決める(モバイルで横広に潰れるのを防ぐ)。 */
.support-images.opt-image img{aspect-ratio:116/180;height:auto}

/* FVのスクロール連動(パララックス)はやめ、読み込み時に一度だけ自動再生(JS側で--pを
   時間ベースで0→1)。FV(main/hero)は「最大ビューポート(lvh)」基準で画面の高さいっぱいに
   満たす。svh(最小)基準だと、モバイルのブラウザ上下バーが引っ込んでビューポートが伸びた
   ときにFVが表示領域より短くなり、直後の区切り線がFV内へせり上がって見える。lvh基準なら
   バーがどの状態でもFVが表示領域以上の高さを保ち、区切り線が常に画面外(下)に留まる。
   (100vhは非対応ブラウザ向けフォールバック=多くのモバイルで大きい方の高さ相当) */
main{height:auto;min-height:100vh;min-height:100lvh}
.hero{min-height:calc(100vh - 68px);min-height:calc(100lvh - 68px)}
@media(min-width:760px){.hero{min-height:calc(100vh - 80px);min-height:calc(100lvh - 80px)}}

/* スタイル生成の説明文は改行位置を固定せず、カード幅(余白込み)に応じて自然に折り返す。
   body既定のkeep-allを解除してnormalにし、対応ブラウザではauto-phraseで日本語の
   文節境界を優先(語中で割れにくい)。文はHTML側の<br>で句点「。」ごとに改行する。
   PCでは各文(最長615px相当)がカード幅に収まらず折り返すのを防ぐため16pxに揃える
   (これで各文1行=句点でのみ改行になる)。モバイルは幅が狭く1行に収まらないため
   従来どおり文中も自然折り返し。 */
.demo-card .demo-copy .lead{word-break:normal;word-break:auto-phrase;overflow-wrap:normal}
@media(min-width:760px){.demo-card .demo-copy .lead{font-size:16px}}

/* FV: モバイルで縦積みのとき、テキスト(intro)と画像(scene)がくっつきすぎるので
   sceneの上に少し余白を入れる(PCは左右2カラムなので影響させない)。 */
@media(max-width:759px){.hero .scene{margin-top:8px}}
