/* うつわコンシェルジュ LP改修案（引き合い検証用）
   色は既存LP（refined.css）の白・深紅・墨を継承し、変数で管理する */
:root{
  --ink:#292620;
  --ink-soft:#686258;
  --ink-mute:#8a8174;
  --paper:#fffefa;
  --paper-warm:#f5f1e8;
  --line:#e2dbcf;
  --crimson:#aa251e;
  --crimson-deep:#851c16;
  --crimson-tint:#f6e9e5;
  --night:#151719;
  --night-text:#e6e1d8;
  --confirm:#b06b00;
  --serif:'Yu Mincho','Hiragino Mincho ProN','Noto Serif JP',serif;
  --sans:'Yu Gothic','Hiragino Sans','Noto Sans JP',Meiryo,sans-serif;
  --wrap:1120px;
  --gutter:32px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);line-height:1.9;overflow-x:hidden}
h1,h2,h3,p,figure,dl,dd,ol,ul{margin:0}
ol,ul{padding:0;list-style:none}
h1,h2,h3{font-family:var(--serif);font-weight:500}
h2{font-size:clamp(26px,3vw,38px);line-height:1.6;letter-spacing:.04em}
/* 日本語は文節で改行し、言葉の途中で切らない（対応ブラウザー：Chrome系）。見出しは行の長さをそろえる */
h1,h2,h3,p,li,dd,dt,summary,legend,.btn{word-break:auto-phrase;line-break:strict}
h1,h2,h3{text-wrap:balance}
p,li,dd{text-wrap:pretty}
.line{display:inline-block}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--crimson);outline-offset:3px}
[hidden]{display:none!important}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;top:-100px;left:0;z-index:50;background:#fff;padding:12px}
.skip:focus{top:0}

/* 公開前に確認する数字・約束（確認用の案でのみ下線で示す） */
[data-confirm]{text-decoration:underline dotted var(--confirm);text-underline-offset:4px}
.trust-todo{font-size:12px;color:var(--confirm)}

/* 確認用バー */
.draft-bar{position:relative;z-index:40;margin:0;padding:8px var(--gutter);background:#2b2721;color:#efe9de;font-size:12px;display:flex;flex-wrap:wrap;gap:6px 14px}
.draft-bar a{border-bottom:1px solid #8f8577}
.draft-bar a[aria-current]{color:#fff;border-color:#fff;font-weight:700}

/* ボタン */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;border:0;cursor:pointer;transition:background .2s}
.btn-primary{background:var(--crimson);color:#fff}
.btn-primary:hover{background:var(--crimson-deep)}
.btn-sub{font-size:11px;padding:2px 8px;border:1px solid #ffffff80;letter-spacing:.05em}
.btn-large{min-height:60px;padding:16px 30px;font-size:16px;letter-spacing:.05em}
.btn-ghost{background:transparent;color:#fff;border:1px solid #ffffffaa}
.btn-ghost:hover{background:#ffffff1a}
.btn-ghost-dark{background:transparent;color:var(--ink);border:1px solid var(--ink);padding:14px 22px;font-size:14px}
.btn-ghost-dark:hover{background:var(--ink);color:#fff}
.btn-ghost-dark .btn-sub{border-color:currentColor}

/* ヘッダー */
.site-header{position:sticky;top:0;z-index:30;height:84px;padding:0 4%;display:flex;align-items:center;gap:28px;background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.brand{width:250px;height:52px;overflow:hidden;position:relative;flex-shrink:0}
.brand img{position:absolute;width:270px;max-width:none;left:-12px;top:-20px}
.site-header nav{display:flex;gap:24px;margin-left:auto;font-size:13px}
.site-header nav a:hover{color:var(--crimson)}
.header-login{font-size:13px;color:var(--ink-soft);border-bottom:1px solid var(--line)}
.header-cta{padding:12px 18px;font-size:13px}

/* ヒーロー */
.hero{position:relative;background:var(--night);height:clamp(560px,48vw,820px);overflow:hidden}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%}
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#151719 0%,#151719e6 30%,#15171900 62%)}
.hero-copy{position:relative;z-index:1;width:min(560px,46%);padding:clamp(48px,6vw,104px) 0 40px 5%;color:#fff}
.eyebrow{font-size:12px;letter-spacing:.14em;color:#d9d2c5}
.hero h1{font-size:clamp(32px,3.2vw,52px);line-height:1.55;letter-spacing:.05em;margin:20px 0 22px}
.hero-lead{font-size:15px;line-height:2.1;color:var(--night-text)}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 26px;margin:34px 0 30px}
.hero-link{font-size:13px;color:var(--night-text);border-bottom:1px solid #ffffff55}
.hero-promise{display:flex;flex-wrap:wrap;gap:10px 22px;font-size:13px;color:#cfc8bb}
.hero-promise li::before{content:'◇';color:#d8a39d;margin-right:6px}
.hero-promise strong{color:#fff;font-weight:600}
.visual-label{position:absolute;right:16px;bottom:12px;z-index:1;font-size:10px;letter-spacing:.08em;color:#cfc8bb;background:#0008;padding:3px 8px}

/* 共通の節 */
main>section:not(.hero){max-width:var(--wrap);margin:0 auto;padding:110px var(--gutter)}
.section-head{max-width:720px;margin-bottom:44px}
.badge{font-family:Georgia,serif;font-size:15px;color:var(--crimson);letter-spacing:.2em;margin-bottom:18px}
.badge::after{content:'';display:inline-block;width:44px;margin-left:14px;vertical-align:middle;border-top:1px solid currentColor}
.badge-light{color:#f1c9c2}
.section-lead{margin-top:20px;color:var(--ink-soft);font-size:15px;line-height:2}

/* 見比べ */
.compare-frame{position:relative;aspect-ratio:16/8;background:var(--night);overflow:hidden;--pos:50%;user-select:none}
.compare-pane{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.compare-before{justify-content:flex-start;align-items:flex-end;padding:0 0 6% 5%;background:radial-gradient(ellipse 34% 40% at 30% 46%,#f2efe8 0 92%,#3a3530 93% 96%,transparent 97%),#1f1c19}
.compare-after{justify-content:flex-end;align-items:flex-end;padding:0 5% 6% 0;background:radial-gradient(ellipse 34% 40% at 70% 46%,#2f4a6b 0 92%,#16293f 93% 96%,transparent 97%),#131a22;clip-path:inset(0 0 0 var(--pos))}
.shoot-slot{text-align:center;color:#e9e3d8;padding:16px 22px;border:1px dashed #ffffff55;background:#000a;max-width:44%}
.shoot-tag{display:inline-block;font-size:11px;letter-spacing:.1em;background:var(--crimson);color:#fff;padding:2px 10px;margin-bottom:10px}
.shoot-dish{font-size:13px;color:#cfc8bb}
.shoot-vessel{font-family:var(--serif);font-size:clamp(18px,2vw,24px);margin-top:4px}
.compare-handle{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;background:#fff;transform:translateX(-1px);pointer-events:none}
.compare-handle span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center;font-size:11px;letter-spacing:-.1em;box-shadow:0 4px 18px #0005}
.compare-range{position:absolute;inset:0;display:block}
.compare-range input{width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}
.compare-note{margin-top:14px;font-size:12px;color:var(--ink-mute)}

/* 2つの使い方 */
.ways-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.way-card{display:flex;flex-direction:column;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-top:3px solid var(--ink);padding:36px 34px}
.way-card-accent{border-top-color:var(--crimson)}
.way-kicker{font-size:13px;letter-spacing:.14em;color:var(--crimson);font-weight:600}
.way-card h3{font-size:clamp(21px,2vw,26px);line-height:1.6}
.way-card ul{display:grid;gap:8px;font-size:14px;color:var(--ink-soft)}
.way-card li::before{content:'◇';color:var(--crimson);margin-right:8px}
.way-note{font-size:12px;color:var(--ink-mute);margin-top:auto}

/* 自分で探す：検索デモ */
.self-modes{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.self-modes button{border:1px solid #cfc5b4;background:#fff;padding:10px 18px;font-size:14px;cursor:pointer}
.self-modes button[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.self-demo{background:var(--paper-warm);border:1px solid var(--line);padding:clamp(20px,4vw,44px)}
.demo-bar{display:flex;align-items:center;background:#fff;border:1px solid #b7b0a3;height:60px;max-width:760px}
.demo-glass{font-size:26px;padding:0 16px;color:#81715c}
.demo-query{flex:1;min-width:0;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.is-typing .demo-query::after{content:'';display:inline-block;width:2px;height:1.1em;background:var(--ink);vertical-align:-3px;margin-left:2px}
.demo-run{align-self:stretch;border:0;background:var(--crimson);color:#fff;padding:0 24px;font-size:14px;cursor:pointer}
.demo-hint{font-size:13px;color:var(--ink-soft);margin:14px 0 24px}
.demo-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;transition:opacity .4s}
.is-typing .demo-results{opacity:.25}
.demo-results li{background:#fff;padding:12px}
.demo-results img{width:100%;aspect-ratio:1;object-fit:contain;background:#fafaf7}
.demo-cat{font-size:11px;color:var(--crimson);margin-top:10px}
.demo-name{font-family:var(--serif);font-size:18px}
.demo-note{font-size:12px;color:var(--ink-mute);margin-top:16px}
.self-cta{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:32px}
.self-cta p{font-size:13px;color:var(--ink-soft)}
.self-cta a:not(.btn){color:var(--crimson);border-bottom:1px solid currentColor}

/* 事前登録版：ヒーロー（コピー＋製品画面のアニメーション） */
.hero-product{height:auto;min-height:0}
.hero-product .hero-image{opacity:.28;filter:blur(2px) saturate(.8);transform:scale(1.04)}
.hero-product::after{background:radial-gradient(ellipse at 75% 40%,#15171966 0%,#151719e6 60%)}
.hero-inner{position:relative;z-index:1;max-width:1240px;margin:0 auto;padding:clamp(56px,7vw,110px) var(--gutter) clamp(56px,6vw,96px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:clamp(32px,4vw,64px);align-items:center}
.hero-product .hero-copy{width:auto;padding:0;container-type:inline-size}
/* 1行（9文字前後）が必ず枠に収まる大きさにする */
.hero-product h1{font-size:clamp(28px,10cqi,54px);letter-spacing:.04em}
.hero-product .line{white-space:nowrap}

.app-window{position:relative;margin:0;background:#fbf9f4;color:var(--ink);border-radius:10px;box-shadow:0 30px 80px #000a,0 0 0 1px #ffffff1f;overflow:hidden;font-size:13px}
.app-chrome{display:flex;align-items:center;gap:6px;height:36px;padding:0 14px;background:#ece7dd;border-bottom:1px solid #ddd5c7}
.app-chrome span{width:10px;height:10px;border-radius:50%;background:#cfc6b6}
.app-chrome span:first-child{background:#d9776f}
.app-chrome p{margin-left:12px;font-size:11px;color:var(--ink-mute)}
.app-body{padding:18px;display:grid;gap:14px;min-height:430px;align-content:start}
.app-search{display:flex;align-items:center;height:46px;background:#fff;border:1px solid #c9bfae;border-radius:6px;padding:0 12px;gap:8px}
.app-glass{font-size:20px;color:#8a7c66}
.app-query{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
.app-caret{width:2px;height:18px;background:var(--crimson);animation:caret 1s steps(1) infinite}
.app-label{font-size:11px;letter-spacing:.08em;color:var(--ink-mute);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.app-dot{width:7px;height:7px;border-radius:50%;background:#3c9a62;box-shadow:0 0 0 4px #3c9a6226}
.app-tags ul{display:flex;flex-wrap:wrap;gap:6px}
.app-tags li{background:var(--crimson-tint);color:#7d1f19;border:1px solid #e9c9c3;border-radius:999px;padding:3px 10px;font-size:12px}
.app-results ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.app-results li{position:relative;background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px;display:grid;gap:2px;transition:border-color .3s,box-shadow .3s}
.app-results img{width:100%;aspect-ratio:1;object-fit:contain;background:#f7f5f0;border-radius:4px}
.app-cat{font-size:10px;color:var(--crimson);margin-top:4px}
.app-name{font-family:var(--serif);font-size:14px}
.app-add{justify-self:start;margin-top:4px;font-size:10px;border:1px solid #c9bfae;border-radius:4px;padding:2px 6px;color:var(--ink-soft);transition:all .25s}
.app-results li.is-picked{border-color:var(--crimson);box-shadow:0 0 0 2px #aa251e33}
.app-results li.is-picked .app-add{background:var(--crimson);border-color:var(--crimson);color:#fff}
.app-results li.is-picked .app-add::before{content:'✓ '}
.app-quote{background:#fff;border:1px solid var(--line);border-left:3px solid var(--crimson);border-radius:6px;padding:12px 14px}
.app-quote dl>div{display:grid;grid-template-columns:52px 1fr;gap:8px;font-size:12px;padding:2px 0}
.app-quote dt{color:var(--ink-mute)}
.app-status{display:inline-flex;align-items:center;gap:6px}
.app-status::before{content:'';width:10px;height:10px;border:2px solid #c9bfae;border-top-color:var(--crimson);border-radius:50%;animation:spin 1s linear infinite}
.app-step{opacity:0;transform:translateY(10px);transition:opacity .5s,transform .5s}
.app-step.is-on{opacity:1;transform:none}
.app-cursor{position:absolute;left:0;top:0;width:18px;height:18px;opacity:0;pointer-events:none;transition:transform .7s cubic-bezier(.4,0,.2,1),opacity .3s;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l16 10-7 1.5L10 21z' fill='%23292620' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E")}
.app-cursor.is-on{opacity:1}
.app-window figcaption{position:absolute;right:10px;bottom:8px;font-size:10px;color:var(--ink-mute)}
@keyframes caret{50%{opacity:0}}
@keyframes spin{to{transform:rotate(360deg)}}

/* 事前登録版のヒーロー：動画が最初の画面に収まるよう、高さから動画の幅を決める（340px は動画より上の帯と動画の下の操作部の高さ） */
.hero-product .tutorial{--tut-fit:calc((100svh - 340px)*1.791)}
/* 幅が狭いときは、見出し→動画→説明→登録ボタンの順に縦に並べる */
.hero-product .hero-inner{grid-template-columns:minmax(0,1fr);max-width:900px;gap:0;padding:clamp(20px,4vw,32px) var(--gutter) clamp(40px,6vw,56px);text-align:left;justify-items:stretch}
.hero-product .hero-copy{display:contents}
.hero-product .eyebrow{order:1;color:#d9d2c5}
.hero-product h1{order:2;font-size:clamp(26px,8.4vw,44px);margin:10px 0 18px;color:#fff}
.hero-product .tutorial{order:3;justify-self:center;width:min(100%,max(440px,var(--tut-fit)))}
.hero-product .hero-lead{order:4;margin-top:26px}
.hero-product .hero-actions{order:5;margin:20px 0 18px}
.hero-product .hero-promise{order:6;justify-content:flex-start}
/* PCとタブレットの横向きは、左に文字、右上に動画 */
@media (min-width:960px){
  .hero-product .hero-inner{grid-template-columns:minmax(0,1fr) auto;max-width:1640px;gap:clamp(28px,3vw,52px);align-items:start;padding-top:clamp(24px,2.6vw,40px)}
  .hero-product .hero-copy{display:block;align-self:center;container-type:inline-size}
  .hero-product h1{font-size:clamp(28px,10cqi,50px);margin:14px 0 18px}
  .hero-product .tutorial{width:min(60vw,max(420px,var(--tut-fit)),1060px)}
  .hero-product .hero-lead{margin-top:0;line-height:1.9}
  .hero-product .hero-actions{margin:24px 0 20px}
  .hero-product .hero-actions .btn-large{width:100%;justify-content:center}
  .hero-product .hero-promise{flex-direction:column;gap:6px}
}
@media (min-width:1200px){
  .hero-product .tutorial{width:min(66vw,max(420px,var(--tut-fit)),1060px)}
}

/* 使い方の動画（無音の24秒＋音声つきの本編） */
.tutorial{margin:0;width:100%;text-align:left}
.tut-window{border-radius:12px;overflow:hidden;background:#151719;box-shadow:0 40px 90px #000b,0 0 0 1px #ffffff26}
.tut-stage{position:relative;aspect-ratio:1440/804;background:#fff}
.tut-loop{display:block;width:100%;height:100%;object-fit:cover}
.tut-hit{position:absolute;inset:0;border:0;background:none;cursor:pointer}
.tut-bar{display:flex;align-items:center;gap:20px;padding:14px 18px 14px 20px;background:#151719;border-top:2px solid var(--crimson)}
.tut-caption{flex:1;min-width:0;display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:14px;color:#fff}
.tut-step{grid-row:1/3;font-family:var(--serif);font-size:13px;letter-spacing:.08em;color:#e7a39b;white-space:nowrap}
.tut-title{font-family:var(--serif);font-size:clamp(16px,1.8vw,21px);line-height:1.5}
.tut-sub{font-size:clamp(12px,1.05vw,14px);color:#d8d1c4;margin-top:1px}
.tut-open{flex-shrink:0;display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 20px;border:0;border-radius:4px;background:var(--crimson);color:#fff;font-size:15px;font-weight:700;cursor:pointer;transition:background .2s}
.tut-open:hover{background:var(--crimson-deep)}
.tut-open i{font-style:normal;font-size:11px}
.tut-open small{font-size:12px;font-weight:400;color:#f6d9d5}
.tut-controls{display:flex;align-items:center;gap:14px;margin-top:16px}
.tut-play{flex-shrink:0;width:40px;height:40px;border-radius:50%;border:1px solid #ffffff55;background:transparent;color:#fff;font-size:12px;cursor:pointer}
.tut-play:hover{background:#ffffff1a}
.tut-chapters{flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;list-style:none}
.tut-chapters li{position:relative;padding-top:10px}
.tut-chapters li::before,.tut-chapters i{content:'';position:absolute;left:0;top:0;height:3px;border-radius:2px}
.tut-chapters li::before{right:0;background:#ffffff2e}
.tut-chapters i{width:0;background:var(--crimson)}
.tut-chapters button{width:100%;min-height:32px;border:0;background:none;color:#cfc8bb;font-size:13px;text-align:left;padding:4px 0;cursor:pointer}
.tut-chapters button:hover{color:#fff}
.tut-chapters button span{font-family:Georgia,serif;color:#e7a39b;margin-right:8px}
.tut-chapters li.is-current button{color:#fff}
.tutorial>figcaption{margin-top:10px;font-size:11px;color:#a49b8d;text-align:center;word-break:auto-phrase;line-break:strict}

/* 音声つきの本編を開く画面 */
.video-modal{width:min(1180px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:44px 0 0;border:0;background:transparent;overflow:visible;color:#fff}
.video-modal::backdrop{background:#151719eb}
.video-frame{position:relative;background:#000;border-radius:8px;overflow:hidden}
.video-frame video{display:block;width:100%;height:auto;max-height:calc(100dvh - 120px)}
.video-close{position:absolute;right:0;top:0;width:40px;height:40px;border:0;background:none;color:#fff;font-size:28px;line-height:1;cursor:pointer}
.video-end{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(14px,3vw,28px);padding:16px;background:#151719eb;text-align:center}
.video-end[hidden]{display:none}
.video-end-title{font-family:var(--serif);font-size:clamp(17px,2.6vw,30px);line-height:1.5}
.video-end-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px}
.video-replay{min-height:46px;padding:0 20px;border:1px solid #ffffff66;border-radius:4px;background:none;color:#fff;font-size:14px;cursor:pointer}
.video-replay:hover{background:#ffffff1a}
.video-chapters{margin-top:14px}

/* 取扱カタログの帯 */
.catalog-strip{max-width:none!important;padding:34px 0 26px!important;background:#f3efe7;border-bottom:1px solid var(--line);overflow:hidden;text-align:center}
.strip-label{font-size:12px;letter-spacing:.16em;color:var(--ink-mute);margin-bottom:18px}
.strip-track{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.strip-row{display:flex;gap:28px;width:max-content;animation:marquee 40s linear infinite}
.strip-row img{height:96px;width:auto;filter:drop-shadow(0 6px 6px #0002)}
.strip-note{font-size:11px;color:var(--confirm);margin-top:14px}
@keyframes marquee{to{transform:translateX(-50%)}}

/* スクロールで節が静かに現れる */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
.reveal.is-in{opacity:1;transform:none}

/* 事前登録版：法人・大ロット */
.launch-tag{display:inline-block;background:var(--crimson);color:#fff;font-size:11px;letter-spacing:.1em;padding:2px 10px;margin-right:12px}
.ways .self-modes{margin-top:44px}
.lot{max-width:none!important;background:var(--night);color:#efe9de;padding-left:max(var(--gutter),calc((100% - var(--wrap))/2 + var(--gutter)))!important;padding-right:max(var(--gutter),calc((100% - var(--wrap))/2 + var(--gutter)))!important}
.lot-copy{max-width:760px;margin-bottom:44px}
.lot-copy h2{color:#fff;margin-bottom:20px}
.lot-copy p:not(.badge){color:#cfc8bb;font-size:15px}
.lot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.lot-grid li{border:1px solid #ffffff2e;padding:28px 24px;font-size:14px;color:#cfc8bb}
.lot-num{font-family:Georgia,serif;font-size:30px;color:#d8a39d;line-height:1}
.lot-head{font-family:var(--serif);font-size:21px;color:#fff;margin:14px 0 8px}
.lot-note{margin-top:22px;font-size:12px;color:#a49b8d}
.field-row-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.footer-operator{font-size:13px;color:var(--ink-soft)}

/* 提案の見本 */
.sample{background:var(--paper-warm);max-width:none!important;padding-left:max(var(--gutter),calc((100% - var(--wrap))/2 + var(--gutter)))!important;padding-right:max(var(--gutter),calc((100% - var(--wrap))/2 + var(--gutter)))!important}
.sample-board{display:grid;grid-template-columns:minmax(0,.9fr) auto minmax(0,1.5fr);gap:28px;align-items:center}
.sample-kicker{font-size:12px;letter-spacing:.12em;color:var(--crimson);margin-bottom:16px}
.sample-request{background:#fff;border:1px solid var(--line);padding:30px}
.sample-request dl>div{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:14px}
.sample-request dt{color:var(--ink-mute)}
.sample-arrow{font-size:28px;color:var(--crimson)}
.sample-proposals ol{display:grid;gap:12px}
.proposal{display:grid;grid-template-columns:110px 1fr;gap:20px;align-items:center;background:#fff;border:1px solid var(--line);padding:14px 20px 14px 14px}
.proposal img{width:110px;height:110px;object-fit:contain;background:#fafaf7}
.proposal-label{font-size:11px;color:var(--crimson);letter-spacing:.06em}
.proposal-name{font-family:var(--serif);font-size:19px;line-height:1.5}
.proposal-meta{font-size:12px;color:var(--ink-mute)}
.proposal-why{font-size:13px;color:var(--ink-soft);margin-top:4px}
.sample-note{margin-top:20px;font-size:12px;color:var(--ink-mute)}

/* 品揃え */
.range{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center}
.range-visual{text-align:center}
.catalog-row{display:flex;justify-content:center;gap:10px;margin-bottom:20px}
.catalog-row img{width:72px;height:104px;object-fit:contain;filter:drop-shadow(0 8px 6px #0002);transition:transform .3s}
.catalog-row img:nth-child(odd){transform:translateY(8px)}
.range-total{font-family:Georgia,serif;line-height:1.1;white-space:nowrap}
.range-total strong{font-size:clamp(52px,6vw,80px);font-weight:400;color:#a32822;letter-spacing:-.03em}
.range-total span{font-family:var(--serif);font-size:22px;margin:0 8px}
.range-caption{font-size:12px;color:var(--ink-mute);margin-top:8px}

/* 信用 */
.trust{border-top:1px solid var(--line)}
.trust-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.trust-grid li{border-top:2px solid var(--crimson);padding-top:22px;font-size:14px;color:var(--ink-soft)}
.trust-head{font-family:var(--serif);font-size:22px;color:var(--ink);margin-bottom:10px}
.trust-grid .trust-todo{margin-top:12px}

/* 流れ */
.flow-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;counter-reset:step}
.flow-steps li{position:relative;background:#fff;border:1px solid var(--line);padding:28px 22px 24px;font-size:14px;color:var(--ink-soft)}
.flow-no{font-family:Georgia,serif;font-size:34px;color:var(--crimson);line-height:1}
.flow-head{font-family:var(--serif);font-size:20px;color:var(--ink);margin:12px 0 8px}

/* 依頼フォーム */
.request{max-width:none!important;background:var(--night);color:#efe9de;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:56px;padding-left:max(var(--gutter),calc((100% - var(--wrap))/2 + var(--gutter)))!important;padding-right:max(var(--gutter),calc((100% - var(--wrap))/2 + var(--gutter)))!important}
.request-intro h2{color:#fff;margin-bottom:20px}
.request-intro p{color:#cfc8bb;font-size:14px}
.request-points{margin-top:28px;display:grid;gap:10px;font-size:14px}
.request-points li::before{content:'◇';color:#d8a39d;margin-right:8px}
.request-form{background:var(--paper);color:var(--ink);padding:40px;display:grid;gap:30px}
fieldset{border:0;margin:0;padding:0;display:grid;gap:20px;min-width:0}
legend{font-family:var(--serif);font-size:20px;padding:0 0 14px;border-bottom:1px solid var(--line);width:100%;margin-bottom:6px}
.field{display:grid;gap:8px;min-width:0}
.label-text{font-size:13px;font-weight:600;display:flex;gap:8px;align-items:center}
.label-text em{font-style:normal;font-size:10px;font-weight:400;color:#fff;background:var(--crimson);padding:1px 6px}
.label-text em.optional{background:transparent;color:var(--ink-mute);border:1px solid var(--line)}
input:not([type=radio]):not([type=checkbox]):not([type=file]),select,textarea{width:100%;padding:13px 14px;border:1px solid #cfc5b4;background:#fff;border-radius:0;min-width:0}
textarea{resize:vertical}
.field-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips label{position:relative}
.chips input{position:absolute;opacity:0;inset:0;cursor:pointer}
.chips span{display:inline-block;padding:9px 16px;border:1px solid #cfc5b4;background:#fff;font-size:14px;transition:background .15s,border-color .15s}
.chips input:checked+span{background:var(--crimson);border-color:var(--crimson);color:#fff}
.chips input:focus-visible+span{outline:3px solid var(--crimson);outline-offset:2px}
.file-field input{font-size:13px}
.photo-preview{max-height:180px;width:auto;border:1px solid var(--line)}
.agree{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--ink-soft)}
.agree input{margin-top:6px;width:18px;height:18px;flex-shrink:0}
.agree a{color:var(--crimson);border-bottom:1px solid currentColor}
.field.is-invalid input,.field.is-invalid textarea,.field.is-invalid .chips span{border-color:var(--crimson);background:var(--crimson-tint)}
.form-error{color:var(--crimson);font-size:14px;font-weight:600}
.btn-submit{width:100%}
.form-note{font-size:12px;color:var(--ink-mute)}
.request-done{grid-column:2;background:var(--paper);color:var(--ink);padding:48px 40px;display:grid;gap:16px;align-content:start}
.request-done .badge{color:var(--crimson)}

/* よくある質問 */
.faq-list{display:grid;gap:10px;max-width:820px}
.faq details{border:1px solid var(--line);background:#fff}
.faq summary{cursor:pointer;padding:18px 22px;font-family:var(--serif);font-size:17px;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::after{content:'＋';color:var(--crimson)}
.faq details[open] summary::after{content:'－'}
.faq details p{padding:0 22px 20px;color:var(--ink-soft);font-size:14px}

/* 締め */
.closing{text-align:center;padding-top:40px!important}
.closing-copy{font-family:var(--serif);font-size:clamp(22px,2.4vw,30px);letter-spacing:.08em;margin-bottom:28px}
.closing-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.closing-sub{display:block;margin-top:18px;font-size:13px;color:var(--ink-soft)}

/* フッター */
.site-footer{border-top:1px solid var(--line);padding:48px var(--gutter) 90px}
.footer-inner{max-width:var(--wrap);margin:0 auto;display:grid;gap:18px;justify-items:start}
.footer-logo{width:220px}
.site-footer nav{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:13px;color:var(--ink-soft)}
.site-footer small{color:var(--ink-mute)}

/* 画面下の固定ボタン（スマホのみ） */
.sticky-cta{display:none}

/* 1100px以下 */
@media (max-width:1100px){
  .site-header nav{display:none}
  .header-cta{margin-left:auto}
  .header-login{margin-left:auto}
  .hero-copy{width:min(560px,62%)}
  .hero::after{background:linear-gradient(90deg,#151719 0%,#151719eb 50%,#15171944 88%)}
  .sample-board{grid-template-columns:1fr;gap:16px}
  .sample-arrow{transform:rotate(90deg);justify-self:center}
  .flow-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .request{grid-template-columns:1fr;gap:32px}
  .request-done{grid-column:1}
}

/* 760px以下（スマホ） */
@media (max-width:760px){
  :root{--gutter:16px}
  html{scroll-padding-top:72px}
  h2{font-size:24px;letter-spacing:.02em}
  .draft-bar{font-size:11px}
  .site-header{height:64px;padding:0 var(--gutter);gap:10px}
  .brand{width:170px;height:44px}
  .brand img{width:184px;left:-8px;top:-10px}
  .header-login{font-size:12px}
  .header-cta{display:none}
  .hero{height:auto;display:flex;flex-direction:column}
  .hero::after{display:none}
  .hero-image{position:relative;order:2;height:240px;object-position:72% center}
  .hero-copy{width:100%;padding:36px var(--gutter) 30px;background:var(--night)}
  .hero h1{font-size:31px;margin:14px 0 16px}
  .hero-lead{font-size:14px}
  .hero-lead br{display:none}
  .hero-actions{margin:26px 0 22px}
  .hero-actions{gap:12px}
  .hero-actions .btn-large,.closing-actions .btn-large{width:100%}
  .ways-grid{grid-template-columns:1fr;gap:16px}
  .way-card{padding:26px 22px}
  .self-modes button{flex:1;padding:10px 4px;font-size:12px;white-space:nowrap}
  .demo-bar{height:52px}
  .demo-glass{padding:0 10px}
  .demo-query{font-size:14px}
  .demo-run{padding:0 14px}
  .demo-results{gap:8px}
  .demo-results li{padding:6px}
  .demo-name{font-size:14px}
  .self-cta .btn-large{width:100%}
  .lot-grid{grid-template-columns:1fr;gap:12px}
  .hero-product .hero-image{display:none}
  .hero-inner{grid-template-columns:1fr;padding:40px var(--gutter) 48px;gap:34px}
  .hero-product .hero-copy{background:transparent;padding:0}
  .hero-product .hero-inner{text-align:left;justify-items:stretch}
  .hero-product .hero-actions,.hero-product .hero-promise{justify-content:flex-start}
  .tut-bar{flex-direction:column;align-items:stretch;gap:12px;padding:12px 14px 14px}
  .tut-caption{column-gap:10px}
  .tut-open{justify-content:center}
  .tut-controls{gap:10px}
  .tut-chapters{gap:6px}
  .tut-chapters button{font-size:11px;line-height:1.4}
  .tut-chapters button span{display:block;margin:0}
  .app-body{min-height:400px;padding:12px}
  .app-results ul{gap:6px}
  .app-name{font-size:12px}
  .strip-row img{height:72px}
  .strip-row{gap:18px}
  .field-row-2{grid-template-columns:1fr}
  .launch-tag{display:table;margin:0 0 10px}
  .visual-label{bottom:8px;right:8px;font-size:9px}
  main>section:not(.hero){padding:72px var(--gutter)}
  .section-head{margin-bottom:30px}
  .compare-frame{aspect-ratio:4/5}
  .compare-before{padding:0 0 5% 4%;background:radial-gradient(ellipse 40% 26% at 28% 40%,#f2efe8 0 92%,#3a3530 93% 96%,transparent 97%),#1f1c19}
  .compare-after{padding:0 4% 5% 0;background:radial-gradient(ellipse 40% 26% at 72% 40%,#2f4a6b 0 92%,#16293f 93% 96%,transparent 97%),#131a22}
  .shoot-slot{max-width:46%;padding:10px 12px}
  .shoot-vessel{font-size:15px}
  .sample-request{padding:22px}
  .sample-request dl>div{grid-template-columns:84px 1fr;font-size:13px}
  .proposal{grid-template-columns:84px 1fr;gap:14px;padding:12px}
  .proposal img{width:84px;height:84px}
  .proposal-name{font-size:17px}
  .range{grid-template-columns:1fr;gap:32px}
  .catalog-row{gap:6px}
  .catalog-row img{width:46px;height:68px}
  .trust-grid{grid-template-columns:1fr;gap:22px}
  .flow-steps{grid-template-columns:1fr}
  .request-form{padding:24px 18px}
  .field-row{grid-template-columns:1fr}
  .request-done{padding:32px 20px}
  .faq summary{font-size:16px;padding:16px}
  .faq details p{padding:0 16px 16px}
  .sticky-cta{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:40;min-height:54px;font-size:15px;box-shadow:0 8px 24px #0004;transition:transform .25s,opacity .25s}
  .sticky-cta.is-hidden{transform:translateY(120%);opacity:0;pointer-events:none}
}

@media (max-width:1100px) and (min-width:761px){
  .hero-inner{grid-template-columns:1fr;max-width:760px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
  .app-step{opacity:1;transform:none}
  *,*::before,*::after{transition:none!important;animation:none!important}
}

/* 「できること」：動画と同じ検索例 */
.ways-demo{background:var(--paper-warm);border:1px solid var(--line);padding:clamp(20px,4vw,44px)}
.ways-panel[hidden]{display:none}
.ways-demo .demo-bar{height:auto;min-height:60px;max-width:none;padding-left:18px}
.ways-demo .demo-query{white-space:normal;padding:12px 16px 12px 0;font-size:16px;line-height:1.6}
.ways-demo .demo-run{display:flex;align-items:center;flex:none}
.ways-demo .demo-hint{margin-bottom:20px}
.is-typing .demo-query::after{content:'';display:inline-block;width:2px;height:1.1em;background:var(--ink);vertical-align:-3px;margin-left:2px}
.ways-source{flex:1;min-width:0;display:flex;align-items:center;gap:14px;padding:8px 16px 8px 0;font-size:15px}
.ways-source img{width:64px;height:64px;object-fit:cover}
.ways-count{font-size:13px;font-weight:600;margin-bottom:12px}
.ways-demo .demo-results img{object-fit:contain;background:#fff}
.demo-body{min-width:0}
.ways-demo .demo-name{font-size:16px;font-weight:600;line-height:1.5;margin-top:8px}
.ways-demo .demo-cat{color:var(--ink-mute);margin-top:10px}
.ways-demo .demo-cat + .demo-name{margin-top:2px}
.demo-desc{font-size:13px;line-height:1.6;margin-top:4px}
.demo-spec{font-size:12px;color:var(--ink-soft);margin-top:4px}
.demo-price{font-size:16px;font-weight:600;margin-top:6px}
.demo-price small{font-size:11px;font-weight:400;color:var(--ink-mute);margin-left:6px}
.ways-watch{display:inline-flex;align-items:center;gap:8px;margin-top:20px;border:1px solid var(--ink);background:#fff;color:var(--ink);padding:10px 18px;font-size:14px;cursor:pointer}
.ways-watch i{font-style:normal;font-size:11px;color:var(--crimson)}
.ways-watch:hover{background:var(--ink);color:#fff}
.ways-watch:hover i{color:#fff}
@media (max-width:640px){
  .ways-demo .demo-bar{min-height:52px;padding-left:12px}
  .ways-demo .demo-query{font-size:14px;padding-right:10px}
  .ways-source{font-size:13px;gap:10px}
  .ways-source img{width:48px;height:48px}
  .ways-demo .demo-results{grid-template-columns:1fr}
  .ways-demo .demo-results li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;align-items:center;padding:10px}
  .ways-demo .demo-cat,.ways-demo .demo-name{margin-top:0}
  .ways-watch{width:100%;justify-content:center}
}

/* サイトURLの「サイトはありません」 */
.site-none{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft);cursor:pointer;justify-self:start}
.field .site-none input{width:18px;height:18px;padding:0;margin:0;flex-shrink:0}
.field input:disabled{background:#f1eee8;color:var(--ink-mute)}

/* 「できること」：商品カードを1枚ずつ出す */
.ways-demo .demo-results li{transition:opacity .45s ease,transform .45s ease}
.ways-demo .demo-results li:nth-child(2){transition-delay:.3s}
.ways-demo .demo-results li:nth-child(3){transition-delay:.6s}
.ways-demo .is-typing .demo-results{opacity:1}
.ways-demo .is-typing .demo-results li{opacity:0;transform:translateY(10px);transition:none}
@media (prefers-reduced-motion:reduce){
  .ways-demo .demo-results li{transition:none}
}

/* 「写真から」：写真をドラッグして落とす動き */
.ways-drop{position:relative}
.ways-drop-hint{display:none;position:absolute;left:18px;top:50%;transform:translateY(-50%);font-size:14px;font-weight:600;color:var(--ink-soft)}
.ways-drop-sp{display:none}
.ways-drop .demo-run{transition:opacity .3s}
.ways-drop.is-empty{outline:2px dashed var(--crimson);outline-offset:-2px}
.ways-drop.is-empty .ways-source{visibility:hidden}
.ways-drop.is-empty .ways-drop-hint{display:block}
.ways-drop.is-empty .demo-run{opacity:.4}
.ways-drop.is-over{background:var(--crimson-tint)}
.ways-fly{display:none;position:absolute;z-index:3;width:64px;height:64px;pointer-events:none;transform-origin:top left}
.ways-fly img{width:100%;height:100%;object-fit:cover;box-shadow:0 8px 20px rgba(0,0,0,.28)}
.ways-fly svg{position:absolute;right:-12px;bottom:-14px}
.ways-drop.is-dragging .ways-fly{display:block;animation:ways-drag 1.25s cubic-bezier(.45,0,.2,1) both}
@keyframes ways-drag{
  0%{opacity:0;transform:translate(var(--from-x),130px) scale(1.5) rotate(-5deg)}
  14%{opacity:1;transform:translate(var(--from-x),130px) scale(1.5) rotate(-5deg)}
  88%{opacity:1;transform:translate(0,0) scale(1.1) rotate(0)}
  100%{opacity:1;transform:translate(0,0) scale(1) rotate(0)}
}
@media (max-width:640px){
  .ways-drop-hint{left:12px;font-size:13px}
  .ways-drop-pc{display:none}
  .ways-drop-sp{display:inline}
  .ways-fly{width:48px;height:48px}
}
@media (prefers-reduced-motion:reduce){
  .ways-drop.is-dragging .ways-fly{animation:none}
}
