:root{
  --navy:#1f3864; --navy-deep:#16294a; --navy-soft:#33517f;
  --brand:#2b60e8; --brand-deep:#0a43d7;
  --ink:#2e323e; --body:#64666c; --ink-soft:#82868f;
  --surface:#f7f7fa; --surface-2:#f2f5fa;
  --zone-cons:#e4ecf7; --zone-ci:#fdf0d3;
  --accent:#f2b02e;
  --line:#dfe3ec; --line-soft:#eceef5; --white:#fff;
  --sans:'Work Sans',-apple-system,BlinkMacSystemFont,'Segoe UI','Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;
  --serif:'DM Serif Display',Georgia,serif;
  --wrap:1140px; --pad:clamp(20px,5vw,40px);
  /* コーポレートロゴ（tmp/ロゴ.pdf を300px幅PNG化。実装時はSVG化を推奨） */
  --logo:var(--media-logo);
  /* ヒーロー背景画像（プロトタイプ用にデータURI埋め込み。実装時はメディアライブラリ参照に置換） */
  --hero1:var(--media-hero1);
  --hero2:var(--media-hero2);
  --hero3:var(--media-hero3);
  --hero4:var(--media-hero4);
}
*,*::before,*::after{ box-sizing:border-box; }
[hidden]{ display:none !important; }
html{ -webkit-text-size-adjust:100%; }
body{ margin:0; background:var(--white); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.95; letter-spacing:.02em; }
a{ color:var(--brand); }
:focus-visible{ outline:3px solid var(--brand); outline-offset:3px; }
@media (prefers-reduced-motion: reduce){ *{ transition:none !important; scroll-behavior:auto !important; } }
h1,h2,h3,h4{ word-break:auto-phrase; line-break:strict; text-wrap:balance; font-feature-settings:"palt" 1; }
p,li,dd,dt,td,th{ word-break:auto-phrase; line-break:strict; text-wrap:pretty; }
.nb{ white-space:nowrap; }
.br-pc{ display:none; }
@media (min-width:768px){ .br-pc{ display:inline; } }

/* ===== プロトタイプ用バー（納品時に削除） ===== */

.wrap{ max-width:var(--wrap); margin:0 auto; padding-inline:var(--pad); }
.wrap--wide{ max-width:1260px; }
.band{ padding-block:clamp(56px,7.5vw,96px); }
.band--white{ background:var(--white); }
.band--surface{ background:var(--surface); }

/* ===== ヘッダー ===== */
.gnav{ background:var(--white); border-bottom:1px solid var(--line-soft); position:sticky; top:0; z-index:30; }
.gnav__in{ max-width:var(--wrap); margin:0 auto; padding:0 var(--pad); height:70px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.logo{ display:flex; align-items:center; gap:13px; text-decoration:none; cursor:pointer; }
.logo__mark{ flex:none; width:47px; height:34px; background:var(--logo) center/contain no-repeat; }
.logo span{ font-size:16.5px; color:var(--navy); font-weight:700; letter-spacing:.02em; line-height:1.35; }
.gnav ul{ list-style:none; display:flex; align-items:center; gap:23px; margin:0; padding:0; }
.gnav__in > ul{ height:100%; }
.gnav__in > ul > li{ display:flex; align-items:center; height:100%; }
.gnav a.nl{ display:flex; flex-direction:column; align-items:flex-start; gap:3px; text-decoration:none; color:var(--ink); font-size:14px; line-height:1.4; letter-spacing:.04em; cursor:pointer; }
.gnav a.nl em{ font-style:normal; font-size:10px; line-height:1.3; letter-spacing:.12em; color:var(--ink-soft); font-weight:400; }
.gnav a.nl[aria-current] em{ color:var(--brand); }
.gnav a.nl:hover{ color:var(--brand); }
.gnav a.nl[aria-current]{ color:var(--brand); font-weight:700; }
.gnav li.has-sub{ position:relative; }
.nl--parent > span::after{ content:"\25BE"; margin-left:6px; font-size:10px; color:var(--ink-soft); }
.gnav .sub{ position:absolute; top:100%; left:0; min-width:228px; z-index:40;
  display:flex; flex-direction:column; align-items:stretch; gap:0 !important; padding:4px 0; margin:0; list-style:none;
  background:var(--white); border:1px solid var(--line); box-shadow:0 14px 34px rgba(31,56,100,.16);
  opacity:0; visibility:hidden; translate:0 6px; transition:opacity .18s ease, translate .18s ease, visibility .18s; }
.gnav .sub > li{ display:block; height:auto; width:100%; }
.gnav .has-sub:hover .sub, .gnav .has-sub:focus-within .sub{ opacity:1; visibility:visible; translate:0 0; }
.gnav .sub a{ display:block; text-align:left; padding:5px 18px; font-size:13.5px; line-height:1.45; color:var(--ink); text-decoration:none; white-space:nowrap; cursor:pointer; }
.gnav .sub a:hover{ background:var(--surface); color:var(--brand); }

.btn{ display:inline-flex; align-items:center; gap:11px; background:var(--brand); color:#fff; text-decoration:none; font-size:14.5px; font-weight:700; letter-spacing:.06em; padding:15px 32px; border:1.5px solid var(--brand); cursor:pointer; transition:background .18s ease,transform .18s ease; }
.btn:hover{ background:var(--brand-deep); border-color:var(--brand-deep); transform:translateY(-2px); }
.btn::after{ content:none; }
.btn--sm{ padding:9px 20px; font-size:13px; }
.btn--line{ background:transparent; color:var(--navy); border-color:var(--navy); }
.btn--line:hover{ background:var(--navy); color:#fff; }
.btn--w{ background:#fff; color:var(--navy); border-color:#fff; }
.btn--w:hover{ background:var(--surface); }
.btn--wline{ background:transparent; color:#fff; border-color:rgba(255,255,255,.6); }
.btn--wline:hover{ background:#fff; color:var(--navy); }

/* ===== ヒーロー（トップ） ===== */
.hero{ background:linear-gradient(158deg,var(--navy) 0%,var(--navy-deep) 60%,#0e1c33 100%); color:#c4d0e4; padding-block:clamp(72px,11vw,140px); position:relative; overflow:hidden; isolation:isolate; }
.hero__bg{ position:absolute; inset:0; z-index:0; }
.hero__img{ position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity 1.8s ease-in-out; }
.hero__img.is-on{ opacity:1; }
.hero__img--1{ background-image:var(--hero1); }
.hero__img--2{ background-image:var(--hero2); }
.hero__img--3{ background-image:var(--hero3); }
.hero__img--4{ background-image:var(--hero4); }
@media (prefers-reduced-motion: reduce){ .hero__img{ transition:none; } }
.hero__bg::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(22,41,74,.95) 0%, rgba(31,56,100,.88) 42%, rgba(14,28,51,.72) 100%); }
.hero::after{ content:""; position:absolute; inset:auto -8% -60% 50%; height:130%; z-index:1; pointer-events:none; background:radial-gradient(closest-side,rgba(43,96,232,.30),transparent 72%); }
.hero .wrap{ position:relative; z-index:2; }
.hero h1{ margin:0 0 18px; color:#fff; font-size:clamp(30px,5.8vw,60px); line-height:1.5; font-weight:700; letter-spacing:.04em; }
.hero__en{ font-family:var(--serif); font-size:clamp(13px,1.6vw,17px); letter-spacing:.1em; color:#7fa3ee; margin:0 0 36px; line-height:1.7; }
.hero__lead{ margin:0 0 40px; max-width:33em; font-size:clamp(14.5px,1.55vw,16px); line-height:2.2; color:#b9c6de; }
.acts{ display:flex; gap:14px; flex-wrap:wrap; }

/* ===== ページヒーロー ===== */
.phero{ background:linear-gradient(160deg,var(--navy) 0%,var(--navy-deep) 70%,#101e37 100%); color:#c4d0e4; padding-block:clamp(44px,6vw,74px); position:relative; overflow:hidden; }
.phero::after{ content:""; position:absolute; inset:auto -8% -70% 55%; height:150%; background:radial-gradient(closest-side,rgba(43,96,232,.3),transparent 72%); }
.phero .wrap{ position:relative; z-index:1; }
.page-privacy .phero{ text-align:center; }
.page-privacy .phero p{ margin-inline:auto; }
.page-privacy .phero .crumb{ text-align:left; }
.crumb{ margin:0 0 24px; font-size:12.5px; letter-spacing:.05em; color:#8b9ab8; }
.crumb a{ color:#8b9ab8; text-decoration:none; cursor:pointer; }
.crumb a:hover{ color:#fff; text-decoration:underline; }
.phero .phero__en{ margin:0; max-width:none; font-family:var(--serif); font-size:14px; line-height:1.6; letter-spacing:.18em; color:#c9d8f0; }
.phero h1 + .phero__en{ margin-top:8px; }
.phero .phero__en + p{ margin-top:14px; }
.phero h1{ margin:0; color:#fff; font-size:clamp(26px,4.2vw,40px); line-height:1.55; font-weight:700; letter-spacing:.03em; }
.phero p{ margin:0; max-width:38em; font-size:15px; line-height:2.1; color:#c1cde3; }
.phero h1 + p{ margin-top:14px; }

/* ===== 共通見出し ===== */
.sh{ margin-bottom:clamp(30px,4.2vw,48px); }
.sh .sh__en{ margin:0; max-width:none; font-family:var(--serif); font-size:14px; line-height:1.6; letter-spacing:.14em; color:var(--navy-soft); }
.sh h2 + .sh__en{ margin-top:8px; }
.sh .sh__en + p{ margin-top:14px; }
.sh h2{ margin:0; color:var(--navy); font-size:clamp(22px,3.1vw,33px); line-height:1.6; font-weight:700; letter-spacing:.03em; }
.sh p{ margin:0; max-width:38em; font-size:15px; line-height:2; text-wrap:balance; }
.sh h2 + p{ margin-top:12px; }
.sh--noen p{ max-width:54em; margin-left:max(0px,calc((100% - 960px) / 2)); color:var(--ink); line-height:1.7; text-wrap:pretty; }
.sh--post{ margin-top:clamp(30px,4vw,44px); margin-bottom:0; }
.sh.sh--noen p + p{ margin-top:0; }
.sh--1line p{ max-width:none; font-size:min(1.8vw,20px); line-height:1.9; }
@media (max-width:760px){ .sh--1line p{ font-size:15px; line-height:2; } }
.sh--long{ text-align:left; }
.sh--catch{ margin-bottom:clamp(56px,7.5vw,96px); }
.sh .sh__catch{ margin:0; text-align:center; font-size:min(2.7vw,32px); line-height:1.6; font-weight:700;
  letter-spacing:.04em; color:var(--navy); white-space:nowrap; }
@media (max-width:760px){ .sh .sh__catch{ white-space:normal; font-size:clamp(18px,4.6vw,24px); text-wrap:balance; } }
.sh .sh__catch b{ color:var(--brand-deep); white-space:nowrap; }
.sh--long p{ max-width:54em; text-wrap:pretty; }
.sh--long p + p{ margin-top:.6em; }
.sh p + p{ margin-top:.55em; }
.band--navy .sh h2{ color:#fff; }

.subcrumb{ display:inline-flex; align-items:center; gap:9px; font-size:12px; letter-spacing:.08em; color:var(--ink-soft); margin:0 0 14px; }
.subcrumb b{ color:var(--brand); font-weight:400; font-family:var(--serif); }

/* ===== ページ内ジャンプ ===== */

/* ===== トップ：会社情報 ===== */
.about{ display:grid; grid-template-columns:1fr .82fr; gap:clamp(32px,5vw,66px); align-items:start; }
.about p{ margin:0 0 30px; font-size:15.5px; line-height:2.2; max-width:36em; }
.linkset{ border-top:1px solid var(--line); }
.linkset a{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 4px; border-bottom:1px solid var(--line); text-decoration:none; color:var(--ink); font-size:15.5px; letter-spacing:.04em; cursor:pointer; transition:padding .18s ease,color .18s ease; }
.linkset a:hover{ padding-left:12px; color:var(--brand); }
.linkset em{ font-style:normal; font-family:var(--serif); font-size:11px; letter-spacing:.14em; color:var(--ink-soft); display:block; }

/* ===== 事業構成図 V1（トップ） ===== */
.dia{ background:var(--surface); border:1px solid var(--line); padding:clamp(30px,4.6vw,54px) clamp(20px,3.6vw,44px); position:relative; isolation:isolate; }
.dia__grid{ display:grid; grid-template-columns:1fr auto 1fr; grid-template-rows:auto auto auto; min-width:780px;
  column-gap:clamp(26px,4vw,48px); row-gap:22px; align-items:center; position:relative; z-index:1; }
.dia__hd--l{ grid-area:1/1; align-self:end; }
.dia__hd--r{ grid-area:1/3; align-self:end; }
.dia__list--l{ grid-area:2/1; }
.dia__list--r{ grid-area:2/3; }
.dia__hub{ grid-area:2/2; }
.dia__cross{ grid-area:3/1/4/4; }
.dia__cross-ttl{ display:flex; align-items:center; gap:8px 16px; flex-wrap:wrap; margin-bottom:12px; }
.dia__cross-ttl .dia__col-head{ margin:0; }
.dia__cross-bar{ display:flex; justify-content:center; align-items:center; padding:9px clamp(40px,5.5vw,74px);
  clip-path:polygon(0 50%, 24px 0, calc(100% - 24px) 0, 100% 50%, calc(100% - 24px) 100%, 24px 100%); }
.dia__item--static{ margin:0; cursor:default; flex:0 1 auto; font-size:14px; line-height:1.65; color:var(--ink); letter-spacing:.03em; }
.dia .dia__item--static:hover{ transform:none; box-shadow:none; }
.dia__cross-bar{ background:#c8daf0; }
.dia .dia__item--static:hover{ border-left-color:var(--navy); }
.dia__col-head{ margin:0 0 16px; font-family:var(--serif); font-size:11px; letter-spacing:.16em; color:var(--navy); display:flex; align-items:center; gap:10px; }
.dia__col-head::before{ content:""; width:24px; height:1px; background:var(--navy); }
.dia__col-jp{ margin:0; font-size:17.5px; font-weight:700; line-height:1.55; color:var(--navy); letter-spacing:.03em; }
.dia__item{ display:flex; align-items:center; gap:14px; background:var(--white); border:1px solid var(--line); border-left:3px solid var(--navy); padding:15px 20px; margin-bottom:10px; text-decoration:none; cursor:pointer; transition:border-color .22s ease,transform .22s ease,box-shadow .22s ease; }
.dia__cross-bar .dia__item--static{ margin:0; }
.dia__cross-bar .dia__item--band{ margin:0; flex:0 1 auto; font-size:14px; line-height:1.65; color:var(--ink); letter-spacing:.03em; }
/* 固定ヘッダーの下に見出しが潜らないようにする */
section[id], .svc[id]{ scroll-margin-top:90px; }

.dia__item .idx{ font-family:var(--serif); font-size:11px; letter-spacing:.08em; color:var(--body); flex:none; }
.dia__item .label{ flex:1; font-size:14px; line-height:1.65; color:var(--ink); letter-spacing:.03em; }
.dia__item .ar{ color:#c2c8d4; font-size:14px; flex:none; transition:transform .22s ease,color .22s ease; }
.dia__item:hover{ border-left-color:var(--brand); transform:translateX(4px); box-shadow:0 6px 20px -12px rgba(31,56,100,.4); }
.dia__item:hover .label{ color:var(--brand-deep); }
.dia__item:hover .ar{ color:var(--brand); transform:translateX(4px); }
.dia__hub{ width:200px; height:200px; background:var(--navy); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:20px; position:relative; flex-shrink:0; }
.dia__hub::before{ content:""; position:absolute; left:calc(clamp(26px,4vw,48px) * -1); right:calc(clamp(26px,4vw,48px) * -1); top:50%; height:1px; z-index:-1; background:linear-gradient(to right,transparent,var(--navy) 18%,var(--navy) 82%,transparent); }
.dia__hub-eye{ margin:0 0 12px; font-family:var(--serif); font-size:10px; letter-spacing:.24em; color:#a8b8d4; }
.dia__hub-title{ margin:0; font-size:19px; font-weight:700; line-height:1.5; letter-spacing:.03em; }
.dia__hub-flow{ margin:15px 0 0; padding-top:13px; border-top:1px solid rgba(255,255,255,.24); font-family:var(--serif); font-size:12.5px; letter-spacing:.1em; color:#fff; }
.dia__acts{ display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:34px; }

/* ===== Vision / Mission ===== */
.vision{ background:var(--navy); color:#fff; padding:clamp(20px,2.6vw,30px) clamp(30px,4.4vw,50px); text-align:center; margin-bottom:34px; }
.vision small{ display:block; font-family:var(--serif); font-size:clamp(19px,2.9vw,24px); line-height:1.5; letter-spacing:.16em; color:#c9d8f0; margin-bottom:18px; }
.vision h3{ margin:0 0 12px; font-size:clamp(21px,3.4vw,34px); line-height:1.6; letter-spacing:.04em; font-weight:700; color:#fff; }
.vision p{ margin:0; font-size:12.5px; letter-spacing:.05em; color:#9fb2d4; }
.mission__ttl{ margin:0 0 18px; font-family:var(--serif); font-size:clamp(19px,2.9vw,24px); line-height:1.5; letter-spacing:.16em; color:var(--navy-soft); text-align:center; }
.mission{ display:grid; gap:1px; background:var(--line); border:1px solid var(--line); }
.mi{ background:var(--white); display:grid; grid-template-columns:46px 1fr; align-items:center; }
.mi__no{ font-size:14.5px; color:var(--body); text-align:center; line-height:1; }
.mi p{ margin:0; padding:19px 24px 19px 0; font-size:14.5px; line-height:1.95; color:var(--ink); }

/* ===== 定義テーブル ===== */
.dt{ border:1px solid var(--line); background:var(--white); }
.dt__row{ display:grid; grid-template-columns:180px 1fr; border-bottom:1px solid var(--line-soft); }
.dt__row:last-child{ border-bottom:0; }
.dt__row dt{ padding:16px 22px; background:var(--surface); font-size:13.5px; color:var(--navy); font-weight:700; letter-spacing:.05em; border-right:1px solid var(--line-soft); }
.dt__row dd{ margin:0; padding:16px 22px; font-size:14.5px; color:var(--ink); line-height:1.95; }
.dt__row dd ul{ margin:0; padding-left:1.1em; }
.dt__row dd li{ margin-bottom:4px; }

/* ===== 代表者 ===== */
.greet{ max-width:46em; margin:0 auto; text-align:left; }
.greet p{ margin:0 0 1.35em; font-size:15px; line-height:2.05; color:var(--ink); text-wrap:pretty; }
.greet p:last-child{ margin-bottom:0; }
.greet__catch{ margin:0 0 clamp(28px,3.4vw,44px); text-align:center; white-space:nowrap; font-size:clamp(14px,2.38vw,28px); line-height:1.7; font-weight:700; letter-spacing:.03em; color:var(--navy); }
@media (max-width:760px){ .greet__catch{ white-space:normal; font-size:clamp(18px,4.6vw,22px); text-wrap:balance; } }
.greet p.greet__sign{ margin:2.2em 0 0; text-align:right; font-size:14px; line-height:1.9; color:var(--body); }
.greet__pts{ list-style:none; margin:0 0 1.5em; padding:0; display:flex; flex-direction:column; gap:12px; }
.greet__pts li{ position:relative; padding-left:1.15em; font-size:14.5px; line-height:1.95; color:var(--ink); }
.greet__pts li::before{ content:"・"; position:absolute; left:0; top:0; width:auto; height:auto; background:none; border-radius:0; color:inherit; }

/* ===== 事業サービス ===== */
.cards{ display:grid; gap:20px; grid-template-columns:repeat(3,1fr); }
.card{ background:var(--white); border:1px solid var(--line); display:flex; flex-direction:column; }
.card__ttl{ margin:0; background:var(--navy); color:#fff; font-size:14.5px; font-weight:700; letter-spacing:.03em; padding:11px 20px; line-height:1.5; }
.card__bd{ padding:20px 22px 24px; display:flex; flex-direction:column; gap:12px; }
.card__bd > p{ margin:0; font-size:14px; line-height:1.95; }
.cards--2{ grid-template-columns:repeat(2,236px); justify-content:start; }
.cards--1{ grid-template-columns:300px; justify-content:start; }
.cards--2 .card__fig{ padding:16px 16px 2px; }
.cards--2 .card__fig img{ width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; }
.cards--illus{ display:flex; flex-wrap:wrap; justify-content:center; row-gap:24px; }

/* ===== 事業紹介 概要ブロック ===== */
.bizov{ display:grid; grid-template-columns:minmax(0,380px) 1fr; gap:20px 44px; align-items:start; }
.bizov__hd h2{ margin:0; color:var(--navy); font-size:clamp(17px,2.2vw,22px); line-height:1.6; font-weight:700; letter-spacing:.02em; white-space:nowrap; }
.bizov__bd{ display:flex; flex-direction:column; gap:20px; align-items:flex-start; }
.bizov__lead{ margin:0; font-size:14.5px; line-height:2; color:var(--ink); }
.bizov__tags{ display:flex; flex-wrap:wrap; gap:8px; }

/* ===== 実績カード ===== */
.recs{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.rec{ background:var(--white); padding:clamp(20px,2.2vw,24px); display:flex; flex-direction:column; }
.rec__row{ display:flex; align-items:center; gap:12px 24px; flex-wrap:wrap; margin-bottom:16px; }
.rec__key{ flex:none; min-width:116px; text-align:center; background:var(--navy); color:#fff; font-size:14.5px; font-weight:700; letter-spacing:.1em; padding:9px 18px; line-height:1.5; }
.rec__val{ font-size:clamp(16px,2vw,19px); font-weight:700; color:var(--navy); letter-spacing:.03em; line-height:1.6; }
.rec__lead{ margin:22px 0 0; font-size:14.5px; line-height:1.95; color:var(--ink); min-height:3.9em; }
.rec__tbl{ width:100%; border-collapse:collapse; margin-top:22px; border:1px solid var(--navy); }
.rec__tbl tbody,.rec__tbl tr,.rec__tbl th,.rec__tbl td{ display:block; width:auto; }
.rec__tbl th{ text-align:left; font-weight:400; font-size:11.5px; letter-spacing:.1em; color:var(--navy); opacity:.72; padding:11px 16px 0; }
.rec__tbl td{ font-size:12px; line-height:1.7; color:var(--navy); letter-spacing:.01em; padding:2px 16px 12px; }
.rec__tbl tr + tr th{ border-top:1px solid var(--navy); padding-top:11px; }
.rec{ border:1px solid var(--navy); }
.cards--illus > .card{ flex:0 1 calc((100% - 40px)/3); min-width:0; }
.card__fig{ margin:0; padding:18px 18px 2px; }
.card__fig img{ display:block; width:100%; height:clamp(126px,13.5vw,164px); object-fit:contain; }
.card ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.card li{ font-size:14px; line-height:1.85; padding-left:1.15em; position:relative; }
.card li::before{ content:"・"; position:absolute; left:0; top:0; width:auto; height:auto; background:none; border-radius:0; color:inherit; }
.subgrid{ display:grid; gap:20px; grid-template-columns:repeat(3,1fr); margin-top:40px; }

/* ===== 事業の工程フロー ===== */
.flow{ display:flex; flex-wrap:wrap; justify-content:center; gap:20px; }
.flow__step{ flex:0 1 calc((100% - 40px)/3); min-width:0; display:flex; flex-direction:column; }
.flow__hd{ display:flex; align-items:center; gap:9px; padding:11px 14px; }
.flow__ttl{ font-size:14.5px; font-weight:700; line-height:1.5; letter-spacing:.03em; white-space:nowrap; }
.flow__bd{ flex:1; padding:4px 14px 18px; }
.flow__fig{ margin:14px 0 0; padding:0; background:#eaf4f6; height:clamp(126px,13.5vw,164px);
  display:flex; align-items:center; justify-content:center; gap:6px; }
.flow__fig img{ display:block; width:auto; max-width:100%; max-height:100%; object-fit:contain; }
.flow ul{ margin:0; padding:14px 0 0; list-style:none; display:flex; flex-direction:column; gap:9px; }
.flow li{ position:relative; padding-left:1.15em; font-size:12.5px; line-height:1.8; color:var(--ink); }
.flow li::before{ content:"・"; position:absolute; left:0; top:0; width:auto; height:auto; background:none; border-radius:0; color:inherit; }
.flow__hd{ background:var(--navy); color:#fff; }
.flow__bd{ border:1px solid var(--line); border-top:0; background:var(--white); }
.subgrid--2{ grid-template-columns:repeat(2,1fr); }


/* ===== 事業内サービス（アコーディオン） ===== */
.stepper{ list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:0 0 22px; padding:0;
  border:1px solid var(--line); background:var(--white); }
.stepper li{ position:relative; padding:14px 20px 15px 30px; border-right:1px solid var(--line-soft); }
.stepper li:last-child{ border-right:0; }
.stepper li::after{ content:""; position:absolute; right:-9px; top:50%; width:16px; height:16px;
  transform:translateY(-50%) rotate(45deg); background:var(--white);
  border-top:1px solid var(--line-soft); border-right:1px solid var(--line-soft); z-index:1; }
.stepper li:last-child::after{ display:none; }
.stepper li::before{ content:""; position:absolute; left:14px; top:18px; width:4px; height:calc(100% - 36px); background:var(--accent); }
.stepper b{ display:block; font-size:14.5px; color:var(--navy); letter-spacing:.04em; line-height:1.5; }
.stepper span{ display:block; margin-top:3px; font-size:12.5px; color:var(--body); }
@media (max-width:760px){ .stepper{ grid-template-columns:1fr; } .stepper li::after{ display:none; } }
.svcs{ display:flex; flex-direction:column; gap:14px; }
.svc__hd{ display:flex; align-items:center; gap:12px; padding:15px 22px; background:var(--navy); color:#fff; border-left:10px solid var(--accent); }
.svc__ttl{ font-size:18px; font-weight:700; letter-spacing:.06em; line-height:1.5; flex:1; }
.svc__bd{ padding:26px 22px 30px; }
.svc__lead{ margin:0 0 24px; font-size:14px; line-height:1.95; color:var(--ink); max-width:64em; text-wrap:pretty; }
.svc__lead--after{ margin:22px 0 0; }
.svc__cols{ display:grid; grid-template-columns:minmax(0,300px) 1fr; gap:28px; align-items:center; }
.svc__fig{ margin:0; background:#eaf4f6; }
.svc__fig--plain{ background:transparent; }
.svc__fig--solo{ max-width:360px; margin-top:20px; }
.svc__cols--wide{ grid-template-columns:minmax(0,420px) 1fr; }
.svc__colbd .svc__lead{ margin-bottom:18px; }
.svc__colbd .svc__lead--close{ margin:18px 0 0; }
.svc__cols ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.svc__cols ul li{ position:relative; padding-left:1.15em; font-size:14px; line-height:1.9; color:var(--ink); }
.svc__cols ul li::before{ content:"・"; position:absolute; left:0; top:0; width:auto; height:auto; background:none; border-radius:0; color:inherit; }
.svc__fig img{ display:block; width:100%; height:auto; }
.svc__list{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:11px; }
.svc__list li{ position:relative; padding-left:1.15em; font-size:14px; line-height:1.9; color:var(--ink); }
.svc__list li::before{ content:"・"; position:absolute; left:0; top:0; width:auto; height:auto; background:none; border-radius:0; color:inherit; }
.flow--4col .flow__step{ position:relative; flex:0 1 calc((100% - 60px)/4); }
.flow--4col .flow__step:not(:last-child)::after{ content:""; position:absolute; top:50%; right:-14.5px;
  transform:translateY(-50%);
  width:0; height:0; border-top:6px solid transparent; border-bottom:6px solid transparent;
  border-left:9px solid var(--navy-soft); z-index:2; }
.flow--4col .flow__fig{ height:auto; }
.flow--4col .flow__fig img{ width:100%; height:auto; max-height:none; }
.flow--fit .flow__fig{ height:auto; aspect-ratio:16/9; background:var(--white); position:relative; overflow:hidden; }
.flow--fit .flow__fig img{ position:absolute; inset:0; width:100%; height:100%; max-width:none; max-height:none; object-fit:contain; }
@media (max-width:1180px){ .flow--4col .flow__step{ flex-basis:calc((100% - 20px)/2); }
  .flow--4col .flow__step::after{ display:none; } }
.svc{ background:var(--white); border:1px solid var(--line); }

/* ===== Pleasanter 概要ブロック ===== */
.pk__bd{ padding:0; display:flex; flex-direction:column; gap:20px; }
.svc__bd--stack{ display:flex; flex-direction:column; gap:20px; }
.svc__bd--stack .svc__lead{ margin-bottom:0; }
.pk__lead{ margin:0; font-size:14.5px; line-height:2.05; max-width:68em; }
.pk__pts{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.pk__pts div{ background:var(--surface); padding:16px 18px; text-align:center; }
.pk__pts b{ display:block; color:var(--navy); font-size:16px; letter-spacing:.03em; line-height:1.5; }
.pk__pts span{ font-size:12px; color:var(--body); }

/* ===== 対応技術 ===== */
.tech{ border:1px solid var(--line); background:var(--white); }
.tech__row{ display:grid; grid-template-columns:210px 1fr; border-bottom:1px solid var(--line-soft); }
.tech__row:last-child{ border-bottom:0; }
.tech__key{ padding:18px 24px; background:var(--navy); color:#fff; border-bottom:1px solid rgba(255,255,255,.16); display:flex; flex-direction:column; gap:3px; }
.tech__row:last-child .tech__key{ border-bottom:0; }
.tech__key b{ font-size:15px; letter-spacing:.05em; }
.tech__key em{ font-family:var(--serif); font-style:normal; font-size:10.5px; letter-spacing:.10em; color:#9fb2d4; }
.tech__val{ padding:16px 24px; display:flex; flex-wrap:wrap; gap:8px; align-content:center; }
.svc__sub{ margin-top:28px; }
.svc__subttl{ margin:0 0 7px; font-size:15px; font-weight:700; color:var(--navy); letter-spacing:.04em; }
.svc__part{ padding-top:20px; border-top:2px solid var(--line); }
.svc__part:first-child{ padding-top:0; border-top:0; }
.part__cols{ display:grid; grid-template-columns:minmax(0,300px) 1fr; gap:28px; align-items:start; }
.part__cols--mid{ align-items:center; }
@media (max-width:980px){ .part__cols{ grid-template-columns:1fr; } .cards--1,.cards--2{ grid-template-columns:1fr; } }
.part__txt .svc__lead{ margin-bottom:16px; }
.svc__partttl{ margin:0 0 16px; padding-left:12px; font-size:17px; font-weight:700; line-height:1.4; letter-spacing:.05em; color:var(--navy); border-left:4px solid var(--accent); }
.svc__subnote{ margin:0 0 14px; font-size:13.5px; line-height:1.9; color:var(--body); }
.svc__works{ margin-top:30px; padding:22px 24px 26px; background:var(--surface-2); border-left:5px solid var(--accent); }
.svc__worksttl{ margin:0 0 16px; font-size:17px; font-weight:700; line-height:1.6; letter-spacing:.05em; color:var(--navy); }
.tech--in .tech__row{ grid-template-columns:188px 1fr; }
.tech--in .tech__key{ padding:12px 16px; }
.tech--in .tech__key b{ font-size:13px; letter-spacing:.04em; white-space:nowrap; }
.tech--in .tech__key em{ font-size:9.5px; }
.tech--in .tech__val{ padding:10px 16px; gap:6px; }
.tech--in .chip{ font-size:12.5px; padding:4px 11px; }
.wlist--in{ gap:18px; }
.wlist--in .wcard__hd{ padding:15px 18px; }
.wlist--in .wcard__hd b{ font-size:15.5px; line-height:1.65; }
.wlist--in .wcard__hd em{ font-size:9.5px; margin-bottom:4px; }
.wlist--in .wcard__bd{ padding:17px 18px 20px; gap:11px; }
.wlist--in .wcard__bd p{ font-size:13.5px; }
.wlist--in .chip{ font-size:12.5px; padding:4px 11px; }
.wlist--1{ grid-template-columns:1fr; }
.chip{ font-size:13.5px; line-height:1.5; padding:6px 14px; border:1px solid var(--line); background:var(--surface); color:var(--ink); }
.chips{ display:flex; flex-wrap:wrap; gap:7px; }

/* ===== 事例カード ===== */
.wlist{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.wcard{ display:flex; flex-direction:column; background:var(--white); border:1px solid var(--line); text-decoration:none; cursor:pointer; transition:box-shadow .2s ease,transform .2s ease; }
.wcard:hover{ box-shadow:0 14px 32px rgba(31,56,100,.13); transform:translateY(-3px); }
.wcard__hd{ background:var(--navy); color:#fff; padding:20px 24px; }
.wcard__hd em{ font-style:normal; font-family:var(--serif); font-size:10.5px; letter-spacing:.16em; color:#9fb2d4; display:block; margin-bottom:5px; }
.wcard__hd b{ font-size:17px; line-height:1.7; letter-spacing:.03em; }
.wcard__bd{ padding:22px 24px 24px; display:flex; flex-direction:column; gap:14px; flex:1; }
.wcard__bd p{ margin:0; font-size:14px; line-height:1.95; color:var(--ink); }
.wcard .chips{ margin-top:auto; }

/* ===== 事例詳細 ===== */
.meta{ display:grid; grid-template-columns:repeat(auto-fit,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:36px; }
.meta div{ background:var(--white); padding:18px 20px; }
.meta dt{ font-size:11.5px; letter-spacing:.12em; color:var(--ink-soft); margin-bottom:5px; }
.meta dd{ margin:0; font-size:14.5px; color:var(--navy); font-weight:700; line-height:1.6; }
.meta .tbd{ color:var(--ink-soft); font-weight:400; font-size:13px; }
.tri{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:36px; }
.tri > div{ background:var(--white); padding:24px 26px 28px; }
.tri h3{ margin:0 0 16px; display:inline-block; font-size:13px; letter-spacing:.14em; color:#fff; background:var(--navy-soft); padding:5px 16px; font-weight:700; }
.tri--res h3{ background:var(--brand); }
.tri ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.tri li{ font-size:13.5px; line-height:1.95; padding-left:1.15em; position:relative; }
.tri li::before{ content:"・"; position:absolute; left:0; top:0; width:auto; height:auto; background:none; border-radius:0; color:inherit; }
.tri--res li{ color:var(--navy); font-weight:600; }
.arch{ border:1px solid var(--line); background:var(--surface); padding:clamp(16px,2.6vw,26px); overflow-x:auto; }
.arch__in{ min-width:820px; display:grid; grid-template-columns:150px 24px 1fr 24px 150px; gap:0 10px; align-items:center; }
.acol{ display:flex; flex-direction:column; gap:10px; }
.abox{ background:var(--white); border:1px solid var(--navy-soft); padding:12px 10px; text-align:center; font-size:12.5px; line-height:1.6; color:var(--navy); }
.abox span{ display:block; font-size:10.5px; color:var(--body); letter-spacing:.04em; }
.acloud{ border:1px solid #d8a24a; background:var(--white); padding:16px; }
.acloud__cap{ margin:0 0 14px; font-size:10.5px; letter-spacing:.2em; color:#a97a26; }
.aflow{ display:grid; grid-template-columns:1fr 20px 1fr 20px 1fr 20px 1fr; gap:0 6px; align-items:center; }
.aflow--3{ grid-template-columns:1fr 20px 1fr 20px 1fr; }
.aflow--2{ grid-template-columns:1fr 20px 1fr; }
.aflow--5{ grid-template-columns:1fr 20px 1fr 20px 1fr 20px 1fr 20px 1fr; }
.aar{ text-align:center; color:var(--navy-soft); font-size:13px; }
.astack{ display:flex; flex-direction:column; gap:8px; }
.ociarch{ border:1px solid var(--line); background:var(--surface); padding:clamp(16px,2.6vw,26px); overflow-x:auto; }
.ociarch__in{ min-width:760px; width:max-content; margin-inline:auto; display:flex; align-items:center; gap:12px; }
.ociarch__in > *{ flex:none; }
.ocibox{ text-align:center; font-size:12.5px; line-height:1.5; padding:12px 16px; }
.ocibox--navy{ background:var(--navy); color:#fff; }
.ocibox--blue{ background:#4a7ab8; color:#fff; }
.ociicon{ display:flex; flex-direction:column; align-items:center; gap:6px; color:var(--navy); text-align:center; }
.ociicon svg{ width:46px; height:46px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.ociicon b{ font-size:12.5px; font-weight:700; letter-spacing:.03em; }
.ociicon span{ font-size:10.5px; color:var(--body); letter-spacing:.04em; }
.ociinet{ text-align:center; font-size:12.5px; color:var(--navy); border:1px solid var(--navy-soft); padding:10px 16px; background:var(--white); }
.ociinet span{ display:block; font-size:10.5px; color:var(--body); letter-spacing:.04em; }
.ociar{ color:var(--navy-soft); font-size:14px; line-height:1; }
.ocicloud{ border:1px solid #d8a24a; background:var(--white); padding:14px 16px 16px; }
.ocicloud__cap{ margin:0 0 10px; font-size:11px; letter-spacing:.1em; color:#a97a26; }
.ocicloud__in{ display:flex; align-items:center; gap:10px; }
.ocisub{ border:1px solid var(--line); background:var(--surface); padding:10px 12px 12px; display:flex; flex-direction:column; gap:8px; }
.ocisub__cap{ margin:0; font-size:10.5px; letter-spacing:.06em; color:var(--brand); }
.arch__lbl{ font-size:10.5px; letter-spacing:.16em; color:var(--ink-soft); margin:0 0 8px; text-align:center; }

/* ===== お問い合わせ ===== */
.contact-grid{ display:grid; grid-template-columns:1fr .74fr; gap:clamp(28px,4.6vw,54px); align-items:start; }
.form{ border:1px solid var(--line); background:var(--white); padding:clamp(22px,3.4vw,34px); }
.fld{ margin-bottom:20px; }
.fld:last-child{ margin-bottom:0; }
.fld label{ display:block; font-size:13.5px; color:var(--navy); font-weight:700; letter-spacing:.04em; margin-bottom:7px; }
.req{ display:inline-block; margin-left:8px; font-size:10.5px; font-weight:700; letter-spacing:.08em; color:#fff; background:#b4453f; padding:2px 7px; vertical-align:1px; }
.opt{ display:inline-block; margin-left:8px; font-size:10.5px; letter-spacing:.08em; color:var(--ink-soft); border:1px solid var(--line); padding:1px 7px; vertical-align:1px; }
.fld input,.fld select,.fld textarea{ width:100%; font:inherit; font-size:14.5px; padding:12px 14px; border:1px solid #c9d0dc; background:var(--white); color:var(--ink); border-radius:0; }
.fld input[type="submit"].btn{ width:auto; background:var(--brand); color:#fff; font-weight:700; padding:15px 32px; border:1.5px solid var(--brand); }
.fld input[type="submit"].btn:hover{ background:var(--brand-deep); border-color:var(--brand-deep); }
.fld .agree{ display:flex; align-items:center; gap:8px; }
.fld .agree > label{ display:inline; margin:0; }
.fld .agree .mwform-checkbox-field{ display:inline; }
.akismet_error{ display:block; margin:0 0 14px; padding:12px 14px; border:1px solid #b4453f; background:#fdf3f2; color:#b4453f; font-size:13.5px; line-height:1.8; }
.contact-type-note{ display:block; margin:8px 0 0; color:var(--ink-soft); }
.fld textarea{ min-height:150px; resize:vertical; line-height:1.9; }
.fld input:focus,.fld select:focus,.fld textarea:focus{ border-color:var(--brand); outline:2px solid rgba(43,96,232,.25); }
.fld small{ display:block; margin-top:6px; font-size:12px; color:var(--ink-soft); line-height:1.8; }
.agree{ display:flex; gap:10px; align-items:flex-start; background:var(--surface); border:1px solid var(--line); padding:16px 18px; font-size:13.5px; line-height:1.9; }
.agree input{ width:auto; margin-top:6px; }
.side{ display:flex; flex-direction:column; gap:20px; }
.sbox{ border:1px solid var(--line); background:var(--white); padding:22px 24px 24px; }
.sbox h3{ margin:0 0 14px; font-size:15.5px; color:var(--navy); letter-spacing:.04em; font-weight:700; }
.sbox p{ margin:0 0 10px; font-size:13.5px; line-height:1.95; }
.sbox p:last-child{ margin-bottom:0; }
.sbox .big{ font-size:22px; color:var(--navy); font-weight:700; letter-spacing:.04em; font-variant-numeric:tabular-nums; }
.sbox a{ word-break:break-all; }

/* ===== 規約 ===== */
.legal{ max-width:44em; margin:0 auto; text-align:left; }
.legal h2{ margin:34px 0 12px; font-size:18px; color:var(--navy); letter-spacing:.04em; font-weight:700; line-height:1.7; padding-bottom:10px; border-bottom:1px solid var(--line); }
.legal h2:first-child{ margin-top:0; }
.legal p{ margin:0 0 14px; font-size:14.5px; line-height:2.05; }
.legal ol{ padding-left:1.4em; margin:0 0 14px; }
.legal li{ font-size:14.5px; line-height:2.05; margin-bottom:6px; }
.legal .rev{ margin-top:36px; padding-top:18px; border-top:1px solid var(--line); font-size:13px; color:var(--ink-soft); }
.legal .rev:first-child{ width:max-content; margin:0 0 4px auto; padding:0; border-top:0; text-align:left; }
.legal__cap{ margin:0 0 10px; font-size:14px; font-weight:700; color:var(--navy); }
.legal__dt{ margin:0 0 18px; }
.legal__val{ margin:0 0 18px; padding-left:1.5em; }

/* ===== CTA ===== */
.cta{ background:linear-gradient(105deg,var(--navy-deep),var(--navy)); color:#c4d0e4; padding-block:clamp(34px,4.4vw,56px); }
.cta__in{ display:flex; align-items:center; justify-content:center; gap:clamp(20px,2.6vw,36px); flex-wrap:wrap; }
.cta h2{ margin:0 0 10px; color:#fff; font-size:clamp(20px,2.8vw,29px); line-height:1.65; letter-spacing:.03em; font-weight:700; }
.cta p{ margin:0; font-size:14.5px; line-height:1.95; color:#a9b8d2; max-width:32em; }
.cta__c{ display:flex; flex-direction:column; gap:10px; }
.cta__c small{ font-size:12.5px; color:#8b9ab8; }
.cta__c small a{ color:#a9b8d2; }

/* ===== フッター ===== */
.foot{ background:var(--surface); color:var(--body); padding:clamp(46px,6.5vw,68px) var(--pad) 28px; border-top:1px solid var(--line); }
.foot__in{ max-width:var(--wrap); margin:0 auto; display:grid;
  grid-template-columns:minmax(0,1fr) repeat(5,max-content);
  column-gap:clamp(22px,3.2vw,52px); row-gap:32px; }
.fcol a{ white-space:nowrap; }
.foot .logo span{ color:var(--navy); font-size:15.5px; }
.foot__co{ margin:14px 0 0; font-size:12px; line-height:1.9; color:var(--body); }
.fcol h3{ margin:0 0 14px; font-family:var(--serif); font-size:11.5px; letter-spacing:.2em; color:var(--brand); font-weight:400; }
.fcol ul{ list-style:none; margin:0; padding:0 0 0 1em; display:flex; flex-direction:column; gap:2px; }
.fcol a{ color:var(--ink); text-decoration:none; font-size:13px; cursor:pointer; }
.fcol a:hover{ color:var(--brand); text-decoration:underline; }
.foot__cr{ max-width:var(--wrap); margin:32px auto 0; padding-top:18px; border-top:1px solid var(--line); font-size:11.5px; color:var(--body); }


/* ===== 課題提起（トップ） ===== */
.issues{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; max-width:960px; margin-inline:auto; }
.issue{ background:var(--white); box-shadow:0 1px 3px rgba(31,56,100,.10), 0 10px 26px -12px rgba(31,56,100,.30); padding:18px 18px 20px; display:flex; flex-direction:column; gap:8px; }
.issue p{ margin:0; font-size:14px; line-height:1.8; color:var(--ink); text-wrap:balance; }
.catch{ margin:clamp(30px,4vw,44px) auto 0; max-width:820px; text-align:center; background:var(--white); border:2px solid var(--navy); padding:clamp(22px,3.2vw,32px); }
.catch:first-child{ margin-top:0; }
.catch p{ margin:0; font-size:clamp(15.5px,2vw,19px); line-height:1.95; font-weight:700; color:var(--navy); text-wrap:balance; }
.catch b{ color:var(--navy); }

/* ===== 自社の強み（トップ） ===== */
.edge__lead{ margin-top:clamp(30px,4vw,44px); border-left:3px solid var(--brand); padding-left:clamp(18px,2vw,24px); }
.edge__lead p{ margin:0; max-width:58em; font-size:18.5px; line-height:1.95; color:var(--navy); font-weight:600; text-wrap:pretty; }
.edge__lead p + p{ margin-top:.5em; }
.edge__lead + .edge{ margin-top:clamp(26px,3.4vw,36px); }
.edge{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px 36px; margin-top:clamp(34px,4.6vw,52px); }
.edge__hd{ display:flex; align-items:baseline; gap:12px; padding-bottom:13px; margin-bottom:15px; }
.edge__no{ font-size:15px; font-weight:700; letter-spacing:0; line-height:1; flex:none; }
.edge__ttl{ margin:0; font-size:16.5px; line-height:1.5; font-weight:700; color:var(--navy); letter-spacing:.03em; white-space:nowrap; }
.edge__item p{ margin:0; font-size:13.5px; line-height:1.95; color:var(--ink); }
.edge__hd{ border-bottom:2px solid var(--navy); }
.edge__no{ color:var(--brand); }

/* ===== ニュース ===== */
.news{ display:grid; grid-template-columns:250px 1fr; gap:clamp(28px,5vw,68px); align-items:start; }
.news__head{ text-align:center; }
.news__ja{ margin:0; font-size:clamp(22px,3.1vw,33px); line-height:1.6; letter-spacing:.03em; font-weight:700; color:var(--navy); }
.news__en{ margin:8px 0 26px; font-family:var(--serif); font-size:14px; line-height:1.6; letter-spacing:.14em; font-weight:400; color:var(--navy-soft); }
.news__more{ width:100%; justify-content:center; }
.news__list{ list-style:none; margin:0; padding:0; }
.news__list li{ padding:18px 2px; border-bottom:1px solid var(--line); }
.news__list li:first-child{ padding-top:0; }
.news__list time{ display:block; margin-bottom:7px; font-size:13px; letter-spacing:.05em; color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.news__list p{ margin:0; font-size:15px; line-height:1.9; color:var(--ink); }
.pager{ display:flex; justify-content:center; gap:8px; margin-top:36px; }
.pager span,.pager a{ min-width:40px; height:40px; display:grid; place-items:center; border:1px solid var(--line); background:var(--white); font-size:13.5px; text-decoration:none; color:var(--ink); }
.pager .cur{ background:var(--navy); color:#fff; border-color:var(--navy); font-weight:700; }
.news__list a{ color:inherit; text-decoration:none; cursor:pointer; }
.news__list a:hover{ color:var(--brand-deep); text-decoration:underline; }
.post{ max-width:52em; }
.post__date{ margin:0 0 18px; font-size:13px; letter-spacing:.05em; color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.post p{ margin:0 0 0.5em; font-size:15px; line-height:1.65; color:var(--ink); }
.post .acts{ margin-top:30px; }
.nl-inline{ color:var(--brand); text-decoration:underline; text-underline-offset:3px; white-space:nowrap; }
.nl-inline:hover{ color:var(--brand-deep); }
.post h2{ margin:0 0 18px; color:var(--navy); font-size:clamp(20px,2.6vw,26px); font-weight:700; letter-spacing:.04em; line-height:1.6; }
.post h3{ margin:30px 0 10px; color:var(--navy); font-size:clamp(16px,2vw,19px); font-weight:700; letter-spacing:.03em; }
.post table{ width:100%; border-collapse:collapse; border:1px solid var(--line); background:var(--white); margin:0 0 1.3em; }
.post table th,.post table td{ padding:14px 18px; border-bottom:1px solid var(--line-soft); text-align:left; vertical-align:top; font-size:14.5px; line-height:1.95; color:var(--ink); }
.post table th{ width:150px; background:var(--surface); color:var(--navy); font-size:13.5px; font-weight:700; letter-spacing:.05em; white-space:nowrap; }
.post table tr:last-child th,.post table tr:last-child td{ border-bottom:0; }
.post table table{ border:0; background:transparent; margin:0; }
.post table table th,.post table table td{ padding:0 14px 9px 0; border-bottom:0; }
.post table table td:first-child{ width:132px; color:var(--navy); font-weight:700; font-size:13.5px; white-space:nowrap; }
.post table table tr:last-child td{ padding-bottom:0; }
@media (max-width:620px){
  .post table,.post table tbody,.post table tr,.post table th,.post table td{ display:block; width:auto; }
  .post table th{ border-bottom:1px solid var(--line-soft); white-space:normal; }
  .post table table td:first-child{ width:auto; padding:0 0 2px; }
  .post table table tr{ margin-bottom:12px; }
  .post table table tr:last-child{ margin-bottom:0; }
}
.news__list--full li:first-child{ padding-top:18px; border-top:1px solid var(--line); }

.note{ margin:18px 0 0; font-size:12.5px; color:var(--ink-soft); line-height:1.9; }
.tag{ display:inline-block; font-size:11px; letter-spacing:.07em; padding:2px 9px; border:1px dashed var(--brand); color:var(--brand); background:rgba(43,96,232,.05); }

@media (max-width:1000px){
  .gnav__toggle{display:grid;gap:5px;background:transparent;border:0;padding:10px;cursor:pointer;} .gnav__toggle span:not(.screen-reader-text){display:block;width:24px;height:2px;background:var(--navy);} .gnav__menu{display:none!important;position:absolute;top:100%;left:0;right:0;height:auto!important;padding:12px var(--pad)!important;background:var(--white);border-bottom:1px solid var(--line);flex-direction:column!important;align-items:stretch!important;} .gnav__menu.is-open{display:flex!important;} .gnav__menu>li{height:auto!important;display:block!important;} .gnav__menu .sub{position:static;opacity:1;visibility:visible;translate:0 0;box-shadow:none;border:0;display:block;padding-left:16px;}
}
@media (min-width:1001px){.gnav__toggle{display:none;}}
@media (max-width:1000px){.issues{grid-template-columns:repeat(2,1fr)}.edge{grid-template-columns:1fr;gap:22px}.about,.wlist,.contact-grid,.ceo,.cards,.subgrid,.pk__pts{grid-template-columns:1fr}.bizov{grid-template-columns:1fr;gap:16px}.recs{grid-template-columns:1fr}.flow__step,.flow--4col .flow__step,.cards--illus>.card{flex-basis:100%}.flow__ttl{white-space:normal}.subgrid--2,.svc__cols,.tri{grid-template-columns:1fr}.meta,.foot__in{grid-template-columns:repeat(2,1fr)}.cta__in{flex-direction:column;align-items:flex-start}}
@media (max-width:1000px){.flow__step{flex-basis:100%}.flow--4col .flow__step{flex-basis:100%}.svc__cols{grid-template-columns:1fr}.subgrid--2{grid-template-columns:1fr}.cards--illus>.card{flex-basis:100%}.news{grid-template-columns:1fr}.news__head{text-align:left}.news__more{width:auto}.meta{grid-template-columns:repeat(2,1fr)}.tri{grid-template-columns:1fr}.foot__in{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){
  .dt__row{ grid-template-columns:1fr; }
  .dt__row dt{ border-right:0; border-bottom:1px solid var(--line-soft); }
  .meta,.tech__row,.issues{ grid-template-columns:1fr; }
  .mi{ grid-template-columns:60px 1fr; }
  .foot__in{ grid-template-columns:1fr; }
}
@media (max-width:760px){ h1,h2,h3,p,li,a{ overflow-wrap:anywhere; } }

.wcard--static{cursor:default;} .wcard--static:hover{transform:none;box-shadow:none;border-color:var(--line);}
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.dia__scroll{overflow-x:auto}
