/* FLINT TOOLS — 販売ページの共通スタイル。
   Logo Kit v1.2 §5/§6 に合わせる: Spark Orange #FF7A00 / Charcoal #2F2F2F /
   Fog #A7A7A7 / Nordic Gray #D9D9D9。見出しは Plus Jakarta Sans、本文は Inter。
   北欧的・静か・ミニマル。飾りを足さない。 */
:root{
  --orange:#FF7A00; --orange-light:#FFC266; --orange-deep:#E04E00;
  --charcoal:#2F2F2F; --fog:#A7A7A7; --gray:#D9D9D9;
  --bg:#FFFFFF; --text:#2F2F2F; --sub:#6B6B6B; --line:#E7E7E4; --soft:#FAFAF8;
  --maxw:880px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#1F1F1F; --text:#ECECEA; --sub:#A7A7A7; --line:#3A3A3A; --soft:#262626;
  }
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif;
  font-size:17px; line-height:1.85; letter-spacing:.01em;
  font-feature-settings:"palt";
}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 16px}
h1,h2,h3{font-family:"Plus Jakarta Sans",Inter,sans-serif; line-height:1.4; letter-spacing:-.01em}
h1{font-size:clamp(28px,5vw,40px); font-weight:600; margin:0 0 .5em}
h2{font-size:clamp(21px,3.4vw,26px); font-weight:600; margin:2.6em 0 .7em}
h3{font-size:17px; font-weight:600; margin:1.8em 0 .4em}
p{margin:0 0 1.1em}
a{color:var(--orange-deep)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) a{color:var(--orange-light)}}
small,.small{font-size:14px; color:var(--sub); line-height:1.7}

header.nav{border-bottom:1px solid var(--line)}
header.nav .wrap{display:flex; align-items:center; gap:16px; height:64px}
header.nav img{height:22px; width:auto}
header.nav .sp{margin-left:auto}
header.nav a{color:var(--sub); text-decoration:none; font-size:14px; margin-left:18px}
header.nav a:hover{color:var(--text)}
header.nav a.nav-partner{margin-left:8px; padding:8px 13px; border:1px solid rgba(255,122,0,.45); border-radius:9px;
  color:var(--text); font-weight:600; background:rgba(255,122,0,.06)}
header.nav a.nav-partner:hover{border-color:var(--orange); background:rgba(255,122,0,.12)}

.hero{padding:72px 0 8px}
.hero .lede{font-size:clamp(18px,2.4vw,21px); color:var(--sub); margin-bottom:1.6em; max-width:34em}
.tag{display:inline-block; font-family:"Plus Jakarta Sans",sans-serif; font-size:12px; letter-spacing:.16em;
     color:var(--orange); font-weight:600; margin-bottom:14px}

.btn{display:inline-block; padding:14px 26px; border-radius:10px; text-decoration:none; font-weight:600;
     background:linear-gradient(135deg,var(--orange-light),var(--orange) 45%,var(--orange-deep));
     color:#fff; border:0; font-size:16px}
.btn:hover{filter:brightness(1.05)}
.btn2{display:inline-block; padding:13px 22px; border-radius:10px; text-decoration:none;
      border:1px solid var(--line); color:var(--text); font-size:15px}
.btns{display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin:1.4em 0}

.shot{width:100%; height:auto; border:1px solid var(--line); border-radius:14px; display:block; margin:34px 0}
figure{margin:0}
figcaption{font-size:13px; color:var(--sub); margin-top:-22px; margin-bottom:34px}

.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; margin:1.4em 0}
.card{border:1px solid var(--line); border-radius:14px; padding:20px 22px; background:var(--soft)}
.card h3{margin-top:0}
.card p:last-child{margin-bottom:0}
/* トップの製品カード。ボタンをカードの下端に揃える */
.card.product{display:flex; flex-direction:column}
.card.product .tag{margin-bottom:6px}
.card.product .status{font-size:14px; color:var(--sub); margin-bottom:0}
.card.product .btns{margin:auto 0 0; padding-top:16px}

.price{border:1px solid var(--line); border-radius:14px; padding:24px; background:var(--soft)}
.price .amount{font-family:"Plus Jakarta Sans",sans-serif; font-size:34px; font-weight:600; letter-spacing:-.02em}
.price .unit{font-size:15px; color:var(--sub); margin-left:6px}
.price.soon{opacity:.72}
.buyrow{display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin:1.2em 0 .6em}
.buyrow label{font-size:15px; color:var(--sub)}
.buyrow input{width:5.5em; padding:12px 10px; font-size:16px; font-family:inherit;
  border:1px solid var(--line); border-radius:10px; background:var(--bg); color:inherit}
.buyerr{color:#B3261E; font-size:14px; margin:.2em 0 0}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .buyerr{color:#FF9A90}}
table{border-collapse:collapse; width:100%; font-size:15px; margin:1em 0}
th,td{border-bottom:1px solid var(--line); padding:11px 8px; text-align:left; vertical-align:top}
th{width:11em; color:var(--sub); font-weight:500}
dl.faq dt{font-weight:600; margin-top:1.4em}
dl.faq dd{margin:.3em 0 0; color:var(--sub)}
ul{padding-left:1.2em} li{margin:.35em 0}

.note{border-left:3px solid var(--orange); padding:2px 0 2px 16px; color:var(--sub); margin:1.4em 0}
.todo{background:#FFF4E6; border:1px solid #FFD9A8; color:#8A4B00; border-radius:8px;
      padding:2px 8px; font-size:14px; font-weight:600}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .todo{background:#3A2A14; border-color:#6B4A18; color:#FFC266}}

footer{border-top:1px solid var(--line); margin-top:72px; padding:32px 0 56px; color:var(--sub); font-size:14px}
footer a{color:var(--sub); margin-right:16px}
footer .tagline{font-family:"Plus Jakarta Sans",sans-serif; letter-spacing:.14em; font-size:11px; color:var(--fog); margin-top:14px}

/* トップページ — Linear 型の構成に、FLINT の火花を重ねる。 */
body.home-dark{
  --bg:#090A0B; --text:#F4F2ED; --sub:#95979C; --line:rgba(255,255,255,.09); --soft:#111315;
  background:#090A0B; color:var(--text); overflow-x:hidden;
}
.home-dark .wrap{max-width:1180px; padding-left:24px; padding-right:24px}
.home-dark header.nav{position:relative; z-index:10; border-color:var(--line); background:rgba(9,10,11,.72); backdrop-filter:blur(16px)}
.home-dark header.nav .wrap{height:76px}
.home-dark header.nav img{height:34px}
.home-dark header.nav a{color:#8F9296; font-size:13px}
.home-dark header.nav a:hover{color:#FFF}
.home-dark header.nav a.nav-partner{color:#FFD09B; border-color:rgba(255,122,0,.48); background:rgba(255,122,0,.08)}
.home-stage{position:relative; min-height:920px; overflow:hidden; border-bottom:1px solid rgba(255,255,255,.045)}
.home-art{position:absolute; top:-24px; left:-4%; width:108%; height:710px; pointer-events:none; opacity:.92; overflow:hidden;
  background-image:linear-gradient(90deg,#090A0B 0%,rgba(9,10,11,.96) 18%,rgba(9,10,11,.56) 48%,rgba(9,10,11,.06) 77%),linear-gradient(180deg,rgba(9,10,11,.08) 0%,rgba(9,10,11,.02) 60%,#090A0B 100%),url('/assets/flint_hero_sparks.webp');
  background-size:118% auto; background-position:48% 0%; filter:brightness(.96) saturate(1.08)}
.home-art:before,.home-art:after{content:"";position:absolute;inset:-22% -12%;pointer-events:none;
  -webkit-mask-image:linear-gradient(122deg,transparent 31%,rgba(0,0,0,.12) 39%,#000 52%,rgba(0,0,0,.88) 72%,transparent 88%);
  mask-image:linear-gradient(122deg,transparent 31%,rgba(0,0,0,.12) 39%,#000 52%,rgba(0,0,0,.88) 72%,transparent 88%)}
.home-art:before{
  background:
    repeating-linear-gradient(122deg,transparent 0 18px,rgba(255,201,115,.11) 20px 22px,transparent 25px 42px),
    repeating-linear-gradient(122deg,rgba(91,24,0,.1) 0 32px,rgba(255,91,0,.26) 38px 43px,rgba(255,186,78,.13) 48px 51px,rgba(67,16,0,.12) 58px 82px);
  background-size:340px 340px,520px 520px;mix-blend-mode:screen;filter:blur(.35px) saturate(1.5);
  will-change:background-position;animation:home-lava-flow 1.65s linear infinite}
.home-art:after{
  background:repeating-linear-gradient(122deg,transparent 0 66px,rgba(255,111,0,.08) 72px 79px,rgba(255,218,148,.2) 82px 84px,transparent 88px 142px);
  background-size:680px 680px;mix-blend-mode:color-dodge;filter:blur(1.2px);
  will-change:background-position;animation:home-lava-flow 2.4s linear -.8s infinite}
@keyframes home-lava-flow{
  from{background-position:-260px 150px,0 0}
  to{background-position:260px -150px,520px -300px}
}
.home-friction{position:absolute; inset:0; height:650px; overflow:hidden; pointer-events:none; z-index:1}
.home-friction i{position:absolute; left:var(--x); top:var(--y); width:var(--len); height:2px; opacity:0;
  border-radius:999px; transform:rotate(-31deg) translate3d(-30px,0,0) scaleX(.18); transform-origin:right center;
  background:linear-gradient(90deg,transparent,rgba(255,122,0,.55) 36%,#FFD49A 82%,#FFF 100%);
  box-shadow:0 0 8px #FF7A00,0 0 18px rgba(255,94,0,.72); will-change:transform,opacity;
  animation:home-friction-streak var(--dur) linear var(--delay) infinite}
@keyframes home-friction-streak{
  0%{opacity:0;transform:rotate(-31deg) translate3d(-36px,0,0) scaleX(.12)}
  12%{opacity:.95}
  56%{opacity:.72}
  100%{opacity:0;transform:rotate(-31deg) translate3d(118px,0,0) scaleX(1)}
}
.home-noise{position:absolute; inset:0; pointer-events:none; opacity:.05; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}
.home-sparks{position:absolute; inset:0; height:650px; overflow:hidden; pointer-events:none; z-index:1}
.home-sparks i{position:absolute; left:var(--x); top:var(--y); width:var(--w,3px); height:var(--h,3px); border-radius:999px; background:#FFC266; box-shadow:0 0 10px #FF7A00,0 0 22px rgba(255,122,0,.55); opacity:0; transform:rotate(var(--r,0deg)); animation:home-spark-float calc(var(--dur,5s) * .48) linear calc(var(--delay,0s) * .48) infinite}
@keyframes home-spark-float{0%,12%{opacity:0;transform:translate3d(0,18px,0) rotate(var(--r,0deg)) scale(.35)}22%{opacity:.92}64%{opacity:.55}100%{opacity:0;transform:translate3d(var(--dx,70px),var(--dy,-120px),0) rotate(calc(var(--r,0deg) + 45deg)) scale(1)}}
.home-hero{position:relative; z-index:2; padding-top:116px}
.home-copy{max-width:760px}
.home-copy.home-copy-wide{max-width:1100px}
.home-eyebrow{display:flex; align-items:center; gap:9px; margin-bottom:28px; color:#B5B6B7; font-family:Inter,sans-serif; font-size:12px; line-height:1; letter-spacing:.13em; font-weight:600}
.home-eyebrow:before{content:""; width:7px; height:7px; border-radius:50%; background:linear-gradient(135deg,#FFC266,#FF7A00 52%,#E04E00); box-shadow:0 0 20px rgba(255,122,0,.9)}
.home-copy h1{max-width:760px; margin:0; font-family:"Noto Sans JP",Inter,sans-serif; font-size:clamp(48px,6.2vw,82px); line-height:1.12; letter-spacing:-.055em; font-weight:600}
.home-copy h1.home-headline-long{max-width:1100px; font-size:clamp(44px,5vw,68px)}
.home-mobile-break{display:none}
.home-copy h1 span{background:linear-gradient(100deg,#FFC266,#FF7A00 54%,#E04E00); -webkit-background-clip:text; background-clip:text; color:transparent}
.home-copy>p{max-width:590px; margin:30px 0 0; color:#A3A5A8; font-size:18px; line-height:1.75}
.home-actions{display:flex; align-items:center; gap:15px; margin-top:38px}
.home-actions .btn{padding:14px 21px; border-radius:10px; color:#130A02; font-size:14px; box-shadow:0 12px 48px rgba(255,122,0,.2)}
.home-actions .btn b{margin-left:8px; font-size:18px; line-height:1}
.home-actions .btn2{padding:13px 19px; border-color:var(--line); background:rgba(11,12,13,.52); color:#D1D2D2; font-size:14px; backdrop-filter:blur(10px)}
.home-window{position:relative; margin-top:94px; padding:1px; border-radius:18px; background:linear-gradient(145deg,rgba(255,194,102,.35),rgba(255,255,255,.08) 18%,rgba(255,255,255,.03) 70%,rgba(224,78,0,.25)); box-shadow:0 55px 120px rgba(0,0,0,.68),0 0 90px rgba(255,122,0,.06)}
.home-window-label{height:54px; display:flex; align-items:center; gap:12px; padding:0 22px; border-radius:17px 17px 0 0; background:#171819; color:#F1F0EC; font-size:14px}
.home-window-label span{color:#787B80; font-size:12px}
.home-window-crop{height:330px; overflow:hidden; border-radius:0 0 17px 17px; background:#1C1D1E}
.home-window-crop img{display:block; width:100%; height:auto; transform:translateY(-21%); filter:saturate(.92) contrast(1.04)}
.home-products{padding-top:68px}
.home-products h2{margin-top:0; font-size:clamp(28px,4vw,42px); letter-spacing:-.03em}
.home-dark .cards{gap:14px}
.home-dark .card{border-color:var(--line); background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.018)); box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.home-dark .card h3{color:#EDECE8; font-size:19px; line-height:1.55}
.home-dark .card p{color:#9A9CA0; font-size:15px}
.home-dark .card .status strong{color:#FFC266}
.home-dark footer{border-color:var(--line); color:#74777C}
.home-dark footer a{color:#8B8E92}
@media(prefers-reduced-motion:reduce){.home-art:before,.home-art:after,.home-friction i,.home-sparks i{animation:none}.home-friction,.home-sparks{display:none}}
@media(max-width:760px){
  .home-dark .wrap{padding-left:16px; padding-right:16px}
  .home-dark header.nav .wrap{height:66px}.home-dark header.nav img{height:28px}.home-dark header.nav a{margin-left:8px}.home-dark header.nav a[href="/rush-tools"],.home-dark header.nav a[href="/en/"]{display:none}
  .home-stage{min-height:790px}.home-art{height:560px; background-position:57% top}.home-hero{padding-top:64px}.home-copy h1{font-size:46px}.home-copy h1.home-headline-long{font-size:40px}.home-mobile-break{display:block}.home-copy>p{font-size:16px}.home-actions{align-items:stretch; flex-direction:column}.home-actions .btn,.home-actions .btn2{text-align:center}.home-window{margin-top:58px}.home-window-crop{height:255px}.home-window-crop img{width:140%; max-width:none; transform:translate(-14%,-19%)}
}

/* 代理店プログラム */
.partner-hero{padding:72px 0 22px; max-width:700px}
.partner-hero h1{font-size:clamp(34px,6vw,54px); letter-spacing:-.035em}
.partner-hero .lede{font-size:19px; color:var(--sub)}
.partner-flow{counter-reset:flow; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:28px 0 48px}
.partner-flow .card{position:relative; padding-top:54px}
.partner-flow .card:before{counter-increment:flow; content:counter(flow); position:absolute; top:18px; left:20px;
  width:25px; height:25px; display:grid; place-items:center; border-radius:50%; background:var(--orange); color:#fff; font-size:13px; font-weight:600}
.partner-form{max-width:680px; padding:28px; border:1px solid var(--line); border-radius:16px; background:var(--soft)}
.partner-form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.partner-field{display:flex; flex-direction:column; gap:6px}
.partner-field.full{grid-column:1/-1}
.partner-field label,.partner-legend{font-size:14px; font-weight:600}
.partner-field input,.partner-field select{width:100%; padding:12px 13px; border:1px solid var(--line); border-radius:9px;
  background:var(--bg); color:var(--text); font:inherit; font-size:15px}
.partner-check{display:flex; align-items:flex-start; gap:10px; margin:20px 0; font-size:14px}
.partner-check input{margin-top:6px}
.partner-form .btn{cursor:pointer}
.partner-form .btn[disabled]{opacity:.55; cursor:wait}
.partner-message{margin:16px 0 0; padding:12px 14px; border-radius:9px; background:#FFF4E6; color:#7B4200; font-size:14px}
.partner-status{max-width:650px; margin:80px auto; padding:32px; border:1px solid var(--line); border-radius:16px; text-align:center}
.partner-url{display:flex; gap:8px; margin-top:20px}.partner-url input{flex:1; min-width:0; padding:12px; border:1px solid var(--line); border-radius:9px; font:inherit}
.partner-login{display:grid; grid-template-columns:1fr 1.2fr; gap:42px; align-items:center; margin:64px 0 12px; padding:28px; border:1px solid var(--line); border-radius:16px}
.partner-login h2,.partner-panel h2{margin:4px 0 8px}.partner-login form>label,.partner-inline-form>label{display:block; margin-bottom:7px; font-size:14px; font-weight:600}
.partner-login form>div,.partner-inline-form>div{display:flex; gap:8px}.partner-login input,.partner-inline-form input{flex:1; min-width:0; padding:12px 13px; border:1px solid var(--line); border-radius:9px; font:inherit; background:#fff}
.partner-eyebrow{margin:0 0 4px; color:var(--orange); font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase}
.partner-dashboard{padding-top:64px; padding-bottom:80px}.partner-dashboard-head{display:flex; justify-content:space-between; gap:32px; align-items:flex-end; margin-bottom:30px}.partner-dashboard-head h1{margin:8px 0 4px; font-size:clamp(32px,5vw,48px)}
.partner-summary{display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:18px}.partner-metric{display:flex; flex-direction:column; min-height:128px; padding:20px; border:1px solid var(--line); border-radius:14px; background:var(--soft)}.partner-metric span{font-size:13px; color:var(--sub)}.partner-metric strong{margin:auto 0 4px; font-size:clamp(24px,3vw,34px); letter-spacing:-.035em}.partner-metric small{color:var(--sub)}
.partner-panel{padding:24px; border:1px solid var(--line); border-radius:16px; background:#fff}.partner-dashboard-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:18px}.partner-details{margin:18px 0 0}.partner-details div{display:flex; justify-content:space-between; gap:20px; padding:12px 0; border-top:1px solid var(--line)}.partner-details dt{color:var(--sub)}.partner-details dd{margin:0; text-align:right; overflow-wrap:anywhere}.partner-inline-form{margin-top:20px}.partner-dashboard-error{max-width:620px; padding:28px; border:1px solid var(--line); border-radius:16px}.partner-dashboard-error .btn{display:inline-block; margin-top:12px}
.hp{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important}
@media(max-width:680px){.partner-flow,.partner-dashboard-grid,.partner-login{grid-template-columns:1fr}.partner-form-grid{grid-template-columns:1fr}.partner-field.full{grid-column:auto}.nav a.nav-partner{padding:7px 9px}.partner-summary{grid-template-columns:1fr 1fr}.partner-dashboard-head{align-items:flex-start; flex-direction:column}.partner-login form>div,.partner-inline-form>div{align-items:stretch; flex-direction:column}}
