/* ============================================================
   参考：emika-design.com の構成（帯・ブラケット枠・水色の帯セクション・
   ジグザグ・下線つき見出し・黄色マーカー・段階的CTA）
   色は「水色＋ネイビー」、CTAだけオレンジ。文字は中〜太めで字間広め＝フランク
   ============================================================ */
:root{
  color-scheme:light;
  --white:#FFFFFF;
  --pale:#EAF5FC;
  --pale-2:#F5FAFE;
  --sky:#2E9AD8;
  --sky-light:#8ACCF1;
  --navy:#1D3B5C;
  --ink:#2B3440;
  --sub:#5E6B78;
  --line:#D7E7F3;
  --orange:#F0893E;
  --marker:#FFEC8A;
  --wrap:880px;
  --wide:1120px;
  --jp:"Zen Kaku Gothic New","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  --en:"Jost",var(--jp);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--jp);font-weight:500;font-size:15px;line-height:2;letter-spacing:.06em;line-break:strict;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit}
p,h1,h2,h3,figure{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
img{display:block;max-width:100%}
h1,h2,h3{font-weight:700}
:focus-visible{outline:2px solid var(--sky);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;z-index:100;background:#fff;padding:8px 12px}
.pc{display:none}.sp{display:inline}
@media(min-width:768px){.pc{display:inline}.sp{display:none}}
.wrap{width:min(var(--wrap),100% - 48px);margin-inline:auto}
.wide{width:min(var(--wide),100% - 48px);margin-inline:auto}
mark{background:linear-gradient(transparent 60%,var(--marker) 60%);color:inherit;font-weight:700;padding:0 1px}

/* ---------- header ---------- */
.header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .25s,box-shadow .25s}
.header.scrolled{border-bottom-color:var(--line);box-shadow:0 4px 18px rgba(29,59,92,.05)}
.logo-txt{display:flex;flex-direction:column;line-height:1.25}
.logo-txt b,.nav .btn{white-space:nowrap}
@media(max-width:480px){.logo b{font-size:17px}.nav .btn{padding:0 18px}}
.logo-txt small{font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--sky)}
.header .wide{display:flex;align-items:center;justify-content:space-between;height:70px;gap:16px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo svg{width:30px;height:30px;flex:none}
.logo b{font-size:19px;letter-spacing:.08em;color:var(--navy)}
.nav{display:flex;align-items:center;gap:26px;font-size:14px}
.nav a{text-decoration:none;display:none;color:var(--ink);transition:color .2s}
.nav a:hover{color:var(--sky)}
.nav .btn{display:inline-flex}
@media(min-width:960px){.nav a{display:inline}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 30px;border-radius:999px;font-weight:700;font-size:15px;letter-spacing:.08em;text-decoration:none;border:1.5px solid transparent;transition:filter .2s,background .2s,color .2s,transform .2s}
.btn svg{width:16px;height:16px;flex:none}
.btn-orange{background:var(--orange);color:#fff}
.btn-orange:hover{filter:brightness(1.06);transform:translateY(-1px)}
.btn-sky{background:var(--sky);color:#fff}
.btn-sky:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn-outline{background:#fff;color:var(--sky);border-color:var(--sky)}
.btn-outline:hover{background:var(--sky);color:#fff}
.btn-sm{min-height:42px;padding:0 22px;font-size:14px}
.btn .arr{font-family:var(--en);font-weight:500}

/* ---------- section head（英字＋日本語＋下線） ---------- */
section{padding:104px 0}
@media(max-width:767px){section{padding:80px 0}}
.pale{background:var(--pale)}
.shead{text-align:center;margin-bottom:56px}
.shead .en{display:block;font-family:var(--en);font-weight:500;font-size:15px;letter-spacing:.14em;color:var(--sky)}
.shead h2{margin-top:6px;font-size:clamp(22px,2.8vw,28px);letter-spacing:.12em;color:var(--navy);line-height:1.6}
.uhead{position:relative;font-size:18px;letter-spacing:.1em;color:var(--navy);padding-bottom:12px;margin-bottom:20px;border-bottom:1px solid var(--line)}
.uhead::after{content:"";position:absolute;left:0;bottom:-1px;width:42%;height:2px;background:var(--sky)}
.blue-lead{font-size:14px;font-weight:700;color:var(--sky);letter-spacing:.08em;margin-bottom:10px}

/* ---------- hero ---------- */
.hero{position:relative;padding:0;overflow:hidden;background:linear-gradient(115deg,#FFFFFF 0%,#F4FAFE 45%,#DDF0FB 100%)}
.tri{position:absolute;pointer-events:none;background:var(--sky-light)}
.tri.t1{left:-6%;top:-10%;width:34%;height:70%;opacity:.16;clip-path:polygon(0 0,100% 0,0 100%)}
.tri.t2{right:-4%;bottom:-20%;width:46%;height:90%;opacity:.18;clip-path:polygon(100% 0,100% 100%,0 100%)}
.tri.t3{right:28%;top:-30%;width:30%;height:80%;opacity:.10;clip-path:polygon(50% 100%,100% 0,0 0)}
.hero-arc{position:absolute;right:-8%;bottom:-6%;width:70%;pointer-events:none;opacity:.6}
.hero .wide{position:relative;display:grid;gap:32px;align-items:center;padding:72px 0 64px}
@media(min-width:900px){.hero .wide{grid-template-columns:1.15fr .85fr;padding:88px 0;min-height:560px}}
.frame{position:relative;padding:34px 38px;display:inline-block}
.frame::before,.frame::after{content:"";position:absolute;width:56px;height:56px;border-color:var(--sky-light);border-style:solid}
.frame::before{left:0;top:0;border-width:2px 0 0 2px}
.frame::after{right:0;bottom:0;border-width:0 2px 2px 0}
.hero h1{font-size:clamp(26px,3.6vw,40px);line-height:1.6;letter-spacing:.1em;color:var(--navy)}
.hero h1 .sky{color:var(--sky)}
.cats{margin-top:28px;font-size:clamp(13px,1.4vw,16px);font-weight:700;color:var(--sky);letter-spacing:.08em;line-height:1.8}
.for{display:flex;align-items:center;gap:12px;margin-bottom:14px;font-size:clamp(13px,1.4vw,15px);font-weight:700;letter-spacing:.1em;color:var(--sky);line-height:1.6}
.for::before{content:"";width:28px;height:1.5px;background:currentColor;flex:none}
.for span{color:var(--navy);font-size:clamp(14px,1.5vw,16px);padding:0 2px;background-image:linear-gradient(var(--marker),var(--marker));background-repeat:no-repeat;background-position:0 100%;background-size:100% 42%}
/* 線が左から伸びるアニメーション（表示されたら開始） */
@media (prefers-reduced-motion:no-preference){
  .js .for span{background-size:0% 42%;transition:background-size 1s cubic-bezier(.65,0,.35,1) .7s}
  .js .for.in span{background-size:100% 42%}
}
@media(max-width:899px){.for{justify-content:center}}
@media(max-width:480px){.for::before{display:none}.for span{font-size:14px;letter-spacing:.04em}}
.who{margin-top:8px;font-size:clamp(13px,1.3vw,15px);font-weight:700;letter-spacing:.08em}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero-photo{position:relative;justify-self:center;width:100%;max-width:420px}
.hero-photo .ph{aspect-ratio:4/5;border-radius:200px 200px 24px 24px;overflow:hidden;border:6px solid #fff;box-shadow:0 20px 50px rgba(29,59,92,.14)}
.hero-photo img{width:100%;height:100%;object-fit:cover}
.hero-photo .tag{position:absolute;left:-18px;bottom:36px;background:#fff;border-radius:14px;padding:10px 16px;font-size:12px;line-height:1.6;box-shadow:0 10px 24px rgba(29,59,92,.12)}
.hero-photo .tag b{display:block;font-size:14px;color:var(--navy)}
@media(max-width:899px){.hero .copy{text-align:center}.hero-cta{justify-content:center}.frame{padding:28px 22px}}

/* ---------- concept band ---------- */
.concept{text-align:center;padding:64px 0}
.concept h2{font-size:clamp(19px,2.4vw,24px);letter-spacing:.12em;color:var(--navy);line-height:1.8}
.concept h2,.concept p{white-space:nowrap}
@media(max-width:767px){.concept h2,.concept p{white-space:normal}}
.concept p{margin-top:14px;font-size:clamp(13px,1.5vw,15px);font-weight:700;color:var(--sky);letter-spacing:.08em}

/* ---------- intro zigzag ---------- */
.zig{display:grid;gap:56px}
.zig-row{display:grid;gap:28px;align-items:center}
@media(min-width:768px){.zig-row{grid-template-columns:1fr 1fr;gap:48px}.zig-row.rev .zig-img{order:-1}}
.zig-img{aspect-ratio:3/2;overflow:hidden;border-radius:4px}
.zig-img img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) brightness(1.04)}
.zig-text p + p{margin-top:16px}
.zig-text .quote{color:var(--navy)}

/* ---------- works ---------- */
.works{display:grid;gap:28px}
@media(min-width:768px){.works{grid-template-columns:repeat(2,1fr)}}
.work .stage{background:#fff;border-radius:12px;aspect-ratio:16/10;display:grid;grid-template-rows:minmax(0,1fr);place-items:center;padding:24px;overflow:hidden;box-shadow:0 2px 0 rgba(29,59,92,.04)}
.device{position:relative;width:78%}
.laptop .screen{aspect-ratio:16/10;border:7px solid #2B3440;border-bottom-width:9px;border-radius:10px 10px 0 0;background:var(--pale-2);overflow:hidden}
.laptop .base{height:10px;margin:0 -9%;background:#C9D3DD;border-radius:0 0 10px 10px}
.phone{width:auto;height:100%}
.phone .screen{height:100%;width:auto;aspect-ratio:9/19;border:6px solid #2B3440;border-radius:22px;background:var(--pale-2);overflow:hidden}
.screen img{width:100%;height:100%;object-fit:cover}
.screen .empty{display:none}
.screen.is-empty img{display:none}
.screen.is-empty .empty{display:grid;place-content:center;height:100%;text-align:center;font-size:11px;line-height:1.6;color:var(--sub);padding:6px}
.work h3{margin-top:16px;font-size:15px;line-height:1.7;letter-spacing:.06em}
.work .meta{margin-top:4px;font-size:12px;color:var(--sub)}

/* ---------- points (2×2 with photo) ---------- */
.points{display:grid;gap:56px 40px}
@media(min-width:768px){.points{grid-template-columns:repeat(2,1fr)}}
.point{display:flex;flex-direction:column}
.point p{font-size:14px;line-height:2}
.point > p:last-of-type{margin-bottom:20px}
.point .pimg{margin-top:auto;aspect-ratio:3/2;overflow:hidden;border-radius:4px}
.point .pimg img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) brightness(1.03)}

/* ---------- service ---------- */
.svc-catch{text-align:center;margin:-24px 0 44px}
.svc-catch .big{font-size:clamp(18px,2.4vw,23px);font-weight:700;color:var(--navy);letter-spacing:.1em}
.svc-catch .small{margin-top:8px;font-size:14px;color:var(--sub)}
.svc{display:grid;gap:20px}
@media(min-width:768px){.svc{grid-template-columns:repeat(2,1fr);gap:24px}}
.svc-item{background:#fff;border-radius:16px;padding:30px 28px 32px;display:flex;flex-direction:column;box-shadow:0 2px 0 rgba(29,59,92,.04);transition:transform .25s,box-shadow .25s}
.svc-item:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(29,59,92,.08)}
.svc-item .label{font-family:var(--en);font-weight:500;font-size:13px;letter-spacing:.14em;color:var(--sky);margin-bottom:2px}
.svc-item .uhead{margin-bottom:18px}
.svc-body{display:flex;flex-direction:column;gap:20px;flex:1}
.banner{position:relative;aspect-ratio:2/1;border-radius:10px;overflow:hidden;background:linear-gradient(120deg,#F5FAFE 0%,#DFF1FC 100%);padding:18px 20px;display:flex;flex-direction:column;justify-content:space-between}
.banner .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.85) brightness(1.04)}
.banner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(245,250,254,.95) 0%,rgba(245,250,254,.7) 45%,rgba(245,250,254,0) 85%)}
.banner p,.banner .circles{z-index:2}
.banner p{position:relative;z-index:1;font-size:15px;font-weight:700;color:var(--navy);line-height:1.7;letter-spacing:.08em}
.banner p span{background:#fff;padding:2px 8px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.circles{position:relative;z-index:1;display:flex;align-items:center;gap:6px;font-family:var(--en);color:var(--sky);align-self:flex-end}
.circles i{font-style:normal;width:54px;height:54px;border-radius:50%;background:var(--sky);color:#fff;display:grid;place-items:center;font-family:var(--jp);font-weight:700;font-size:13px;letter-spacing:.06em}
.svc-text{display:flex;flex-direction:column;flex:1}
@media(max-width:767px){.banner{aspect-ratio:auto;gap:12px}.circles i{width:48px;height:48px;font-size:12px}}
.svc-text .price{margin-top:auto !important;padding-top:14px;border-top:1px dashed var(--line)}
.svc-text .blue-lead{font-size:15px}
.svc-text p{font-size:14px;line-height:2}
.svc-text p:not(.price):not(.blue-lead){margin-bottom:16px}
.svc-text .price{font-size:12px;color:var(--sub)}
.svc-text .btn{margin-top:18px}
.todo{font-size:10px;font-weight:700;color:#8A6400;background:#FFF2C6;border-radius:4px;padding:0 6px;margin-left:6px;letter-spacing:0}
.center{text-align:center;margin-top:56px}

/* ---------- examples（voice風） ---------- */
.ex-note{text-align:center;font-size:13px;color:var(--sub);margin:-36px 0 40px}
.examples{display:grid;gap:16px}
.ex{border:1.5px solid var(--sky-light);border-radius:2px;padding:24px 26px;background:#fff}
.ex h3{font-size:16px;color:var(--sky);letter-spacing:.08em;line-height:1.7}
.ex p{margin-top:10px;font-size:14px;line-height:2}
.ex .ans{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);font-size:13px;color:var(--sub)}
.ex .ans b{color:var(--navy)}

/* ---------- profile ---------- */
.card-w{background:#fff;border-radius:16px;box-shadow:0 2px 0 rgba(29,59,92,.04)}
.prof{display:grid;gap:28px;padding:32px 24px;align-items:start}
@media(min-width:768px){.prof{grid-template-columns:260px 1fr;gap:44px;padding:44px 48px}}
.prof-ph{width:200px;margin:0 auto;aspect-ratio:4/5;overflow:hidden;border-radius:14px;background:var(--pale)}
@media(min-width:768px){.prof-ph{width:100%}}
.prof-ph img{width:100%;height:100%;object-fit:cover}
.prof .name{font-size:24px;letter-spacing:.12em;color:var(--navy);line-height:1.5}
.prof .role{display:inline-block;margin-top:8px;font-size:13px;font-weight:700;color:var(--sky);background:var(--pale);border-radius:999px;padding:2px 14px;letter-spacing:.06em}
.facts{margin-top:18px;display:grid;gap:4px}
.facts li{font-size:14px;line-height:1.9;display:flex;gap:14px}
.facts li span{flex:none;width:3.5em;font-size:12px;font-weight:700;color:var(--sub);padding-top:2px}
.career{margin-top:22px;padding-top:20px;border-top:1px solid var(--line);display:grid;gap:0}
.career li{position:relative;padding:0 0 12px 24px;font-size:14px;line-height:1.8}
.career li::before{content:"";position:absolute;left:4px;top:8px;width:9px;height:9px;border-radius:50%;background:#fff;border:2px solid var(--sky-light)}
.career li:not(:last-child)::after{content:"";position:absolute;left:8px;top:20px;bottom:-4px;width:1.5px;background:var(--line)}
.career li.now{padding-bottom:0;font-weight:700;color:var(--navy)}
.career li.now::before{background:var(--sky);border-color:var(--sky)}
.career li.now b{display:inline-block;margin-right:8px;font-size:11px;color:#fff;background:var(--sky);border-radius:4px;padding:0 8px;vertical-align:1px}
.story{margin-top:20px;padding:36px 24px}
@media(min-width:768px){.story{padding:48px 64px}}
.story-label{font-size:14px;font-weight:700;color:var(--sky);letter-spacing:.1em;margin-bottom:16px;display:flex;align-items:center;gap:10px}
.story-label::before{content:"";width:22px;height:1.5px;background:currentColor}
.story p{font-size:15px;line-height:2.1}
.story p + p{margin-top:14px}
.story blockquote{margin:28px 0;padding:22px 0;text-align:center;font-size:clamp(17px,2.2vw,21px);font-weight:700;color:var(--navy);letter-spacing:.1em;line-height:1.8;border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative}
.story blockquote::before,.story blockquote::after{font-family:var(--en);font-size:40px;line-height:0;color:var(--sky-light);position:relative;top:14px}
.story blockquote::before{content:"“";margin-right:8px}
.story blockquote::after{content:"”";margin-left:8px}
@media(max-width:600px){.story blockquote{font-size:16px;letter-spacing:.04em}.story blockquote::before,.story blockquote::after{font-size:30px;top:10px}}

/* ---------- flow ---------- */
.flow{display:grid;gap:12px;counter-reset:f}
@media(min-width:768px){.flow{grid-template-columns:repeat(4,1fr)}}
.flow li{counter-increment:f;background:#fff;border-radius:6px;padding:22px 20px;position:relative}
.flow li::before{content:"STEP " counter(f);display:block;font-family:var(--en);font-weight:500;font-size:13px;letter-spacing:.12em;color:var(--sky);margin-bottom:6px}
.flow b{display:block;font-size:15px;color:var(--navy);letter-spacing:.06em}
.flow span{display:block;margin-top:6px;font-size:13px;color:var(--sub);line-height:1.8}

/* ---------- contact ---------- */
.contact{text-align:center;background:linear-gradient(115deg,#FFFFFF 0%,#EAF5FC 60%,#D7EEFB 100%);position:relative;overflow:hidden}
.contact h2{font-size:clamp(21px,2.8vw,28px);letter-spacing:.12em;color:var(--navy);line-height:1.7}
.contact .lead{margin-top:14px;font-size:14px}
.cta3{display:grid;gap:14px;margin-top:40px}
@media(min-width:768px){.cta3{grid-template-columns:repeat(3,1fr)}}
.cta3 a{display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;border-radius:14px;padding:22px 16px;background:#fff;border:1.5px solid var(--line);transition:border-color .2s,transform .2s}
.cta3 a:hover{border-color:var(--sky);transform:translateY(-2px)}
.cta3 small{font-size:12px;color:var(--sub);letter-spacing:.06em}
.cta3 b{font-size:16px;letter-spacing:.08em;color:var(--navy)}
.cta3 a.main{background:var(--orange);border-color:var(--orange)}
.cta3 a.main small,.cta3 a.main b{color:#fff}
.contact .small{margin-top:24px;font-size:12px;color:var(--sub)}

/* ---------- footer ---------- */
.footer{background:var(--navy);color:#fff;padding:56px 0 calc(40px + env(safe-area-inset-bottom,0px))}
.footer .wide{display:grid;gap:32px}
@media(min-width:768px){.footer .wide{grid-template-columns:1.3fr 1fr 1fr}}
.footer .logo b{color:#fff}
.footer p{margin-top:12px;font-size:12px;opacity:.75;line-height:1.9}
.footer h4{margin:0 0 8px;font-family:var(--en);font-weight:500;font-size:13px;letter-spacing:.14em;color:var(--sky-light)}
.footer li{font-size:13px;line-height:2.2}
.footer li a{text-decoration:none;opacity:.85}
.footer li a:hover{opacity:1}
.footer .copy{grid-column:1/-1;font-family:var(--en);font-size:12px;opacity:.6;padding-top:24px;border-top:1px solid rgba(255,255,255,.15)}

/* ---------- mobile dock ---------- */
.dock{position:fixed;left:16px;right:16px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:50;transform:translateY(170%);transition:transform .35s ease}
.dock .btn{width:100%;box-shadow:0 8px 22px rgba(240,137,62,.35)}
.dock.show{transform:none}
@media(min-width:960px){.dock{display:none}}

/* ---------- motion ---------- */
@media (prefers-reduced-motion:no-preference){
  .js .reveal{opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform .8s ease}
  .js .reveal.in{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* ============================================================
   複数ページ化で追加
   ============================================================ */

/* ---------- ナビの現在地 ---------- */
.nav a[aria-current="page"]{color:var(--sky);font-weight:700}

/* ---------- 下層ページのタイトル帯 ---------- */
.page-hero{position:relative;overflow:hidden;padding:64px 0 60px;background:linear-gradient(115deg,#2E9AD8 0%,#59B3E8 55%,#8ACCF1 100%);color:#fff;text-align:center}
.page-hero .tri{background:#fff}
.page-hero .tri.t1{opacity:.12}
.page-hero .tri.t2{opacity:.14}
.page-hero .en{position:relative;display:block;font-family:var(--en);font-weight:500;font-size:14px;letter-spacing:.24em;opacity:.9}
.page-hero h1{position:relative;margin-top:6px;font-size:clamp(22px,3vw,30px);letter-spacing:.16em;line-height:1.6}
.crumbs{width:min(var(--wide),100% - 48px);margin:14px auto 0;font-size:12px;color:var(--sub);letter-spacing:.06em}
.crumbs a{color:var(--sky);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs span{margin:0 8px;opacity:.6}
.page-lead{text-align:center}
.page-lead h2{font-size:clamp(20px,2.6vw,26px);letter-spacing:.12em;color:var(--navy);line-height:1.8}
.page-lead p{margin-top:16px;color:var(--sub)}

/* ---------- 「詳しく見る」リンク ---------- */
.more{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-size:14px;font-weight:700;color:var(--sky);text-decoration:none;letter-spacing:.08em}
.more .arr{font-family:var(--en);transition:transform .2s}
.more:hover .arr{transform:translateX(4px)}
.svc-item .more{align-self:flex-start;margin-top:auto;padding-top:16px}
.work a.more{margin-top:10px}

/* ---------- トップ：プロフィールの要約 ---------- */
.prof-mini{display:grid;gap:24px;padding:32px 24px;align-items:center}
@media(min-width:768px){.prof-mini{grid-template-columns:300px 1fr;gap:48px;padding:44px 48px}}
.prof-mini .prof-ph{width:240px}
@media(min-width:768px){.prof-mini .prof-ph{width:100%}}
.prof-mini .name{font-size:22px;letter-spacing:.12em;color:var(--navy)}
.prof-mini .role{display:inline-block;margin-top:6px;font-size:13px;font-weight:700;color:var(--sky);background:var(--pale);border-radius:999px;padding:2px 14px}
.prof-mini .msg{margin-top:14px;font-size:14px;line-height:2}
@media(max-width:767px){.prof-mini{text-align:center}.prof-mini .more{justify-content:center}}

/* ---------- サービス詳細 ---------- */
.svc-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:36px}
.svc-tabs a{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:999px;background:#fff;border:1.5px solid var(--line);font-size:14px;font-weight:700;color:var(--navy);text-decoration:none;transition:border-color .2s,color .2s}
.svc-tabs a:hover{border-color:var(--sky);color:var(--sky)}
.svc-tabs a i{font-style:normal;font-family:var(--en);font-weight:500;font-size:12px;color:var(--sky)}
.svd-head{margin-bottom:32px}
.svd-head .label{font-family:var(--en);font-weight:500;font-size:14px;letter-spacing:.14em;color:var(--sky)}
.svd-head h2{font-size:clamp(21px,2.6vw,26px);letter-spacing:.1em;color:var(--navy);line-height:1.6}
.svd-top{display:grid;gap:28px;align-items:center}
@media(min-width:768px){.svd-top{grid-template-columns:1fr 1fr;gap:44px}}
.svd-top .banner{aspect-ratio:3/2}
.svd-top .blue-lead{font-size:16px}
.svd-top p + p{margin-top:12px}
.svd-cols{display:grid;gap:16px;margin-top:36px}
@media(min-width:768px){.svd-cols{grid-template-columns:1fr 1fr;gap:20px}}
.box{background:#fff;border-radius:14px;padding:26px 26px 24px}
.pale .box{background:#fff}
section:not(.pale) .box{background:var(--pale-2);border:1px solid var(--line)}
.box h3{font-size:15px;color:var(--navy);letter-spacing:.1em;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.box h3::before{content:"";width:6px;height:18px;border-radius:3px;background:var(--sky)}
.checks li,.dots li{position:relative;padding-left:26px;font-size:14px;line-height:1.9}
.checks li + li,.dots li + li{margin-top:6px}
.checks li::before{content:"";position:absolute;left:2px;top:.55em;width:12px;height:7px;border-left:2px solid var(--sky);border-bottom:2px solid var(--sky);transform:rotate(-45deg)}
.dots li::before{content:"";position:absolute;left:6px;top:.8em;width:6px;height:6px;border-radius:50%;background:var(--sky-light)}
.price-row{margin-top:16px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:16px 22px;border-radius:12px;border:1.5px dashed var(--sky-light);font-size:14px}
.price-row b{color:var(--navy)}
.price-row small{font-size:12px;color:var(--sub);flex-basis:100%}

/* 解決方法の順番 */
.ladder{display:grid;gap:10px;counter-reset:l}
@media(min-width:768px){.ladder{grid-template-columns:repeat(4,1fr)}}
.ladder li{counter-increment:l;background:#fff;border-radius:12px;padding:20px 18px;font-size:14px;line-height:1.8;font-weight:700;color:var(--navy)}
.ladder li::before{content:"0" counter(l);display:block;font-family:var(--en);font-weight:500;font-size:13px;color:var(--sky);margin-bottom:4px}
.ladder li small{display:block;margin-top:4px;font-weight:500;font-size:12px;color:var(--sub)}
.ladder li.last{background:transparent;border:1.5px dashed var(--sky-light)}

/* FAQ */
.faq{display:grid;gap:10px}
.faq details{background:#fff;border-radius:12px;border:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:18px 52px 18px 22px;font-weight:700;font-size:15px;color:var(--navy);line-height:1.7;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q.";font-family:var(--en);color:var(--sky);margin-right:10px}
.faq summary::after{content:"";position:absolute;right:22px;top:50%;width:8px;height:8px;border-right:2px solid var(--sky);border-bottom:2px solid var(--sky);transform:translateY(-70%) rotate(45deg);transition:transform .25s}
.faq details[open] summary::after{transform:translateY(-25%) rotate(-135deg)}
.faq details p{padding:0 22px 20px 50px;font-size:14px;color:var(--ink);line-height:2}

/* ---------- 取り組み詳細 ---------- */
.wd{display:grid;gap:32px}
.wd .stage{background:#fff;border-radius:14px;aspect-ratio:16/9;display:grid;grid-template-rows:minmax(0,1fr);place-items:center;padding:28px;overflow:hidden}
.wd .device.laptop{width:72%}
.wd-tags{display:flex;flex-wrap:wrap;gap:8px}
.wd-tags span{font-size:12px;font-weight:700;color:var(--sky);background:#fff;border:1px solid var(--line);border-radius:999px;padding:2px 12px}
.wd h2{font-size:clamp(20px,2.6vw,25px);letter-spacing:.08em;color:var(--navy);line-height:1.7;margin-top:10px}
.wd-story{display:grid;gap:14px}
@media(min-width:768px){.wd-story{grid-template-columns:1fr 1fr;gap:16px}}
.wd-story .box p{font-size:14px;line-height:2}
.wd-shots{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.wd-shots .screen{aspect-ratio:3/4;border-radius:12px;border:1.5px dashed var(--sky-light);background:#fff;overflow:hidden}
.wd-shots .screen.is-empty .empty{font-size:11px}
.wd-sub{display:grid;gap:28px;align-items:center}
@media(min-width:768px){.wd-sub{grid-template-columns:260px 1fr;gap:48px}}
.wd-sub .stage{aspect-ratio:3/4}
.note{font-size:12px;color:var(--sub)}

/* ---------- 私について ---------- */
.values{display:grid;gap:16px}
@media(min-width:768px){.values{grid-template-columns:repeat(3,1fr)}}
.values li{background:#fff;border-radius:14px;padding:26px 24px}
.values .n{font-family:var(--en);font-weight:500;font-size:28px;color:var(--sky-light);line-height:1}
.values b{display:block;margin-top:10px;font-size:16px;color:var(--navy);letter-spacing:.08em;line-height:1.7}
.values p{margin-top:8px;font-size:14px;line-height:1.95}
.info-table{border-top:1px solid var(--line)}
.info-table div{display:grid;grid-template-columns:8em 1fr;gap:16px;padding:16px 4px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.9}
.info-table dt{font-weight:700;color:var(--navy)}
.info-table dd{margin:0}
@media(max-width:600px){.info-table div{grid-template-columns:1fr;gap:2px}}

/* ---------- お問い合わせフォーム ---------- */
.ways{display:grid;gap:14px}
@media(min-width:768px){.ways{grid-template-columns:repeat(3,1fr)}}
.ways li{background:#fff;border-radius:14px;padding:22px 22px;border:1.5px solid var(--line)}
.ways small{font-size:12px;color:var(--sub)}
.ways b{display:block;margin-top:2px;font-size:16px;color:var(--navy)}
.ways p{margin-top:8px;font-size:13px;line-height:1.9}
.form{background:#fff;border-radius:16px;padding:36px 24px;box-shadow:0 2px 0 rgba(29,59,92,.04)}
@media(min-width:768px){.form{padding:48px 56px}}
.field{display:grid;gap:8px;margin-bottom:24px}
.field > label,.field legend{font-size:14px;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:8px;padding:0}
fieldset.field{border:0;margin:0 0 24px;padding:0;min-width:0}
.req,.opt{font-size:11px;font-weight:700;padding:1px 8px;border-radius:4px;letter-spacing:.04em}
.req{background:var(--orange);color:#fff}
.opt{background:var(--pale);color:var(--sub)}
.field input[type=text],.field input[type=email],.field textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);border:1.5px solid var(--line);border-radius:10px;background:var(--pale-2);padding:13px 16px;line-height:1.7;transition:border-color .2s,background .2s}
.field textarea{min-height:170px;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--sky);background:#fff}
.field [aria-invalid="true"]{border-color:#D45A5A}
.err{display:none;font-size:13px;color:#C24646}
.err.show{display:block}
.radios{display:grid;gap:8px}
@media(min-width:768px){.radios{grid-template-columns:repeat(3,1fr)}}
.radios label{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:10px;border:1.5px solid var(--line);font-size:14px;cursor:pointer;transition:border-color .2s,background .2s}
.radios label:has(input:checked){border-color:var(--sky);background:var(--pale)}
.radios input{accent-color:var(--sky);width:16px;height:16px;margin:0}
.hints{display:flex;flex-wrap:wrap;gap:8px}
.hints button{font:inherit;font-size:13px;padding:5px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--sub);cursor:pointer}
.hints button:hover{border-color:var(--sky);color:var(--sky)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form .btn{width:100%;min-height:56px;font-size:16px;border:0;cursor:pointer;font-family:inherit}
.form .btn[disabled]{opacity:.6;cursor:wait}
.form .privacy{margin-top:14px;text-align:center;font-size:12px;color:var(--sub)}
.form-dev{display:none;margin-bottom:24px;padding:12px 16px;border-radius:10px;background:#FFF6DC;color:#8A6400;font-size:13px;line-height:1.8}
.form-dev.show{display:block}
.status{display:none;margin-top:18px;padding:14px 18px;border-radius:10px;font-size:14px;line-height:1.8}
.status.show{display:block}
.status.ok{background:var(--pale);color:var(--navy)}
.status.ng{background:#FDECEC;color:#B23B3B}
.status.dev{background:#FFF6DC;color:#8A6400}

/* ---------- ページ遷移（ふわっと切り替え） ---------- */
@media (prefers-reduced-motion:no-preference){
  .js main{animation:page-in .6s cubic-bezier(.2,.7,.2,1) both}
  .js body.is-leaving main{opacity:0;transform:translateY(-8px);transition:opacity .25s ease,transform .25s ease}
  @keyframes page-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
}

/* ---------- スマホのメニュー（☰） ---------- */
.menu-btn{display:none;width:44px;height:44px;border:0;background:none;padding:10px;cursor:pointer;flex-direction:column;justify-content:center;gap:5px;margin-left:-6px}
.menu-btn span{display:block;height:2px;border-radius:2px;background:var(--navy);transition:transform .3s,opacity .3s}
.header.open .menu-btn span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.header.open .menu-btn span:nth-child(2){opacity:0}
.header.open .menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:959px){
  .menu-btn{display:flex}
  .header .wide{gap:10px}
  .logo{margin-right:auto}
  .header.open .nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:8px 24px 28px;background:#fff;box-shadow:0 18px 30px rgba(29,59,92,.10);animation:menu-in .3s ease both}
  .header.open .nav a{display:block;padding:15px 4px;border-bottom:1px solid var(--line);font-size:15px}
  .header.open .nav .btn{display:flex;margin-top:20px;border-bottom:0;min-height:50px}
  @keyframes menu-in{from{opacity:0;transform:translateY(-8px)}}
}
@media(max-width:420px){.header:not(.open) .nav .btn{display:none}}

/* ---------- トップのプロフィール：追加情報 ---------- */
.mini-facts{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:12px;font-size:13px;color:var(--sub)}
.mini-facts li{position:relative;padding-left:12px}
.mini-facts li::before{content:"";position:absolute;left:0;top:.8em;width:5px;height:5px;border-radius:50%;background:var(--sky-light)}
.mini-career{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px}
.mini-career li{font-size:12px;font-weight:700;color:var(--navy);background:var(--pale);border-radius:6px;padding:3px 10px;line-height:1.6}
.mini-career li:not(:last-child)::after{content:"→";margin-left:6px;margin-right:-2px;color:var(--sky-light);font-family:var(--en)}
.mini-career li:not(:last-child){background:none;padding:3px 0 3px 0}
.mini-career li.now{background:var(--sky);color:#fff}
@media(max-width:767px){.mini-facts,.mini-career{justify-content:center}}
.mini-career li{display:inline-flex;align-items:center;white-space:nowrap}
@media(max-width:767px){.prof-mini .prof-ph{width:min(280px,100%)}}

/* ---------- トップのプロフィール（写真大きめ・左右2カラム） ---------- */
.prof-top{display:grid;gap:32px;align-items:center}
@media(min-width:768px){.prof-top{grid-template-columns:1fr 1fr;gap:28px}}
.pt-ph{aspect-ratio:3/4;overflow:hidden;background:var(--pale)}
.pt-ph img{width:100%;height:100%;object-fit:cover}
@media(max-width:767px){.pt-ph{width:min(360px,100%);margin:0 auto}}
.pt-name{font-size:21px;font-weight:700;letter-spacing:.12em;color:var(--ink)}
.pt-role{margin-top:4px;font-size:16px;font-weight:700;letter-spacing:.1em;color:var(--ink)}
.pt-basic{margin-top:22px;font-size:15px;line-height:1.95;letter-spacing:.1em}
.prof-top hr{border:0;border-top:1.5px solid var(--navy);opacity:.6;margin:30px 0 34px}
.pt-msg{font-size:15px;line-height:1.95;letter-spacing:.1em}
.btn-ghost-navy{min-width:min(350px,100%);background:#fff;color:var(--navy);border:1.5px solid var(--navy);font-weight:500;letter-spacing:.14em}
.btn-ghost-navy svg{width:18px;height:18px}
.btn-ghost-navy:hover{background:var(--navy);color:#fff}

/* ---------- ロゴ（画像） ---------- */
.logo-img{display:block;height:36px;width:auto}
.logo-tag{font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--sky);padding-left:12px;border-left:1px solid var(--line);white-space:nowrap}
@media(max-width:480px){.logo-img{height:30px}.logo-tag{display:none}}
.footer .logo-img{height:40px}

/* ---------- 名前のよみがな ---------- */
.kana{display:block;margin-top:2px;font-size:12px;font-weight:500;letter-spacing:.16em;color:var(--sky)}

/* ---------- プライバシーポリシー ---------- */
.policy{max-width:760px;line-height:2}
.policy h2{margin:48px 0 12px;font-size:19px;color:var(--navy);letter-spacing:.06em}
.policy ul{margin:8px 0;padding-left:1.4em;list-style:disc}
.policy li{margin:4px 0}
.policy .info-table{margin-top:12px}
.policy .policy-date{margin-top:48px;text-align:right;font-size:13px;color:var(--sub, #6b7a8c)}
.privacy a{color:var(--sky);text-decoration:underline}
