/* =====================================================================
   AIコンサルLab — 共有スタイル（全固定ページ共通）
   このファイルは各固定ページのブロックから <link> で読み込まれるため、
   読み込まれるのはカスタムページのみ。SWELL非表示もここで安全に行える。
   ===================================================================== */

/* ===== SWELLテーマのヘッダー/フッター等を非表示＋全幅化 ===== */
#header, .l-header, .c-header, header[role="banner"],
#footer, .l-footer,
.c-breadcrumb, .p-breadcrumb, #breadcrumb,
.l-sidebar, .c-pageTitle, .p-pageHeader,
.p-fixBtns, .c-fixedSpBtns, .p-spMenu, .c-toTop, .p-pageTop { display: none !important; }
#main_content, .l-mainContent, .l-mainContent__inner, .l-article, .l-article__body, .post_content, .l-content {
  max-width: none !important; width: 100% !important; margin: 0 !important; padding: 0 !important; border: 0 !important;
}
body { margin: 0 !important; padding: 0 !important; }

/* ===== tokens / reset ===== */
.s3d-root{
  --s3d-bg:#07070c; --s3d-bg-soft:#0c0c14;
  --s3d-surface:rgba(255,255,255,.035); --s3d-surface-2:rgba(255,255,255,.06);
  --s3d-border:rgba(255,255,255,.09); --s3d-border-2:rgba(255,255,255,.16);
  --s3d-text:#f3f3f8; --s3d-muted:#9a9fb4; --s3d-faint:#6b6f84;
  --s3d-violet:#7c5cff; --s3d-blue:#4f8cff; --s3d-pink:#e15cc8;
  --s3d-grad:linear-gradient(115deg,#7c5cff 0%,#4f8cff 42%,#e15cc8 100%);
  --s3d-grad-soft:linear-gradient(115deg,rgba(124,92,255,.18),rgba(79,140,255,.12),rgba(225,92,200,.18));
  --s3d-radius:18px; --s3d-ease:cubic-bezier(.22,1,.36,1); --s3d-maxw:1180px;
  --s3d-jp:"Noto Sans JP",system-ui,-apple-system,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  --s3d-en:"Sora",var(--s3d-jp);
  position:relative; overflow-x:clip; isolation:isolate;
  width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
  background:var(--s3d-bg); color:var(--s3d-text);
  font-family:var(--s3d-jp); font-weight:400; line-height:1.8; letter-spacing:.02em; -webkit-font-smoothing:antialiased;
}
.s3d-root *,.s3d-root *::before,.s3d-root *::after{box-sizing:border-box;}
.s3d-root h1,.s3d-root h2,.s3d-root h3,.s3d-root h4,.s3d-root p,.s3d-root ul,.s3d-root ol,.s3d-root li,.s3d-root dl,.s3d-root dt,.s3d-root dd,.s3d-root figure{margin:0;padding:0;}
.s3d-root ul{list-style:none;}
.s3d-root a{color:inherit;text-decoration:none;}
.s3d-root::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(60vw 60vw at 80% 2%,rgba(124,92,255,.10),transparent 60%),radial-gradient(50vw 50vw at 0% 28%,rgba(79,140,255,.08),transparent 55%),radial-gradient(55vw 55vw at 90% 96%,rgba(225,92,200,.07),transparent 60%);}
.s3d-container{width:100%;max-width:var(--s3d-maxw);margin:0 auto;padding:0 28px;position:relative;z-index:1;}

.s3d-progress{position:fixed;top:0;left:0;height:2px;width:0%;background:var(--s3d-grad);z-index:2147483000;transition:width .1s linear;box-shadow:0 0 12px rgba(124,92,255,.6);}

/* nav */
.s3d-nav{position:fixed;top:0;left:0;width:100%;z-index:2147482000;transition:background .4s var(--s3d-ease),backdrop-filter .4s,border-color .4s;border-bottom:1px solid transparent;}
.s3d-nav.is-scrolled{background:rgba(7,7,12,.74);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border-bottom:1px solid var(--s3d-border);}
.s3d-nav__inner{max-width:var(--s3d-maxw);margin:0 auto;padding:16px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
.s3d-logo{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:19px;letter-spacing:.04em;color:var(--s3d-text);}
.s3d-logo__dot{width:11px;height:11px;border-radius:50%;background:var(--s3d-grad);box-shadow:0 0 14px rgba(124,92,255,.8);flex:none;}
.s3d-nav__links{display:flex;align-items:center;gap:28px;}
.s3d-nav__links a{font-size:15px;color:var(--s3d-muted);transition:color .25s;}
.s3d-nav__links a:hover,.s3d-nav__links a.is-current{color:var(--s3d-text);}
.s3d-nav__cta{color:var(--s3d-text) !important;border:1px solid var(--s3d-border-2);padding:9px 20px;border-radius:999px;transition:border-color .3s,background .3s,transform .3s;}
.s3d-nav__cta:hover{background:var(--s3d-surface-2);border-color:var(--s3d-violet);transform:translateY(-1px);}
.s3d-burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;}
.s3d-burger span{width:24px;height:2px;background:var(--s3d-text);border-radius:2px;transition:.3s var(--s3d-ease);display:block;}
.s3d-burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.s3d-burger.is-open span:nth-child(2){opacity:0;}
.s3d-burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* hero (home only) */
.s3d-hero{position:relative;height:100svh;min-height:640px;width:100%;overflow:hidden;}
.s3d-hero__scene{position:absolute;inset:0;z-index:0;}
.s3d-hero__canvas{width:100%;height:100%;display:block;outline:none;}
.s3d-hero__veil{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(to bottom,rgba(7,7,12,.5) 0%,rgba(7,7,12,.25) 38%,rgba(7,7,12,.45) 72%,rgba(7,7,12,.92) 94%,var(--s3d-bg) 100%);}
.s3d-hero__overlay{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:90px 28px 0;pointer-events:none;}
.s3d-hero__inner{max-width:var(--s3d-maxw);margin:0 auto;width:100%;}
.s3d-hero__kicker{font-family:var(--s3d-en);font-size:14px;letter-spacing:.16em;color:var(--s3d-muted);margin-bottom:18px;}
.s3d-hero__title{font-size:clamp(34px,6vw,72px);font-weight:700;line-height:1.3;letter-spacing:.01em;margin-bottom:24px;}
.s3d-hero__tag{font-size:clamp(15px,1.6vw,18px);color:#c9ccdb;max-width:640px;margin-bottom:32px;font-weight:400;line-height:1.95;}
.s3d-hero__actions{display:flex;gap:14px;flex-wrap:wrap;pointer-events:auto;}
.s3d-scroll{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--s3d-faint);pointer-events:auto;z-index:2;}
.s3d-scroll__txt{font-family:var(--s3d-en);font-size:11px;letter-spacing:.35em;}
.s3d-scroll__line{width:1px;height:44px;background:linear-gradient(var(--s3d-violet),transparent);position:relative;overflow:hidden;}
.s3d-scroll__line::after{content:"";position:absolute;top:-50%;left:0;width:100%;height:50%;background:#fff;animation:s3d-scroll 2s var(--s3d-ease) infinite;}
@keyframes s3d-scroll{0%{top:-50%;}60%,100%{top:110%;}}

/* sub-page header */
.s3d-pagehead{position:relative;min-height:44vh;display:flex;align-items:flex-end;padding:150px 0 56px;overflow:hidden;border-bottom:1px solid var(--s3d-border);}
.s3d-pagehead::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(120% 130% at 82% -10%,rgba(124,92,255,.30),transparent 55%),radial-gradient(120% 130% at 0% 120%,rgba(225,92,200,.22),transparent 55%),radial-gradient(100% 100% at 40% 40%,rgba(79,140,255,.12),transparent 60%),linear-gradient(180deg,#0a0a12,#07070c);}
.s3d-pagehead::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--s3d-grad);opacity:.8;}
.s3d-pagehead .s3d-container{position:relative;z-index:1;}
.s3d-pagehead__eyebrow{font-family:var(--s3d-en);font-size:13px;letter-spacing:.3em;color:#c9b8ff;}
.s3d-pagehead__title{font-size:clamp(32px,6vw,64px);font-weight:700;line-height:1.25;margin-top:14px;}
.s3d-pagehead__lead{color:#c4c8d8;font-size:16px;margin-top:18px;max-width:62ch;line-height:1.95;}

/* buttons */
.s3d-btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 28px;border-radius:999px;font-size:15px;font-weight:500;cursor:pointer;transition:transform .3s var(--s3d-ease),box-shadow .3s,background .3s,border-color .3s;border:1px solid transparent;white-space:nowrap;}
.s3d-btn--primary{background:var(--s3d-grad);color:#fff;box-shadow:0 10px 34px -10px rgba(124,92,255,.7);}
.s3d-btn--primary:hover{transform:translateY(-2px);box-shadow:0 16px 44px -10px rgba(124,92,255,.9);}
.s3d-btn--ghost{border-color:var(--s3d-border-2);color:var(--s3d-text);background:rgba(255,255,255,.02);}
.s3d-btn--ghost:hover{border-color:var(--s3d-text);transform:translateY(-2px);}
.s3d-btn--lg{padding:18px 40px;font-size:17px;letter-spacing:.02em;}

/* marquee */
.s3d-marquee{position:relative;z-index:1;overflow:hidden;border-top:1px solid var(--s3d-border);border-bottom:1px solid var(--s3d-border);background:var(--s3d-bg-soft);padding:20px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.s3d-marquee__track{display:flex;align-items:center;gap:36px;width:max-content;animation:s3d-marquee 30s linear infinite;}
.s3d-marquee__track span{font-size:clamp(16px,2.2vw,24px);font-weight:500;color:var(--s3d-text);white-space:nowrap;}
.s3d-marquee__track i{color:var(--s3d-violet);font-style:normal;font-size:14px;}
@keyframes s3d-marquee{to{transform:translateX(-50%);}}

/* sections */
.s3d-section{position:relative;z-index:1;padding:clamp(74px,11vw,140px) 0;}
.s3d-section--tight{padding:clamp(56px,8vw,96px) 0;}
.s3d-head{margin-bottom:52px;max-width:760px;}
.s3d-eyebrow{display:inline-block;font-family:var(--s3d-en);font-size:12.5px;letter-spacing:.28em;color:var(--s3d-muted);margin-bottom:16px;}
.s3d-eyebrow::before{content:"\2736  ";color:var(--s3d-violet);}
.s3d-h2{font-size:clamp(28px,4.4vw,46px);font-weight:700;line-height:1.34;letter-spacing:.01em;}
.s3d-head__lead{color:var(--s3d-muted);font-size:16px;margin-top:18px;line-height:1.95;}
.s3d-grad{background:var(--s3d-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}

/* mission */
.s3d-statement{font-size:clamp(26px,4vw,48px);font-weight:700;line-height:1.45;letter-spacing:.01em;margin-bottom:54px;}
.s3d-mission__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:38px;max-width:940px;margin-left:auto;}
.s3d-mission__grid p{color:#b9bdcf;font-size:16px;}

/* cards */
.s3d-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.s3d-cards--2{grid-template-columns:repeat(2,1fr);}
.s3d-card{position:relative;padding:36px 32px;border-radius:var(--s3d-radius);background:var(--s3d-surface);border:1px solid var(--s3d-border);overflow:hidden;transition:transform .5s var(--s3d-ease),border-color .5s,background .5s;}
.s3d-card::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--s3d-grad);opacity:0;transition:opacity .5s;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;}
.s3d-card:hover{transform:translateY(-6px);background:var(--s3d-surface-2);}
.s3d-card:hover::after{opacity:.9;}
.s3d-card__no{font-family:var(--s3d-en);font-size:14px;letter-spacing:.12em;color:var(--s3d-faint);}
.s3d-card h3{font-size:21px;font-weight:700;margin:14px 0 12px;line-height:1.5;}
.s3d-card p{color:var(--s3d-muted);font-size:14.5px;margin-bottom:20px;line-height:1.85;}
.s3d-card ul{display:flex;flex-wrap:wrap;gap:8px;}
.s3d-card li{font-size:12.5px;color:var(--s3d-text);padding:6px 13px;border:1px solid var(--s3d-border);border-radius:999px;background:rgba(255,255,255,.02);}
.s3d-card--cta{background:var(--s3d-grad-soft);border-color:var(--s3d-border-2);display:flex;flex-direction:column;}
.s3d-card--cta:hover{background:var(--s3d-grad-soft);}
.s3d-card--cta .s3d-card__no{color:var(--s3d-violet);font-size:22px;}
.s3d-card__link{margin-top:auto;font-weight:700;color:#fff;}

/* service detail rows */
.s3d-srv{display:grid;grid-template-columns:88px 1fr;gap:28px;padding:40px 0;border-top:1px solid var(--s3d-border);}
.s3d-srv:last-child{border-bottom:1px solid var(--s3d-border);}
.s3d-srv__no{font-family:var(--s3d-en);font-size:38px;font-weight:600;line-height:1;background:var(--s3d-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.s3d-srv__body h3{font-size:clamp(22px,3vw,30px);font-weight:700;margin-bottom:14px;}
.s3d-srv__body p{color:var(--s3d-muted);font-size:15.5px;line-height:1.95;margin-bottom:18px;max-width:64ch;}
.s3d-srv__tags{display:flex;flex-wrap:wrap;gap:8px;}
.s3d-srv__tags span{font-size:12.5px;color:var(--s3d-text);padding:6px 13px;border:1px solid var(--s3d-border);border-radius:999px;background:rgba(255,255,255,.02);}

/* why */
.s3d-why__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.s3d-why__item{padding:38px 34px;border-radius:var(--s3d-radius);background:var(--s3d-surface);border:1px solid var(--s3d-border);}
.s3d-why__no{font-family:var(--s3d-en);display:inline-block;font-size:30px;font-weight:600;background:var(--s3d-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:14px;}
.s3d-why__item h3{font-size:20px;font-weight:700;margin-bottom:12px;}
.s3d-why__item p{color:var(--s3d-muted);font-size:15px;line-height:1.9;}

/* profile table */
.s3d-profile{max-width:860px;border-top:1px solid var(--s3d-border);}
.s3d-profile__row{display:grid;grid-template-columns:200px 1fr;gap:20px;padding:22px 8px;border-bottom:1px solid var(--s3d-border);}
.s3d-profile dt{color:var(--s3d-muted);font-size:15px;font-weight:500;}
.s3d-profile dd{color:var(--s3d-text);font-size:15.5px;}
.s3d-profile dd a{color:var(--s3d-blue);}
.s3d-profile dd a:hover{text-decoration:underline;}

/* prose (message / general) */
.s3d-prose{max-width:760px;}
.s3d-prose p{color:#c4c8d8;font-size:16px;line-height:2.05;margin-bottom:1.6em;}
.s3d-prose strong{color:var(--s3d-text);font-weight:700;}
.s3d-sign{margin-top:40px;text-align:right;}
.s3d-sign__role{color:var(--s3d-muted);font-size:14px;}
.s3d-sign__name{font-size:24px;font-weight:700;margin-top:6px;letter-spacing:.06em;}

/* CTA */
.s3d-cta{position:relative;text-align:center;padding:clamp(50px,8vw,92px) 28px;border-radius:28px;background:var(--s3d-grad-soft);border:1px solid var(--s3d-border-2);overflow:hidden;}
.s3d-cta::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 50% 0%,rgba(124,92,255,.22),transparent 70%);pointer-events:none;}
.s3d-cta .s3d-eyebrow{color:var(--s3d-text);}
.s3d-cta__title{font-size:clamp(28px,5vw,52px);font-weight:700;line-height:1.35;margin:8px 0 20px;}
.s3d-cta__sub{color:#c4c8d8;font-size:16px;max-width:52ch;margin:0 auto 34px;line-height:1.95;}

/* footer */
.s3d-footer{position:relative;z-index:1;border-top:1px solid var(--s3d-border);padding-top:64px;background:var(--s3d-bg);}
.s3d-footer__inner{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:40px;padding:0 28px 50px;max-width:var(--s3d-maxw);margin:0 auto;}
.s3d-footer__brand p{color:var(--s3d-muted);font-size:14.5px;margin-top:16px;line-height:1.9;}
.s3d-footer__col h4{font-family:var(--s3d-en);font-size:12px;letter-spacing:.2em;color:var(--s3d-faint);margin-bottom:16px;}
.s3d-footer__col{display:flex;flex-direction:column;gap:13px;}
.s3d-footer__col a{color:var(--s3d-muted);font-size:14.5px;transition:color .25s;width:fit-content;}
.s3d-footer__col a:hover{color:var(--s3d-text);}
.s3d-footer__bar{display:flex;justify-content:space-between;align-items:center;gap:16px;max-width:var(--s3d-maxw);margin:0 auto;padding:24px 28px;border-top:1px solid var(--s3d-border);font-family:var(--s3d-en);font-size:13px;color:var(--s3d-faint);}

/* reveal */
.s3d-reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--s3d-ease),transform .9s var(--s3d-ease);}
.s3d-reveal.is-visible{opacity:1;transform:none;}

/* responsive */
@media (max-width:980px){ .s3d-cards{grid-template-columns:repeat(2,1fr);} .s3d-why__grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:860px){
  .s3d-nav__inner{padding:14px 22px;}
  .s3d-nav__links{position:fixed;inset:0 0 0 auto;width:min(82vw,340px);flex-direction:column;align-items:flex-start;justify-content:center;gap:24px;padding:40px;background:rgba(9,9,16,.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-left:1px solid var(--s3d-border);transform:translateX(100%);transition:transform .45s var(--s3d-ease);z-index:2147482001;}
  .s3d-nav__links.is-open{transform:translateX(0);}
  .s3d-nav__links a{font-size:19px;color:var(--s3d-text);}
  .s3d-nav__cta{padding:11px 22px;}
  .s3d-burger{display:flex;z-index:2147482002;}
  .s3d-hero__overlay{padding:86px 22px 0;}
  .s3d-hero__tag br{display:none;}
  .s3d-scroll{display:none;}
  .s3d-mission__grid{grid-template-columns:1fr;gap:22px;}
  .s3d-footer__inner{grid-template-columns:1.4fr 1fr;gap:30px;}
}
@media (max-width:620px){
  .s3d-section{padding:64px 0;}
  .s3d-container{padding:0 22px;}
  .s3d-head{margin-bottom:38px;}
  .s3d-cards,.s3d-why__grid{grid-template-columns:1fr;}
  .s3d-hero__actions{flex-direction:column;align-items:stretch;width:100%;}
  .s3d-hero__actions .s3d-btn{width:100%;}
  .s3d-srv{grid-template-columns:1fr;gap:10px;padding:32px 0;}
  .s3d-srv__no{font-size:30px;}
  .s3d-profile__row{grid-template-columns:1fr;gap:4px;padding:18px 4px;}
  .s3d-profile dt{font-size:13px;color:var(--s3d-faint);}
  .s3d-profile dd{font-size:15px;overflow-wrap:anywhere;}
  .s3d-pagehead{min-height:38vh;padding:130px 0 44px;}
  .s3d-cta{padding:46px 22px;}
  .s3d-sign{text-align:left;}
  .s3d-footer__inner{grid-template-columns:1fr;gap:28px;}
  .s3d-footer__bar{flex-direction:column;text-align:center;}
}
@media (prefers-reduced-motion:reduce){ .s3d-root *{animation-duration:.001ms !important;animation-iteration-count:1 !important;} .s3d-reveal{opacity:1;transform:none;} }
