/* AI Marketing：日本語の訴求と実物感のあるプロダクト表現。 */
.marketing-page { color:#182331; letter-spacing:.025em; background:#f8fafc; }
.m-wrap { max-width:1220px; margin:auto; padding:0 48px; }
.m-section { padding:96px 0; }
.m-kicker { font:11px/1.6 var(--en); letter-spacing:.14em; color:#536c8e; margin-bottom:22px; }
.marketing-page h2 { font-size:clamp(30px,3.3vw,44px); line-height:1.55; font-weight:500; margin:0; letter-spacing:.025em; }
.marketing-page h3 { font-weight:500; line-height:1.6; margin:0; }
.marketing-page p { font-size:15px; line-height:2; color:#596675; }
.marketing-page em { font-style:normal; color:#315eaf; }
body[data-world="signal"] .m-hero { max-width:1320px; margin:auto; padding:140px 72px 80px; min-height:860px; gap:36px; grid-template-columns:1.15fr 1fr; background:radial-gradient(ellipse at 80% 42%,#dce5f080,transparent 50%); }
.m-hero .crumb { letter-spacing:.12em; margin-bottom:42px; }
.m-hero h1 { font:500 clamp(32px,3.6vw,48px)/1.6 var(--jp); letter-spacing:.025em; text-transform:none; margin:0; }
.m-hero .lead { font-size:15px; line-height:2; max-width:31em; margin-top:26px; }
.m-actions { display:flex; flex-wrap:wrap; align-items:center; gap:24px; margin-top:30px; }
.m-button { display:inline-flex; align-items:center; justify-content:center; gap:24px; font-size:14px; background:#234b87; color:white; padding:18px 25px; border-radius:30px; transition:background .25s,transform .25s; }
.m-button:hover { background:#132e57; transform:translateY(-2px); }
.m-text-link { display:inline-block; font-size:13px; padding:12px 0; border-bottom:1px solid #8192a8; }
.m-hero-proof { display:flex; flex-wrap:wrap; gap:16px; margin-top:34px; font-size:11px; color:#6b7786; }
.m-hero-proof span+span { border-left:1px solid #c4cfdd; padding-left:16px; }
body[data-world="signal"] .m-hero .visual { height:680px; }
.marketing-page .sig-dots { display:none; }
.marketing-page .phone-stage { perspective:1800px; animation:none; }
.marketing-page .phone.photo { --pw:340px; --t:calc(var(--pw) * .082); }
.marketing-page .phone.photo .front { filter:contrast(1.07); }
.marketing-page .phone.photo::after { inset:1px; border-radius:13% / 6.5%; transform:translateZ(calc(var(--t) / 2 + 2px)); background:linear-gradient(112deg,#ffffff32,transparent 22%,transparent 75%,#ffffff20); box-shadow:inset 1px 0 1px #ffffff75,inset -1px 0 1px #00000090; }
.marketing-page .phone.photo .slices i { background-image:linear-gradient(90deg,#22272c,#aeb5bd 4%,#626970 10%,#20252b 40%,#5f656d 88%,#c2c8d0 96%,#30353b); }
.marketing-page .phone .glare { background:linear-gradient(115deg,transparent calc(var(--gl,50%) - 28%),#d9e5ff24 var(--gl,50%),transparent calc(var(--gl,50%) + 22%)); }
.marketing-page .phone-shadow { width:300px; height:54px; margin:350px 0 0 -150px; background:radial-gradient(ellipse,#20344b48,transparent 70%); filter:blur(12px); }
.m-concept { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; min-height:800px; padding-top:40px; padding-bottom:70px; }
.m-concept .phone-dock { height:700px; }
.m-concept-copy>p { margin:26px 0; }
.m-distinction { display:grid; grid-template-columns:1fr 1fr; gap:20px; border-top:1px solid #d3dce6; padding-top:26px; margin-top:32px; }
.m-distinction span { font:10px var(--en); color:#6982a4; display:block; }
.m-distinction b { display:block; font-size:17px; font-weight:500; margin-top:10px; }
.m-distinction p { font-size:12px; }
.marketing-page .m-note { font-size:11px; color:#758191; line-height:1.9; }
.m-source { font-size:11px; color:#496581; text-decoration:underline; text-underline-offset:3px; }
.m-section-head { display:flex; align-items:end; justify-content:space-between; gap:60px; margin-bottom:48px; }
.m-section-head>p { max-width:350px; margin:0; }
.m-services { background:#fff; border-top:1px solid #e3e9ef; }
.m-service { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; border-top:1px solid #dce3ec; padding:54px 0; }
.m-service:last-child { padding-bottom:0; }
.m-number { font:32px var(--en); color:#9aaac1; display:block; margin-bottom:24px; }
.m-service-type { font-size:11px; color:#627b9c; }
.m-service-heading h3 { font-size:32px; margin:8px 0 20px; }
.m-service-heading>p { max-width:24em; }
.m-service-body h4 { font-size:20px; font-weight:500; margin:0 0 18px; }
.m-service-body>p { font-size:14px; }
.m-checks { margin:28px 0; list-style:none; padding:0; }
.m-checks li { padding:14px 0; border-bottom:1px solid #e3e8ef; }
.m-checks b { display:block; font-size:14px; font-weight:500; }
.m-checks b::before { content:'↗'; color:#3c69ae; margin-right:10px; }
.m-checks span { font-size:12px; color:#697586; display:block; margin-top:4px; }
.m-outcome { background:#f1f5fa; padding:18px 20px; border-radius:8px; font-size:12px; }
.m-outcome b { display:block; font-weight:500; color:#355581; margin-bottom:6px; }
.m-media { display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }
.m-media span { font-size:11px; padding:5px 10px; border:1px solid #d7e0eb; border-radius:4px; }
.m-strength { background:#12233c; color:#f2f6fd; }
.m-strength .m-kicker { color:#8ea7ca; }
.m-strength-head { display:grid; grid-template-columns:1.3fr 1fr; gap:64px; align-items:end; }
.m-strength h2 { font-size:clamp(28px,3.2vw,42px); }
.m-strength em { color:#a6c2ed; }
.m-strength p { color:#bdc9db; }
.m-strength-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:34px; margin-top:48px; padding-top:30px; border-top:1px solid #3b4b63; }
.m-strength-grid span { font:10px var(--en); color:#9cb5d9; }
.m-strength-grid h3 { font-size:19px; margin:16px 0 12px; }
.m-strength-grid p { font-size:13px; }
.m-goals { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.m-goals button { font:13px var(--jp); border:1px solid #bdcce0; border-radius:7px; background:transparent; padding:16px 12px; cursor:pointer; color:#526a89; }
.m-goals button[aria-selected="true"] { background:#244c85; border-color:#244c85; color:white; }
.m-goal-panel { padding:32px; background:#eaf0f8; margin-top:14px; border-radius:10px; display:flex; align-items:center; justify-content:space-between; gap:40px; min-height:220px; }
.m-goal-panel h3 { font-size:23px; margin-top:10px; }
.m-goal-panel p { font-size:14px; max-width:44em; margin-bottom:0; }
.m-goal-panel .m-button { flex-shrink:0; }
.m-goal-label { font:10px var(--en); color:#567095; letter-spacing:.1em; }
.m-agent { margin-top:70px; border-top:1px solid #d4dfeb; padding-top:36px; display:grid; grid-template-columns:1fr 1fr; gap:60px; }
.m-agent h3 { font-size:25px; } .m-agent p { font-size:14px; margin:0; }
.m-process { background:#fff; }
.m-process h2 { font-size:clamp(26px,3vw,38px); }
.m-process ol { padding:0; list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:28px; margin:40px 0 64px; }
.m-process li { border-top:1px solid #b5c5da; padding-top:18px; }
.m-process li>span { color:#6c83a2; font:11px var(--en); }
.m-process h3 { font-size:18px; margin-top:16px; } .m-process li p { font-size:12px; }
.m-faq { max-width:860px; margin:auto; }
.m-faq details { border-top:1px solid #d7e0eb; padding:22px 0; }
.m-faq summary { font-size:15px; cursor:pointer; } .m-faq p { font-size:13px; }
.m-contact { background:#e4edf8; padding:72px 0; }
.m-contact>.m-wrap { display:flex; align-items:center; justify-content:space-between; gap:40px; }
.m-contact h2 { font-size:clamp(28px,3.4vw,44px); } .m-contact .m-button { flex-shrink:0; }
.marketing-page :is(a,button,summary):focus-visible { outline:3px solid #4385d9; outline-offset:5px; }
@media(max-width:960px) {
 .m-wrap { padding-left:24px; padding-right:24px; } .m-section { padding:60px 0; }
 body[data-world="signal"] .m-hero { grid-template-columns:1fr; padding:116px 24px 40px; min-height:0; gap:24px; }
 .m-hero h1 { font-size:clamp(30px,6vw,46px); } .m-hero .crumb { margin-bottom:28px; }
 body[data-world="signal"] .m-hero .visual { height:690px; order:0; }
 .marketing-page .phone.photo { --pw:min(320px,78vw); }
 .m-concept { display:block; min-height:0; padding-top:30px; padding-bottom:60px; } .m-concept .phone-dock { display:none; }
 .m-section-head { display:block; } .m-section-head>p { margin-top:22px; }
 .m-service { grid-template-columns:1fr; gap:28px; padding:36px 0; }
 .m-number { margin-bottom:12px; } .m-service-heading h3 { font-size:28px; margin-bottom:12px; }
 .m-strength-head,.m-agent { grid-template-columns:1fr; gap:22px; }
 .m-strength-grid { grid-template-columns:1fr; gap:26px; }
 .m-goals { grid-template-columns:1fr; gap:8px; } .m-goals button { text-align:left; }
 .m-goal-panel { display:block; padding:24px; } .m-goal-panel .m-button { margin-top:24px; }
 .m-process ol { grid-template-columns:1fr 1fr; }
 .m-contact>.m-wrap { display:block; } .m-contact .m-button { margin-top:22px; }
}
@media(prefers-reduced-motion:reduce) { .marketing-page * { transition:none!important; } }
.m-comparison { background:#edf2f9; }
.m-comparison .m-section-head h2 { font-size:clamp(27px,3vw,40px); }
.m-comparison-scroll { overflow-x:auto; }
.m-comparison-table { width:100%; border-collapse:collapse; font-size:13px; line-height:1.9; }
.m-comparison-table th,.m-comparison-table td { padding:22px; border-bottom:1px solid #cdd9e8; text-align:left; }
.m-comparison-table thead th { font-weight:500; color:#52657d; }
.m-comparison-table thead th:last-child { background:#244c85; color:white; border-radius:8px 8px 0 0; font-size:17px; }
.m-comparison-table tbody th { width:20%; font-weight:500; }
.m-comparison-table td { width:40%; color:#61718a; }
.m-comparison-table td:last-child { background:#fff; color:#23466f; }
.m-intent { display:grid; grid-template-columns:230px 1fr; gap:44px; padding-top:54px; }
.m-intent>span { font:500 45px/1.1 var(--en); color:#315d9f; padding-top:8px; }
.m-intent small { font:10px var(--en); letter-spacing:.08em; }
.m-intent h3 { font-size:26px; }
.m-synergy { border-top:1px solid #c8d4e4; margin-top:50px; padding-top:46px; }
.m-synergy h2 { font-size:clamp(27px,3vw,38px); }
.m-synergy-flow,.m-global-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin:36px 0 24px; }
.m-synergy-flow span,.m-global-grid span { font:11px var(--en); color:#6682a6; }
.m-synergy-flow h3,.m-global-grid h3 { font-size:18px; margin-top:14px; }
.m-synergy-flow p,.m-global-grid p { font-size:13px; }
.m-global { border-top:1px solid #d8e2ef; }
.m-global-grid>div { padding-top:22px; border-top:1px solid #a9bfd8; }
@media(max-width:700px) {
 .m-comparison-table { min-width:610px; } .m-comparison-table th,.m-comparison-table td { padding:16px; }
 .m-intent { grid-template-columns:1fr; gap:22px; } .m-intent h3 { font-size:23px; }
 .m-synergy-flow,.m-global-grid { grid-template-columns:1fr; gap:20px; }
}

/* 三面図と一致する既存の前面・背面素材を使用。 */
.marketing-page .phone.photo { aspect-ratio:370 / 743; --t:calc(var(--pw) * .1186); }
.marketing-page .phone.photo .front { filter:none; }
/* 一体の3D端末：カメラの原点を端末と共に移動し、着地後の歪みを防ぐ。 */
.marketing-page .phone-stage { perspective:none; }
.marketing-page .phone-travel { perspective:1800px; perspective-origin:50% 50%; }
.marketing-page .phone.device { --pw:330px; width:var(--pw); height:680px; aspect-ratio:auto; padding:0; border:0; border-radius:48px; background:none; box-shadow:none; transform-style:preserve-3d; }
.marketing-page .phone.device::after { content:none; }
.device-body { position:absolute; inset:0; transform-style:preserve-3d; }
.device-body>i { position:absolute; inset:0; border-radius:48px; transform:translateZ(var(--z)); background:linear-gradient(110deg,hsl(220 4% var(--tone)),#62676c 12%,#292d31 38%,#767b80 74%,#3d4247); box-shadow:inset 0 0 0 .5px #bfc3c744; }
.device-face { position:absolute; inset:0; border-radius:48px; transform:translateZ(13.5px); background:linear-gradient(145deg,#c0c3c6 0%,#595e63 10%,#15191c 32%,#9b9fa3 53%,#25292d 77%,#8a8f94 100%); box-shadow:inset 0 0 0 1px #252a30,inset 0 0 0 2px #ffffff45; }
.device-face::after { content:''; position:absolute; inset:3px; border-radius:45px; background:#08090b; box-shadow:inset 0 0 0 1px #32373c; }
.marketing-page .phone.device .screen { position:absolute; inset:9px; height:auto; border-radius:39px; transform:translateZ(14px); background:#fefefe; box-shadow:0 0 0 .6px #000; }
.marketing-page .phone.device .status { height:48px; padding:17px 22px 0; flex-shrink:0; }
.marketing-page .phone.device .status .time { font-size:12px; }
.marketing-page .phone.device .status .ic { gap:3px; padding-top:2px; transform:scale(.84); transform-origin:right top; }
.marketing-page .phone.device .island { width:88px; height:25px; top:11px; left:50%; transform:translateX(-50%); border-radius:18px; padding-right:10px; background:linear-gradient(180deg,#060708,#000); box-shadow:inset 0 .5px .5px #34363a; }
.marketing-page .phone.device .island i { display:block; width:7px; height:7px; background:radial-gradient(circle at 35% 28%,#365177,#111827 36%,#03060c 70%); box-shadow:0 0 0 1px #13161e; }
.marketing-page .phone.device .appbar { font-size:13px; padding:8px 16px 12px; }
.marketing-page .phone.device .conv { padding:14px 16px 0; font-size:12px; line-height:1.8; }
.marketing-page .phone.device .q { font-size:12px; background:#f0f0f0; border-radius:17px 17px 5px 17px; }
.marketing-page .phone.device .a { min-height:94px; margin-top:18px; }
.marketing-page .phone.device .a b { background:none; }
.marketing-page .phone.device .ad { border-radius:12px; box-shadow:0 4px 14px #15233b0a; padding:10px; gap:8px; }
.marketing-page .phone.device .ad .adtext { font-size:10.5px; }
.marketing-page .phone.device .ad .go { font-size:9px; padding:5px 8px; background:#203857; }
.marketing-page .phone.device .inputbar { margin:10px 12px 5px; padding:9px 8px 9px 14px; background:#f7f7f7; }
.marketing-page .phone.device .note { font-size:8px; padding-bottom:6px; }
.marketing-page .phone.device .homebar { width:106px; height:4px; margin-bottom:9px; flex-shrink:0; }
.marketing-page .phone.device .glare { border-radius:39px; background:linear-gradient(116deg,transparent 10%,#dfeaff08 34%,#ffffff23 38%,transparent 42%,transparent 80%,#c5dcff0a); mix-blend-mode:normal; }
.device-rear { position:absolute; inset:1px; border-radius:47px; transform:translateZ(-13.5px) rotateY(180deg); background:radial-gradient(ellipse at 18% 0%,#505357 0%,transparent 55%),linear-gradient(145deg,#363a3e,#272b30 70%,#3e4246); box-shadow:inset 0 0 0 1px #999ea2,inset 0 0 0 3px #20252a,inset 0 0 0 4px #656b70; }
.device-rear::after { content:''; position:absolute; inset:5px; border-radius:42px; background:repeating-linear-gradient(110deg,#ffffff02 0px,#ffffff02 1px,transparent 1px,transparent 3px); pointer-events:none; }
.device-camera { position:absolute; left:17px; top:18px; width:143px; height:148px; border-radius:30px; background:linear-gradient(140deg,#64676a,#383c40 45%,#4f5357); box-shadow:0 3px 5px #0008,inset 0 1px 1px #b6b9bb99,inset 0 -1px 1px #141719; }
.device-camera .lens { position:absolute; width:54px; height:54px; border-radius:50%; background:conic-gradient(#62656b,#11151a,#7c8085,#252b30,#10151a,#62656b); box-shadow:0 2px 4px #000a,0 0 0 1px #171a1e,inset 0 0 0 1px #a6aaae; }
.device-camera .lens::before { content:''; position:absolute; inset:4px; border-radius:50%; background:radial-gradient(circle at 50% 50%,#03070d 0 18%,#16213a 20%,#090e19 28%,#1e2c3d 35%,#03050a 48%,#0e131a 70%,#222b36); border:2px solid #030507; }
.device-camera .lens::after { content:''; position:absolute; width:9px; height:6px; top:13px; left:15px; background:#799fc485; border-radius:50%; box-shadow:16px 18px 6px -1px #1b45a955; transform:rotate(-35deg); }
.lens-one { left:10px; top:10px; } .lens-two { left:10px; bottom:10px; } .lens-three { right:10px; top:47px; }
.device-camera .flash { position:absolute; right:29px; top:12px; width:17px; height:17px; border-radius:50%; background:radial-gradient(circle,#e4dfcc,#c1baa6 60%,#888e8f); box-shadow:0 0 0 2px #353b40; }
.device-camera .sensor { position:absolute; right:27px; bottom:12px; width:21px; height:21px; border-radius:50%; background:radial-gradient(circle at 35% 30%,#242931,#06080c 65%); border:1px solid #5f666b; }
.device-rear-mark { position:absolute; left:0; right:0; top:47%; text-align:center; font:300 35px var(--en); color:#8c939a33; }
.device-key { position:absolute; width:14px; border-radius:4px; background:linear-gradient(90deg,#32373b,#92979b 45%,#40464b); box-shadow:inset 0 0 0 1px #1118; }
.key-power { right:-7px; top:165px; height:77px; transform:rotateY(90deg); }
.key-volume { left:-7px; top:155px; height:86px; transform:rotateY(90deg); }
.key-action { left:-7px; top:110px; height:25px; transform:rotateY(90deg); }
.phone.device.flipped .screen,.phone.device.flipped .device-face { visibility:hidden; }
.phone.device:not(.flipped) .device-rear { visibility:hidden; }
.marketing-page .phone-shadow { margin-top:354px; height:34px; width:240px; margin-left:-120px; background:radial-gradient(ellipse,#16253738,transparent 70%); filter:blur(10px); }
@media(max-width:960px) { .marketing-page .phone.device { --pw:min(320px,82vw); height:calc(var(--pw) * 2.06); } }
/* ファーストビューの主役をChatGPT広告とGEOへ。 */
.m-hero .copy-col { min-width:0; container-type:inline-size; }
.m-hero h1.m-primary-title { display:flex; align-items:baseline; gap:.18em; color:#315eaf; font-size:clamp(24px,3.7vw,48px); font-size:min(52px,8.7cqi); line-height:1.3; letter-spacing:-.035em; font-weight:700; margin:0; white-space:nowrap; }
.m-primary-title>span { display:block; white-space:nowrap; }
.m-primary-title .m-title-pair { display:flex; align-items:baseline; gap:.18em; color:inherit; margin-top:0; font-size:1em; font-family:var(--en); letter-spacing:-.035em; }
.m-title-pair i { font-size:.58em; font-style:normal; font-weight:300; color:inherit; }
.marketing-page .m-hero-tagline { font-size:clamp(17px,1.6vw,21px); font-weight:500; color:#263c58; line-height:1.85; margin:24px 0 0; }
.m-hero .m-hero-tagline+.lead { margin-top:16px; font-size:14px; }


/* Technical partner positioning under the primary service title. */
.marketing-page .m-partner-title{display:inline-block;margin:22px 0 0;padding:8px 14px;border:1px solid #b4c7e4;border-radius:5px;color:#315eaf;background:#edf3fb;font-size:14px;font-weight:500;letter-spacing:.06em;line-height:1.7}
.marketing-page .m-partner-message{margin:18px 0 0;font-size:clamp(16px,1.6vw,20px);font-weight:500;line-height:1.9;color:#263c58;text-wrap:pretty}
@media(max-width:800px){.marketing-page .m-partner-title{font-size:13px;margin-top:18px}.marketing-page .m-partner-message{font-size:16px}}
