/*
 * ProofX TOP（新）— PC 版
 * 元：キャンバス「ProofX TOP モック」project/DesignV2W.dc.html（1440 幅）
 * モックの1行ずつの style を、クラスにまとめ直したもの。
 *   px-xxx           … 複数の場所で使う部品（見出しのラベル、h2、ボタンの矢印など）
 *   px-{部分}-{番号} … その部分だけで使う指定（fv / logos / services / cases / why / message /
 *                       process / careers / news / knowledge / contact / footer / u＝複数の部分で共通）
 * スマホ用の指定は、ファイル末尾の @media に足す。
 */

/* ---- 土台 ---- */
body.pxtop-body { margin: 0; background: #FFFFFF; }
.pxtop { position: relative; font-family: 'Noto Sans JP', sans-serif; color: #0B0C1F; background: #FFFFFF; line-height: 1.8; width: 100%; overflow: hidden; -webkit-font-smoothing: antialiased; }
.pxtop img { max-width: none; }

/* ---- 動き（モックの helmet と同じ） ---- */
@keyframes pxmarquee { from { transform: translateX(0) } to { transform: translateX(-50%) } }
@keyframes pxflow { from { stroke-dashoffset: 301 } to { stroke-dashoffset: 0 } }
@keyframes pxpulse { 0% { transform: scale(0.6); opacity: 0.9 } 100% { transform: scale(2.6); opacity: 0 } }
@keyframes pxfloat { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
@keyframes pxscroll { 0% { transform: translateY(-100%) } 100% { transform: translateY(100%) } }
.pxflow { animation: pxflow 5.5s linear infinite; }
.pxpulse2 { animation: pxpulse 2.8s ease-out infinite; }
.pxpulse { transform-origin: 604px 664px; animation: pxpulse 2.8s ease-out infinite; }
.pxnav { transition: opacity .2s; } .pxnav:hover { opacity: .6; }
.pxbtn { transition: transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s; } .pxbtn:hover { transform: translateY(-2px); }
.pxplate { transition: transform .45s cubic-bezier(.2,.7,.2,1); }
.pxrow:hover .pxplate { transform: translateY(-8px); }
.pxrowbody { transition: background .3s; } .pxrow:hover .pxrowbody { background: #FFFFFF; }
.pxcard { transition: transform .35s cubic-bezier(.2,.7,.2,1), background .3s, box-shadow .35s; } .pxcard:hover { transform: translateY(-6px); background: #FFFFFF; box-shadow: 0 24px 60px -24px rgba(30,40,120,0.28), 0 0 0 1px #E1E3EC; }
.pxfaq { transition: background .25s; } .pxfaq:hover { background: #F7F8FC; }
.pxlight { transition: transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .3s, border-color .3s; } .pxlight:hover { transform: translateY(-2px); box-shadow: 0 24px 60px -28px rgba(30,40,120,0.35); border-color: #0B0C1F !important; }
@media (prefers-reduced-motion: reduce) { .pxtop * { animation: none !important; } }

/* ---- お問い合わせ（Contact Form 7 の出力に合わせる） ---- */
.pxtop .px-contact-form .wpcf7 { margin: 0; }
.pxtop .px-contact-form .wpcf7-form { margin: 0; display: grid; grid-template-columns: 1fr; gap: 16px; }
.pxtop .px-contact-form .wpcf7-form > p { margin: 0; }
.pxtop .px-contact-form .wpcf7-form-control-wrap { display: block; min-width: 0; }
.pxtop .px-contact-form .wpcf7-not-valid-tip { margin-top: 6px; font-size: 12.5px; color: #D93A55; }
.pxtop .px-contact-form .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.pxtop .px-contact-form .wpcf7-acceptance label { display: flex; align-items: center; gap: 10px; font-size: 14px; color: #3A3F58; cursor: pointer; }
.pxtop .px-contact-form .wpcf7-acceptance input { width: 18px; height: 18px; margin: 0; accent-color: #3D5AFE; }
.pxtop .px-contact-form .wpcf7-acceptance a { color: #3D5AFE; }
.pxtop .px-contact-form .wpcf7-spinner { margin: 0 0 0 8px; }
.pxtop .px-contact-form .wpcf7-response-output { margin: 4px 0 0; padding: 12px 16px; border-radius: 12px; font-size: 14px; }
.pxtop .px-contact-form button[disabled] { opacity: .45; cursor: not-allowed; transform: none; }
.pxtop .px-contact-form select:invalid, .pxtop .px-contact-form select option[value=""] { color: #8A8FA6; }
.pxtop .px-contact-form input::placeholder, .pxtop .px-contact-form textarea::placeholder { color: #9EA3B8; }

/* ---- モックの style をまとめ直したもの ---- */

.pxtop .px-fv-1 { font-family: 'Noto Sans JP', sans-serif; position: relative; width: 100%; height: 900px; overflow: hidden; background: #FFFFFF; color: #0B0C1F; line-height: 1.8; -webkit-font-smoothing: antialiased; }
.pxtop .px-fv-2 { position: absolute; inset: 0; background: radial-gradient(900px 560px at 92% 22%, rgba(0,180,255,0.16), transparent 70%), radial-gradient(760px 520px at 70% 86%, rgba(123,47,247,0.13), transparent 70%), radial-gradient(700px 500px at 100% 70%, rgba(61,90,254,0.12), transparent 70%), linear-gradient(180deg, #FFFFFF 0%, #F6F7FC 100%); }
.pxtop .px-gridlines { position: absolute; inset: 0; background-image: linear-gradient(to right, rgba(11,12,31,0.05) 1px, transparent 1px); background-size: 160px 100%; background-position: 80px 0; }
.pxtop .px-svg-abs { position: absolute; left: 0; top: 0; }
.pxtop .px-fv-3 { position: absolute; left: 80px; top: 634px; font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.16em; color: #5A5F78; }
.pxtop .px-fv-4 { position: absolute; left: 628px; top: 678px; font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.16em; color: #5A5F78; }
.pxtop .px-fv-5 { position: absolute; right: 80px; top: 118px; font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.16em; color: #5A5F78; }
.pxtop .px-fv-6 { font-family: 'Outfit', sans-serif; font-weight: 800; font-size: 13px; color: #0B0C1F; }
.pxtop .px-fv-7 { position: absolute; left: 0; right: 0; top: 0; z-index: 5; }
.pxtop .px-fv-8 { display: flex; align-items: center; justify-content: space-between; padding: 26px 80px; }
.pxtop .px-fv-9 { display: flex; align-items: baseline; text-decoration: none; color: #0B0C1F; font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 27px; letter-spacing: -0.01em; line-height: 1; }
.pxtop .px-grad-x { font-weight: 800; background: linear-gradient(100deg, #7B2FF7 0%, #3D5AFE 55%, #00B4FF 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pxtop .px-fv-10 { display: flex; align-items: center; gap: 36px; font-size: 14px; font-weight: 500; letter-spacing: 0.04em; }
.pxtop .px-nav-link { color: #2A2D45; text-decoration: none; }
.pxtop .px-fv-11 { display: inline-flex; align-items: center; gap: 10px; background: #0B0C1F; color: #FFFFFF; text-decoration: none; padding: 11px 14px 11px 22px; border-radius: 999px; font-weight: 700; margin-left: 8px; }
.pxtop .px-fv-12 { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 999px; background: linear-gradient(100deg, #7B2FF7 0%, #3D5AFE 55%, #00B4FF 100%); }
.pxtop .px-ico { display: block; flex-shrink: 0; }
.pxtop .px-fv-13 { position: relative; z-index: 2; padding: 172px 80px 0; display: flex; flex-direction: column; align-items: flex-start; }
.pxtop .px-fv-14 { margin: 0 0 26px; display: flex; align-items: center; gap: 12px; font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.16em; color: #5A5F78; }
.pxtop .px-fv-15 { width: 6px; height: 6px; border-radius: 999px; background: #3D5AFE; }
.pxtop .px-fv-16 { margin: 0; font-size: 84px; line-height: 1.26; font-weight: 700; letter-spacing: 0.015em; font-feature-settings: 'palt'; }
.pxtop .px-fv-17 { font-family: 'Outfit', sans-serif; font-weight: 800; font-size: 1.36em; line-height: 0.8; background: linear-gradient(100deg, #7B2FF7 0%, #3D5AFE 55%, #00B4FF 100%); -webkit-background-clip: text; background-clip: text; color: transparent; padding: 0 0.05em; }
.pxtop .px-fv-18 { margin: 30px 0 0; font-size: 17px; line-height: 2; color: #3F435C; letter-spacing: 0.02em; white-space: nowrap; }
.pxtop .px-fv-19 { margin-top: 34px; }
.pxtop .px-fv-20 { display: inline-flex; align-items: center; gap: 18px; background: linear-gradient(100deg, #7B2FF7 0%, #3D5AFE 55%, #00B4FF 100%); color: #FFFFFF; text-decoration: none; padding: 9px 9px 9px 34px; border-radius: 999px; font-size: 16px; font-weight: 700; letter-spacing: 0.06em; box-shadow: 0 18px 40px -14px rgba(61,90,254,0.65); }
.pxtop .px-btn-arrow-lg { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 999px; background: #FFFFFF; }
.pxtop .px-fv-21 { position: absolute; z-index: 2; left: 80px; right: 80px; bottom: 44px; display: grid; grid-template-columns: repeat(3, 1fr) 150px; border-top: 1px solid rgba(11,12,31,0.16); }
.pxtop .px-fv-22 { display: flex; align-items: flex-start; gap: 18px; padding: 22px 24px 0 0px; }
.pxtop .px-fv-point-num { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.1em; color: #3D5AFE; padding-top: 5px; }
.pxtop .px-fv-point-text { margin: 0; font-size: 16px; line-height: 1.65; font-weight: 700; letter-spacing: 0.03em; color: #0B0C1F; }
.pxtop .px-fv-23 { display: flex; align-items: flex-start; gap: 18px; padding: 22px 24px 0 28px; border-left: 1px solid rgba(11,12,31,0.14); }
.pxtop .px-fv-24 { display: flex; align-items: flex-start; justify-content: flex-end; gap: 12px; padding-top: 24px; font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.16em; color: #5A5F78; }
.pxtop .px-fv-25 { position: relative; display: block; width: 1px; height: 44px; background: rgba(11,12,31,0.15); overflow: hidden; }
.pxtop .px-fv-26 { position: absolute; inset: 0; background: #0B0C1F; animation: pxscroll 2.2s ease-in-out infinite; }
.pxtop .px-logos-1 { background: #FFFFFF; border-top: 1px solid #E1E3EC; border-bottom: 1px solid #E1E3EC; }
.pxtop .px-logos-2 { padding: 44px 80px; display: grid; grid-template-columns: 250px 1fr 190px; column-gap: 40px; align-items: center; }
.pxtop .px-logos-3 { margin: 0; font-size: 13px; line-height: 1.7; color: #555A72; font-weight: 500; }
.pxtop .px-logos-4 { overflow: hidden; -webkit-mask-image: linear-gradient(to right, transparent, #000 9%, #000 91%, transparent); mask-image: linear-gradient(to right, transparent, #000 9%, #000 91%, transparent); }
.pxtop .px-logos-5 { display: flex; align-items: center; width: max-content; animation: pxmarquee 44s linear infinite; }
.pxtop .px-logo-item { flex-shrink: 0; width: 176px; height: 56px; display: flex; align-items: center; justify-content: center; }
.pxtop .px-logos-6 { height: 22px; width: auto; display: block; }
.pxtop .px-logos-7 { height: 38px; width: auto; display: block; }
.pxtop .px-logos-8 { height: 27px; width: auto; display: block; }
.pxtop .px-logos-9 { height: 26px; width: auto; display: block; }
.pxtop .px-logos-10 { height: 34px; width: auto; display: block; }
.pxtop .px-logos-11 { justify-self: end; display: inline-flex; align-items: center; gap: 12px; border: 1px solid #0B0C1F; color: #0B0C1F; text-decoration: none; padding: 11px 20px 11px 24px; border-radius: 999px; font-size: 14px; font-weight: 700; }
.pxtop .px-services-1 { position: relative; background: #F3F4F9; }
.pxtop .px-services-2 { padding: 148px 80px 140px; }
.pxtop .px-services-3 { display: grid; grid-template-columns: 1fr 530px; column-gap: 60px; align-items: end; }
.pxtop .px-head { display: flex; flex-direction: column; gap: 28px; }
.pxtop .px-label { margin: 0; display: flex; align-items: center; gap: 14px; font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 500; letter-spacing: 0.14em; color: #6A6F88; }
.pxtop .px-accent { color: #3D5AFE; }
.pxtop .px-label-rule { width: 28px; height: 1px; background: #B9BDCF; }
.pxtop .px-h2 { margin: 0; font-size: 46px; line-height: 1.42; font-weight: 700; letter-spacing: 0.02em; font-feature-settings: 'palt'; }
.pxtop .px-services-4 { font-family: 'Outfit', sans-serif; font-weight: 800; background: linear-gradient(100deg, #7B2FF7 0%, #3D5AFE 55%, #00B4FF 100%); -webkit-background-clip: text; background-clip: text; color: transparent; padding: 0 0.04em; font-size: 1.22em; line-height: 1; }
.pxtop .px-services-5 { margin: 0 0 10px; font-size: 16px; line-height: 2.05; color: #555A72; letter-spacing: 0.02em; text-wrap: pretty; }
.pxtop .px-services-6 { position: relative; margin-top: 56px; border-radius: 24px; background: #FFFFFF; border: 1px solid #E1E3EC; padding: 52px 44px 26px; overflow: hidden; box-shadow: 0 30px 70px -48px rgba(30,40,120,0.32); }
.pxtop .px-services-7 { display: block; overflow: visible; max-width: none; }
.pxtop .px-services-8 { margin: 28px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: 396px 428px 1fr; }
.pxtop .px-services-9 { display: flex; flex-direction: column; gap: 6px; padding: 16px 28px 0 0px; border-top: 1px solid #0B0C1F; }
.pxtop .px-services-10 { display: flex; align-items: baseline; gap: 12px; }
.pxtop .px-services-11 { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 500; letter-spacing: 0.12em; color: #3D5AFE; }
.pxtop .px-services-12 { font-size: 13px; font-weight: 700; letter-spacing: 0.14em; }
.pxtop .px-services-13 { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pxtop .px-services-14 { font-size: 20px; font-weight: 700; line-height: 1.5; letter-spacing: 0.02em; font-feature-settings: 'palt'; white-space: nowrap; }
.pxtop .px-services-15 { flex-shrink: 0; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; padding: 3px 12px; border-radius: 999px; background: #FFFFFF; border: 1px solid #5E43FA; color: #5E43FA; white-space: nowrap; }
.pxtop .px-services-16 { display: flex; flex-direction: column; gap: 6px; padding: 16px 28px 0 28px; border-top: 1px solid #E1E3EC; border-left: 1px solid #E1E3EC; }
.pxtop .px-services-17 { display: flex; flex-direction: column; gap: 6px; padding: 16px 0px 0 28px; border-top: 1px solid #E1E3EC; border-left: 1px solid #E1E3EC; }
.pxtop .px-services-18 { flex-shrink: 0; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; padding: 3px 12px; border-radius: 999px; background: #FFFFFF; border: 1px solid #1C86FF; color: #1C86FF; white-space: nowrap; }
.pxtop .px-services-19 { margin-top: 60px; display: grid; grid-template-columns: 1fr 530px; column-gap: 60px; align-items: center; }
.pxtop .px-services-20 { margin: 0; display: flex; align-items: center; gap: 18px; font-size: 20px; font-weight: 700; letter-spacing: 0.02em; font-feature-settings: 'palt'; }
.pxtop .px-services-21 { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 999px; background: #0B0C1F; }
.pxtop .px-services-22 { margin: 0; font-size: 15px; line-height: 2; color: #555A72; letter-spacing: 0.02em; text-wrap: pretty; }
.pxtop .px-services-23 { position: relative; margin-top: 56px; }
.pxtop .px-services-24 { position: relative; z-index: 10; display: grid; grid-template-columns: 364px 1fr; column-gap: 20px; height: 232px; text-decoration: none; color: #0B0C1F; }
.pxtop .px-rel { position: relative; }
.pxtop .px-services-25 { position: absolute; left: 0; top: 0; overflow: visible; }
.pxtop .px-services-26 { display: grid; grid-template-columns: 212px 1fr; column-gap: 28px; align-items: start; padding: 32px 24px 0 20px; box-sizing: border-box; border-top: 1px solid #0B0C1F; border-radius: 0 0 16px 16px; }
.pxtop .px-stack-10 { display: flex; flex-direction: column; gap: 10px; }
.pxtop .px-services-27 { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.12em; color: #7B2FF7; font-weight: 500; }
.pxtop .px-services-28 { font-size: 27px; font-weight: 700; line-height: 1.3; letter-spacing: 0.02em; font-feature-settings: 'palt'; }
.pxtop .px-services-29 { font-size: 13px; color: #555A72; line-height: 1.6; }
.pxtop .px-area-h3 { margin: 0; font-size: 18px; line-height: 1.6; font-weight: 700; letter-spacing: 0.01em; font-feature-settings: 'palt'; white-space: nowrap; }
.pxtop .px-area-text { margin: 0; font-size: 15px; line-height: 1.9; color: #555A72; text-wrap: pretty; }
.pxtop .px-services-30 { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 8px; }
.pxtop .px-services-31 { margin: 0; display: flex; align-items: center; gap: 12px; font-size: 14px; line-height: 1.5; }
.pxtop .px-services-32 { flex-shrink: 0; font-size: 11.5px; font-weight: 700; letter-spacing: 0.04em; padding: 4px 11px; border-radius: 999px; background: #FFFFFF; border: 1px solid #7B2FF7; color: #7B2FF7; }
.pxtop .px-services-33 { font-weight: 700; white-space: nowrap; }
.pxtop .px-services-34 { flex-shrink: 0; display: inline-flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 700; color: #0B0C1F; white-space: nowrap; }
.pxtop .px-services-35 { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 999px; background: #0B0C1F; }
.pxtop .px-services-36 { position: relative; z-index: 9; display: grid; grid-template-columns: 364px 1fr; column-gap: 20px; height: 232px; text-decoration: none; color: #0B0C1F; }
.pxtop .px-services-37 { display: grid; grid-template-columns: 212px 1fr; column-gap: 28px; align-items: start; padding: 32px 24px 0 20px; box-sizing: border-box; border-top: 1px solid #E1E3EC; border-radius: 0 0 16px 16px; }
.pxtop .px-services-38 { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.12em; color: #5E43FA; font-weight: 500; }
.pxtop .px-services-39 { flex-shrink: 0; font-size: 11.5px; font-weight: 700; letter-spacing: 0.04em; padding: 4px 11px; border-radius: 999px; background: #FFFFFF; border: 1px solid #5E43FA; color: #5E43FA; }
.pxtop .px-services-40 { position: relative; z-index: 8; display: grid; grid-template-columns: 364px 1fr; column-gap: 20px; height: 232px; text-decoration: none; color: #0B0C1F; }
.pxtop .px-services-41 { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.12em; color: #3D5AFE; font-weight: 500; }
.pxtop .px-services-42 { flex-shrink: 0; font-size: 11.5px; font-weight: 700; letter-spacing: 0.04em; padding: 4px 11px; border-radius: 999px; background: #FFFFFF; border: 1px solid #3D5AFE; color: #3D5AFE; }
.pxtop .px-services-43 { position: relative; z-index: 7; display: grid; grid-template-columns: 364px 1fr; column-gap: 20px; height: 232px; text-decoration: none; color: #0B0C1F; }
.pxtop .px-services-44 { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.12em; color: #1673E6; font-weight: 500; }
.pxtop .px-services-45 { flex-shrink: 0; font-size: 11.5px; font-weight: 700; letter-spacing: 0.04em; padding: 4px 11px; border-radius: 999px; background: #FFFFFF; border: 1px solid #1673E6; color: #1673E6; }
.pxtop .px-services-46 { position: relative; z-index: 6; display: grid; grid-template-columns: 364px 1fr; column-gap: 20px; height: 232px; text-decoration: none; color: #0B0C1F; }
.pxtop .px-services-47 { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.12em; color: #0D0F2C; font-weight: 500; }
.pxtop .px-services-48 { flex-shrink: 0; font-size: 11.5px; font-weight: 700; letter-spacing: 0.04em; padding: 4px 11px; border-radius: 999px; background: #FFFFFF; border: 1px solid #0D0F2C; color: #0D0F2C; }
.pxtop .px-services-49 { position: relative; margin-top: 72px; border-radius: 24px; padding: 38px 40px 38px 48px; background: #FFFFFF; border: 1px solid #E1E3EC; color: #0B0C1F; display: flex; align-items: center; justify-content: space-between; gap: 32px; overflow: hidden; box-shadow: 0 30px 70px -44px rgba(30,40,120,0.35); }
.pxtop .px-services-50 { position: absolute; left: 0; top: 0; width: 100%; height: 100%; -webkit-mask-image: linear-gradient(to right, #000 0%, #000 40%, transparent 60%); mask-image: linear-gradient(to right, #000 0%, #000 40%, transparent 60%); }
.pxtop .px-services-51 { position: relative; margin: 0; font-size: 21px; line-height: 1.7; font-weight: 700; letter-spacing: 0.02em; }
.pxtop .px-services-52 { position: relative; display: flex; gap: 12px; flex-shrink: 0; }
.pxtop .px-services-53 { display: inline-flex; align-items: center; gap: 14px; background: linear-gradient(100deg, #7B2FF7 0%, #3D5AFE 55%, #00B4FF 100%); color: #FFFFFF; text-decoration: none; padding: 14px 20px 14px 28px; border-radius: 999px; font-size: 15px; font-weight: 700; box-shadow: 0 16px 34px -14px rgba(61,90,254,0.7); }
.pxtop .px-bg-white { background: #FFFFFF; }
.pxtop .px-inner-148 { padding: 148px 80px 148px; }
.pxtop .px-cases-1 { display: flex; align-items: flex-end; justify-content: space-between; }
.pxtop .px-cases-2 { display: inline-flex; align-items: center; gap: 12px; border: 1px solid #0B0C1F; color: #0B0C1F; text-decoration: none; padding: 13px 22px 13px 28px; border-radius: 999px; font-size: 14px; font-weight: 700; margin-bottom: 10px; }
.pxtop .px-cases-3 { margin-top: 64px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.pxtop .px-case-card { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 400px; padding: 24px 22px 26px; border-radius: 20px; background: #F3F4F9; text-decoration: none; color: #0B0C1F; overflow: hidden; }
.pxtop .px-cases-4 { display: flex; align-items: flex-start; justify-content: space-between; }
.pxtop .px-cases-5 { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.12em; color: #6A6F88; white-space: nowrap; }
.pxtop .px-cases-6 { display: block; margin: -4px -8px 0 0; }
.pxtop .px-cases-7 { display: flex; flex-direction: column; gap: 18px; }
.pxtop .px-cases-8 { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 700; }
.pxtop .px-cases-9 { padding: 4px 12px; border-radius: 999px; color: #FFFFFF; background: #7B2FF7; }
.pxtop .px-cases-10 { flex-basis: 100%; color: #555A72; font-weight: 500; }
.pxtop .px-case-title { margin: 0; min-height: 116px; font-size: 17px; line-height: 1.7; font-weight: 700; letter-spacing: 0.01em; font-feature-settings: 'palt'; text-wrap: pretty; }
.pxtop .px-cases-11 { display: flex; align-items: center; justify-content: space-between; padding-top: 18px; border-top: 1px solid #D5D8E4; font-size: 13px; font-weight: 500; color: #555A72; }
.pxtop .px-cases-12 { padding: 4px 12px; border-radius: 999px; color: #FFFFFF; background: #5E43FA; }
.pxtop .px-cases-13 { padding: 4px 12px; border-radius: 999px; color: #FFFFFF; background: #3D5AFE; }
.pxtop .px-cases-14 { padding: 4px 12px; border-radius: 999px; color: #FFFFFF; background: #1C86FF; }
.pxtop .px-cases-15 { padding: 4px 12px; border-radius: 999px; color: #FFFFFF; background: #0D0F2C; }
.pxtop .px-why-1 { position: relative; background: #FFFFFF; padding: 0 20px; }
.pxtop .px-why-2 { position: relative; background: #06071A; color: #FFFFFF; overflow: hidden; border-radius: 44px; }
.pxtop .px-why-3 { position: absolute; inset: 0; background: radial-gradient(800px 520px at 12% 0%, rgba(123,47,247,0.22), transparent 70%), radial-gradient(900px 600px at 100% 70%, rgba(0,180,255,0.14), transparent 70%); }
.pxtop .px-why-4 { position: relative; padding: 96px 60px 96px; }
.pxtop .px-why-5 { margin: 0; display: flex; align-items: center; gap: 14px; font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 500; letter-spacing: 0.14em; color: rgba(255,255,255,0.62); }
.pxtop .px-why-6 { color: #8FA2FF; }
.pxtop .px-why-7 { width: 28px; height: 1px; background: rgba(255,255,255,0.3); }
.pxtop .px-why-8 { margin-top: 48px; display: grid; grid-template-columns: 1.15fr 1fr; gap: 20px; }
.pxtop .px-why-9 { position: relative; border-radius: 24px; background: linear-gradient(160deg, rgba(255,255,255,0.075), rgba(255,255,255,0.025)); border: 1px solid rgba(255,255,255,0.12); display: flex; flex-direction: column; overflow: hidden; }
.pxtop .px-why-10 { position: absolute; right: -120px; top: -120px; width: 420px; height: 420px; border-radius: 999px; background: radial-gradient(circle, rgba(61,90,254,0.35), transparent 65%); }
.pxtop .px-why-11 { position: relative; padding: 30px 44px 26px; display: flex; flex-direction: column; flex: 1; }
.pxtop .px-why-12 { position: relative; margin: 0; display: flex; align-items: center; justify-content: space-between; font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.14em; color: rgba(255,255,255,0.62); }
.pxtop .px-why-13 { margin-top: 22px; }
.pxtop .px-why-14 { position: relative; margin: 0; display: flex; align-items: baseline; gap: 6px; line-height: 1; }
.pxtop .px-why-15 { font-family: 'Outfit', sans-serif; font-size: 152px; font-weight: 800; letter-spacing: -0.03em; line-height: 0.9; background: linear-gradient(100deg, #A77BFF 0%, #6E86FF 50%, #3CC6FF 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pxtop .px-why-16 { font-size: 34px; font-weight: 700; letter-spacing: 0.02em; white-space: nowrap; }
.pxtop .px-why-17 { position: relative; margin: 10px 0 0; font-size: 13px; letter-spacing: 0.08em; color: rgba(255,255,255,0.7); }
.pxtop .px-why-18 { margin-top: auto; padding-top: 26px; }
.pxtop .px-why-19 { position: relative; margin: 0; font-size: 24px; line-height: 1.55; font-weight: 700; letter-spacing: 0.02em; font-feature-settings: 'palt'; }
.pxtop .px-why-20 { font-size: 12px; font-weight: 500; color: rgba(255,255,255,0.7); }
.pxtop .px-why-21 { position: relative; margin: 8px 0 0; font-size: 15px; line-height: 1.85; color: rgba(255,255,255,0.78); max-width: 600px; text-wrap: pretty; }
.pxtop .px-why-22 { position: relative; padding: 14px 44px 16px; border-top: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.03); }
.pxtop .px-why-23 { position: relative; margin: 0; font-size: 12px; color: rgba(255,255,255,0.68); line-height: 1.8; }
.pxtop .px-why-24 { display: grid; grid-template-rows: auto 1fr; gap: 20px; }
.pxtop .px-why-25 { position: relative; border-radius: 24px; background: linear-gradient(160deg, rgba(255,255,255,0.075), rgba(255,255,255,0.025)); border: 1px solid rgba(255,255,255,0.12); display: flex; flex-direction: column; overflow: hidden; padding: 24px 36px 26px; }
.pxtop .px-why-26 { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.pxtop .px-why-27 { margin: 0; display: flex; align-items: center; gap: 14px; font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.14em; color: rgba(255,255,255,0.62); }
.pxtop .px-why-28 { width: 24px; height: 1px; background: rgba(255,255,255,0.3); }
.pxtop .px-why-29 { display: flex; align-items: center; gap: 14px; }
.pxtop .px-why-30 { font-size: 12.5px; line-height: 1.65; font-weight: 500; letter-spacing: 0.02em; color: rgba(255,255,255,0.86); text-align: right; }
.pxtop .px-why-31 { display: block; height: 60px; width: auto; flex-shrink: 0; border-radius: 3px; }
.pxtop .px-why-32 { margin: 14px 0 0; font-size: 20px; line-height: 1.5; font-weight: 700; letter-spacing: 0.02em; font-feature-settings: 'palt'; white-space: nowrap; margin-top: 12px; }
.pxtop .px-why-33 { margin: 8px 0 0; font-size: 14.5px; line-height: 1.85; color: rgba(255,255,255,0.78); text-wrap: pretty; }
.pxtop .px-message-1 { padding: 148px 80px 72px; display: grid; grid-template-columns: 400px 1fr; column-gap: 96px; align-items: start; }
.pxtop .px-message-2 { border-radius: 24px; overflow: hidden; background: #F3F4F9; height: 500px; }
.pxtop .px-message-3 { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 10%; mix-blend-mode: multiply; }
.pxtop .px-message-4 { position: absolute; left: -14px; bottom: 40px; padding: 8px 14px; border-radius: 999px; background: #0B0C1F; color: #FFFFFF; font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.14em; }
.pxtop .px-message-5 { display: flex; flex-direction: column; padding-top: 6px; }
.pxtop .px-message-6 { margin: 40px 0 0; font-size: 31px; line-height: 1.85; font-weight: 700; letter-spacing: 0.03em; font-feature-settings: 'palt'; }
.pxtop .px-message-7 { background: linear-gradient(transparent 68%, rgba(61,90,254,0.22) 68%); }
.pxtop .px-message-8 { margin-top: 48px; padding-top: 28px; border-top: 1px solid #E1E3EC; display: grid; grid-template-columns: 250px 1fr; column-gap: 40px; }
.pxtop .px-message-9 { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.pxtop .px-message-10 { font-size: 12.5px; color: #555A72; font-weight: 500; letter-spacing: 0.04em; }
.pxtop .px-message-11 { font-size: 24px; font-weight: 700; letter-spacing: 0.08em; line-height: 1.5; }
.pxtop .px-message-12 { font-size: 12.5px; color: #555A72; line-height: 1.6; }
.pxtop .px-message-13 { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.pxtop .px-message-14 { margin: 0; font-size: 14.5px; line-height: 2; color: #555A72; text-wrap: pretty; }
.pxtop .px-message-15 { display: inline-flex; align-items: center; gap: 12px; border: 1px solid #0B0C1F; color: #0B0C1F; text-decoration: none; padding: 12px 20px 12px 26px; border-radius: 999px; font-size: 14px; font-weight: 700; }
.pxtop .px-process-1 { background: #F3F4F9; }
.pxtop .px-process-2 { display: grid; grid-template-columns: 1fr 420px; column-gap: 60px; align-items: end; }
.pxtop .px-process-3 { margin: 0 0 10px; font-size: 16px; line-height: 2.05; color: #555A72; letter-spacing: 0.02em; text-wrap: balance; }
.pxtop .px-process-4 { color: #0B0C1F; font-weight: 700; background: linear-gradient(transparent 66%, rgba(61,90,254,0.22) 66%); }
.pxtop .px-process-5 { position: relative; margin-top: 76px; }
.pxtop .px-process-6 { position: absolute; left: 0; right: -80px; top: 104px; height: 2px; background: linear-gradient(90deg, #7B2FF7 0%, #3D5AFE 50%, #00B4FF 86%, rgba(0,180,255,0) 100%); }
.pxtop .px-process-7 { position: relative; margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.pxtop .px-step { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 0 28px 0 0; }
.pxtop .px-process-8 { font-family: 'Outfit', sans-serif; font-weight: 800; font-size: 72px; line-height: 1; color: #7B2FF7; letter-spacing: -0.02em; }
.pxtop .px-process-9 { position: relative; display: block; height: 28px; margin: 6px 0 6px; }
.pxtop .px-process-10 { position: absolute; left: 0; top: 4px; width: 20px; height: 20px; border-radius: 999px; background: #FFFFFF; border: 1.5px solid #7B2FF7; box-sizing: border-box; }
.pxtop .px-process-11 { position: absolute; left: 6px; top: 10px; width: 8px; height: 8px; border-radius: 999px; background: #7B2FF7; }
.pxtop .px-process-12 { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.14em; font-weight: 500; color: #7B2FF7; }
.pxtop .px-process-13 { font-size: 20px; font-weight: 700; line-height: 1.5; letter-spacing: 0.01em; }
.pxtop .px-process-14 { font-size: 14.5px; line-height: 1.9; color: #555A72; text-wrap: pretty; }
.pxtop .px-process-15 { font-family: 'Outfit', sans-serif; font-weight: 800; font-size: 72px; line-height: 1; color: #5E43FA; letter-spacing: -0.02em; }
.pxtop .px-process-16 { position: absolute; left: 0; top: 4px; width: 20px; height: 20px; border-radius: 999px; background: #FFFFFF; border: 1.5px solid #5E43FA; box-sizing: border-box; }
.pxtop .px-process-17 { position: absolute; left: 6px; top: 10px; width: 8px; height: 8px; border-radius: 999px; background: #5E43FA; }
.pxtop .px-process-18 { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.14em; font-weight: 500; color: #5E43FA; }
.pxtop .px-process-19 { font-family: 'Outfit', sans-serif; font-weight: 800; font-size: 72px; line-height: 1; color: #3D5AFE; letter-spacing: -0.02em; }
.pxtop .px-process-20 { position: absolute; left: 0; top: 4px; width: 20px; height: 20px; border-radius: 999px; background: #FFFFFF; border: 1.5px solid #3D5AFE; box-sizing: border-box; }
.pxtop .px-process-21 { position: absolute; left: 6px; top: 10px; width: 8px; height: 8px; border-radius: 999px; background: #3D5AFE; }
.pxtop .px-process-22 { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.14em; font-weight: 500; color: #3D5AFE; }
.pxtop .px-process-23 { font-family: 'Outfit', sans-serif; font-weight: 800; font-size: 72px; line-height: 1; color: #1C86FF; letter-spacing: -0.02em; }
.pxtop .px-process-24 { position: absolute; left: 0; top: 4px; width: 20px; height: 20px; border-radius: 999px; background: #FFFFFF; border: 1.5px solid #1C86FF; box-sizing: border-box; }
.pxtop .px-process-25 { position: absolute; left: 6px; top: 10px; width: 8px; height: 8px; border-radius: 999px; background: #1C86FF; }
.pxtop .px-process-26 { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.14em; font-weight: 500; color: #1C86FF; }
.pxtop .px-process-27 { font-family: 'Outfit', sans-serif; font-weight: 800; font-size: 72px; line-height: 1; color: #00A6F0; letter-spacing: -0.02em; }
.pxtop .px-process-28 { position: absolute; left: 0; top: 4px; width: 20px; height: 20px; border-radius: 999px; background: #FFFFFF; border: 1.5px solid #00A6F0; box-sizing: border-box; }
.pxtop .px-process-29 { position: absolute; left: 6px; top: 10px; width: 8px; height: 8px; border-radius: 999px; background: #00A6F0; }
.pxtop .px-process-30 { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.14em; font-weight: 500; color: #00A6F0; }
.pxtop .px-careers-1 { padding: 120px 40px 0; }
.pxtop .px-careers-2 { position: relative; border-radius: 8px; overflow: hidden; background: radial-gradient(520px 420px at 8% 20%, rgba(123,47,247,0.95), transparent 70%), radial-gradient(560px 460px at 30% 100%, rgba(255,120,200,0.55), transparent 70%), radial-gradient(640px 480px at 75% 10%, rgba(61,90,254,0.95), transparent 70%), radial-gradient(600px 500px at 100% 90%, rgba(0,200,255,0.9), transparent 70%), #3D5AFE; color: #FFFFFF; padding: 80px 64px 80px 64px; display: grid; grid-template-columns: 1fr 640px; align-items: center; column-gap: 56px; }
.pxtop .px-careers-3 { position: absolute; right: 0; top: 0; height: 100%; width: auto; opacity: 0.5; }
.pxtop .px-careers-4 { position: relative; display: flex; flex-direction: column; gap: 26px; }
.pxtop .px-careers-5 { margin: 0; display: flex; align-items: center; gap: 14px; font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 500; letter-spacing: 0.14em; color: rgba(255,255,255,0.9); }
.pxtop .px-careers-6 { color: #FFFFFF; }
.pxtop .px-careers-7 { width: 28px; height: 1px; background: rgba(255,255,255,0.6); }
.pxtop .px-careers-8 { margin: 0; font-size: 46px; line-height: 1.42; font-weight: 700; letter-spacing: 0.02em; font-feature-settings: 'palt'; font-size: 40px; }
.pxtop .px-careers-9 { margin: 0; font-size: 16px; line-height: 2; color: rgba(255,255,255,0.95); letter-spacing: 0.02em; }
.pxtop .px-careers-10 { position: relative; align-self: flex-start; margin-top: 10px; display: inline-flex; align-items: center; gap: 18px; background: #FFFFFF; color: #0B0C1F; text-decoration: none; padding: 9px 9px 9px 32px; border-radius: 999px; font-size: 16px; font-weight: 700; letter-spacing: 0.04em; box-shadow: 0 20px 44px -18px rgba(10,12,60,0.6); }
.pxtop .px-careers-11 { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 999px; background: #0B0C1F; }
.pxtop .px-careers-12 { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.pxtop .px-careers-13 { position: relative; aspect-ratio: 3 / 4; border-radius: 4px; overflow: hidden; background: #E9EDF6; box-shadow: 0 18px 36px -22px rgba(10,12,60,0.6); }
.pxtop .px-careers-14 { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; transform: scale(1.9); transform-origin: 50% 22%; }
.pxtop .px-careers-15 { position: relative; aspect-ratio: 3 / 4; border-radius: 4px; overflow: hidden; background: linear-gradient(180deg, rgba(255,255,255,0.22), rgba(255,255,255,0.08)); border: 1px dashed rgba(255,255,255,0.55); box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; }
.pxtop .px-careers-16 { display: block; }
.pxtop .px-careers-17 { position: absolute; top: 12px; left: 0; right: 0; text-align: center; font-size: 11px; letter-spacing: 0.08em; color: rgba(255,255,255,0.85); }
.pxtop .px-news-1 { padding: 148px 80px 0; display: grid; grid-template-columns: 380px 1fr; column-gap: 100px; align-items: start; }
.pxtop .px-news-2 { display: flex; flex-direction: column; align-items: flex-start; gap: 28px; }
.pxtop .px-news-3 { border-top: 1px solid #0B0C1F; }
.pxtop .px-news-row { display: grid; grid-template-columns: 130px 110px 1fr 24px; align-items: center; column-gap: 16px; padding: 30px 8px 30px 4px; border-bottom: 1px solid #E1E3EC; text-decoration: none; color: #0B0C1F; }
.pxtop .px-news-4 { font-family: 'JetBrains Mono', monospace; font-size: 13px; color: #6A6F88; letter-spacing: 0.06em; }
.pxtop .px-news-5 { justify-self: start; font-size: 12px; font-weight: 500; padding: 3px 12px; border-radius: 999px; border: 1px solid #C5C9D8; color: #555A72; }
.pxtop .px-news-6 { font-size: 17px; font-weight: 500; letter-spacing: 0.02em; }
.pxtop .px-knowledge-1 { padding: 132px 80px 148px; }
.pxtop .px-knowledge-2 { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.pxtop .px-knowledge-3 { margin: 0; font-size: 46px; line-height: 1.42; font-weight: 700; letter-spacing: 0.02em; font-feature-settings: 'palt'; display: flex; align-items: baseline; gap: 20px; }
.pxtop .px-knowledge-4 { font-size: 17px; font-weight: 500; color: #555A72; letter-spacing: 0.04em; }
.pxtop .px-knowledge-5 { color: #B9BDCF; margin-right: 18px; }
.pxtop .px-knowledge-6 { display: flex; gap: 8px; margin-bottom: 14px; }
.pxtop .px-knowledge-7 { font-size: 13px; font-weight: 500; padding: 7px 18px; border-radius: 999px; border: 1px solid #C5C9D8; color: #0B0C1F; }
.pxtop .px-knowledge-8 { color: #3D5AFE; margin-right: 4px; }
.pxtop .px-knowledge-9 { margin-top: 60px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.pxtop .px-kn-card { display: flex; flex-direction: column; gap: 20px; text-decoration: none; color: #0B0C1F; }
.pxtop .px-knowledge-10 { position: relative; height: 236px; border-radius: 14px; overflow: hidden; background: radial-gradient(circle at 18% 20%, rgba(123,47,247,0.30), transparent 55%), radial-gradient(circle at 85% 90%, rgba(0,180,255,0.32), transparent 55%), #E9EBF6; }
.pxtop .px-knowledge-11 { position: absolute; left: 16px; top: 14px; font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.14em; color: #4A4F6A; }
.pxtop .px-knowledge-12 { position: absolute; right: 16px; bottom: 14px; font-family: 'Outfit', sans-serif; font-weight: 800; font-size: 20px; color: rgba(255,255,255,0.9); }
.pxtop .px-knowledge-13 { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 4px 22px; border-bottom: 1px solid #E1E3EC; }
.pxtop .px-knowledge-14 { font-size: 18px; font-weight: 700; letter-spacing: 0.02em; }
.pxtop .px-knowledge-15 { position: relative; height: 236px; border-radius: 14px; overflow: hidden; background: radial-gradient(circle at 80% 15%, rgba(123,47,247,0.30), transparent 55%), radial-gradient(circle at 10% 95%, rgba(0,180,255,0.32), transparent 55%), #E9EBF6; }
.pxtop .px-knowledge-16 { position: relative; height: 236px; border-radius: 14px; overflow: hidden; background: radial-gradient(circle at 50% 0%, rgba(123,47,247,0.30), transparent 55%), radial-gradient(circle at 95% 100%, rgba(0,180,255,0.32), transparent 55%), #E9EBF6; }
.pxtop .px-contact-1 { position: relative; background: linear-gradient(180deg, #FFFFFF 0%, #F1F3FB 100%); color: #0B0C1F; overflow: hidden; border-top: 1px solid #E1E3EC; }
.pxtop .px-contact-2 { position: absolute; inset: 0; background: radial-gradient(900px 480px at 96% 12%, rgba(0,180,255,0.15), transparent 70%), radial-gradient(700px 460px at 64% 60%, rgba(123,47,247,0.10), transparent 70%); }
.pxtop .px-contact-3 { position: relative; padding: 140px 80px 148px; }
.pxtop .px-u-1 { display: flex; flex-direction: column; gap: 22px; }
.pxtop .px-contact-4 { margin: 0; font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 124px; line-height: 1; letter-spacing: -0.03em; }
.pxtop .px-contact-5 { margin-top: 84px; display: grid; grid-template-columns: 400px 1fr; column-gap: 64px; align-items: start; }
.pxtop .px-contact-6 { display: flex; flex-direction: column; gap: 28px; padding-top: 8px; }
.pxtop .px-contact-7 { margin: 0; font-size: 32px; line-height: 1.55; font-weight: 700; letter-spacing: 0.02em; font-feature-settings: 'palt'; }
.pxtop .px-contact-8 { margin: 0; font-size: 15px; line-height: 2; color: #3A3F58; }
.pxtop .px-contact-9 { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; font-size: 14px; line-height: 1.7; color: #3A3F58; }
.pxtop .px-contact-10 { display: flex; gap: 10px; }
.pxtop .px-contact-11 { margin-top: 12px; display: flex; flex-direction: column; border-top: 1px solid #D5D8E5; }
.pxtop .px-contact-12 { display: flex; align-items: center; justify-content: space-between; padding: 22px 4px; border-bottom: 1px solid #D5D8E5; color: #0B0C1F; text-decoration: none; }
.pxtop .px-contact-13 { display: flex; flex-direction: column; gap: 4px; }
.pxtop .px-contact-14 { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.14em; color: #6A6F88; }
.pxtop .px-contact-15 { font-size: 16px; font-weight: 700; }
.pxtop .px-contact-16 { display: flex; align-items: center; justify-content: space-between; padding: 22px 4px; border-bottom: 1px dashed #9EA4BC; color: #0B0C1F; text-decoration: none; opacity: 0.6; }
.pxtop .px-contact-17 { font-size: 12px; font-weight: 500; color: #555A72; }
.pxtop .px-contact-18 { margin: 0; background: #FFFFFF; border: 1px solid #E1E3EC; border-radius: 28px; padding: 44px 52px 40px; box-shadow: 0 40px 80px -50px rgba(30,40,120,0.4); display: grid; grid-template-columns: 1fr; gap: 16px; }
.pxtop .px-contact-19 { position: relative; border-radius: 14px; padding: 1px; background: linear-gradient(100deg, #7B2FF7 0%, #3D5AFE 55%, #00B4FF 100%); margin-bottom: 10px; }
.pxtop .px-contact-20 { box-sizing: border-box; width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; border: 0; border-radius: 13px; background: linear-gradient(180deg, #F7F6FF 0%, #F3F8FF 100%); padding: 16px 22px; font: inherit; color: #0B0C1F; cursor: pointer; text-align: left; }
.pxtop .px-contact-21 { display: flex; align-items: center; gap: 12px; }
.pxtop .px-contact-22 { font-size: 15px; font-weight: 700; letter-spacing: 0.02em; white-space: nowrap; }
.pxtop .px-contact-23 { font-size: 12px; color: #555A72; white-space: nowrap; }
.pxtop .px-contact-24 { font-size: 13px; font-weight: 700; color: #3D5AFE; white-space: nowrap; }
.pxtop .px-field { display: grid; grid-template-columns: 158px 1fr; column-gap: 20px; align-items: center; }
.pxtop .px-field-label { display: flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 700; letter-spacing: 0.02em; color: #0B0C1F; white-space: nowrap; }
.pxtop .px-req { font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 6px; background: #3D5AFE; color: #FFFFFF; letter-spacing: 0.06em; }
.pxtop .px-input { box-sizing: border-box; width: 100%; height: 50px; border: 1px solid #D5D8E5; border-radius: 12px; background: #FFFFFF; padding: 0 18px; font: inherit; font-size: 15px; color: #0B0C1F; }
.pxtop .px-contact-25 { font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 6px; background: #E6E8F0; color: #555A72; letter-spacing: 0.06em; }
.pxtop .px-contact-26 { box-sizing: border-box; width: 100%; height: 50px; border: 1px solid #D5D8E5; border-radius: 12px; background: #FFFFFF; padding: 0 18px; font: inherit; font-size: 15px; color: #0B0C1F; appearance: none; background-image: linear-gradient(45deg, transparent 50%, #0B0C1F 50%), linear-gradient(135deg, #0B0C1F 50%, transparent 50%); background-position: calc(100% - 24px) 23px, calc(100% - 18px) 23px; background-size: 6px 6px; background-repeat: no-repeat; }
.pxtop .px-contact-27 { display: grid; grid-template-columns: 158px 1fr; column-gap: 20px; align-items: start; }
.pxtop .px-contact-28 { display: flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 700; letter-spacing: 0.02em; color: #0B0C1F; white-space: nowrap; padding-top: 14px; }
.pxtop .px-contact-29 { box-sizing: border-box; width: 100%; height: 50px; border: 1px solid #D5D8E5; border-radius: 12px; background: #FFFFFF; padding: 0 18px; font: inherit; font-size: 15px; color: #0B0C1F; height: 120px; padding: 14px 18px; line-height: 1.8; resize: vertical; }
.pxtop .px-contact-30 { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 6px; }
.pxtop .px-contact-31 { display: flex; align-items: center; gap: 10px; font-size: 14px; color: #3A3F58; }
.pxtop .px-contact-32 { width: 18px; height: 18px; margin: 0; accent-color: #3D5AFE; }
.pxtop .px-contact-33 { display: inline-flex; align-items: center; gap: 18px; border: 0; cursor: pointer; background: linear-gradient(100deg, #7B2FF7 0%, #3D5AFE 55%, #00B4FF 100%); color: #FFFFFF; padding: 9px 9px 9px 34px; border-radius: 999px; font: inherit; font-size: 16px; font-weight: 700; letter-spacing: 0.06em; box-shadow: 0 18px 40px -14px rgba(61,90,254,0.65); }
.pxtop .px-footer-1 { background: #F1F3FB; }
.pxtop .px-footer-2 { position: relative; background: #06071A; color: #FFFFFF; border-radius: 44px 44px 0 0; overflow: hidden; }
.pxtop .px-footer-3 { position: absolute; inset: 0; background: radial-gradient(900px 420px at 100% 100%, rgba(61,90,254,0.26), transparent 70%), radial-gradient(700px 380px at 0% 100%, rgba(123,47,247,0.20), transparent 70%); }
.pxtop .px-footer-4 { position: relative; padding: 84px 80px 0; display: grid; grid-template-columns: 1fr 560px; column-gap: 80px; align-items: start; }
.pxtop .px-footer-5 { font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 30px; letter-spacing: -0.01em; line-height: 1; }
.pxtop .px-footer-6 { display: flex; align-items: center; gap: 16px; }
.pxtop .px-footer-7 { background: #FFFFFF; border-radius: 8px; padding: 8px 12px; display: flex; align-items: center; flex-shrink: 0; }
.pxtop .px-footer-8 { height: 24px; width: auto; display: block; }
.pxtop .px-footer-9 { font-size: 13px; line-height: 1.8; color: rgba(255,255,255,0.72); }
.pxtop .px-footer-10 { display: grid; grid-template-columns: repeat(3, 1fr); row-gap: 18px; column-gap: 24px; font-size: 14px; font-weight: 500; letter-spacing: 0.04em; }
.pxtop .px-foot-link { color: rgba(255,255,255,0.86); text-decoration: none; }
.pxtop .px-footer-11 { position: relative; margin: 72px 80px 0; padding: 22px 0 0; border-top: 1px solid rgba(255,255,255,0.12); display: flex; justify-content: space-between; font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.12em; color: rgba(255,255,255,0.5); }
.pxtop .px-footer-12 { position: relative; margin: 8px 0 -64px; text-align: center; font-family: 'Outfit', sans-serif; font-weight: 800; font-size: 340px; line-height: 1; letter-spacing: -0.03em; white-space: nowrap; color: rgba(255,255,255,0.055); }
.pxtop .px-footer-13 { background: linear-gradient(100deg, rgba(123,47,247,0.6), rgba(61,90,254,0.6) 55%, rgba(0,180,255,0.6)); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ---- 相談の帯（仕上げ版、柄 1「ひらく線」）：5つの支援領域の下＝濃紺、代表メッセージの後＝白。帯全体が #contact へのリンク ---- */
.pxtop .px-cta-wrap { margin-top: 72px; }
.pxtop .px-midcta-inner { padding: 0 80px 148px; }
.pxtop .px-cta { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 48px; overflow: hidden; border-radius: 24px; padding: 32px 36px 32px 52px; text-decoration: none; box-sizing: border-box; transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s; }
.pxtop .px-cta--dark { background: #0B0C1F; color: #FFFFFF; box-shadow: 0 36px 80px -38px rgba(61,90,254,0.5); }
.pxtop .px-cta--light { background: #FFFFFF; color: #0B0C1F; box-shadow: 0 32px 80px -34px rgba(46,58,160,0.28); }
.pxtop .px-cta-glow { position: absolute; inset: 0; }
.pxtop .px-cta--dark .px-cta-glow { background: radial-gradient(420px 220px at 100% 0%, rgba(0,180,255,0.20), transparent 70%), radial-gradient(460px 240px at 75% 130%, rgba(123,47,247,0.32), transparent 70%); }
.pxtop .px-cta--light .px-cta-glow { background: radial-gradient(420px 220px at 100% 0%, rgba(0,180,255,0.10), transparent 70%), radial-gradient(460px 240px at 78% 130%, rgba(123,47,247,0.12), transparent 70%); }
.pxtop .px-cta-lines { position: absolute; inset: 0; width: 100%; height: 100%; }
/* 枠：ブランドのグラデーションの 1px（mask で枠だけ残す） */
.pxtop .px-cta-border { position: absolute; inset: 0; border-radius: 24px; padding: 1px; -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
.pxtop .px-cta--dark .px-cta-border { background: linear-gradient(100deg, rgba(167,123,255,0.55), rgba(110,134,255,0.25) 45%, rgba(60,198,255,0.6)); }
.pxtop .px-cta--light .px-cta-border { background: linear-gradient(100deg, rgba(123,47,247,0.45), rgba(61,90,254,0.18) 45%, rgba(0,180,255,0.5)); }
.pxtop .px-cta-text { position: relative; display: block; max-width: 780px; }
.pxtop .px-cta-title { display: block; font-size: 25px; line-height: 1.55; font-weight: 700; letter-spacing: 0.02em; font-feature-settings: 'palt'; }
.pxtop .px-cta-note { display: block; margin-top: 10px; max-width: 640px; font-size: 15px; line-height: 1.85; }
.pxtop .px-cta--dark .px-cta-note { color: rgba(255,255,255,0.74); }
.pxtop .px-cta--light .px-cta-note { color: #3A3F58; }
.pxtop .px-cta-action { position: relative; flex-shrink: 0; }
.pxtop .px-cta-btn { position: relative; display: inline-flex; align-items: center; gap: 18px; background: linear-gradient(100deg, #7B2FF7 0%, #3D5AFE 55%, #00B4FF 100%); color: #FFFFFF; padding: 10px 10px 10px 34px; border-radius: 999px; font-size: 17px; font-weight: 700; letter-spacing: 0.05em; white-space: nowrap; transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s; }
.pxtop .px-cta--dark .px-cta-btn { box-shadow: 0 0 0 6px rgba(143,162,255,0.22), 0 18px 44px -14px rgba(61,90,254,0.8); }
.pxtop .px-cta--light .px-cta-btn { box-shadow: 0 0 0 6px rgba(61,90,254,0.12), 0 18px 44px -14px rgba(61,90,254,0.8); }
.pxtop .px-cta-arrow { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 999px; background: #FFFFFF; color: #0B0C1F; transition: transform .3s cubic-bezier(.2,.7,.2,1); }
.pxtop .px-cta-arrow svg { display: block; }
/* マウスを乗せたとき（キーボードで選んだときも同じ） */
.pxtop .px-cta:hover, .pxtop .px-cta:focus-visible { transform: translateY(-4px); }
.pxtop .px-cta:focus-visible { outline: 2px solid #3D5AFE; outline-offset: 4px; }
.pxtop .px-cta--dark:hover, .pxtop .px-cta--dark:focus-visible { box-shadow: 0 44px 90px -34px rgba(61,90,254,0.65); }
.pxtop .px-cta--light:hover, .pxtop .px-cta--light:focus-visible { box-shadow: 0 40px 90px -30px rgba(46,58,160,0.38); }
.pxtop .px-cta:hover .px-cta-btn, .pxtop .px-cta:focus-visible .px-cta-btn { transform: translateX(2px); }
.pxtop .px-cta--dark:hover .px-cta-btn, .pxtop .px-cta--dark:focus-visible .px-cta-btn { box-shadow: 0 0 0 8px rgba(143,162,255,0.22), 0 22px 44px -14px rgba(61,90,254,0.95); }
.pxtop .px-cta--light:hover .px-cta-btn, .pxtop .px-cta--light:focus-visible .px-cta-btn { box-shadow: 0 0 0 8px rgba(61,90,254,0.12), 0 22px 44px -14px rgba(61,90,254,0.95); }
.pxtop .px-cta:hover .px-cta-arrow, .pxtop .px-cta:focus-visible .px-cta-arrow { transform: translateX(3px); }
@media (prefers-reduced-motion: reduce) { .pxtop .px-cta, .pxtop .px-cta-btn, .pxtop .px-cta-arrow { transition: none; } }

/* ---- ロゴ（実ロゴの画像。ヘッダーは黒文字、フッターは白文字の版） ---- */
.pxtop .px-logo-img { display: block; width: auto; max-width: none; }
.pxtop .px-fv-9 .px-logo-img { height: 34px; }
.pxtop .px-footer-5 .px-logo-img { height: 36px; }

/* ==== 広い画面（1441px 以上）====
 * 中身の幅を 1280px（モックの 1440 幅のときと同じ）までにして、中央に寄せる。背景は画面いっぱいのまま。
 * 1440px 以下では、モックと同じ値（余白 80px）になる。中身の幅を変えるときは --px-max を変える。 */
@media (min-width: 1024px) {
  .pxtop { --px-max: 1280px; --px-g: max(80px, calc((100% - var(--px-max)) / 2)); --px-frame: max(0px, calc((100% - 1440px) / 2)); }
  .pxtop .px-fv-8 { padding-left: var(--px-g); padding-right: var(--px-g); }
  .pxtop .px-fv-13 { padding-left: var(--px-g); padding-right: var(--px-g); }
  .pxtop .px-fv-21 { left: var(--px-g); right: var(--px-g); }
  .pxtop .px-fv-3 { left: calc(var(--px-frame) + 80px); }
  .pxtop .px-fv-4 { left: calc(var(--px-frame) + 628px); }
  .pxtop .px-fv-5 { right: calc(var(--px-frame) + 80px); }
  .pxtop #top > svg.px-svg-abs, .pxtop #contact > svg.px-svg-abs { left: var(--px-frame); overflow: visible; }
  .pxtop .px-gridlines { background-position: calc(50% + 80px) 0; }
  .pxtop .px-logos-2, .pxtop .px-services-2, .pxtop .px-inner-148, .pxtop .px-message-1,
  .pxtop .px-news-1, .pxtop .px-knowledge-1, .pxtop .px-contact-3, .pxtop .px-footer-4, .pxtop .px-midcta-inner { padding-left: var(--px-g); padding-right: var(--px-g); }
  .pxtop .px-footer-11 { margin-left: var(--px-g); margin-right: var(--px-g); }
  .pxtop .px-careers-1 { padding-left: max(40px, calc((100% - var(--px-max) - 80px) / 2)); padding-right: max(40px, calc((100% - var(--px-max) - 80px) / 2)); }
  .pxtop .px-why-1 { padding-left: max(20px, calc((100% - var(--px-max) - 120px) / 2)); padding-right: max(20px, calc((100% - var(--px-max) - 120px) / 2)); }
}

/* ==== スマホ（max-width: 1023px）— スマホ用の指定は、ここ1か所にまとめる ====
 * 正本：キャンバス「MobileV2W.dc.html.txt」（390 幅）。HTML は PC と同じで、
 * .px-sp はスマホだけに出す要素、.px-pc は PC だけに出す要素。 */
@media (min-width: 1024px) {
  .pxtop .px-sp { display: none !important; }
}
@media (max-width: 1023px) {
  .pxtop .px-pc { display: none !important; }

  /* -- 01-fv.css -- */
  /* ---- FV：全体（1列のグリッド。1行目＝文、2行目＝線の束、3行目＝3つの強み） ---- */
  .pxtop .px-fv-1 { height: auto; display: grid; grid-template-columns: minmax(0, 1fr); }
  .pxtop .px-fv-2 { background: radial-gradient(420px 380px at 100% 58%, rgba(0,180,255,0.17), transparent 70%), radial-gradient(360px 320px at 60% 78%, rgba(123,47,247,0.12), transparent 70%), linear-gradient(180deg, #FFFFFF 0%, #F6F7FC 100%); }
  .pxtop .px-fv-1 .px-gridlines { background-size: 87.5px 100%; background-position: 20px 0; }

  /* ---- FV：ヘッダー（ナビの文字リンクは隠し、お問い合わせ＋メニューボタン） ---- */
  .pxtop .px-fv-8 { padding: 14px 20px; }
  .pxtop .px-fv-9 { font-size: 23px; }
  .pxtop .px-fv-9 .px-logo-img { height: 28px; }
  .pxtop .px-fv-10 { gap: 10px; }
  .pxtop .px-fv-10 .px-nav-link { display: none; }
  .pxtop .px-fv-11 { gap: 0; margin-left: 0; padding: 10px 16px; font-size: 12.5px; line-height: 1.8; letter-spacing: 0.04em; }
  .pxtop .px-fv-12 { display: none; }
  .pxtop .px-sp-fv-menu { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; width: 40px; height: 40px; margin: 0; padding: 0; border-radius: 999px; border: 1px solid rgba(11,12,31,0.2); background: #FFFFFF; box-shadow: none; cursor: pointer; }
  .pxtop .px-sp-fv-menu span { display: block; width: 16px; height: 1.5px; background: #0B0C1F; }

  /* ---- FV：見出し・リード・ボタン ---- */
  .pxtop .px-fv-13 { grid-row: 1; padding: 108px 20px 0; }
  .pxtop .px-fv-14 { margin: 0 0 20px; gap: 10px; font-size: 10.5px; }
  .pxtop .px-fv-16 { font-size: min(38px, calc((100vw - 40px) / 9)); /* 360 幅でも「ならではの」を1行に */ line-height: 1.36; letter-spacing: 0.01em; }
  .pxtop .px-fv-17 { font-size: 1.4em; }
  .pxtop .px-fv-18 { margin: 22px 0 0; font-size: 14.5px; line-height: 1.95; letter-spacing: 0.01em; white-space: normal; }
  .pxtop .px-fv-19 { margin-top: 26px; }
  .pxtop .px-fv-20 { gap: 16px; padding: 7px 7px 7px 28px; font-size: 15px; line-height: 1.8; box-shadow: 0 16px 34px -14px rgba(61,90,254,0.65); }
  .pxtop .px-fv-20 .px-btn-arrow-lg { width: 42px; height: 42px; }
  .pxtop .px-fv-20 .px-btn-arrow-lg svg { width: 14px; height: 14px; }

  /* ---- FV：線の束（スマホ用 SVG）とラベル ---- */
  .pxtop .px-sp-fv-lines { grid-row: 2; position: relative; display: block; max-width: none; margin-top: 4px; }
  .pxtop .px-sp-fv-pulse { transform-origin: 132px 190px; }
  .pxtop .px-fv-3, .pxtop .px-fv-4, .pxtop .px-fv-5 { grid-row: 2; grid-column: 1; font-size: 9.5px; letter-spacing: 0.14em; line-height: 1.8; }
  .pxtop .px-fv-3 { left: 20px; top: 170px; }
  .pxtop .px-fv-4 { left: 148px; top: 204px; }
  .pxtop .px-fv-5 { right: 20px; top: 6px; }
  .pxtop .px-fv-6 { font-size: 12px; }

  /* ---- FV：3つの強み（縦のリスト）。SCROLL は隠す ---- */
  .pxtop .px-fv-21 { grid-row: 3; position: relative; left: auto; right: auto; bottom: auto; display: block; margin: 0 20px; padding: 0 0 30px; }
  .pxtop .px-fv-22, .pxtop .px-fv-23 { gap: 16px; padding: 16px 0; border-left: 0; }
  .pxtop .px-fv-23 { border-top: 1px solid rgba(11,12,31,0.1); }
  .pxtop .px-fv-point-num { padding-top: 4px; }
  .pxtop .px-fv-point-text { font-size: 14.5px; line-height: 1.6; letter-spacing: 0.02em; }
  .pxtop .px-fv-24 { display: none; }

  /* メニューを開いたとき（assets/proofx-top.js が header に .is-open を付ける） */
  .pxtop .px-fv-7.is-open { position: fixed; inset: 0; z-index: 100; background: #FFFFFF; overflow-y: auto; }
  .pxtop .px-fv-7.is-open .px-fv-8 { flex-wrap: wrap; row-gap: 0; }
  .pxtop .px-fv-7.is-open .px-fv-9 { margin-right: auto; }
  .pxtop .px-fv-7.is-open .px-fv-10 { display: contents; }
  .pxtop .px-fv-7.is-open .px-fv-11 { order: 1; margin-right: 10px; }
  .pxtop .px-fv-7.is-open .px-sp-fv-menu { order: 2; }
  .pxtop .px-fv-7.is-open .px-nav-link { order: 3; display: flex; align-items: center; flex-basis: 100%; min-height: 60px; border-bottom: 1px solid #E1E3EC; font-size: 18px; font-weight: 700; color: #0B0C1F; }
  .pxtop .px-fv-7.is-open .px-nav-link:first-of-type { margin-top: 24px; border-top: 1px solid #E1E3EC; }
  .pxtop .px-sp-fv-menu span { transition: transform .25s; }
  .pxtop .px-fv-7.is-open .px-sp-fv-menu span:first-child { transform: translateY(3.75px) rotate(45deg); }
  .pxtop .px-fv-7.is-open .px-sp-fv-menu span:last-child { transform: translateY(-3.75px) rotate(-45deg); }

  /* -- 02-logos.css -- */
  /* ---- ロゴ帯：見出しを上、ロゴの流れを下に（ボタンは PC のみ） ---- */
  .pxtop .px-logos-1 { padding: 26px 0 24px; }
  .pxtop .px-logos-2 { display: block; padding: 0; }
  .pxtop .px-logos-3 { margin: 0 20px 14px; font-size: 12px; }
  .pxtop .px-logos-4 { -webkit-mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent); }
  .pxtop .px-logos-5 { animation-duration: 40s; }

  /* ---- ロゴ帯：ロゴの大きさ ---- */
  .pxtop .px-logo-item { width: 132px; height: 48px; }
  .pxtop .px-logos-6 { height: 17px; }
  .pxtop .px-logos-7 { height: 30px; }
  .pxtop .px-logos-8 { height: 21px; }
  .pxtop .px-logos-9 { height: 20px; }
  .pxtop .px-logos-10 { height: 27px; }

  /* -- 03-services.css -- */
  /* ---- 事業：見出しまわり ---- */
  .pxtop .px-services-2 { padding: 84px 20px 76px; }
  .pxtop .px-services-3 { display: flex; flex-direction: column; gap: 20px; }
  .pxtop .px-services-1 .px-head { gap: 20px; }
  .pxtop .px-services-1 .px-label { gap: 12px; font-size: 11px; }
  .pxtop .px-services-1 .px-label-rule { width: 24px; }
  .pxtop .px-services-1 .px-h2 { font-size: 28px; line-height: 1.46; }
  .pxtop .px-services-5 { margin: 0; font-size: 14.5px; line-height: 1.95; letter-spacing: 0.01em; }

  /* ---- 事業：考え方のカード（3段の縦並び。図は段ごとのスマホ用 SVG） ---- */
  .pxtop .px-services-6 { margin-top: 30px; border-radius: 20px; padding: 40px 22px 8px; box-shadow: 0 24px 50px -36px rgba(30,40,120,0.4); }
  .pxtop .px-services-8 { display: block; margin: -12px 0 0; }
  .pxtop .px-services-9, .pxtop .px-services-16, .pxtop .px-services-17 { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto minmax(24px, auto) auto; column-gap: 10px; row-gap: 4px; padding: 26px 0 16px; border-top: 1px solid #E1E3EC; border-left: 0; }
  .pxtop .px-services-9 { padding-top: 0; border-top: 0; }
  .pxtop .px-sp-svc-apsvg { grid-column: 1 / -1; display: block; overflow: visible; max-width: none; margin-bottom: 12px; }
  .pxtop .px-services-17 .px-sp-svc-apsvg { margin-bottom: 2px; }
  .pxtop .px-services-10 { grid-column: 1; grid-row: 2; align-self: center; gap: 10px; }
  .pxtop .px-services-11 { font-size: 11px; }
  .pxtop .px-services-12 { font-size: 12.5px; }
  .pxtop .px-services-13 { display: contents; }
  .pxtop .px-services-14 { grid-column: 1 / -1; grid-row: 3; font-size: 17.5px; white-space: normal; }
  .pxtop .px-services-15, .pxtop .px-services-18 { grid-column: 2; grid-row: 2; align-self: center; font-size: 11px; padding: 2px 10px; }

  /* ---- 事業：「この3つを形にする手段が…」 ---- */
  .pxtop .px-services-19 { display: block; margin-top: 34px; }
  .pxtop .px-services-20 { align-items: flex-start; gap: 14px; font-size: 16.5px; line-height: 1.65; }
  .pxtop .px-services-21 { flex-shrink: 0; width: 34px; height: 34px; }
  .pxtop .px-services-22 { margin: 14px 0 0; font-size: 14.5px; line-height: 1.95; letter-spacing: 0.01em; }

  /* ---- 事業：5つの支援領域（板の図＋名前を横に、その下に本文） ---- */
  .pxtop .px-services-23 { margin-top: 36px; }
  .pxtop .px-services-24, .pxtop .px-services-36, .pxtop .px-services-40, .pxtop .px-services-43, .pxtop .px-services-46 { display: grid; grid-template-columns: 140px minmax(0, 1fr); column-gap: 14px; align-items: center; height: auto; padding: 22px 0 30px; border-top: 1px solid #D5D8E4; }
  .pxtop .px-services-24 { border-top-color: #0B0C1F; }
  .pxtop .px-services-1 .pxrow .px-rel { width: 148px; margin-left: -8px; }
  .pxtop .px-sp-svc-plate { display: block; overflow: visible; }
  .pxtop .px-services-26, .pxtop .px-services-37 { display: contents; }
  .pxtop .px-services-1 .pxrowbody > .px-stack-10:first-child { gap: 5px; min-width: 0; }
  .pxtop .px-services-1 .pxrowbody > .px-stack-10:last-child { grid-column: 1 / -1; margin-top: 10px; }
  .pxtop .px-services-27, .pxtop .px-services-38, .pxtop .px-services-41, .pxtop .px-services-44, .pxtop .px-services-47 { font-size: 11px; }
  .pxtop .px-services-28 { font-size: min(23px, calc((100vw - 196px) / 8)); } /* 360 幅でも「安全・ガバナンス」を1行に */
  .pxtop .px-services-29 { font-size: 12px; line-height: 1.5; }
  .pxtop .px-services-1 .px-area-h3 { font-size: 16.5px; line-height: 1.65; white-space: normal; }
  .pxtop .px-services-1 .px-area-text { font-size: 14.5px; line-height: 1.95; letter-spacing: 0.01em; }
  .pxtop .px-services-30 { flex-direction: column; align-items: stretch; gap: 18px; margin-top: 6px; }
  .pxtop .px-services-31 { flex-direction: column; align-items: flex-start; gap: 8px; line-height: 1.6; }
  .pxtop .px-services-32, .pxtop .px-services-39, .pxtop .px-services-42, .pxtop .px-services-45, .pxtop .px-services-48 { font-size: 11px; padding: 3px 10px; }
  .pxtop .px-services-33 { white-space: normal; }
  .pxtop .px-services-34 { align-self: flex-end; }
  .pxtop .px-services-35 { width: 30px; height: 30px; }

  /* ---- 事業：最後の相談カード ---- */


  /* 相談の帯の上の余白（帯そのものは 06b-midcta.css） */
  .pxtop .px-cta-wrap { margin-top: 8px; }

  /* -- 04-cases.css -- */
  /* ---- 支援事例（cases）---- */
  /* 外枠：ボタンをカードの下へ回すため、見出し行を display: contents にして並べ替え */
  .pxtop .px-sp-cases-inner { padding: 84px 0 84px; display: flex; flex-direction: column; }
  .pxtop .px-sp-cases-inner .px-cases-1 { display: contents; }
  .pxtop .px-sp-cases-inner .px-head { order: 0; padding: 0 20px; display: grid; grid-template-columns: 1fr auto; align-items: end; row-gap: 20px; }
  .pxtop .px-sp-cases-inner .px-label { grid-column: 1 / -1; gap: 12px; font-size: 11px; }
  .pxtop .px-sp-cases-inner .px-label-rule { width: 24px; }
  .pxtop .px-sp-cases-inner .px-h2 { font-size: 28px; line-height: 1.46; }
  /* 見出し右の位置表示（静的） */
  .pxtop .px-sp-cases-counter { padding-bottom: 10px; font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.12em; color: #6A6F88; white-space: nowrap; }
  /* カード列：横スクロール＋スナップ */
  .pxtop .px-cases-3 { order: 1; margin-top: 32px; display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: 20px; padding: 0 20px 4px; scrollbar-width: none; }
  .pxtop .px-cases-3::-webkit-scrollbar { display: none; }
  /* カード */
  .pxtop .px-case-card { scroll-snap-align: start; flex-shrink: 0; width: 276px; box-sizing: border-box; min-height: 330px; padding: 22px; border-radius: 18px; }
  .pxtop .px-case-card:hover { transform: none; }
  .pxtop .px-cases-5 { font-size: 11px; }
  .pxtop .px-cases-6 { width: 120px; height: 136px; margin: -4px -6px -6px 0; }
  .pxtop .px-cases-7 { gap: 14px; }
  .pxtop .px-cases-8 { font-size: 12px; }
  .pxtop .px-cases-9, .pxtop .px-cases-12, .pxtop .px-cases-13, .pxtop .px-cases-14, .pxtop .px-cases-15 { padding: 3px 11px; }
  .pxtop .px-case-title { min-height: 86px; line-height: 1.65; }
  .pxtop .px-cases-11 { padding-top: 14px; }
  /* 「事例をもっと見る」：カードの下に全幅 */
  .pxtop .px-cases-2 { order: 2; margin: 28px 20px 0; display: flex; justify-content: space-between; padding: 13px 18px 13px 24px; background: #FFFFFF; }

  /* -- 05-why.css -- */
  /* ---- 選ばれる理由（why）---- */
  /* 外枠 */
  .pxtop .px-why-1 { padding: 0 8px; }
  .pxtop .px-why-2 { border-radius: 28px; }
  .pxtop .px-why-3 { background: radial-gradient(360px 300px at 0% 0%, rgba(123,47,247,0.26), transparent 70%), radial-gradient(420px 420px at 100% 60%, rgba(0,180,255,0.14), transparent 70%); }
  .pxtop .px-why-4 { padding: 72px 14px 28px; }
  /* 見出し */
  .pxtop .px-why-4 .px-head { padding: 0 6px; gap: 20px; }
  .pxtop .px-why-5 { gap: 12px; font-size: 11px; color: rgba(255,255,255,0.66); }
  .pxtop .px-why-7 { width: 24px; }
  .pxtop .px-why-4 .px-h2 { font-size: 28px; line-height: 1.46; }
  /* 線の束（スマホ用 SVG） */
  .pxtop .px-sp-why-lines { display: block; margin: 4px -14px 0; }
  /* カードを縦 1 列に */
  .pxtop .px-why-8 { margin-top: 12px; grid-template-columns: minmax(0, 1fr); gap: 12px; }
  /* 01 RESEARCH */
  .pxtop .px-why-9 { border-radius: 20px; }
  .pxtop .px-why-10 { right: -90px; top: -90px; width: 280px; height: 280px; }
  .pxtop .px-why-11 { padding: 28px 24px 24px; }
  .pxtop .px-why-12 { font-size: 11px; }
  .pxtop .px-why-13 { margin-top: 30px; }
  .pxtop .px-why-14 { gap: 4px; }
  .pxtop .px-why-15 { font-size: 92px; }
  .pxtop .px-why-16 { font-size: 22px; }
  .pxtop .px-why-17 { margin-top: 12px; font-size: 12px; }
  .pxtop .px-why-18 { margin-top: 0; padding-top: 26px; }
  .pxtop .px-why-19 { font-size: 20px; line-height: 1.6; }
  .pxtop .px-why-20 { font-size: 11px; }
  .pxtop .px-why-21 { margin-top: 12px; font-size: 14.5px; line-height: 1.95; color: rgba(255,255,255,0.8); }
  .pxtop .px-why-22 { padding: 14px 24px 16px; }
  .pxtop .px-why-23 { font-size: 11.5px; }
  /* 02 SECURITY / 03 DESIGN */
  .pxtop .px-why-24 { grid-template-rows: none; gap: 12px; }
  .pxtop .px-why-25 { border-radius: 20px; padding: 26px 24px; }
  .pxtop .px-why-26 { flex-direction: column; align-items: stretch; gap: 16px; }
  .pxtop .px-why-27 { justify-content: space-between; gap: 0; font-size: 11px; }
  .pxtop .px-why-28 { display: none; }
  .pxtop .px-why-29 { flex-direction: row-reverse; justify-content: flex-end; }
  .pxtop .px-why-30 { text-align: left; }
  .pxtop .px-why-26 > svg { width: 120px; height: 59px; align-self: flex-start; }
  .pxtop .px-why-32 { margin-top: 18px; font-size: 19px; line-height: 1.6; white-space: normal; }
  .pxtop .px-why-33 { margin-top: 10px; line-height: 1.95; color: rgba(255,255,255,0.8); }

  /* -- 06-message.css -- */
  /* ---- 代表メッセージ（message）---- */
  /* 縦 1 列：ラベル → 写真 → 本文 → 署名 の順に並べ替え */
  .pxtop .px-message-1 { padding: 84px 20px 44px; display: flex; flex-direction: column; }
  .pxtop .px-message-5 { display: contents; }
  .pxtop .px-message-5 .px-label { order: 0; gap: 12px; font-size: 11px; }
  .pxtop .px-message-5 .px-label-rule { width: 24px; }
  /* 写真 */
  .pxtop .px-message-1 > .px-rel { order: 1; margin-top: 28px; }
  .pxtop .px-message-2 { border-radius: 20px; height: 400px; }
  .pxtop .px-message-3 { object-position: 50% 12%; }
  .pxtop .px-message-4 { left: -6px; bottom: 28px; padding: 7px 12px; font-size: 10px; }
  /* 本文 */
  .pxtop .px-message-6 { order: 2; margin-top: 32px; font-size: 20.5px; letter-spacing: 0.02em; }
  /* 署名・経歴・ボタン */
  .pxtop .px-message-8 { order: 3; margin-top: 30px; padding-top: 22px; display: flex; flex-direction: column; gap: 16px; }
  .pxtop .px-message-9 { gap: 4px; }
  .pxtop .px-message-10 { font-size: 12px; }
  .pxtop .px-message-11 { font-size: 22px; }
  .pxtop .px-message-12 { font-size: 12px; }
  .pxtop .px-message-13 { align-items: stretch; gap: 16px; }
  .pxtop .px-message-14 { font-size: 14px; line-height: 1.95; letter-spacing: 0.01em; }
  .pxtop .px-message-15 { margin-top: 6px; display: flex; justify-content: space-between; padding: 13px 18px 13px 24px; background: #FFFFFF; }

  /* -- 06b-midcta.css -- */
  /* 相談の帯（仕上げ版のスマホ。共通部品 .px-cta：5つの支援領域の下＝濃紺、代表メッセージの後＝白）
   * 文 → 56px → ボタン（横幅いっぱい）の縦積み。枠は 1px のグラデーション。「ひらく線」はスマホ用の SVG を帯の下側 130px に固定。 */
  .pxtop .px-cta { flex-direction: column; align-items: stretch; gap: 0; padding: 24px 22px 20px; border-radius: 22px; }
  .pxtop .px-cta-border { border-radius: 22px; }
  .pxtop .px-cta--dark, .pxtop .px-cta--dark:hover, .pxtop .px-cta--dark:focus-visible { box-shadow: 0 30px 60px -30px rgba(61,90,254,0.55); }
  .pxtop .px-cta--light, .pxtop .px-cta--light:hover, .pxtop .px-cta--light:focus-visible { box-shadow: 0 28px 60px -30px rgba(46,58,160,0.32); }
  .pxtop .px-cta:hover, .pxtop .px-cta:focus-visible { transform: none; }
  .pxtop .px-cta--dark .px-cta-glow { background: radial-gradient(300px 200px at 0% 100%, rgba(123,47,247,0.42), transparent 70%), radial-gradient(300px 220px at 100% 100%, rgba(0,180,255,0.28), transparent 70%); }
  .pxtop .px-cta--light .px-cta-glow { background: radial-gradient(260px 180px at 100% 100%, rgba(0,180,255,0.10), transparent 70%), radial-gradient(260px 180px at 30% 120%, rgba(123,47,247,0.10), transparent 70%); }
  .pxtop .px-cta-lines-sp { position: absolute; left: 0; bottom: 0; width: 100%; height: 130px; }
  .pxtop .px-cta-text { max-width: none; }
  .pxtop .px-cta-title { font-size: 17px; line-height: 1.65; }
  .pxtop .px-cta--light .px-cta-title { font-size: 19px; }
  .pxtop .px-cta-note { font-size: 13px; max-width: none; }
  .pxtop .px-cta--dark .px-cta-note { color: rgba(255,255,255,0.78); }
  .pxtop .px-cta-action { margin-top: 56px; }
  .pxtop .px-cta .px-cta-btn, .pxtop .px-cta--dark:hover .px-cta-btn, .pxtop .px-cta--light:hover .px-cta-btn { display: flex; justify-content: space-between; padding: 8px 8px 8px 28px; white-space: normal; transform: none; }
  .pxtop .px-cta--dark .px-cta-btn, .pxtop .px-cta--dark:hover .px-cta-btn { box-shadow: 0 0 0 6px rgba(143,162,255,0.22), 0 18px 40px -14px rgba(61,90,254,0.8); }
  .pxtop .px-cta--light .px-cta-btn, .pxtop .px-cta--light:hover .px-cta-btn { box-shadow: 0 0 0 6px rgba(61,90,254,0.12), 0 18px 40px -14px rgba(61,90,254,0.8); }
  .pxtop .px-cta:hover .px-cta-arrow { transform: none; }
  /* 代表メッセージの後の帯 */
  .pxtop .px-midcta-inner { padding: 0 20px 84px; }

  /* -- 07-process.css -- */
  /* 05 支援の進め方：縦のタイムライン */
  /* 見出しまわり */
  .pxtop .px-process-1 .px-inner-148 { padding: 84px 20px 84px; }
  .pxtop .px-process-2 { display: flex; flex-direction: column; gap: 20px; }
  .pxtop .px-process-2 .px-head { gap: 20px; }
  .pxtop .px-process-2 .px-label { font-size: 11px; gap: 12px; }
  .pxtop .px-process-2 .px-label-rule { width: 24px; }
  .pxtop .px-process-2 .px-h2 { font-size: 28px; line-height: 1.46; }
  .pxtop .px-process-3 { margin: 0; font-size: 14.5px; line-height: 1.95; letter-spacing: 0.01em; text-wrap: pretty; }
  .pxtop .px-process-3 br { display: none; }
  /* 縦の線 */
  .pxtop .px-process-5 { margin-top: 44px; padding-left: 30px; }
  .pxtop .px-process-6 { left: 9px; right: auto; top: 20px; bottom: -84px; width: 2px; height: auto; background: linear-gradient(180deg, #7B2FF7 0%, #3D5AFE 45%, #00B4FF 82%, rgba(0,180,255,0) 100%); }
  /* 各ステップ：左に番号、右に STEP・見出し・説明 */
  .pxtop .px-process-7 { display: block; }
  .pxtop .px-step { display: grid; grid-template-columns: 76px 1fr; grid-template-rows: auto auto auto; align-content: start; column-gap: 8px; row-gap: 6px; padding: 0 0 34px; }
  .pxtop .px-step:last-child { padding-bottom: 0; }
  .pxtop .px-step > span:first-child { grid-column: 1; grid-row: 1 / span 3; font-size: 50px; }
  .pxtop .px-step > span:nth-child(n+3) { grid-column: 2; }
  .pxtop .px-step > span:nth-child(3) { margin-top: 4px; font-size: 11px; }
  .pxtop .px-step .px-process-13 { font-size: 18.5px; }
  .pxtop .px-step .px-process-14 { font-size: 14px; text-wrap: wrap; }
  /* 線の上の丸 */
  .pxtop .px-step .px-process-9 { position: absolute; left: -29px; top: 15px; width: 18px; height: 18px; margin: 0; }
  .pxtop .px-process-9 > span:first-child { left: 0; top: 0; width: 18px; height: 18px; background: #F3F4F9; }
  .pxtop .px-process-9 > span:last-child { left: 5px; top: 5px; }

  /* -- 08-careers.css -- */
  /* 06 採用：カードを縦積み、写真は 2×2 */
  .pxtop .px-careers-1 { padding: 64px 12px 0; }
  .pxtop .px-careers-2 { background: radial-gradient(260px 240px at 6% 12%, rgba(123,47,247,0.95), transparent 70%), radial-gradient(300px 280px at 20% 100%, rgba(255,120,200,0.55), transparent 70%), radial-gradient(320px 280px at 90% 6%, rgba(61,90,254,0.95), transparent 70%), radial-gradient(320px 320px at 100% 92%, rgba(0,200,255,0.9), transparent 70%), #3D5AFE; padding: 48px 20px 22px; grid-template-columns: 1fr; row-gap: 34px; column-gap: 0; align-items: stretch; }
  /* 背景の線（スマホ用 SVG） */
  .pxtop .px-sp-careers-lines { position: absolute; right: 0; top: 0; opacity: 0.5; }
  /* 文章とボタン */
  .pxtop .px-careers-4 { gap: 18px; }
  .pxtop .px-careers-5 { font-size: 11px; gap: 12px; color: rgba(255,255,255,0.92); }
  .pxtop .px-careers-7 { width: 24px; }
  .pxtop .px-careers-8 { font-size: 27px; line-height: 1.46; }
  .pxtop .px-careers-9 { font-size: 14.5px; line-height: 1.95; letter-spacing: normal; color: rgba(255,255,255,0.96); }
  .pxtop .px-careers-10 { margin-top: 6px; gap: 16px; padding: 7px 7px 7px 26px; font-size: 15px; box-shadow: 0 18px 40px -18px rgba(10,12,60,0.6); }
  .pxtop .px-careers-11 { width: 42px; height: 42px; }
  .pxtop .px-careers-11 .px-ico { width: 14px; height: 14px; }
  /* 写真：5〜8枚目は出さない */
  .pxtop .px-careers-12 { grid-template-columns: repeat(2, 1fr); }
  .pxtop .px-careers-12 > :nth-child(n+5) { display: none; }
  .pxtop .px-careers-13 { box-shadow: 0 12px 24px -16px rgba(10,12,60,0.6); }
  .pxtop .px-careers-16 { width: 84px; height: 95px; }
  .pxtop .px-careers-17 { color: rgba(255,255,255,0.9); }

  /* -- 09-news.css -- */
  /* 07 ニュース：見出しの下に一覧、1行を「日付＋種別／見出し」の2段に */
  .pxtop .px-news-1 { display: block; padding: 84px 20px 0; }
  .pxtop .px-news-2 { gap: 20px; }
  .pxtop .px-news-2 .px-label { font-size: 11px; gap: 12px; }
  .pxtop .px-news-2 .px-label-rule { width: 24px; }
  .pxtop .px-news-2 .px-h2 { font-size: 28px; line-height: 1.46; }
  .pxtop .px-news-2 .px-h2 br { display: none; }
  .pxtop .px-news-3 { margin-top: 30px; }
  .pxtop .px-news-row { grid-template-columns: auto 1fr 20px; column-gap: 12px; row-gap: 8px; padding: 20px 0; }
  .pxtop .px-news-4 { grid-column: 1; grid-row: 1; font-size: 12px; }
  .pxtop .px-news-5 { grid-column: 2; grid-row: 1; font-size: 11px; padding: 2px 10px; }
  .pxtop .px-news-6 { grid-column: 1 / 3; grid-row: 2; font-size: 15.5px; line-height: 1.7; }
  .pxtop .px-news-row .px-ico { grid-column: 3; grid-row: 1 / 3; }

  /* -- 10-knowledge.css -- */
  /* 08 ナレッジ：見出し・副題・タグを縦積み、カードは横スクロール */
  .pxtop .px-knowledge-1 { padding: 84px 0 84px; }
  .pxtop .px-knowledge-2 { display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 20px; padding: 0 20px; }
  .pxtop .px-knowledge-2 .px-head { gap: 20px; }
  .pxtop .px-knowledge-2 .px-label { font-size: 11px; gap: 12px; }
  .pxtop .px-knowledge-2 .px-label-rule { width: 24px; }
  /* 見出しと副題（副題は別の行に） */
  .pxtop .px-knowledge-3 { font-size: 28px; line-height: 1.46; flex-direction: column; align-items: flex-start; gap: 12px; }
  .pxtop .px-knowledge-4 { display: block; font-size: 14.5px; line-height: 1.95; font-weight: 400; letter-spacing: 0.01em; font-feature-settings: normal; }
  .pxtop .px-knowledge-5 { display: none; }
  /* タグ */
  .pxtop .px-knowledge-6 { flex-wrap: wrap; margin-bottom: 0; }
  .pxtop .px-knowledge-7 { font-size: 12.5px; padding: 6px 15px; }
  /* カード：横スクロール（scroll-snap） */
  .pxtop .px-knowledge-9 { margin-top: 32px; display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: 20px; padding: 0 20px 4px; scrollbar-width: none; }
  .pxtop .px-knowledge-9::-webkit-scrollbar { display: none; }
  .pxtop .px-kn-card { scroll-snap-align: start; flex-shrink: 0; width: 276px; gap: 14px; }
  .pxtop .px-kn-card > div { height: 168px; }
  .pxtop .px-knowledge-11 { left: 14px; top: 12px; font-size: 10.5px; }
  .pxtop .px-knowledge-12 { right: 14px; bottom: 12px; font-size: 18px; }
  .pxtop .px-knowledge-13 { padding: 0 2px 16px; }
  .pxtop .px-knowledge-14 { font-size: 16.5px; }

  /* -- 11-contact.css -- */
  /* ===== 11 お問い合わせ（スマホ） ===== */
  /* 背景・線の束（線の束は HTML 側で PC 用 .px-pc／スマホ用 .px-sp の SVG を出し分け） */
  .pxtop .px-contact-2 { background: radial-gradient(380px 300px at 100% 10%, rgba(0,180,255,0.16), transparent 70%), radial-gradient(320px 300px at 60% 40%, rgba(123,47,247,0.09), transparent 70%); }
  .pxtop .px-contact-1 .px-gridlines { display: none; }
  .pxtop .px-contact-3 { padding: 76px 20px 84px; }

  /* 見出し（ラベル＋大きな英字） */
  .pxtop .px-contact-3 > .px-u-1 { gap: 14px; }
  .pxtop .px-contact-3 .px-label { gap: 12px; font-size: 11px; }
  .pxtop .px-contact-3 .px-label-rule { width: 24px; }
  .pxtop .px-contact-4 { font-size: 68px; }

  /* 本文：1 段に積む（左の説明 → フォーム） */
  .pxtop .px-contact-5 { margin-top: 60px; display: block; }
  .pxtop .px-contact-6 { gap: 18px; padding-top: 0; }
  .pxtop .px-contact-7 { font-size: 24px; }
  .pxtop .px-contact-8 { font-size: 14.5px; line-height: 1.95; }
  .pxtop .px-contact-9 { font-size: 13.5px; }

  /* 採用・営業・資料の導線（1 行 48px 以上） */
  .pxtop .px-contact-11 { margin-top: 6px; }
  .pxtop .px-contact-12,
  .pxtop .px-contact-16 { gap: 12px; min-height: 48px; padding: 16px 2px; box-sizing: content-box; }
  .pxtop .px-contact-13 { gap: 3px; }
  .pxtop .px-contact-14 { font-size: 10.5px; }
  .pxtop .px-contact-15 { font-size: 15.5px; line-height: 1.5; }
  .pxtop .px-contact-17 { display: block; font-size: 11.5px; }
  .pxtop .px-contact-11 .px-ico { width: 14px; height: 14px; flex-shrink: 0; }

  /* フォームのカード */
  .pxtop .px-contact-18 { margin-top: 34px; border-radius: 20px; padding: 22px 18px 24px; box-shadow: 0 30px 60px -40px rgba(30,40,120,0.4); }

  /* 「AIで下書き」ボタン（アイコンなし・文言は 2 行） */
  .pxtop .px-contact-19 { margin-bottom: 6px; }
  .pxtop .px-contact-20 { gap: 12px; padding: 14px 16px; }
  .pxtop .px-contact-21 { flex-direction: column; align-items: flex-start; gap: 2px; }
  .pxtop .px-contact-21 > svg { display: none; }
  .pxtop .px-contact-22 { font-size: 14px; line-height: 1.55; white-space: normal; }
  .pxtop .px-contact-23 { font-size: 11.5px; }

  /* 入力欄：ラベルを上に、文字は 16px（iOS の拡大を防ぐ） */
  .pxtop .px-field,
  .pxtop .px-contact-27 { grid-template-columns: 1fr; row-gap: 8px; }
  .pxtop .px-field-label,
  .pxtop .px-contact-28 { gap: 8px; font-size: 14px; padding-top: 0; }
  .pxtop .px-req,
  .pxtop .px-contact-25 { font-size: 10.5px; padding: 2px 7px; }
  .pxtop .px-input { padding: 0 14px; font-size: 16px; }
  .pxtop .px-contact-26 { padding: 0 40px 0 14px; font-size: 16px; background-position: calc(100% - 22px) 22px, calc(100% - 16px) 22px; }
  .pxtop .px-contact-29 { display: block; height: 148px; padding: 12px 14px; font-size: 16px; line-height: 1.75; }

  /* 同意と送信（送信ボタンは横幅いっぱい） */
  .pxtop .px-contact-30 { flex-direction: column; align-items: stretch; gap: 18px; margin-top: 4px; }
  .pxtop .px-contact-form .wpcf7-acceptance label { min-height: 44px; font-size: 13.5px; }
  .pxtop .px-contact-form .wpcf7-acceptance input { width: 20px; height: 20px; flex-shrink: 0; }
  .pxtop .px-contact-33 { display: flex; justify-content: space-between; padding: 7px 7px 7px 28px; font-size: 15.5px; box-shadow: 0 16px 34px -14px rgba(61,90,254,0.65); }

  /* -- 12-footer.css -- */
  /* ===== 12 フッター（スマホ） ===== */
  .pxtop .px-footer-2 { border-radius: 28px 28px 0 0; }
  .pxtop .px-footer-3 { background: radial-gradient(360px 300px at 100% 100%, rgba(61,90,254,0.28), transparent 70%), radial-gradient(320px 280px at 0% 100%, rgba(123,47,247,0.22), transparent 70%); }
  .pxtop .px-footer-4 { padding: 52px 20px 0; display: block; }

  /* ロゴ・グループ会社の表記（縦に積む） */
  .pxtop .px-footer-4 > .px-u-1 { gap: 22px; align-items: flex-start; }
  .pxtop .px-footer-5 { font-size: 27px; }
  .pxtop .px-footer-5 .px-logo-img { height: 33px; }
  .pxtop .px-footer-6 { flex-direction: column; align-items: flex-start; gap: 12px; }
  .pxtop .px-footer-7 { padding: 7px 10px; }
  .pxtop .px-footer-8 { height: 20px; }
  .pxtop .px-footer-9 { font-size: 12px; line-height: 1.75; color: rgba(255,255,255,0.74); }

  /* メニュー：2 列のリスト（1 行 48px） */
  .pxtop .px-footer-10 { margin-top: 36px; border-top: 1px solid rgba(255,255,255,0.12); grid-template-columns: 1fr 1fr; column-gap: 20px; row-gap: 0; }
  .pxtop .px-foot-link { display: flex; align-items: center; min-height: 48px; border-bottom: 1px solid rgba(255,255,255,0.08); color: rgba(255,255,255,0.88); }

  /* コピーライト行 */
  .pxtop .px-footer-11 { margin: 28px 20px 0; padding: 0; border-top: 0; font-size: 10px; line-height: normal; color: rgba(255,255,255,0.55); }

  /* 下の大きな ProofX */
  .pxtop .px-footer-12 { margin: 10px 0 -18px; font-size: 96px; color: rgba(255,255,255,0.06); }

}
