
@font-face{font-family:"ZOKK Head";font-style:normal;font-weight:700 900;font-display:swap;src:url(fonts/zokk-head-1.woff2) format("woff2");unicode-range:U+0020-0021,U+0023,U+0025-0026,U+0028-0029,U+002B-003B,U+003D,U+003F-005A,U+0061-007A,U+2013-2014,U+3001-3002,U+300C-300D,U+301C,U+3044,U+3048,U+304A-304B,U+3054,U+3058-3059,U+305B,U+305F,U+3067,U+306A-306B,U+306E,U+3073,U+3078,U+307E-307F,U+3088-3089,U+308B,U+308F,U+3092,U+30A2,U+30A4,U+30AB,U+30AF,U+30B5,U+30B7,U+30B9,U+30BB,U+30BE-30BF,U+30C1,U+30C3,U+30C6,U+30D0,U+30D3,U+30D5,U+30D7,U+30DD,U+30E0,U+30E9-30EA,U+30EC-30ED,U+30F3,U+30FB-30FC,U+4E00,U+4E09,U+4E0E,U+4E2A,U+4E59,U+4E73,U+4E8B,U+4EA4,U+4EBA,U+4ECB,U+4ECE,U+4EF6,U+4F1A,U+4F4D,U+4F53,U+4F5C,U+4F7F,U+4F9B,U+4FDD,U+4FE1,U+4FEE,U+500B,U+5148-5149,U+5168,U+516C,U+5173,U+5177,U+5185,U+5206,U+5229,U+5230,U+5236,U+524A,U+529B,U+529F,U+52A9,U+52D9,U+52DF,U+52E4,U+5316,U+53CA,U+53D6-53D7,U+53E3,U+53F8,U+5408,U+5411,U+54C1,U+554F,U+57DF,U+5831,U+58EB,U+5916,U+59D4,U+5B50,U+5B58,U+5B89,U+5B9A,U+5BFE,U+5DE5,U+5DF4,U+5F00,U+5F0F,U+5F37,U+5F69,U+5F97,U+5FAE,U+5FC5,U+5FDC,U+6027,U+606F,U+60C5,U+6211,U+6258,U+6280,U+62AB,U+62DB,U+62F6,U+6301,U+6309,U+6328,U+63A1,U+63A5,U+63AA,U+63D0,U+652F,U+6539,U+653F,U+65AD,U+65B9,U+65BD,U+662D,U+66F4,U+670D,U+671F,U+672C,U+6761,U+6790,U+67D4,U+6848,U+696D,U+6A5F,U+6B53,U+6B63,U+6CD5,U+6D3B,U+6D41,U+7075,U+73E0,U+7406,U+751F,U+7523,U+7528,U+767A,U+7684,U+76EE,U+76F8,U+7740,U+7814,U+78C1,U+793A,U+793E,U+79C1,U+79D1,U+7A0B,U+7A2E,U+7A76,U+7A93,U+7B2C,U+7B49,U+7B56,U+7BA1,U+7C92,U+7CFB,U+7D4C,U+7F6E,U+8003,U+8005,U+8058,U+805A,U+8077,U+80F6,U+80FD,U+81F4,U+8272,U+82EF,U+85AC,U+86CD,U+884C,U+8853,U+88DC,U+88FD,U+89E3,U+8A02,U+8A08,U+8A17,U+8A2D,U+8A3A,U+8A66,U+8CAB,U+8ECA,U+8EDF,U+8F66,U+8F9E,U+8FCE,U+9014,U+901A,U+9020,U+9023,U+9078,U+90E8,U+91CE-91CF,U+958B,U+9593,U+95A2,U+9650,U+9664,U+96C6,U+96FB,U+9732,U+9808,U+9A13,U+FF01,U+FF03,U+FF05-FF06,U+FF08-FF09,U+FF0B-FF0C,U+FF0E,U+FF1A-FF1B,U+FF1D,U+FF1F-FF20,U+FF3B,U+FF3D}
@font-face{font-family:"ZOKK Head";font-style:normal;font-weight:700 900;font-display:swap;src:url(fonts/zokk-head-2.woff2) format("woff2");unicode-range:U+4EA7,U+4EEC,U+4F18,U+5220,U+5242,U+52A1,U+52BF,U+53D1,U+5C97,U+5E94,U+672F,U+68C0,U+6D4B,U+70EF,U+7535,U+7ECD,U+7ECF,U+8054,U+8367,U+83B7,U+8BA1-8BA2,U+8BBE-8BBF,U+8BCA,U+8BD5,U+8F85,U+94FE,U+95EE,U+9690,U+987B,U+9886,U+9A7E,U+9A8C}

:root{--ink:#17293b;--ink-soft:#4a5d70;--blue:#0068B7;--blue-d:#00538f;--paper:#fff;--mist:#f5f7f9;--mist2:#eef2f6;--line:#e5e9ee}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Yu Gothic",YuGothic,"Noto Sans JP","PingFang SC","Microsoft YaHei",Meiryo,sans-serif;color:var(--ink);background:#fff;line-height:1.85;font-size:17px;-webkit-font-smoothing:antialiased}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:22px;height:92px}
.logo img{height:54px;width:auto;display:block}
.head-co{display:flex;align-items:baseline;gap:7px;color:var(--ink);white-space:nowrap}
.head-co:before{content:"";width:1px;height:34px;background:var(--line);align-self:center;margin-right:15px}
.hc-nm{font-size:24px;font-weight:700;letter-spacing:.04em}
.hc-sub{font-size:13px;font-weight:700;letter-spacing:.06em;color:#61758a}
nav.main{display:flex;gap:28px;white-space:nowrap;margin-left:auto;font-size:15.5px;font-weight:400;order:2}
nav.main a{color:var(--ink);padding:34px 0;border-bottom:2px solid transparent;transition:.15s}
nav.main a:hover,nav.main a.active{color:var(--blue);border-color:var(--blue)}
.lang{display:flex;gap:2px;white-space:nowrap}
.lang.desktop{order:3;margin-left:20px}
.bar .menu-btn{order:4}
.lang a{font-size:13.5px;font-weight:400;padding:7px 11px;color:var(--ink-soft);border-radius:4px;display:inline-block}
.lang a[aria-current="true"]{color:var(--blue);font-weight:700}
.menu-btn{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:6px}
.drawer{display:none;border-top:1px solid var(--line);background:#fff;max-height:calc(100vh - 70px);overflow-y:auto}
.drawer.open{display:block}
.drawer nav{display:flex;flex-direction:column;padding:6px 0}
.drawer nav a{padding:15px 2px;border-bottom:1px solid var(--line);font-size:16px;font-weight:700;color:var(--ink)}
.drawer .lang{margin:16px 0 20px;gap:6px}
.drawer .lang a{border:1px solid var(--line);padding:9px 14px;font-size:14px;border-radius:4px}
.drawer .lang a[aria-current="true"]{border-color:var(--blue)}
.menu-btn span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0}
.btn{display:inline-block;font-size:15px;font-weight:700;padding:14px 32px;border-radius:4px;transition:.18s;border:1.5px solid transparent;cursor:pointer;text-align:center}
.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-d)}
.btn-ghost{border-color:rgba(255,255,255,.85);color:#fff}.btn-ghost:hover{background:rgba(255,255,255,.14)}
.btn-o{border-color:var(--line);color:var(--ink);background:#fff}.btn-o:hover{border-color:var(--blue);color:var(--blue)}
/* hero */
.hero{position:relative;min-height:560px;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.hero .bg{position:absolute;inset:0;background:#17293b}
.hero .bg img{width:100%;height:100%;object-fit:cover}
.hero .bg:after{content:"";position:absolute;inset:0;background:linear-gradient(95deg,rgba(9,20,32,.74),rgba(9,20,32,.42) 46%,rgba(9,20,32,.12))}
.hero .inner{position:relative;z-index:2;padding-bottom:76px;text-shadow:0 2px 24px rgba(0,0,0,.3)}
.hero-nm .en{display:flex;align-items:baseline;gap:14px;color:#fff}
.hero-nm .en b{font-size:clamp(40px,5.6vw,66px);font-weight:700;letter-spacing:.03em;line-height:1.1}
.hero-nm .en i{font-size:clamp(17px,2.2vw,27px);font-weight:700;font-style:normal;letter-spacing:.06em;color:rgba(255,255,255,.78)}
.hero-nm .ja{font-size:13.5px;letter-spacing:.16em;color:rgba(255,255,255,.7);margin-top:9px}
.hero-nm .ja:empty{display:none}
.hero-nm:after{content:"";display:block;width:34px;height:2px;background:var(--blue);margin:24px 0 18px}
.hero h1{font-size:clamp(19px,2.3vw,27px);font-weight:700;line-height:1.5;letter-spacing:.02em;margin-bottom:14px}
.hero p{font-size:15px;max-width:32em;margin-bottom:28px;line-height:1.9;color:rgba(255,255,255,.82)}
.cta-row{display:flex;gap:14px;flex-wrap:wrap}
section{padding:100px 0}
.lead-head{margin-bottom:52px}
.lead-head h2{font-size:clamp(24px,3vw,32px);font-weight:900;letter-spacing:.02em;font-family:"ZOKK Head","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Yu Gothic",YuGothic,"Noto Sans JP","PingFang SC","Microsoft YaHei",Meiryo,sans-serif}
.lead-head h2:after{content:"";display:block;width:46px;height:3px;background:var(--blue);margin-top:18px}
.lead-head p{font-size:16px;color:var(--ink-soft);max-width:46em;margin-top:20px}
.pcards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
a.pcard{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff;transition:box-shadow .2s,transform .2s;display:block}
a.pcard:hover{box-shadow:0 12px 32px -18px rgba(23,41,59,.4)}
.pcard .im{aspect-ratio:4/3;overflow:hidden;background:var(--mist2)}
.pcard .im img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
a.pcard:hover .im img{transform:scale(1.04)}
.pcard .tx{padding:26px}
.pcard h3{font-size:19px;font-weight:700;margin-bottom:10px}
.pcard p{font-size:14.5px;color:var(--ink-soft);line-height:1.8;text-wrap:balance}
.abt{background:var(--mist)}
.abt-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.abt p{font-size:16px;color:var(--ink-soft);margin-bottom:22px}
.morelink{font-weight:700;color:var(--blue);font-size:15px}
.prof{width:100%;border-collapse:collapse}
.prof th,.prof td{text-align:left;padding:15px 0;border-bottom:1px solid var(--line);font-size:14.5px;vertical-align:top}
.prof th{width:1%;white-space:nowrap;padding-right:32px;font-weight:700;color:var(--ink)}
.prof td{color:var(--ink-soft)}
.nw{white-space:nowrap}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.duo .box{border:1px solid var(--line);border-radius:6px;padding:44px 40px}
.duo h3{font-size:22px;font-weight:700;margin-bottom:14px}
.duo p{font-size:15px;color:var(--ink-soft);margin-bottom:26px}
.subhead{background:var(--mist);border-bottom:1px solid var(--line);padding:64px 0}
.subhead h1{font-size:clamp(26px,3.4vw,36px);font-weight:900;letter-spacing:.02em;font-family:"ZOKK Head","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Yu Gothic",YuGothic,"Noto Sans JP","PingFang SC","Microsoft YaHei",Meiryo,sans-serif}
.subhead p{color:var(--ink-soft);font-size:16px;margin-top:16px;max-width:48em}
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:6px}
table.data{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
table.data th{background:var(--mist2);color:var(--ink);font-weight:700;font-size:13px;padding:14px;text-align:center;vertical-align:middle;white-space:nowrap;border-bottom:2px solid var(--line)}
table.data td{padding:13px 14px;border-bottom:1px solid var(--line);color:var(--ink-soft);text-align:center;vertical-align:middle}
table.data td.name{font-weight:700;color:var(--ink)}
table.data tr:last-child td{border-bottom:0}
.tbl-note{font-size:13px;color:var(--ink-soft);margin-top:12px}
.tech-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.figimg{overflow:hidden;border-radius:6px;border:1px solid var(--line)}
.figimg img{width:100%;height:380px;object-fit:cover;display:block}
figcaption{font-size:13px;color:var(--ink-soft);margin-top:10px}
.use-hero{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-bottom:44px}
.use-hero h4{font-size:20px;margin-bottom:12px}
.use-hero p{font-size:15.5px;color:var(--ink-soft)}
.use-hero .figimg img{height:340px}
.uses2{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.officer-row{display:grid;grid-template-columns:230px 1fr;gap:40px;padding:32px 0;border-top:1px solid var(--line)}
.officer-row:last-child{border-bottom:1px solid var(--line)}
.officer-row .r{font-size:13.5px;color:var(--ink-soft);margin-bottom:6px}
.officer-row .n{font-size:21px;font-weight:700}
.officer-row .o-bio{font-size:14.5px;color:var(--ink-soft);line-height:1.85}
table.tbl-lg{font-size:15.5px}
table.tbl-lg th{font-size:14px;padding:16px}
table.tbl-lg td{padding:16px}
table.data.ltx{table-layout:fixed}
table.data.ltx th:nth-child(1),table.data.ltx td:nth-child(1){width:12%}
table.data.ltx th:nth-child(2),table.data.ltx td:nth-child(2){width:26%}
table.data.ltx th:nth-child(3),table.data.ltx td:nth-child(3){width:31%}
table.data.ltx th:nth-child(4),table.data.ltx td:nth-child(4){width:31%}
.pblock{margin-bottom:78px}
.pblock h2{font-size:24px;font-weight:900;font-family:"ZOKK Head","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Yu Gothic",YuGothic,"Noto Sans JP","PingFang SC","Microsoft YaHei",Meiryo,sans-serif}
.pblock h2:after{content:"";display:block;width:42px;height:3px;background:var(--blue);margin:16px 0 22px}
.pblock .d{color:var(--ink-soft);font-size:15.5px;margin-bottom:28px}
.pmedia{display:grid;grid-template-columns:1fr 320px;gap:34px;align-items:start;margin-bottom:26px}
.pmedia .d{margin-bottom:0}
.pmedia figure{margin:0}
.pmedia .pimg{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--mist2)}
.pmedia .pimg img{width:100%;height:200px;object-fit:cover;display:block}
.pmedia figcaption{font-size:12px;color:var(--ink-soft);margin-top:9px;line-height:1.7}
@media(max-width:900px){.pmedia{grid-template-columns:1fr;gap:18px}}
.uses{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.usebox{border-top:2px solid var(--blue);padding-top:22px}
.usebox h4{font-size:17px;margin-bottom:10px}.usebox p{font-size:14px;color:var(--ink-soft)}
.jlead{font-size:14.5px;color:var(--ink-soft);margin:0 0 8px;line-height:1.8}
.officers{display:flex;gap:16px;flex-wrap:wrap;margin-top:6px}
.offc{border:1px solid var(--line);border-radius:6px;padding:22px 30px;min-width:200px}
.offc .r{font-size:13px;color:var(--ink-soft);margin-bottom:6px}
.offc .n{font-size:18px;font-weight:700}
.acc-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center}
.acc-grid img{width:100%;height:320px;object-fit:cover;border-radius:6px}
.acc dl{display:grid;grid-template-columns:auto 1fr}
.acc dt{font-weight:700;padding:14px 24px 14px 0;border-bottom:1px solid var(--line);white-space:nowrap}
.acc dd{padding:14px 0;border-bottom:1px solid var(--line);color:var(--ink-soft)}
.tabs{display:flex;gap:12px;margin-bottom:36px;flex-wrap:wrap}
.tab-btn{font-weight:700;font-size:15px;padding:13px 28px;border:1.5px solid var(--line);border-radius:4px;background:#fff;color:var(--ink-soft);cursor:pointer}
.tab-btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}
/* JSが無効でも全求人が読めるよう、既定では全て表示。JS有効時のみタブ切替 */
.job{display:block}
.job+.job{margin-top:56px;padding-top:8px;border-top:1px solid var(--line)}
.tabs{display:none}
html.js .tabs{display:flex}
html.js .job{display:none;margin-top:0;padding-top:0;border-top:0}
html.js .job.active{display:block}
.jgrid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-bottom:36px}
.jgrid .c{padding:24px 28px;border-right:1px solid var(--line)}
.jgrid .c:last-child{border-right:0}
.jgrid .cl{font-size:13px;color:var(--ink-soft);margin-bottom:8px}
.jgrid .cv{font-size:19px;font-weight:700}
.jgrid .cv small{font-size:14px;color:var(--ink-soft);font-weight:400}
.jnote{display:block;font-size:12px;font-weight:400;color:var(--ink-soft);margin-top:7px;line-height:1.6}
.jsec h4{font-size:16px;font-weight:700;margin:26px 0 10px;color:var(--ink)}
.jsec p{font-size:15px;color:var(--ink-soft);margin-bottom:12px;line-height:1.85}
.jsec .jrole{font-size:16px;font-weight:700;color:var(--ink);margin-bottom:0}
.jsec .jsub{font-size:13.5px;font-weight:700;color:var(--ink);margin:14px 0 8px}
.jgrid.two-col{grid-template-columns:repeat(2,1fr)}
@media(max-width:900px){.jgrid.two-col{grid-template-columns:1fr}}
.jsec p+p{margin-top:-6px}
.cond-note-p{font-size:15px;color:var(--ink-soft);margin-top:16px;line-height:1.85}
.jsec ul+h4{margin-top:26px}
.legal h3{font-size:17px;font-weight:700;margin:34px 0 10px}
.legal p,.legal li{font-size:15px;color:var(--ink-soft)}
.legal ul{margin:0 0 0 20px}.legal li{margin-bottom:6px}
.jsec{margin-top:32px}
.jsec h3{font-size:17px;font-weight:700;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.jsec ul{list-style:none}
.jsec li{padding-left:22px;position:relative;margin-bottom:9px;font-size:15px;color:var(--ink-soft)}
.jsec li:before{content:"";position:absolute;left:3px;top:12px;width:6px;height:6px;background:var(--blue);border-radius:50%}
.cond{width:100%;border-collapse:collapse;margin-top:8px}
.cond th,.cond td{text-align:left;padding:15px 0;border-bottom:1px solid var(--line);font-size:14.5px;vertical-align:top}
.cond th{width:26%;font-weight:700}
.cond td{color:var(--ink-soft)}
.apply{background:var(--mist);border-radius:8px;padding:44px 40px;margin-top:48px}
.apply h3{font-size:20px;margin-bottom:12px}.apply p{color:var(--ink-soft);font-size:15px;margin-bottom:24px}
.mailrow{display:inline-block;font-size:16px;font-weight:700;color:var(--blue);border:1.5px solid var(--line);background:#fff;border-radius:4px;padding:14px 26px}
.cg{display:grid;grid-template-columns:1fr 1.15fr;gap:64px;align-items:start}
.cinfo .row{padding:18px 0;border-bottom:1px solid var(--line)}
.cinfo .k{font-size:13px;color:var(--ink-soft);margin-bottom:5px}
.cinfo .v{font-size:16px}.cinfo .v a{color:var(--blue);font-weight:600}
.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}
footer{background:#13212f;color:#c3d0dc}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:44px;padding:66px 0 32px}
footer .co{font-weight:700;font-size:17px;color:#fff;margin-bottom:8px}
footer .co span{display:block;font-size:13px;font-weight:400;color:#8ea3b6;margin-top:6px;line-height:1.7}
footer .fcol h4{font-size:13px;color:#8ea3b6;margin-bottom:15px;font-weight:700}
footer .fcol a,footer .fcol p{display:block;font-size:14px;color:#c3d0dc;margin-bottom:10px;line-height:1.7}
footer .fcol a:hover{color:#fff}
.foot-bot{border-top:1px solid rgba(255,255,255,.1);padding:20px 0;font-size:12.5px;color:#7c91a4}
@media(max-width:900px){
 nav.main{display:none}.menu-btn{display:block}.lang.desktop{display:none}
 section{padding:64px 0}.subhead{padding:44px 0}.pblock{margin-bottom:52px}
 .duo .box,.apply{padding:30px 24px}
 .logo img{height:40px;width:auto}
 .head-co{gap:5px}.head-co:before{height:24px;margin-right:9px}.hc-nm{font-size:18px}.hc-sub{font-size:11px}.bar{gap:13px;height:70px}.logo img{height:40px}
 .pcards,.uses,.jgrid,.abt-grid,.acc-grid,.duo,.cg,.two{grid-template-columns:1fr}
 .tech-grid,.use-hero,.uses2,.officer-row{grid-template-columns:1fr;gap:24px}
 .foot-grid{grid-template-columns:1fr}.hero{min-height:480px}
 nav.main a{padding:10px 0}
}
@media(min-width:901px){.drawer{display:none!important}}

/* ---- accessibility ---- */
:focus-visible{outline:3px solid #ffbf47;outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-9999px;top:0;background:#fff;color:var(--blue);padding:12px 18px;font-weight:700;z-index:100}
.skip:focus{left:16px;top:10px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* ---- strengths ---- */
.str-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.str{border:1px solid var(--line);border-radius:6px;padding:32px 26px;background:#fff}
.str .ic{width:44px;height:44px;margin-bottom:18px;color:var(--blue)}
.str .ic svg{width:100%;height:100%;display:block}
.str h3{font-size:17px;font-weight:700;margin-bottom:12px;line-height:1.6}
.str p{font-size:14px;color:var(--ink-soft);line-height:1.85}
/* ---- steps ---- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:26px 0 18px}
.step{border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:6px;padding:22px 20px;position:relative;background:#fff}
.step .no{font-size:12px;font-weight:700;color:var(--blue);letter-spacing:.08em;margin-bottom:8px}
.step .tt{font-size:16px;font-weight:700;line-height:1.6}
.step .ds{font-size:13px;color:var(--ink-soft);margin-top:8px;line-height:1.75}
.step:not(:last-child):after{content:"";position:absolute;right:-11px;top:50%;width:8px;height:8px;border-top:2px solid var(--line);border-right:2px solid var(--line);transform:translateY(-50%) rotate(45deg)}
/* ---- tables ---- */
table.data caption,table.cond caption,table.prof caption{text-align:left;font-size:15px;font-weight:700;padding:0 0 12px}
.tbl-scroll{font-size:13px;color:var(--ink-soft);margin-bottom:10px}
/* ---- contact ---- */
.ct-card{border:1px solid var(--line);border-radius:8px;padding:34px 32px;margin-bottom:22px;background:#fff}
.ct-card h2{font-size:19px;font-weight:700;margin-bottom:6px}
.ct-card .hint{font-size:13.5px;color:var(--ink-soft);margin-bottom:18px}
.tel-big{font-size:22px;font-weight:700;color:var(--ink);letter-spacing:.02em;display:inline-block}
.tel-big:hover{color:var(--blue)}
.mail-big{font-size:19px;font-weight:700;color:var(--blue);word-break:break-all}
.ct-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:18px}
.copy-btn{font-size:13.5px;font-weight:700;padding:12px 18px;border:1.5px solid var(--line);border-radius:4px;background:#fff;color:var(--ink-soft);cursor:pointer}
.copy-btn:hover{border-color:var(--blue);color:var(--blue)}
.ct-note{font-size:13px;color:var(--ink-soft);margin-top:12px}
.kinds{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:6px;list-style:none}
.kinds li{border:1px solid var(--line);border-radius:6px;padding:15px 18px;font-size:14.5px;font-weight:700}
.want{list-style:none}
.want li{padding-left:22px;position:relative;margin-bottom:8px;font-size:15px;color:var(--ink-soft)}
.want li:before{content:"";position:absolute;left:3px;top:12px;width:6px;height:6px;background:var(--blue);border-radius:50%}
/* ---- access ---- */
.acc-sub{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:34px}
.acc-box{border-top:2px solid var(--blue);padding-top:20px}
.acc-box h3{font-size:16px;font-weight:700;margin-bottom:12px}
.acc-box ul{list-style:none}
.acc-box li{padding-left:20px;position:relative;font-size:14.5px;color:var(--ink-soft);margin-bottom:8px;line-height:1.8}
.acc-box li:before{content:"";position:absolute;left:2px;top:11px;width:5px;height:5px;background:var(--blue);border-radius:50%}
.exlink{color:var(--blue);font-weight:600;text-decoration:underline}
@media(max-width:900px){
 .str-grid{grid-template-columns:1fr 1fr}
 .steps{grid-template-columns:1fr;gap:12px}
 .step:not(:last-child):after{right:auto;left:50%;top:auto;bottom:-10px;transform:translateX(-50%) rotate(135deg)}
 .kinds{grid-template-columns:1fr}
 .acc-sub{grid-template-columns:1fr}
 .ct-card{padding:26px 22px}
 .tel-big{font-size:21px}
 .tab-btn{padding:14px 20px;font-size:14.5px;min-height:48px}
}
@media(max-width:420px){.str-grid{grid-template-columns:1fr}}

/* ---- 受託開発セクション ---- */
.cdev{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;margin-top:30px}
.cdev .ph{margin:0}
.cdev .ph .figimg{border-radius:6px;overflow:hidden;background:var(--gray);aspect-ratio:4/3}
.cdev .ph img{width:100%;height:100%;object-fit:cover;display:block}
.cdev table.spec{width:100%;border-collapse:collapse}
.cdev table.spec caption{text-align:left;font-size:15px;font-weight:700;padding:0 0 12px}
.cdev table.spec th,.cdev table.spec td{border-bottom:1px solid var(--line);padding:13px 4px;font-size:14.5px;text-align:left;vertical-align:top}
.cdev table.spec th{width:38%;font-weight:700;color:var(--ink)}
.cdev table.spec td{color:var(--ink-soft)}
.cdev .chart{margin:0}
.cdev .chart .box{border:1px solid var(--line);border-radius:6px;background:#fff;padding:10px 14px 4px}
.cdev figcaption{font-size:12.5px;color:var(--ink-soft);margin-top:12px;line-height:1.75}
svg.corr{width:100%;height:auto;display:block;font-family:inherit}
svg.corr .g{stroke:#e9eef3;stroke-width:1}
svg.corr .ax{stroke:#c8d3de;stroke-width:1.2}
svg.corr .tk{fill:#7c8b9c;font-size:13px}
svg.corr .at{fill:var(--ink);font-size:14px;font-weight:700}
svg.corr .eq{fill:var(--blue);font-size:14.5px;font-weight:700}
svg.corr .fit{stroke:#5b6b7d;stroke-width:1.4;stroke-dasharray:5 4}
svg.corr .pt{fill:rgba(0,104,183,.18);stroke:var(--blue);stroke-width:1.6}
@media(max-width:900px){.cdev{grid-template-columns:1fr;gap:26px}svg.corr .tk{font-size:15px}svg.corr .at,svg.corr .eq{font-size:16px}}

/* ---- 日本語の折り返しを自然に（対応ブラウザのみ適用。非対応環境でも表示は崩れません） ---- */
h1,h2,h3,h4,p,li,.str h3,.step .tt,.jgrid .cv,.pcard h3{word-break:auto-phrase;line-break:strict}

.pv-page[hidden],.hd[hidden],.ft[hidden]{display:none}

/* ---- ページ切替：JS無効時は全ページを縦に表示（内容が読めなくならないように） ---- */
.pv-page{display:block}
html.js .pv-page{display:none}
html.js .pv-page.active{display:block}
