:root{
  --bg:#08080b;--bg-2:#0f0f14;--panel:rgba(255,255,255,.04);
  --ink:#f3f2ef;--ink-2:#b9b8c0;--muted:#7c7b86;--line:rgba(255,255,255,.1);
  --grad:linear-gradient(100deg,#ff7a45 0%,#ff4fa3 35%,#7b5cff 68%,#39a0ff 100%);
  --display:'Italiana',serif;--sans:'Geist','Inter',sans-serif;
  --jp:'Noto Sans JP',"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  --pad:clamp(20px,3.4vw,52px);--r:20px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:clip;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--jp);font-size:15px;line-height:1.95;-webkit-font-smoothing:antialiased;overflow-x:clip;}
img,video{display:block;max-width:100%;}
a{color:inherit;}
.wrap{max-width:1120px;margin:0 auto;padding:0 var(--pad);}
.gt{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.disp{font-family:var(--display);font-weight:400;text-transform:uppercase;line-height:.95;}

header{position:sticky;top:0;z-index:50;background:rgba(8,8,11,.75);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);}
.nav{display:flex;justify-content:space-between;align-items:center;height:64px;gap:16px;}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--sans);font-weight:600;letter-spacing:.16em;font-size:14px;text-decoration:none;}
.brand img{width:24px;height:24px;}
.nav-links{display:flex;gap:18px;font-size:13px;}
.nav-links a{text-decoration:none;color:var(--ink-2);}
.nav-links a:hover{color:var(--ink);}
.nav-cta{text-decoration:none;font-size:13px;font-weight:500;padding:8px 16px;border-radius:999px;background:var(--ink);color:var(--bg);}
@media (max-width:820px){ .nav-links{display:none;} }

.hero{position:relative;overflow:hidden;padding:clamp(72px,12vh,120px) 0 clamp(56px,8vh,90px);}
.hero::before{content:"";position:absolute;inset:-20% -10% auto auto;width:70vw;height:70vw;max-width:900px;max-height:900px;background:radial-gradient(circle,rgba(123,92,255,.35),transparent 60%);pointer-events:none;}
.hero::after{content:"";position:absolute;left:-15%;bottom:-40%;width:60vw;height:60vw;max-width:780px;max-height:780px;background:radial-gradient(circle,rgba(255,122,69,.25),transparent 60%);pointer-events:none;}
.hero .wrap{position:relative;z-index:1;}
.crumbs{font-size:12px;color:var(--muted);margin-bottom:28px;}
.crumbs a{color:var(--ink-2);text-decoration:none;}
.crumbs span{margin:0 8px;}
.en-title{font-size:clamp(52px,10vw,140px);margin:0 0 18px;}
h1{font-size:clamp(24px,3.2vw,38px);font-weight:500;line-height:1.6;margin:0 0 20px;}
.lead{font-size:clamp(15px,1.4vw,17px);color:var(--ink-2);max-width:760px;margin:0 0 32px;}
.btns{display:flex;flex-wrap:wrap;gap:12px;}
.btn{display:inline-flex;align-items:center;gap:12px;padding:15px 26px;border-radius:999px;font-size:14px;font-weight:500;text-decoration:none;}
.btn-grad{color:#fff;background:var(--grad);box-shadow:0 10px 40px -12px rgba(255,79,163,.6);}
.btn-glass{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);}
.price-badge{display:inline-flex;align-items:baseline;gap:10px;margin:0 0 28px;padding:10px 18px;border-radius:14px;background:var(--panel);border:1px solid var(--line);font-size:13px;color:var(--ink-2);}
.price-badge b{font-family:var(--sans);font-weight:300;font-size:28px;color:var(--ink);letter-spacing:-.02em;}

section{padding:clamp(64px,10vh,110px) 0;border-top:1px solid var(--line);}
h2{font-size:clamp(22px,2.6vw,32px);font-weight:500;line-height:1.6;margin:0 0 28px;}
h2 .en{display:block;font-family:var(--display);text-transform:uppercase;font-weight:400;font-size:.6em;letter-spacing:.06em;color:var(--muted);margin-bottom:6px;}
h3{font-size:17px;font-weight:500;margin:0 0 8px;}
p{margin:0 0 16px;}
.muted{color:var(--ink-2);}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.grid.two{grid-template-columns:repeat(2,1fr);}
@media (max-width:860px){ .grid,.grid.two{grid-template-columns:1fr;} }
.card{padding:24px;border-radius:var(--r);background:var(--panel);border:1px solid var(--line);}
.card p{color:var(--ink-2);font-size:14px;margin:0;}
.card .no{font-family:var(--sans);font-weight:200;font-size:34px;line-height:1;color:var(--muted);margin-bottom:14px;}
ul.check{list-style:none;padding:0;margin:0;}
ul.check li{position:relative;padding:14px 0 14px 30px;border-bottom:1px solid var(--line);}
ul.check li::before{content:"";position:absolute;left:4px;top:24px;width:10px;height:10px;border-radius:50%;background:var(--grad);}

table.price{width:100%;border-collapse:collapse;font-size:14px;}
table.price th{font-family:var(--sans);font-weight:500;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:left;padding:0 12px 12px 0;border-bottom:1px solid var(--line);}
table.price th:last-child,table.price td:last-child{text-align:right;padding-right:0;}
table.price td{padding:16px 12px 16px 0;border-bottom:1px solid var(--line);vertical-align:baseline;}
table.price td small{display:block;font-size:12px;color:var(--muted);}
table.price td.avg{color:var(--muted);font-size:13px;}
table.price td.op{font-weight:500;white-space:nowrap;}
.note{font-size:12px;color:var(--muted);margin-top:14px;}
@media (max-width:640px){
  table.price thead{display:none;}
  table.price,table.price tbody,table.price tr,table.price td{display:block;width:100%;}
  table.price tr{padding:12px 0;border-bottom:1px solid var(--line);}
  table.price td{border:none;padding:2px 0;text-align:left !important;}
  table.price td.avg::before{content:"一般的な相場：";}
  table.price td.op::before{content:"OPSIDE：";font-weight:400;color:var(--ink-2);}
}

ol.flow{list-style:none;padding:0;margin:0;counter-reset:f;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
@media (max-width:860px){ ol.flow{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ ol.flow{grid-template-columns:1fr;} }
ol.flow li{counter-increment:f;padding:22px;border-radius:var(--r);background:var(--panel);border:1px solid var(--line);}
ol.flow li::before{content:"0" counter(f);display:block;font-family:var(--sans);font-weight:200;font-size:30px;line-height:1;margin-bottom:12px;}
ol.flow li b{display:block;font-weight:500;margin-bottom:4px;}
ol.flow li span{font-size:13px;color:var(--ink-2);}

details{border-top:1px solid var(--line);}
details:last-of-type{border-bottom:1px solid var(--line);}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;padding:18px 0;font-weight:500;}
summary::-webkit-details-marker{display:none;}
summary::after{content:"+";font-family:var(--sans);font-weight:300;font-size:22px;line-height:1;transition:transform .3s;}
details[open] summary::after{transform:rotate(45deg);}
details p{color:var(--ink-2);font-size:14px;padding-bottom:18px;margin:0;}

.area{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.area span{font-size:13px;padding:5px 14px;border-radius:999px;border:1px solid var(--line);}

.showreel{border-radius:50%;overflow:hidden;aspect-ratio:1;max-width:420px;margin:0 auto;box-shadow:0 0 100px -20px rgba(123,92,255,.6);}
.showreel video{width:100%;height:100%;object-fit:cover;filter:brightness(.85);}
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;}
@media (max-width:860px){ .split{grid-template-columns:1fr;} }

.related{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
@media (max-width:860px){ .related{grid-template-columns:1fr 1fr;} }
.related a{display:block;padding:18px;border-radius:16px;background:var(--panel);border:1px solid var(--line);text-decoration:none;font-size:14px;}
.related a:hover{border-color:rgba(255,255,255,.3);}
.related a small{display:block;font-family:var(--display);text-transform:uppercase;font-size:18px;color:var(--ink-2);}

.cta{text-align:center;position:relative;overflow:hidden;}
.cta::before{content:"";position:absolute;left:50%;top:50%;width:900px;height:900px;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,79,163,.22),rgba(123,92,255,.12) 40%,transparent 65%);pointer-events:none;}
.cta .wrap{position:relative;}
.cta .en-title{font-size:clamp(46px,8vw,110px);}
.cta .btns{justify-content:center;}
footer{border-top:1px solid var(--line);padding:36px 0;font-size:12.5px;color:var(--muted);}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;}
footer a{color:var(--ink-2);text-decoration:none;}
