
:root{
  --accent:#6B0000;            /* ロゴのえんじ色（現行ロゴから実測）。面・線に使う */
  --accent-text:#C8656E;       /* 黒地で読める明るさの同系色。小さな文字・細い線だけに使う */
  --accent-soft:rgba(107,0,0,.28);
  --bg:#0B0C0E; --bg2:#121418; --card:#171A1F; --line:#262A31;
  --text:#E9EAEC; --muted:#9A9FA8;
  --serif:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --sans:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic","Meiryo",sans-serif;
  --num:"Barlow Condensed","Arial Narrow",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.8;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.label{display:flex;align-items:center;gap:10px;font-family:var(--num);letter-spacing:.2em;font-size:13px;color:var(--accent-text);text-transform:uppercase}
.label::before{content:"";width:28px;height:1px;background:var(--accent-text)}
h1,h2,h3{font-family:var(--serif);font-weight:700;line-height:1.4}
h2{font-size:clamp(26px,4vw,38px);margin:14px 0 36px}
section{padding:88px 0}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:999px;font-weight:700;font-size:15px;border:1px solid var(--accent);transition:.2s}
.btn.primary{background:var(--accent);color:#fff;border-color:#8a1a22}
.btn.primary:hover{background:#860a0a}
.btn.ghost{color:var(--text);border-color:#3a3f48}
.btn.ghost:hover{border-color:var(--accent-text);color:var(--accent-text)}

/* header */
header{position:sticky;top:0;z-index:20;background:rgba(11,12,14,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hd{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo img{display:block;height:46px;width:auto;margin-left:-8px}
nav{display:flex;gap:6px;color:var(--muted)}
nav a{position:relative;display:flex;flex-direction:column;align-items:center;padding:8px 14px;line-height:1.25;transition:color .25s}
nav a small{font-family:var(--num);font-size:10px;letter-spacing:.24em;color:#5d626b;transition:color .25s,letter-spacing .35s}
nav a span{font-size:13.5px;letter-spacing:.06em;transition:transform .3s,color .25s}
nav a::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:1px;background:linear-gradient(90deg,var(--accent-text),transparent);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}
nav a::before{content:"";position:absolute;left:50%;top:-4px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--accent-text);box-shadow:0 0 10px var(--accent-text);opacity:0;transform:scale(.3);transition:.3s}
nav a:hover,nav a.on{color:var(--text)}
nav a:hover small,nav a.on small{color:var(--accent-text);letter-spacing:.34em}
nav a:hover span{transform:translateY(-2px)}
nav a:hover::after,nav a.on::after{transform:scaleX(1)}
nav a.on::before{opacity:1;transform:scale(1)}
.hd .btn{padding:9px 18px;font-size:13px}
.hd .btn::after{content:"→";display:inline-block;transition:transform .3s}
.hd .btn:hover::after{transform:translateX(4px)}
.btn{transition:.25s}
.btn:hover{transform:translateY(-2px)}
.logo img{transition:transform .3s,filter .3s}
.logo:hover img{transform:scale(1.04);filter:drop-shadow(0 0 10px rgba(200,28,44,.45))}
header .logo,header nav a,header .btn.primary{animation:fadeup .7s ease both}
header nav a:nth-child(1){animation-delay:.1s}header nav a:nth-child(2){animation-delay:.16s}header nav a:nth-child(3){animation-delay:.22s}header nav a:nth-child(4){animation-delay:.28s}header nav a:nth-child(5){animation-delay:.34s}header nav a:nth-child(6){animation-delay:.4s}
header .btn.primary{animation-delay:.45s}
@media(max-width:820px){nav{display:none}}

/* hero */
.hero{position:relative;overflow:hidden;padding:96px 0 88px;background:radial-gradient(800px 460px at 85% 20%,var(--accent-soft),transparent 62%)}
.hero .grid{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.hero h1{font-size:clamp(34px,5.6vw,60px);margin:18px 0 22px}
.hero h1 em{font-style:normal;color:var(--text);border-bottom:3px solid var(--accent);padding-bottom:2px}
.hero p{color:var(--muted);max-width:520px;margin-bottom:32px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap}
#net{position:absolute;inset:0;width:100%;height:100%;opacity:.55;pointer-events:none}
.hero .wrap{position:relative}
.scan{background:rgba(18,20,24,.82);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 30px 80px -30px rgba(0,0,0,.9),0 0 0 1px rgba(107,0,0,.15);backdrop-filter:blur(6px)}
.scan .bar{display:flex;align-items:center;gap:7px;padding:11px 14px;border-bottom:1px solid var(--line);background:#0f1115}
.scan .bar i{width:9px;height:9px;border-radius:50%;background:#2c3038}
.scan .bar span{margin-left:10px;font-family:var(--num);letter-spacing:.08em;font-size:13px;color:var(--muted)}
.scan .body{position:relative;padding:22px 22px 14px;overflow:hidden}
.beam{position:absolute;left:0;right:0;top:0;height:70px;background:linear-gradient(180deg,transparent,rgba(200,101,110,.16),transparent);border-bottom:1px solid rgba(200,101,110,.45);animation:beam 3.6s linear infinite;pointer-events:none}
@keyframes beam{0%{transform:translateY(-80px)}100%{transform:translateY(360px)}}
.score{display:flex;align-items:baseline;gap:6px;margin-bottom:10px}
.score small{font-family:var(--num);letter-spacing:.22em;font-size:12px;color:var(--muted);margin-right:auto}
.score b{font-family:var(--num);font-size:52px;font-weight:500;line-height:1}
.score span{font-family:var(--num);color:var(--muted)}
.scan ul{list-style:none}
.scan li{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-top:1px solid var(--line);font-size:14px;opacity:0;animation:rowin 10s infinite;animation-delay:calc(var(--i)*.7s)}
@keyframes rowin{0%{opacity:0;transform:translateX(-10px)}6%,86%{opacity:1;transform:none}96%,100%{opacity:0}}
.scan em{font-style:normal;font-family:var(--num);letter-spacing:.1em;font-size:13px;padding:2px 10px;border-radius:999px;border:1px solid #3a3f48;color:var(--muted)}
.scan em.ng{border-color:#7a2a31;color:var(--accent-text);background:rgba(107,0,0,.2)}
.scan .note{font-size:11px;color:#6b7078;padding:0 22px 12px;text-align:right}
@media(max-width:820px){.hero .grid{grid-template-columns:1fr}}

/* スクロール表示と読み込み時の動き */
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease;transition-delay:var(--d,0s)}
.rv.in{opacity:1;transform:none}
@keyframes fadeup{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.hero .label{animation:fadeup .8s ease both}
.hero h1{animation:fadeup 1s .15s ease both}
.hero p,.hero .cta{animation:fadeup 1s .3s ease both}
.hero .scanwrap{animation:fadeup 1.1s .35s ease both}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}.scan li{opacity:1}
}

/* band */
.band{background:#160c0e;border-top:1px solid #2a1418;border-bottom:1px solid #2a1418;color:#8f8084;font-family:var(--num);letter-spacing:.22em;font-size:13px;padding:10px 0;overflow:hidden;white-space:nowrap}
.band span{display:inline-block;padding:0 22px}

/* issues */
.issues{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.issues li{list-style:none;padding:26px 22px 26px 0}
.issues .n{font-family:var(--num);font-size:46px;line-height:1;color:#2d323a}
.issues h3{font-size:16px;margin:12px 0 6px;font-family:var(--sans)}
.issues p{font-size:13px;color:var(--muted)}
@media(max-width:820px){.issues{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.issues{grid-template-columns:1fr}}

/* services */
.alt{background:var(--bg2)}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:26px 22px;transition:.2s}
.card:hover{border-color:#7a2a31;transform:translateY(-3px)}
.card .n{font-family:var(--num);color:var(--accent-text);letter-spacing:.2em;font-size:13px}
.card h3{font-size:19px;margin:10px 0 10px}
.card p{font-size:13.5px;color:var(--muted);margin-bottom:14px}
.card ul{list-style:none;font-size:13px;color:var(--text)}
.card li{padding-left:16px;position:relative;margin:4px 0}
.card li::before{content:"";position:absolute;left:0;top:.85em;width:8px;height:1px;background:var(--accent-text)}
@media(max-width:980px){.cards{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.cards{grid-template-columns:1fr}}

/* reasons */
.reasons{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.reason{border-left:2px solid var(--accent);padding:6px 0 6px 20px}
.reason h3{font-size:18px;margin-bottom:8px}
.reason p{font-size:14px;color:var(--muted)}
@media(max-width:820px){.reasons{grid-template-columns:1fr}}

/* check */
.check{background:linear-gradient(135deg,var(--card),#0f1216);border:1px solid var(--line);border-radius:18px;padding:44px 36px;display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:center}
.check h2{margin:12px 0 14px}
.check p{color:var(--muted);font-size:14.5px}
.check ul{list-style:none;margin:0}
.check li{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}
.check li b{font-family:var(--num);color:var(--accent-text);letter-spacing:.1em;min-width:96px;font-weight:500}
.check .btn{margin-top:22px}
@media(max-width:820px){.check{grid-template-columns:1fr;padding:30px 22px}}

/* process */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:s}
.step{position:relative;padding-top:56px}
.step::before{counter-increment:s;content:"0" counter(s);position:absolute;top:0;left:0;width:42px;height:42px;border-radius:50%;background:var(--card);border:1px solid #7a2a31;color:var(--accent-text);display:grid;place-items:center;font-family:var(--num);font-size:16px}
.step h3{font-size:16px;font-family:var(--sans);margin-bottom:6px}
.step p{font-size:13px;color:var(--muted)}
@media(max-width:820px){.steps{grid-template-columns:1fr 1fr}}

/* faq */
details{border-bottom:1px solid var(--line);padding:18px 0}
summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:16px}
summary::after{content:"+";color:var(--accent-text);font-family:var(--num);font-size:22px;line-height:1}
details[open] summary::after{content:"–"}
details p{margin-top:10px;color:var(--muted);font-size:14px}

/* WEBXUSとは */
.about{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:start}
.aboutp{color:var(--muted);font-size:15px;line-height:2;margin-top:14px;max-width:560px}
.facts{margin:6px 0 0;border-top:1px solid var(--line)}
.facts>div{display:grid;grid-template-columns:84px 1fr;gap:12px;padding:15px 0;border-bottom:1px solid var(--line);font-size:14px}
.facts dt{font-family:var(--num);letter-spacing:.14em;font-size:12px;color:var(--accent-text);padding-top:2px}
.facts dd{margin:0}
@media(max-width:820px){.about{grid-template-columns:1fr;gap:28px}}
.faqlead{color:var(--muted);font-size:14.5px;margin:8px 0 22px}
.handover{margin-top:40px;border:1px solid #3a1a1f;border-radius:16px;padding:32px 34px;background:linear-gradient(135deg,#1a0d10,#111317)}
.handover h3{font-family:var(--serif);font-size:clamp(19px,2.4vw,26px);line-height:1.5;margin:12px 0 12px}
.handover p{color:var(--muted);font-size:14.5px;max-width:760px}
.handover ul{list-style:none;margin:16px 0 4px;display:flex;flex-wrap:wrap;gap:8px 26px;font-size:14px}
.handover li{padding-left:16px;position:relative}.handover li::before{content:"";position:absolute;left:0;top:.8em;width:8px;height:1px;background:var(--accent-text)}
.handover .hnote{font-size:12.5px;margin-top:12px}
.hlinks{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:20px}
@media(max-width:760px){.handover{padding:24px 20px}}
details .ab{padding-top:2px}
details .a1{color:var(--text);font-size:14.5px;line-height:1.9}
.arel{font-size:13px}.arel a{color:var(--accent-text);text-decoration:underline}

.cards.c5{grid-template-columns:repeat(6,1fr)}.cards.c5 .card{grid-column:span 2}.cards.c5 .card:nth-child(n+4){grid-column:span 3}
@media(max-width:980px){.cards.c5{grid-template-columns:1fr 1fr}.cards.c5 .card,.cards.c5 .card:nth-child(n+4){grid-column:auto}}
@media(max-width:560px){.cards.c5{grid-template-columns:1fr}}
/* contact */
.contact{background:radial-gradient(700px 320px at 50% 100%,var(--accent-soft),transparent 70%),var(--bg);border-top:1px solid var(--line);text-align:center;padding:84px 0}
.contact h2{margin:12px 0 14px}
.contact .label{justify-content:center}
.contact p{max-width:560px;margin:0 auto 28px;color:var(--muted)}
.contact.big{padding:130px 0 120px;background:radial-gradient(900px 420px at 50% 100%,rgba(107,0,0,.45),transparent 70%),var(--bg)}
.contact.big h2{font-size:clamp(28px,4.4vw,48px);line-height:1.4;margin:16px 0 20px}
.contact.big .clead{max-width:640px;font-size:15.5px;margin-bottom:34px}
.btn.xl{font-size:19px;padding:20px 52px;border-radius:999px;box-shadow:0 14px 50px -12px rgba(200,40,50,.55)}
.cpoints{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 28px;margin:26px 0 44px;font-size:13.5px;color:var(--muted)}
.cpoints li::before{content:"✓ ";color:var(--accent-text)}
.clabel{font-family:var(--num);letter-spacing:.2em;font-size:12px;color:var(--muted);margin-bottom:14px}
@media(max-width:760px){.contact.big{padding:84px 0}.btn.xl{padding:18px 34px;font-size:17px}}
.types{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.types .btn{background:transparent;color:var(--text);border-color:#3a3f48}
.types .btn:first-child{background:var(--accent);border-color:#8a1a22;color:#fff}
.types .btn:hover{border-color:var(--accent-text);color:#fff}
/* スマホのメニュー */
.navbtn{display:none;width:44px;height:44px;border:1px solid #3a3f48;border-radius:12px;background:transparent;cursor:pointer;position:relative;flex:none;transition:border-color .25s}
.navbtn:hover{border-color:var(--accent-text)}
.navbtn span{position:absolute;left:12px;right:12px;height:2px;background:var(--text);transition:transform .3s,top .3s}
.navbtn span:nth-child(1){top:16px}.navbtn span:nth-child(2){top:25px}
header.open .navbtn span:nth-child(1){top:20px;transform:rotate(45deg)}
header.open .navbtn span:nth-child(2){top:20px;transform:rotate(-45deg)}
@media(max-width:820px){
 .navbtn{display:block;margin-left:auto;margin-right:10px}
 header nav{position:absolute;left:0;right:0;top:100%;display:none;flex-direction:column;gap:0;background:#08090B;z-index:5;box-shadow:0 24px 40px -10px rgba(0,0,0,.8);border-bottom:1px solid var(--line);padding:6px 20px 16px}
 header.open nav{display:flex}
 header nav a{flex-direction:row-reverse;justify-content:space-between;align-items:center;padding:15px 4px;border-bottom:1px solid var(--line)}
 header nav a span{font-size:15px}
 header nav a::after,header nav a::before{display:none}
}
/* more ボタン */
.morerow{margin-top:40px;display:flex;gap:12px;flex-wrap:wrap}
.morebtn{position:relative;display:inline-flex;align-items:center;gap:14px;padding:13px 26px;border:1px solid #3a3f48;border-radius:999px;font-size:14px;letter-spacing:.08em;color:var(--text);overflow:hidden;transition:border-color .3s,background .3s,transform .3s}
.morebtn em{font-style:normal;font-family:var(--num);letter-spacing:.24em;font-size:12px;color:var(--accent-text)}
.morebtn span{display:inline-block;color:var(--accent-text);transition:transform .3s}
.morebtn:hover{border-color:var(--accent-text);background:var(--accent-soft);transform:translateY(-2px)}
.morebtn:hover span{transform:translateX(6px)}
.card .go{display:block;margin-top:16px;font-family:var(--num);letter-spacing:.2em;font-size:12px;color:var(--accent-text);transition:letter-spacing .3s}
.card:hover .go{letter-spacing:.3em}
/* footer */
footer{padding:56px 0 28px;font-size:13px;color:var(--muted);border-top:1px solid var(--line);background:#08090B}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.fbrand img{height:50px;width:auto;display:block;margin:0 0 10px -8px}
.fbrand p{font-size:13px}
footer .fh{font-family:var(--num);font-weight:500;letter-spacing:.2em;font-size:12px;color:var(--accent-text);margin-bottom:12px;text-transform:uppercase}
footer .fh,footer .fgrid a{display:block}
footer .fgrid a{padding:4px 0;transition:.2s}
footer .fgrid a:hover{color:var(--text);transform:translateX(4px)}
.copy{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);font-size:12px}
@media(max-width:760px){.fgrid{grid-template-columns:1fr 1fr}.fbrand{grid-column:1/-1}}

/* column（ブログ） */
.colhead{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:34px}
.colhead h2{margin-bottom:0}
.more{font-size:14px;color:var(--muted);white-space:nowrap}
.more span{display:inline-block;transition:.25s;color:var(--accent-text)}
.more:hover{color:var(--text)}.more:hover span{transform:translateX(6px)}
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.post{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:block;transition:.3s}
.post:hover{border-color:#7a2a31;transform:translateY(-4px)}
.thumb{position:relative;height:150px;background:linear-gradient(135deg,#1a0d10,#0e1013 70%);overflow:hidden;display:flex;align-items:flex-end;padding:16px}
.thumb b{position:relative;z-index:1;font-family:var(--num);font-weight:500;letter-spacing:.18em;font-size:30px;color:rgba(233,234,236,.88)}
.thumb i{position:absolute;right:-40px;top:-40px;width:170px;height:170px;border-radius:50%;border:1px solid rgba(200,101,110,.35);transition:.6s}
.thumb i::after{content:"";position:absolute;inset:26px;border-radius:50%;border:1px solid rgba(200,101,110,.2)}
.post:hover .thumb i{transform:scale(1.25) rotate(25deg)}
.tx{padding:20px 20px 24px}
.tag{display:inline-block;font-size:11px;letter-spacing:.1em;color:var(--accent-text);border:1px solid #4a2227;border-radius:999px;padding:1px 10px;margin-bottom:10px}
.post h3{font-family:var(--sans);font-size:16px;line-height:1.6;margin-bottom:8px}
.post p{font-size:13px;color:var(--muted)}
@media(max-width:900px){.posts{grid-template-columns:1fr}.colhead{align-items:flex-start;flex-direction:column}}

/* 追加の動き */
#prog{position:fixed;left:0;top:0;height:2px;width:100%;background:linear-gradient(90deg,#6B0000,#C8656E);transform:scaleX(0);transform-origin:left;z-index:60}
header{transition:background .3s,border-color .3s}
header .hd{transition:height .3s}
header.sm .hd{height:52px}
header.sm{background:rgba(8,9,11,.94)}
.orb{position:absolute;border-radius:50%;filter:blur(70px);pointer-events:none}
.o1{width:420px;height:420px;background:rgba(107,0,0,.35);right:6%;top:-60px;animation:drift1 14s ease-in-out infinite}
.o2{width:300px;height:300px;background:rgba(90,20,30,.28);left:-60px;bottom:-80px;animation:drift2 18s ease-in-out infinite}
@keyframes drift1{0%,100%{transform:translate(0,0)}50%{transform:translate(-90px,70px)}}
@keyframes drift2{0%,100%{transform:translate(0,0)}50%{transform:translate(120px,-50px)}}
.scanwrap{animation:float 7s ease-in-out infinite;perspective:900px}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -10px}}
.scan{transition:transform .15s ease-out;will-change:transform}
.scan .bar u{width:7px;height:15px;margin-left:3px;background:var(--accent-text);animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.scan li{transition:background .3s}
.scan li:hover{background:rgba(255,255,255,.03)}
.scan .st{position:relative;display:flex;align-items:center;justify-content:flex-end;min-width:84px;font-weight:400}
.scan em{display:inline-block;opacity:0;animation:badge 10s infinite;animation-delay:calc(var(--i)*.7s + .95s)}
.scan em.ok::before{content:"✓ ";color:#9aa0a8}
.scan em.ng::before{content:"! ";font-weight:700}
.scan em.ng{animation:badge 10s infinite,pulse 2.4s ease-in-out infinite;animation-delay:calc(var(--i)*.7s + .95s),0s}
@keyframes badge{0%{opacity:0;transform:scale(.5)}2%{opacity:1;transform:scale(1.18)}4%{opacity:1;transform:scale(1)}86%{opacity:1;transform:scale(1)}96%,100%{opacity:0;transform:scale(1)}}
.sp{position:absolute;right:26px;width:14px;height:14px;border:2px solid #3a3f48;border-top-color:var(--accent-text);border-radius:50%;opacity:0;animation:spin .7s linear infinite,spinvis 10s infinite;animation-delay:0s,calc(var(--i)*.7s)}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes spinvis{0%,8%{opacity:1}10%,100%{opacity:0}}
.scan .body::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:linear-gradient(90deg,transparent,var(--accent-text),transparent);transform:scaleX(0);transform-origin:left;animation:prog 10s linear infinite}
@keyframes prog{0%{transform:scaleX(0);opacity:1}60%{transform:scaleX(1);opacity:1}70%,100%{transform:scaleX(1);opacity:0}}
/* ヒーロー見出し：行ごとに下からせり上がる（軽量：transformのみ） */
.hero h1{animation:none}
.ln{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.ln>span{display:block;transform:translateY(112%);animation:lnup .95s cubic-bezier(.2,.8,.2,1) forwards}
.ln:nth-child(1)>span{animation-delay:.15s}.ln:nth-child(2)>span{animation-delay:.3s}.ln:nth-child(3)>span{animation-delay:.45s}
@keyframes lnup{to{transform:none}}
.hero h1 em{border-bottom:none;padding-bottom:4px;background:linear-gradient(var(--accent),var(--accent)) left bottom/0 3px no-repeat;animation:ul 1s 1.05s ease forwards}
@keyframes ul{to{background-size:100% 3px}}
.hero .label::before{animation:ldraw .9s .1s ease both}
@keyframes ldraw{from{width:0}to{width:28px}}
.hero p{animation-delay:.6s}.hero .cta{animation-delay:.75s}
@media(prefers-reduced-motion:reduce){.ln>span{transform:none}.hero h1 em{background-size:100% 3px}.scan em{opacity:1}.sp{display:none}}
@keyframes pulse{50%{box-shadow:0 0 0 4px rgba(200,101,110,.12);background:rgba(107,0,0,.38)}}
.hero .btn.primary{position:relative;overflow:hidden}
.hero .btn.primary::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-20deg);animation:shine 4.5s ease-in-out infinite}
@keyframes shine{0%,60%{left:-60%}100%{left:130%}}
.label.rv::before{width:0;transition:width .8s .25s ease}
.label.rv.in::before{width:28px}
.card,.post{position:relative}
.card::before{content:"";position:absolute;inset:0;border-radius:14px;background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%),rgba(200,101,110,.14),transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none}
.card:hover::before{opacity:1}
.step:not(:last-child)::after{content:"";position:absolute;top:21px;left:54px;right:-10px;height:1px;background:linear-gradient(90deg,#7a2a31,transparent);transform:scaleX(0);transform-origin:left;transition:transform 1.1s .35s ease}
.step.in:not(:last-child)::after{transform:scaleX(1)}
@media(max-width:820px){.step::after{display:none}}
.issues .n{transition:color .4s}
.issues li:hover .n{color:var(--accent-text)}
@media(prefers-reduced-motion:reduce){.scanwrap,.orb,.scan em.ng,.hero .btn.primary::after{animation:none!important}}

/* ===== 下層ページ ===== */
.phero{position:relative;overflow:hidden;padding:64px 0 52px;background:radial-gradient(700px 300px at 85% 0,var(--accent-soft),transparent 65%);border-bottom:1px solid var(--line)}
.crumb{font-size:12.5px;color:var(--muted);margin-bottom:24px;display:flex;flex-wrap:wrap;gap:6px}
.crumb a:hover{color:var(--text)}.crumb i{font-style:normal;color:#4a4f58}
.phero h1{font-size:clamp(28px,4.4vw,46px);margin:14px 0 16px}
.lead{max-width:700px;color:var(--muted);font-size:15.5px}
.sec{padding:72px 0}
.two{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.bul{list-style:none}.bul li{padding:10px 0 10px 22px;position:relative;border-bottom:1px solid var(--line);font-size:14.5px}
.bul li::before{content:"";position:absolute;left:0;top:1.45em;width:10px;height:1px;background:var(--accent-text)}
.pcards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.pc{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px}
.pc h3{font-size:17px;margin-bottom:8px;font-family:var(--sans)}.pc p{font-size:14px;color:var(--muted)}
.pch{font-family:var(--sans);font-size:17px;margin-bottom:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sec .cards .card{display:block}
.posts .post time{display:block;margin-top:10px;font-family:var(--num);letter-spacing:.1em;font-size:12px;color:#6b7078}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.chip{font-family:var(--sans);font-size:13px;color:var(--muted);background:transparent;border:1px solid #3a3f48;border-radius:999px;padding:6px 16px;cursor:pointer;transition:.25s}
.chip:hover{color:var(--text);border-color:var(--accent-text)}
.chip.on{background:var(--accent);border-color:#8a1a22;color:#fff}
/* 記事 */
.art{max-width:760px}
.meta{display:flex;align-items:center;gap:14px;font-family:var(--num);letter-spacing:.1em;font-size:13px;color:var(--muted);margin-bottom:22px}
.toc{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 24px;margin-bottom:34px;font-size:14px}
.toc ol{margin:8px 0 0 20px;color:var(--muted)}.toc a:hover{color:var(--text)}
.prose{font-size:15.5px;line-height:2}
.prose h2{font-size:24px;margin:46px 0 14px;padding-left:14px;border-left:3px solid var(--accent)}
.prose p{margin:0 0 16px}.prose ol,.prose ul{margin:0 0 18px 22px}.prose li{margin:8px 0}
.prose .ans{background:#14090b;border:1px solid #3a1a1f;border-radius:12px;padding:18px 22px}
.prose table{width:100%;border-collapse:collapse;margin:0 0 18px;font-size:14px}
.prose th,.prose td{border:1px solid var(--line);padding:10px 14px;text-align:left}.prose th{background:var(--card);font-weight:700}
.prose code{background:#1b1e24;padding:1px 6px;border-radius:5px;font-size:.9em}
.draft{margin:34px 0;font-size:12.5px;color:#8f8084;border:1px dashed #4a2227;border-radius:10px;padding:10px 16px}
.author{border-top:1px solid var(--line);padding-top:22px;margin-top:30px;font-size:14px}.author p{color:var(--muted)}
.ctabox{margin-top:30px;background:linear-gradient(135deg,#1a0d10,#111317);border:1px solid #3a1a1f;border-radius:14px;padding:28px;text-align:center}
.ctabox p{color:var(--muted);margin:6px 0 18px;font-size:14px}
.tbl{width:100%;border-collapse:collapse}.tbl th,.tbl td{padding:16px 14px;border-bottom:1px solid var(--line);text-align:left;font-size:14.5px;vertical-align:top}.tbl .bul li{padding:4px 0 4px 22px;border-bottom:0}.tbl .bul li::before{top:1.1em}.tbl th{width:30%;color:var(--muted);font-weight:500}
/* 記事 本文の追加要素 */
.prose pre{background:#0e1013;border:1px solid var(--line);border-radius:10px;padding:16px 18px;overflow:auto;margin:0 0 18px;font-size:13px;line-height:1.75}
.prose pre code{background:none;padding:0;font-size:inherit}
.prose h3{font-size:18px;margin:30px 0 10px}
.prose a{color:var(--accent-text);text-decoration:underline}
.prose .tw{overflow-x:auto;margin:0 0 18px}.prose .tw table{margin:0;min-width:520px}
/* 5カード */
.cards.c5{grid-template-columns:repeat(6,1fr)}.cards.c5 .card{grid-column:span 2}.cards.c5 .card:nth-child(n+4){grid-column:span 3}
@media(max-width:980px){.cards.c5{grid-template-columns:1fr 1fr}.cards.c5 .card,.cards.c5 .card:nth-child(n+4){grid-column:auto}}
@media(max-width:560px){.cards.c5{grid-template-columns:1fr}}
/* FAQ */
.faqcat{padding-top:24px;margin-bottom:34px;scroll-margin-top:80px}
.faqcat h2{font-size:22px;margin:0 0 6px}
.faqmeta{font-size:12.5px;color:var(--muted);margin:0 0 18px}
details{scroll-margin-top:80px}
details .ab{padding-top:2px}
details .a1{color:var(--text);font-size:14.5px;line-height:1.9}
details .ab p{margin-top:10px}
.arel{font-size:13px}.arel a{color:var(--accent-text);text-decoration:underline;margin-right:14px}
.perma{text-align:right;margin-top:2px!important;font-size:12px}.perma a{color:#4a4f58}.perma a:hover{color:var(--accent-text)}
/* 用語集 */
.gtools{display:flex;gap:10px;margin:0 0 10px;flex-wrap:wrap}
.gtools input{flex:1;min-width:220px;background:var(--card);border:1px solid #3a3f48;border-radius:999px;color:var(--text);font-size:14px;padding:10px 20px;font-family:var(--sans)}
.gtools input:focus{outline:none;border-color:var(--accent-text)}
.gcat h2 small{font-size:13px;color:var(--muted);margin-left:12px;font-weight:400;font-family:var(--sans)}
.gcat{margin-bottom:26px}
.gd summary{display:block}.gd .gt{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px}
.gd .gt b{font-size:16px}.gd .gt small{font-size:12px;color:var(--muted);font-weight:400}
.gd .gs{display:block;margin-top:3px;font-size:13px;color:var(--muted);font-weight:400;line-height:1.7}
.gd[hidden],.gcat[hidden]{display:none}
.gi{padding:18px 0;border-bottom:1px solid var(--line);scroll-margin-top:80px}
.gi h3{font-size:17px;margin:0 0 6px;font-family:var(--sans)}.gi h3 small{font-size:12px;color:var(--muted);margin-left:10px;font-weight:400}
.gi p{font-size:14.5px;line-height:1.9;color:var(--text)}.gi .arel{margin-top:6px}
/* ご相談の流れ */
.flowlist{list-style:none;margin:28px 0 0}
.fs{display:grid;grid-template-columns:64px 1fr;gap:18px;padding:26px 0;border-top:1px solid var(--line)}
.fs .fn{font-family:var(--num);font-size:40px;line-height:1;color:#3a3f48}
.fs h3{font-size:19px;margin:0 0 6px;font-family:var(--sans)}.fs .fl{color:var(--muted);font-size:14.5px;margin-bottom:6px}
/* レポート見本 */
.samplenote{border:1px dashed #7a2a31;border-radius:12px;padding:16px 20px;font-size:14px;margin-bottom:34px;background:rgba(107,0,0,.12)}
.rit{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin:14px 0}
.rh{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px}.rh b{font-size:16px}.rh .pri{margin-left:auto;font-size:12.5px;color:var(--muted)}
.bd{font-style:normal;font-family:var(--num);letter-spacing:.08em;font-size:12.5px;padding:2px 12px;border-radius:999px;border:1px solid #3a3f48;color:var(--muted)}
.bd.ng{border-color:#7a2a31;color:var(--accent-text);background:rgba(107,0,0,.2)}.bd.mid{border-color:#6b5a2a;color:#d3b866}
.rit dl{display:grid;grid-template-columns:110px 1fr;gap:6px 14px;font-size:14px}.rit dt{color:var(--muted)}.rit dd{margin:0}
@media(max-width:700px){.fs{grid-template-columns:44px 1fr}.fs .fn{font-size:28px}.rit dl{grid-template-columns:1fr}.rit dt{margin-top:6px}.steps[style]{grid-template-columns:1fr!important}}
/* お問い合わせ */
.cform{display:grid;grid-template-columns:.8fr 1.2fr;gap:36px;align-items:start}
/* お問い合わせフォーム（サイト側のデザイン。送信はGoogleフォームへ） */
.formcard{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:34px;color:var(--text)}
.cf{display:grid;gap:24px}
.fld{display:grid;gap:8px;border:0;margin:0;padding:0;min-width:0}
.fld label,.fl{font-weight:700;font-size:14.5px;color:var(--text)}
.fld em{font-style:normal;font-size:11px;font-weight:700;color:#fff;background:var(--accent);border:1px solid #8a1a22;border-radius:3px;padding:1px 7px;margin-left:8px;vertical-align:2px}
.fld i.any,.fld i.req{font-style:normal;font-size:11px;border-radius:3px;padding:1px 7px;margin-left:8px;vertical-align:2px;transition:.25s}
.fld i.any{color:var(--muted);border:1px solid #3a3f48}
.fld i.req{color:#fff;background:var(--accent);border:1px solid #8a1a22;font-weight:700}
.fld input[type=text],.fld input[type=email],.fld input[type=url],.fld textarea{width:100%;font:inherit;font-size:16px;color:var(--text);background:#0e1013;border:1px solid #2f343c;border-radius:10px;padding:13px 14px;transition:border-color .2s,box-shadow .2s}
.fld textarea{resize:vertical;min-height:140px}
.fld input::placeholder,.fld textarea::placeholder{color:#5d626b}
.fld input:focus,.fld textarea:focus{outline:0;border-color:var(--accent-text);box-shadow:0 0 0 3px rgba(200,101,110,.18)}
.opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.opt{display:flex;align-items:center;gap:10px;cursor:pointer;border:1px solid #2f343c;border-radius:10px;padding:12px 14px;font-size:14.5px;color:var(--muted);transition:border-color .2s,background .2s,color .2s,transform .2s}
.opt input{accent-color:var(--accent-text);width:18px;height:18px;margin:0;flex:none}
.opt:hover{border-color:var(--accent-text);color:var(--text);transform:translateY(-1px)}
.opt:has(input:checked){border-color:var(--accent-text);background:var(--accent-soft);color:var(--text)}
.fhint{font-size:13px;color:var(--accent-text);min-height:1.5em}
.agree{display:flex;gap:10px;align-items:flex-start;cursor:pointer;font-weight:400!important;color:var(--muted)!important;font-size:14px!important}
.agree input{accent-color:var(--accent-text);width:18px;height:18px;margin:2px 0 0;flex:none}
.agree a{text-decoration:underline;color:var(--text)}
/* ラジオ・チェックを黒ベースに合わせる（未選択は枠だけ、選択で中が点灯） */
.opt input,.agree input{-webkit-appearance:none;appearance:none;width:18px;height:18px;margin:0;flex:none;display:grid;place-content:center;background:transparent;border:1.5px solid #5d626b;transition:border-color .2s}
.opt input{border-radius:50%}
.agree input{border-radius:4px;margin-top:2px}
.opt input::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent-text);transform:scale(0);transition:transform .2s}
.agree input::after{content:"";width:11px;height:11px;background:var(--accent-text);clip-path:polygon(14% 44%,0 62%,40% 100%,100% 18%,84% 0,40% 64%);transform:scale(0);transition:transform .2s}
.opt input:checked,.agree input:checked{border-color:var(--accent-text)}
.opt input:checked::after,.agree input:checked::after{transform:scale(1)}
.opt input:focus-visible,.agree input:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}
.bad input[type=text],.bad input[type=email],.bad input[type=url],.bad textarea{border-color:#c0505a;background:#1a0f11}
.bad .opts .opt{border-color:#7a2a31}
.ferr{color:#ff9aa2;font-weight:700;font-size:14px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
#cf-btn{cursor:pointer;font-family:inherit;min-width:180px;justify-content:center}
#cf-btn[disabled]{opacity:.6;cursor:wait}
.cdone{text-align:center;padding:36px 12px}
.cdone p{color:var(--muted);font-size:14.5px}
.cdone .ck{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--accent);border:1px solid #8a1a22;color:#fff;font-size:24px}
.fnote{margin-top:22px;font-size:13px;color:var(--muted)}
@media(max-width:560px){.opts{grid-template-columns:1fr}.formcard{padding:22px}}
@media(max-width:860px){.two,.pcards,.cform{grid-template-columns:1fr}.sec .cards{grid-template-columns:1fr 1fr!important}}
@media(max-width:560px){.sec .cards{grid-template-columns:1fr!important}}
