/* tokens.css */
/* =========================================================
   tokens.css — デザイントークン（全ページで最初に読み込む。SiteHead.astro）
   ---------------------------------------------------------
   1. 素の値（primitive）：--base-*（色の段階）・--fs-*（文字サイズ）など
   2. 役割の名前（semantic）：--color-*・--border-* など
   ページやコンポーネントの CSS は「2. 役割の名前」だけを使う。値（#hex・px）はこのファイルにだけ書く。
   逸脱は scripts/design-check.mjs が検出し、確実に決まるものは自動で直す（npm run ds:fix）。
   カタログ：/manage/designsystem/（このファイルを読んで表示する）
   ========================================================= */
:root{
  /* ---------- 1. 素の値 ---------- */

  /* 色の段階：#1D1917 を 90 とし、同じ色味（暖かい灰色）で明るさだけを変える。
     5・10・20・70・80 は既存の値をそのまま載せ、30〜60・100 は OKLCH で等間隔に計算した */
  --base-0:#ffffff;
  --base-5:#f5f4f4;
  --base-10:#ecebea;
  --base-20:#d5d3d1;
  --base-30:#acaaa9;
  --base-40:#928f8e;
  --base-50:#787574;
  --base-60:#605c5b;
  --base-70:#4a4241;
  --base-80:#3a3431;
  --base-90:#1d1917;
  --base-100:#0b0806;

  /* primary（ブランドの黄）：#d8bb06 を 50 として基本に使う。段階は kaaan.jp と同じ（50 だけ #d8bb06 にそろえた） */
  --primary-10:#fbf8e6;
  --primary-20:#f2e9ae;
  --primary-30:#eada77;
  --primary-40:#e1ca3f;
  --primary-50:#d8bb06;
  --primary-60:#ad9606;
  --primary-70:#827004;
  --primary-80:#564b03;
  --primary-90:#2b2501;

  /* 文字サイズ：15px は使わない（14px にまとめる） */
  --fs-10:10px;   /* 例外だけ。直接は使わず、下の「10px の例外」の役割の名前を通して使う（チェックの fs-exception） */
  --fs-11:11px;
  --fs-12:12px;
  --fs-13:13px;
  --fs-14:14px;
  --fs-16:16px;
  --fs-18:18px;
  --fs-20:20px;
  --fs-22:22px;
  --fs-24:24px;
  --fs-28:28px;
  --fs-32:32px;
  --fs-40:40px;
  --fs-48:48px;
  /* 10px の例外：基本は 11px 以上。10px はここに役割を足したものだけ使う */
  --fs-band-role:var(--fs-10);  /* トップの FV の帯の声の役職 */
  --fs-chip-sp:var(--fs-10);    /* SP（959px 以下）のメンバーのカードの提供サービスのチップ（changelog の 22） */
  /* 画面幅で変わる見出し（役割ごとに 1 つ） */
  /* 見出しは PC（960px 以上）と SP（959px 以下）でそれぞれ固定（画面幅では変えない）。SP の値はこのブロックの下の @media */
  --fs-display-1:44px;   /* H1：ページの h1 */
  --fs-display-2:36px;   /* H2：セクションの h2・締めのコピー */
  --fs-heading-1:36px;   /* 記事・実績の h1（H2 と同じ大きさ） */
  --fs-heading-2:28px;   /* 見出しではない大きめの文字（404 の一文・数字の欄など）。h2 には使わない（h2 は --fs-display-2） */
  --fs-heading-3:24px;   /* H3（PC・SP とも 24px） */
  --fs-heading-4:20px;   /* キャッチ・h4 */
  --fs-contact-h3:24px;  /* 締めの相談ブロックの h3（3 つの理由） */
  /* 画面幅で変わるのは、トップの hero の見出しと大きな数字だけ */
  --fs-hero:clamp(30px,3.35vw,46px);       /* トップの hero の見出し（PC は最大 46px。それより狭い画面では縮む） */
  --fs-hero-sp:min(28px,calc(100cqw / 14.2)); /* トップの hero の見出し（PC 以外）。いちばん長い行（14.2em）が幅いっぱい・最大 28px。幅は .p-homeHero__slides を基準にする */
  --fs-num:clamp(32px,3vw,44px);           /* 大きな数字 */

  /* 画面幅の境目：SP は 959px 以下、PC は 960px 以上。CSS の変数はメディアクエリの中で使えないので、
     値は @media(max-width:959px)／@media(min-width:960px) と直接書く（古い境目 879／880px はチェックが直す） */

  /* 文字の太さ：400 と 700 の 2 種類だけ（読み込むフォントも 400・700 だけ） */
  --fw-regular:400;
  --fw-bold:700;

  /* 字間：すべて 4%。例外を作るときは役割の名前を足す */
  --tracking:.04em;
  --tracking-hero:.06em;  /* トップの FV（hero）の見出しだけ 6% */

  /* 書体：日本語は Noto Sans JP、英数字だけの表示は Public Sans */
  --font-copy:"Noto Sans JP",sans-serif;
  --font-num:"Public Sans",sans-serif;           /* 英数字だけに使う（日本語は入れない） */

  /* 角丸：カードは 16px、カードの中（アイコン・図・内側の箱・画像）は 8px、メニューの行（箱の中の小さな選択肢）は 4px、ボタン・タグは左右フル円 */
  --r-card:16px;
  --r-inner:8px;
  --r-item:4px;
  --r-pill:999px;
  /* カードの間隔：リンクのカード（一覧から詳細へ飛ぶもの）は 24px、情報だけのカードは 8px（並べる入れ物の一覧は components.css の最後） */
  --gap-card-link:24px;
  --gap-card-row:48px;   /* 事例のカード・メンバーのカードを一覧で並べるときの縦の間隔（横は --gap-card-link） */
  --gap-card:8px;
  /* 左右 2 カラムの幅は 1:1・1:2・2:1・1:3・3:1 のどれか（主役の側を大きく。もとの比率に近いものを選ぶ） */
  --cols-1-1:minmax(0,1fr) minmax(0,1fr);
  --cols-2-1:minmax(0,2fr) minmax(0,1fr);
  --cols-1-2:minmax(0,1fr) minmax(0,2fr);
  --cols-3-1:minmax(0,3fr) minmax(0,1fr);
  --cols-1-3:minmax(0,1fr) minmax(0,3fr);
  --gap-cols:48px;       /* 左右カラムのあいだ（SP で縦に積んだときの上下も同じ 48px） */
  --gap-tag:2px;         /* タグ（.c-chips・サービスのタグなど）を並べるときの間隔 */

  --ease:cubic-bezier(0.215,0.61,0.355,1);

  /* ---------- 2. 役割の名前 ---------- */

  /* 文字 */
  --color-text:var(--base-90);           /* 本文・見出し */
  --color-text-sub:var(--base-70);       /* 補足 */
  --color-label:var(--base-50);          /* サブタイトル（英字ラベル） */
  --color-text-muted:var(--base-50);     /* 日付・注記 */
  --color-text-disabled:var(--base-30);  /* 無効 */
  --color-text-on-dark:var(--base-0);    /* 暗い面の上の文字 */
  --color-text-on-dark-sub:rgba(255,255,255,.7);

  /* 面 */
  --color-bg:var(--base-0);
  --color-bg-subtle:var(--base-5);       /* 薄い面（セクション・カード） */
  --color-bg-hover:var(--base-10);       /* 白いもののホバー */
  --color-bg-muted:var(--base-20);
  --color-bg-dark:var(--base-90);        /* 暗い面・黒いボタン */
  --color-bg-dark-hover:var(--base-80);  /* 黒いボタンのホバー */
  --color-bg-on-dark:rgba(255,255,255,.1);   /* 暗い面の上の薄い面 */
  --color-overlay:rgba(29,25,23,.72);        /* ドロワーの背後 */

  /* 罫線 */
  --color-line-subtle:var(--base-10);
  --color-line:var(--base-20);
  --color-line-mid:var(--base-30);       /* 選んでいないタブの上の線（選んでいるときは --color-line-strong） */
  --color-line-strong:var(--base-90);
  --color-line-inverse:var(--base-0);                /* 暗い面の上の白い線 */
  --color-line-on-dark:rgba(255,255,255,.18);        /* 暗い面の上の罫線 */
  --color-line-on-dark-strong:rgba(255,255,255,.55); /* 暗い面の上の線のボタン */

  /* 状態・アクセント */
  --color-error:#dc2626;
  --color-error-bg:#fdf0ef;
  --color-error-line:#f1a8a8;
  --color-accent:var(--primary-50);                /* トップFVの図・サービスの図 */

  /* 影 */
  --shadow-overlay:0 18px 40px rgba(29,25,23,.1);  /* メガメニュー・ドロップダウン */
  --shadow-raised:0 12px 32px rgba(29,25,23,.1);

  /* 罫線（線の太さ＋色） */
  --border:1px solid var(--color-line);
  --border-subtle:1px solid var(--color-line-subtle);
  --border-strong:1px solid var(--color-line-strong);
  --border-on-dark:1px solid var(--color-line-on-dark);
  --focus-ring:2px solid var(--color-text);
}
/* 見出しの SP の大きさ（959px 以下） */
@media(max-width:959px){
  :root{--fs-display-1:32px;--fs-display-2:28px;--fs-heading-1:28px;--fs-heading-2:24px;--fs-heading-4:18px;--fs-contact-h3:20px}
}


/* main.css */
*, ::before, ::after { box-sizing: border-box; border-style: solid; border-width: 0px; min-width: 0px; }
html { line-height: 1.15; text-size-adjust: 100%; -webkit-tap-highlight-color: transparent; }
body { margin: 0px; }
main { display: block; }
p, table, blockquote, address, pre, iframe, form, figure, dl { margin: 0px; }
h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; margin: 0px; }
ul, ol { margin: 0px; padding: 0px; list-style: none; }
dt { font-weight: var(--fw-bold); }
dd { margin-left: 0px; }
hr { box-sizing: content-box; height: 0px; overflow: visible; border-top-width: 1px; margin: 0px; clear: both; color: inherit; }
/* ds-allow:raw-font-family -- コード表示は等幅フォント */
pre { font-family: monospace, monospace; font-size: inherit; }
address { font-style: inherit; }
a { background-color: transparent; text-decoration: none; color: inherit; }
abbr[title] { text-decoration: underline dotted; }
b, strong { font-weight: var(--fw-bold); }
/* ds-allow:raw-font-family -- コード表示は等幅フォント */
code, kbd, samp { font-family: monospace, monospace; font-size: inherit; }
small { font-size: 80%; }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sub { bottom: -0.25em; }
sup { top: -0.5em; }
svg, img, embed, object, iframe { vertical-align: bottom; }
button, input, optgroup, select, textarea { appearance: none; vertical-align: middle; color: inherit; font: inherit; background: transparent; padding: 0px; margin: 0px; border-radius: 0px; text-align: inherit; text-transform: inherit; }
button, [type="button"], [type="reset"], [type="submit"] { cursor: pointer; }
button:disabled, [type="button"]:disabled, [type="reset"]:disabled, [type="submit"]:disabled { cursor: default; }
select:disabled { opacity: inherit; }
option { padding: 0px; }
fieldset { margin: 0px; padding: 0px; min-width: 0px; }
legend { padding: 0px; }
progress { vertical-align: baseline; }
textarea { overflow: auto; }
[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; }
[type="search"] { outline-offset: -2px; }
[type="search"]::-webkit-search-decoration { appearance: none; }
::-webkit-file-upload-button { appearance: button; font: inherit; }
[type="number"] { }
label[for] { cursor: pointer; }
details { display: block; }
summary { display: list-item; }
[contenteditable]:focus { outline: auto; }
table { border-color: inherit; border-collapse: collapse; }
caption { text-align: left; }
td, th { vertical-align: top; padding: 0px; }
th { text-align: left; font-weight: var(--fw-bold); }
@keyframes bgSlideInFromLeft { 
  0% { background-position: 100% bottom; }
  100% { background-position: 0px bottom; }
}
@keyframes bgSlideOutToRight { 
  0% { background-position: 0px bottom; }
  100% { background-position: -100% bottom; }
}
body { font-size: var(--fs-16); line-height: 1.8; letter-spacing: var(--tracking); font-family: var(--font-copy); font-weight: var(--fw-regular); color: var(--color-text); background: var(--color-bg); }
body ::selection { background-color: var(--color-bg-dark); color: var(--color-text-on-dark); }
.l-bottomCta { background-color: var(--color-bg-subtle); border-top: 1px solid var(--color-line-subtle); }
.l-bottomCta__container { padding: 0px; max-width: 1080px; margin: 0px auto; }
@media (min-width: 960px) {
  .l-bottomCta__contents { display: flex; justify-content: center; }
}
.l-bottomCta__item { position: relative; width: 100%; background: var(--color-bg); transition: background-color 0.5s cubic-bezier(0.075, 0.82, 0.165, 1), color 0.5s cubic-bezier(0.075, 0.82, 0.165, 1); display: flex; flex-direction: column; }
@media (min-width: 960px) {
  .l-bottomCta__item { width: 33.3333%; }
}
.l-bottomCta__item:not(:first-of-type) { border-top: 1px solid var(--color-line-subtle); }
@media (min-width: 960px) {
  .l-bottomCta__item:not(:first-of-type) { border-top-width: medium; border-top-style: none; border-top-color: currentcolor; border-left: 1px solid var(--color-line-subtle); }
}
.l-bottomCta__item:hover { color: var(--color-text-on-dark); }
.l-bottomCta__item:hover .l-bottomCta__content { background-color: var(--color-bg-dark); }
.l-bottomCta__item:hover .l-bottomCta__title::after { filter: brightness(0) invert(1); }
.l-bottomCta__link { position: absolute; z-index: 2; top: 0px; left: 0px; width: 100%; height: 100%; }
.l-bottomCta__content { position: relative; padding: 24px; transition: background-color 0.5s cubic-bezier(0.075, 0.82, 0.165, 1); }
.l-bottomCta__title { position: relative; z-index: 1; font-size: var(--fs-18); line-height: 1; font-weight: var(--fw-bold); padding-right: 40px; }
.l-bottomCta__title::after { content: ""; position: absolute; top: 50%; right: 0px; width: 24px; height: 24px; background-image: url("../bbe70ceaf868e90c5735.svg"); background-size: contain; background-repeat: no-repeat; background-position: center center; transform: translateY(-50%); transition: filter 0.5s cubic-bezier(0.075, 0.82, 0.165, 1); }
.l-bottomCta__text { position: relative; z-index: 1; margin-top: 15px; font-size: var(--fs-14); }
@media (min-width: 960px) {
  .l-bottomCta__text { margin-top: 12px; }
}
.l-bottomCta__text span { display: inline-block; }
.l-bottomCta__image { position: relative; overflow: hidden; padding-bottom: 55.5%; display: none; flex: 1 1 0%; }
@media (min-width: 960px) {
  .l-bottomCta__image { display: block; }
}
.l-bottomCta__image img { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(0.075, 0.82, 0.165, 1); }
.l-container { max-width: 1160px; margin: 0px auto; padding: 0px 24px; }
@media (min-width: 960px) {
  .l-container { padding: 0px 40px; }
}
.l-download__wrap { padding: 64px 0px 96px; }
@media (min-width: 960px) {
  .l-download__wrap { padding: 64px 0px 120px; }
}
.l-drawer { position: fixed; top: 0px; left: 0px; width: 100%; padding-top: 56px; background-color: var(--color-bg); transition: opacity 0.3s cubic-bezier(0.215, 0.61, 0.355, 1), visibility 0.3s cubic-bezier(0.215, 0.61, 0.355, 1); z-index: 9000; opacity: 0; visibility: hidden; }
.l-drawer.is--open { opacity: 1; visibility: visible; }
@media (min-width: 960px) {
  .l-drawer { display: none; }
}
.l-drawer__inner { border-top: 1px solid var(--color-line); max-height: calc(-56px + 100vh); overflow-y: auto; }
.l-drawer__navItem { border-bottom: 1px solid var(--color-line); }
.l-drawer__navItem.is--current { border-left: 4px solid var(--color-line-strong); }
.l-drawer__navLink { display: block; padding: 20px 24px; font-size: var(--fs-14); line-height: 1; transition: background-color 0.3s; }
.l-drawer__navLink:hover { background-color: var(--color-bg-subtle); }
.l-drawerOverlay { position: fixed; top: 0px; left: 0px; width: 100%; height: 100%; background-color: var(--color-overlay); opacity: 0; visibility: hidden; transition: opacity 0.3s, visibility 0.3s; z-index: 8000; }
@media (min-width: 960px) {
  .l-drawerOverlay { display: none; }
}
.l-drawerOverlay.is--open { opacity: 1; visibility: visible; }
@media (max-width: 959px) {
  body.is--fixed { position: fixed; width: 100%; height: 100%; overflow: hidden; }
}
.l-footer { padding: 64px 0px 120px; background-color: var(--color-bg-dark); }
@media (min-width: 960px) {
  .l-footer { padding: 64px 0px; }
}
.l-footer.is--simple { padding: 64px 0px; }
.l-footer__copyright { margin-top: 16px; color: var(--color-text-muted); font-size: var(--fs-12); line-height: 1; font-family: var(--font-num); }
.l-footer__copyright.is--simple { margin-top: 0px; }
.l-header { top: 0px; left: 0px; width: 100%; z-index: 10000; overflow: hidden; }
@media (max-width: 959px) {
  .l-header { position: fixed; background-color: var(--color-bg); }
}
@media (min-width: 960px) {
  .l-header { position: absolute; display: block; }
  .l-header.is--fixed { position: fixed; transform: translateY(-100%); background-color: var(--color-bg); }
  .l-header.is--transition { transition: transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1); }
  .l-header.is--visible { transform: translateY(0px); }
}
@media (min-width: 960px) {
  .l-header.is--fixed .l-header__inner { height: 64px; }
  .l-header.is--fixed .l-header__logo a, .l-header.is--fixed .l-header__logo span { width: 160px; }
  .l-header.is--fixed .l-header__navItem { height: 64px; }
}
.l-header__inner { display: flex; justify-content: space-between; align-items: center; max-width: 1160px; padding: 0px 24px; margin: 0px auto; height: 56px; }
@media (min-width: 960px) {
  .l-header__inner { padding: 0px 40px 0px 22px; height: 96px; }
}
@media (min-width: 1024px) {
  .l-header__inner { padding: 0px 40px 0px 16px; }
}
.l-header__navBtn { position: relative; display: block; width: 40px; height: 40px; }
.l-header__navBtn span { position: absolute; display: block; height: 1px; width: 100%; left: 50%; transform: translate(-50%, -50%); background-color: var(--color-bg-dark); transition: 0.3s cubic-bezier(0.215, 0.61, 0.355, 1); }
.l-header__navBtn span:nth-of-type(1) { top: 12px; }
.l-header__navBtn span:nth-of-type(2) { top: 50%; }
.l-header__navBtn span:nth-of-type(3) { top: calc(50% + 8px); }
.l-header__navBtn.is--open span:nth-of-type(1) { top: 50%; transform: translate(-50%, -50%) rotate(25deg); }
.l-header__navBtn.is--open span:nth-of-type(2) { opacity: 0; }
.l-header__navBtn.is--open span:nth-of-type(3) { top: 50%; transform: translate(-50%, -50%) rotate(-25deg); }
@media (min-width: 960px) {
  .l-header__navBtn { display: none; }
}
.l-header__nav { display: none; }
@media (min-width: 960px) {
  .l-header__nav { display: block; }
}
.l-header__navList { display: flex; justify-content: space-between; align-items: center; }
.l-header__navItem { position: relative; line-height: 1; height: 96px; }
.l-header__navItem a { position: relative; display: block; height: inherit; }
.l-header__navItem a:hover span::before { transform: translateY(0px); }
@media (min-width: 960px) {
  .l-header__navItem a { padding: 0px 14px; }
}
@media (min-width: 1024px) {
  .l-header__navItem a { padding: 0px 24px; }
}
.l-header__navItem span { position: relative; display: flex; align-items: center; font-size: var(--fs-14); height: inherit; }
.l-header__navItem span::before { content: ""; position: absolute; top: 0px; left: 0px; width: 100%; height: 4px; background-color: var(--color-bg-dark); transform: translateY(-100%); transition: transform 0.3s cubic-bezier(0.215, 0.61, 0.355, 1); }
.l-header__navItem.is-current span::before { transform: translateY(0px); }
.l-header__logo { display: block; }
.l-header__logo a, .l-header__logo span { display: flex; align-items: center; width: 172px; }
@media (min-width: 960px) {
  .l-header__logo a, .l-header__logo span { width: 204px; }
}
.l-header__logo img { width: 100%; height: auto; }
.l-layout { position: relative; padding-top: 56px; padding-bottom: 88px; }
@media (min-width: 960px) {
  .l-layout { padding-top: 96px; }
}
@media (min-width: 960px) {
  .l-layout { padding-bottom: 0px; }
}
.l-layout.hide--fixCta { padding-bottom: 0px; }
.l-layout__topBg { position: absolute; top: 112px; z-index: -1; display: block; width: calc(100% - 48px); right: 50%; transform: translateX(50%); }
.l-layout__topBg img { width: 100%; height: auto; }
@media (min-width: 960px) {
  .l-layout__topBg { top: -40px; right: 24px; transform: translateX(0px); width: 827px; }
}
@media (min-width: 1024px) {
  .l-layout__topBg { right: 85px; }
}
.l-layout__main { opacity: 1; transition: opacity 0.7s cubic-bezier(0.645, 0.045, 0.355, 1); }
/* 本文のフェードインは、読み込み直後から CSS だけで行う（JS の実行を待たない）。
   JS を待って表示すると、表示速度の計測（FCP・LCP）で遅く記録されるため */
.l-layout__main.is--hide { animation: layoutMainIn 0.5s cubic-bezier(0.645, 0.045, 0.355, 1) both; }
@keyframes layoutMainIn { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .l-layout__main.is--hide { animation: none; } }
.l-layout__content { padding-bottom: 96px; }
@media (min-width: 960px) {
  .l-layout__content { padding-bottom: 120px; }
}
.l-mediaContent > :first-child { margin-top: 0px; }
.l-mediaContent > :last-child { margin-bottom: 0px; }
.l-mediaContent strong, .l-mediaContent b { font-weight: var(--fw-bold); }
.l-mediaContent img { width: 100%; }
.l-mediaContent h2 { margin: 64px 0px 24px; padding: 16px 24px; font-weight: var(--fw-bold); font-size: var(--fs-20); line-height: 1.6; color: var(--color-text-on-dark); background-color: var(--color-bg-dark); }
@media (min-width: 960px) {
  .l-mediaContent h2 { font-size: var(--fs-24); margin: 96px 0px 48px; }
}
.l-mediaContent h3 { margin: 48px 0px 24px; font-size: var(--fs-22); line-height: 1.6; padding-left: 24px; border-left: 2px solid var(--color-line-strong); font-weight: var(--fw-bold); }
.l-mediaContent h4 { margin: 24px 0px; font-size: var(--fs-18); font-weight: var(--fw-bold); }
.l-mediaContent p { font-size: var(--fs-16); line-height: 2; }
.l-mediaContent a { position: relative; padding-bottom: 3px; }
.l-mediaContent > p { margin: 24px 0px; text-align: justify; }
.l-mediaContent figure { margin: 24px 0px; }
.l-mediaContent figure a { background: none; transition: opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); }
.l-mediaContent figure a:hover { opacity: 0.7; }
@media (min-width: 960px) {
  .l-mediaContent figure { margin: 48px 0px; }
}
.l-mediaContent figcaption { margin-top: 16px; margin-bottom: 0px; font-size: var(--fs-14); line-height: 1; color: var(--color-text-muted); }
.l-mediaContent li { position: relative; line-height: 2; }
.l-mediaContent > ul, .l-mediaContent > ol { margin: 24px 0px; }
.l-mediaContent ul li { padding-left: 20px; }
.l-mediaContent ul li::before { position: absolute; top: 2px; left: 0px; content: "・"; }
.l-mediaContent ol { counter-reset: list 0; }
.l-mediaContent ol li { padding-left: 20px; }
.l-mediaContent ol li::before { position: absolute; top: 0px; left: 0px; counter-increment: list 1; content: counter(list) "."; }
.l-mediaContent .wp-block-table { overflow-x: auto; scrollbar-width: none; }
@media (max-width: 959px) {
  .l-mediaContent .wp-block-table { width: calc(100% + 48px); margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }
}
.l-mediaContent .wp-block-table::-webkit-scrollbar { display: none; }
.l-mediaContent table { width: 100%; }
@media (max-width: 959px) {
  .l-mediaContent table { white-space: nowrap; }
}
.l-mediaContent table tr:nth-child(2n+1) td { background-color: var(--color-bg-subtle); }
.l-mediaContent table th, .l-mediaContent table td { border: 1px solid var(--color-line); padding: 16px; vertical-align: middle; font-size: var(--fs-14); line-height: 1.6; text-align: center; word-break: break-all; }
.l-mediaContent table th p, .l-mediaContent table td p { font-size: var(--fs-14); line-height: 1.6; margin-bottom: 20px; }
.l-mediaContent table th { border: 1px solid var(--color-line); background-color: var(--color-bg-dark-hover); color: var(--color-text-on-dark); }
.l-mediaContent .focused-block { position: relative; padding: 16px 24px; border: 1px solid var(--color-line-strong); margin: 48px 0px; }
.l-mediaContent .focused-block p:not(:last-child) { margin-bottom: 16px; }
.l-mediaContent .focused-block a { font-size: var(--fs-14); }
.l-mediaContent .lwptoc { margin: 24px 0px; }
@media (min-width: 960px) {
  .l-mediaContent .lwptoc { margin: 48px 0px; }
}
.l-mediaContent .lwptoc .lwptoc_i { padding: 0px; display: block; width: 100%; background-color: var(--color-bg-subtle); color: var(--color-text); }
.l-mediaContent .lwptoc .lwptoc_header { padding: 16px 24px; border-bottom: 1px solid var(--color-line); margin: 0px; }
.l-mediaContent .lwptoc .lwptoc_title { font-size: var(--fs-16); line-height: 1; font-weight: var(--fw-bold); }
.l-mediaContent .lwptoc .lwptoc_itemWrap .lwptoc_itemWrap { padding-left: 16px; margin-left: 0px; margin-top: 8px; }
.l-mediaContent .lwptoc .lwptoc_item { line-height: 1.6; padding: 16px 24px; border-bottom: 1px solid var(--color-line-inverse); }
.l-mediaContent .lwptoc .lwptoc_item a { color: var(--color-text); font-weight: var(--fw-bold); background: none; padding-bottom: 0px; }
.l-mediaContent .lwptoc .lwptoc_item a:visited { color: var(--color-text); }
.l-mediaContent .lwptoc .lwptoc_item:last-of-type { border-bottom-width: medium; border-bottom-style: none; border-bottom-color: currentcolor; }
.l-mediaContent .lwptoc .lwptoc_item .lwptoc_item { padding: 0px; border-bottom-width: medium; border-bottom-style: none; border-bottom-color: currentcolor; }
.l-mediaContent .lwptoc .lwptoc_item .lwptoc_item + .lwptoc_item { margin-top: 8px; }
.l-mediaContent .lwptoc .lwptoc_item .lwptoc_item a { font-weight: var(--fw-regular); font-size: var(--fs-14); line-height: 1.6; padding-bottom: 0px; }
.c-arrowLink { position: relative; padding: 7px 26px 7px 10px; background-color: var(--color-bg); font-size: var(--fs-14); line-height: 1; font-weight: var(--fw-bold); transition: color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1); }
.c-arrowLink::before { content: ""; display: block; position: absolute; z-index: 1; right: 6px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; background: url("../bbe70ceaf868e90c5735.svg") center center / contain no-repeat; transition: filter 0.3s cubic-bezier(0.215, 0.61, 0.355, 1); }
.c-mediaItem { position: relative; padding: 24px 32px 24px 0px; border-bottom: 1px solid var(--color-line); background-color: var(--color-bg); }
@media (min-width: 960px) {
  .c-mediaItem { padding: 24px 40px 24px 0px; }
}
.c-mediaItem:first-of-type { border-top: 1px solid var(--color-line); }
.c-mediaItem::after { content: ""; position: absolute; top: 50%; right: 0px; width: 24px; height: 24px; background: url("../bbe70ceaf868e90c5735.svg") center center / contain no-repeat; transform: translateY(-50%); transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); }
.c-mediaItem:hover::after { transform: translateY(-50%) translateX(4px); }
.c-mediaItem__content { flex-grow: 1; }
.c-mediaItem__title { font-size: var(--fs-18); line-height: 1.8; font-weight: var(--fw-bold); }
.c-mediaItem__meta { margin-top: 16px; gap: 10px; display: flex; flex-direction: column; }
@media (min-width: 960px) {
  .c-mediaItem__meta { gap: 16px; align-items: center; flex-direction: row; }
}
.c-mediaItem__metaInner { display: flex; align-items: center; gap: 16px; flex-grow: 0; flex-shrink: 1; }
.c-mediaItem__avatar { width: 24px; height: 24px; }
.c-mediaItem__avatar img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.c-mediaItem__tags { display: flex; gap: var(--gap-tag); flex-grow: 0; flex-shrink: 1; flex-wrap: wrap; }
.c-mediaItem__tags .c-chip { position: relative; z-index: 1; }
.c-mediaItem__date { font-size: var(--fs-13); line-height: 1; color: var(--color-text-muted); font-family: var(--font-num); }
.c-overlayBorderLink { position: absolute; z-index: 1; top: 0px; left: 0px; width: 100%; height: 100%; }
.c-overlayBorderLink::before, .c-overlayBorderLink::after { content: ""; position: absolute; z-index: 1; left: 0px; width: 100%; height: 1px; background-color: var(--color-bg-dark); transform: scaleX(0); transition: transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1); transform-origin: right center; }
.c-overlayBorderLink::before { top: -1px; }
.c-overlayBorderLink::after { bottom: -1px; }
.c-overlayBorderLink:hover::before, .c-overlayBorderLink:hover::after { transform-origin: left center; transform: scaleX(1); }
.c-underlineLink { position: relative; }
.c-underlineLink::before { position: absolute; content: ""; display: block; bottom: 0px; left: 0px; width: 100%; height: 1px; background-color: var(--color-bg-muted); }
.c-underlineLink::after { position: absolute; content: ""; display: block; bottom: 0px; left: 0px; width: 100%; height: 1px; background-color: var(--color-bg-dark); transform: scaleX(0); transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); transform-origin: right center; }
.c-underlineLink:hover::after { transform: scaleX(1); transform-origin: left center; }
.p-career { padding-bottom: 88px; }
@media (min-width: 960px) {
  .p-career { padding-bottom: 0px; }
}
.p-casePost__wrap { padding-top: 64px; padding-bottom: 96px; }
@media (min-width: 960px) {
  .p-casePost__wrap { padding-bottom: 120px; }
}
.p-casePost__container { display: flex; flex-direction: column; }
@media (min-width: 960px) {
  .p-casePost__container { align-items: flex-start; flex-direction: row; gap: 40px; }
}
@media (min-width: 1024px) {
  .p-casePost__container { gap: 64px; }
}
.p-casePost__main { flex: 1 1 0%; }
.p-casePost__thumbnail { position: relative; margin-top: 48px; padding-bottom: 69.6%; }
.p-casePost__thumbnail img { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; object-fit: cover; }
.p-casePost__content { margin-top: 48px; }
.p-casePost__aside { display: none; }
@media (min-width: 960px) {
  .p-casePost__aside { position: sticky; top: 96px; width: 252px; display: block; }
}
.p-casePost__asideTitle { padding: 16px 20px; line-height: 1; }
.p-casePost__asideContent { background-color: var(--color-bg); border: 1px solid var(--color-line); }
.p-casePost__asideList { display: flex; flex-direction: column; }
.p-casePost__asideItem { display: block; font-size: var(--fs-12); line-height: 1.6; border-top: 1px solid var(--color-line); padding: 16px 20px; transition: background-color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1); text-align: justify; }
.p-casePost__asideItem:hover { background-color: var(--color-bg-subtle); }
.p-casePost__asideCta { margin-top: 24px; display: flex; flex-direction: column; gap: 8px; }
.p-caseRelated { padding-top: 48px; border-top: 1px solid var(--color-line-strong); }
.p-caseRelated__title { font-size: var(--fs-24); line-height: 1; font-weight: var(--fw-bold); }
@media (min-width: 960px) {
  .p-caseRelated__title { font-size: var(--fs-28); }
}
.p-caseRelated__list { margin-top: 48px; display: flex; flex-wrap: wrap; gap: 40px; }
.p-contact__wrap { min-height: calc(-64px + 100vh); }
.p-contactHero__note { margin-top: 24px; line-height: 1.8; font-size: var(--fs-16); color: var(--color-error); }
.p-contactThanks__content { margin-top: 40px; }
.p-contactThanks__content p { text-align: justify; }
.p-contactThanks__content p + p { margin-top: 16px; }
.p-contactThanks__cta { position: relative; margin-top: 48px; border: 1px solid var(--color-line); background-color: var(--color-bg); display: flex; flex-direction: column; transition: border-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); }
@media (min-width: 960px) {
  .p-contactThanks__cta { margin-top: 64px; align-items: center; flex-direction: row-reverse; }
}
.p-contactThanks__cta:hover { border-color: var(--color-line-strong); }
.p-contactThanks__cta:hover .p-contactThanks__ctaTitle::after { transform: translateY(-50%) translateX(4px); }
.p-contactThanks__ctaOverlay { position: absolute; z-index: 2; top: 0px; left: 0px; width: 100%; height: 100%; }
.p-contactThanks__ctaContent { flex: 1 1 0%; padding: 24px; }
.p-contactThanks__ctaTitle { position: relative; padding: 3px 40px 3px 0px; font-size: var(--fs-18); font-weight: var(--fw-bold); line-height: 1; }
.p-contactThanks__ctaTitle::after { content: ""; position: absolute; top: 50%; right: 0px; transform: translateY(-50%); width: 24px; height: 24px; background-image: url("../bbe70ceaf868e90c5735.svg"); background-size: contain; background-repeat: no-repeat; background-position: center center; transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); }
.p-contactThanks__ctaText { font-size: var(--fs-14); margin-top: 15px; }
.p-contactThanks__ctaImage { width: 100%; }
@media (min-width: 960px) {
  .p-contactThanks__ctaImage { width: 287px; height: 160px; }
}
.p-contactThanks__ctaImage img { width: 100%; height: 100%; object-fit: cover; }
.p-contactThanks__back { position: relative; margin-top: 48px; }
@media (min-width: 960px) {
  .p-contactThanks__back { margin-top: 64px; }
}
.p-downloadThanks__text { margin-top: 40px; text-align: justify; }
.p-downloadThanks__buttonWrap { margin-top: 40px; text-align: center; }
.p-downloadThanks__back { margin-top: 64px; }
.p-media__container { display: flex; flex-direction: column; }
@media (min-width: 960px) {
  .p-media__container { padding-top: 64px; flex-direction: row; gap: 40px; align-items: flex-start; }
}
@media (min-width: 1024px) {
  .p-media__container { gap: 80px; }
}
.p-media__main { flex: 1 1 0%; padding-top: 32px; }
@media (min-width: 960px) {
  .p-media__main { padding-top: 0px; }
}
.p-media__list { display: none; opacity: 0; transition: opacity 1s cubic-bezier(0.215, 0.61, 0.355, 1); }
.p-media__list.is--display { display: block; }
.p-media__list.is--show { opacity: 1; }
.p-media__list .c-mediaItem:first-of-type { border-top-width: medium; border-top-style: none; border-top-color: currentcolor; }
.p-media__cta { margin: 40px -24px 0px; padding: 24px 16px; background-color: var(--color-bg-dark); }
@media (min-width: 960px) {
  .p-media__cta { padding: 24px; margin: 40px auto 0px; }
}
.p-media__ctaText { font-size: var(--fs-16); color: var(--color-text-on-dark); text-align: center; line-height: 1.6; }
@media (min-width: 960px) {
  .p-media__ctaText br { display: none; }
}
.p-media__ctaInner { margin-top: 24px; width: 100%; text-align: center; }
.p-media__pagination { margin-top: 40px; }
.p-media__paginationList { display: flex; align-items: center; justify-content: center; gap: 4px; }
.p-media__paginationItem a, .p-media__paginationItem span { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; font-size: var(--fs-14); line-height: 1; border: 1px solid var(--color-line); transition: border-color 0.4s cubic-bezier(0.215, 0.61, 0.355, 1); }
.p-media__paginationItem a:hover, .p-media__paginationItem span:hover { border-color: var(--color-line-strong); }
.p-media__paginationItem.is--current a, .p-media__paginationItem.is--current span { border-color: var(--color-line-strong); color: var(--color-text-on-dark); background-color: var(--color-bg-dark-hover); }
.p-media__paginationDots { position: relative; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; }
.p-media__paginationDots::before { content: ""; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 20px; height: 4px; background-image: url("../35c4cf953496c3097eef.svg"); background-size: contain; background-repeat: no-repeat; }
.p-media__paginationPrev a, .p-media__paginationPrev span, .p-media__paginationNext a, .p-media__paginationNext span { position: relative; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; }
.p-media__paginationPrev a::before, .p-media__paginationPrev span::before, .p-media__paginationNext a::before, .p-media__paginationNext span::before { content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 24px; height: 24px; background-image: url("../aff877df66c64037306c.svg"); background-size: contain; background-repeat: no-repeat; background-position: center center; transition: transform 0.4s cubic-bezier(0.215, 0.61, 0.355, 1); }
.p-media__paginationPrev.is--disabled a::before, .p-media__paginationPrev.is--disabled span::before, .p-media__paginationNext.is--disabled a::before, .p-media__paginationNext.is--disabled span::before { background-image: url("../078b5ce3bd09123fa60a.svg"); }
.p-media__paginationPrev a::before, .p-media__paginationPrev span::before { transform: translate(-50%, -50%) rotate(180deg); }
.p-media__paginationPrev a:hover::before { transform: translate(calc(-50% - 4px), -50%) rotate(180deg); }
.p-media__paginationNext a:hover::before { transform: translate(calc(-50% + 4px), -50%); }
.p-mediaAuthor { margin-top: 64px; background-color: var(--color-bg-dark); }
@media (min-width: 960px) {
  .p-mediaAuthor { margin-top: 96px; }
}
.p-mediaAuthor__heading { padding: 24px; line-height: 1; font-weight: var(--fw-bold); color: var(--color-text-on-dark); }
.p-mediaAuthor__content { padding: 32px 24px; color: var(--color-text-on-dark); border-top: 1px solid var(--color-line-strong); }
.p-mediaAuthor__profile { display: flex; flex-direction: column; gap: 24px; }
@media (min-width: 960px) {
  .p-mediaAuthor__profile { flex-direction: row; }
}
.p-mediaAuthor__image { aspect-ratio: 1 / 1; }
.p-mediaAuthor__image img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 960px) {
  .p-mediaAuthor__image { width: 160px; height: 160px; }
}
.p-mediaAuthor__info { flex: 1 1 0%; }
.p-mediaAuthor__name-en { font-size: var(--fs-12); line-height: 1; color: var(--color-text-on-dark-sub); font-family: var(--font-num); font-weight: var(--fw-bold); }
.p-mediaAuthor__name-jp { margin-top: 10px; font-size: var(--fs-20); line-height: 1; font-weight: var(--fw-bold); }
.p-mediaAuthor__position { margin-top: 14px; font-size: var(--fs-12); line-height: 1; font-weight: var(--fw-bold); font-family: var(--font-num); }
.p-mediaAuthor__bio { margin-top: 18px; font-size: var(--fs-14); }
.p-mediaAuthor__detail { display: flex; flex-direction: column; margin-top: 24px; gap: 24px; }
@media (min-width: 960px) {
  .p-mediaAuthor__detail { flex-direction: row; }
}
.p-mediaAuthor__expertise { flex: 1 1 0%; }
.p-mediaAuthor__expertiseTitle { font-size: var(--fs-14); line-height: 1; font-weight: var(--fw-bold); }
.p-mediaAuthor__expertiseList { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 4px; }
.p-mediaAuthor__actions { display: flex; flex-direction: column; gap: 4px; width: 100%; }
@media (min-width: 960px) {
  .p-mediaAuthor__actions { width: auto; min-width: 240px; flex: none; }
}
.p-mediaDetail__container { display: flex; flex-direction: column; }
@media (min-width: 960px) {
  .p-mediaDetail__container { align-items: flex-start; padding-top: 64px; flex-direction: row; gap: 40px; }
}
@media (min-width: 1200px) {
  .p-mediaDetail__container { gap: 80px; }
}
.p-mediaDetail__main { flex: 1 1 0%; padding-top: 32px; }
@media (min-width: 960px) {
  .p-mediaDetail__main { padding-top: 0px; }
}
.p-mediaDetail__info { display: flex; align-items: center; gap: 16px; }
.p-mediaDetail__infoDate { font-size: var(--fs-14); line-height: 1; color: var(--color-text-muted); font-family: var(--font-num); }
.p-mediaDetail__title { font-size: var(--fs-24); line-height: 1.6; font-weight: var(--fw-bold); margin-top: 12px; }
@media (min-width: 960px) {
  .p-mediaDetail__title { margin-top: 24px; font-size: var(--fs-28); }
}
.p-mediaDetail__thumbnail { margin-top: 48px; }
.p-mediaDetail__thumbnail img { width: 100%; height: auto; max-height: 532px; object-fit: cover; }
.p-mediaDetail__content { margin-top: 96px; }
.p-mediaDetail__content p { font-size: var(--fs-18); }
.p-mediaDetail__content h2 { font-size: var(--fs-28); }
.p-mediaDetail__content h3 { font-size: var(--fs-24); }
.p-mediaDetail__content ul { font-size: var(--fs-18); }
.p-mediaDetail__related { margin-top: 64px; }
@media (min-width: 960px) {
  .p-mediaDetail__related { margin-top: 96px; }
}
.p-mediaDetail__relatedTitle { font-size: var(--fs-28); line-height: 1.6; font-weight: var(--fw-bold); padding-top: 48px; border-top: 1px solid var(--color-line-strong); }
.p-mediaDetail__relatedList { margin-top: 48px; }
.p-mediaSidebar { z-index: 100; transition: background-color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1); }
@media (max-width: 959px) {
  .p-mediaSidebar { position: fixed; bottom: 88px; right: 24px; width: calc(100% - 48px); }
}
@media (min-width: 960px) {
  .p-mediaSidebar { position: sticky; width: 236px; top: 112px; }
}
.p-mediaSidebar__cta { display: none; }
@media (min-width: 960px) {
  .p-mediaSidebar__cta { margin-top: 40px; display: flex; flex-direction: column; gap: 8px; }
}
.p-memberHistory { margin-top: 64px; }
@media (min-width: 960px) {
  .p-memberHistory { margin-top: 96px; }
}
.p-memberHistory__mt40 { margin-top: 40px !important; }
.p-memberHistory__mt0 { margin-top: 0px !important; }
.p-memberHistory__timeline { margin-top: 48px; }
@media (min-width: 960px) {
  .p-memberHistory__timeline { margin-top: 64px; }
}
.p-memberHistory__group { display: flex; flex-direction: column; gap: 48px; }
@media (min-width: 960px) {
  .p-memberHistory__group { flex-direction: row; }
}
.p-memberHistory__group + .p-memberHistory__group { margin-top: 48px; }
@media (min-width: 960px) {
  .p-memberHistory__group + .p-memberHistory__group { margin-top: 64px; }
}
.p-memberHistory__header { position: relative; padding-top: 24px; border-top: 1px solid var(--color-line-strong); }
@media (min-width: 960px) {
  .p-memberHistory__header { padding-top: 0px; border-top-width: medium; border-top-style: none; border-top-color: currentcolor; width: 96px; }
  .p-memberHistory__header::before { content: ""; position: absolute; top: 0px; left: 50%; width: 1px; height: 100%; background-color: var(--color-bg-muted); transform: translateX(-50%); }
}
.p-memberHistory__date { position: relative; z-index: 1; display: flex; width: 100%; align-items: center; gap: 8px; }
@media (min-width: 960px) {
  .p-memberHistory__date { justify-content: center; min-height: 54px; flex-direction: column; text-align: center; background-color: var(--color-bg); padding-bottom: 16px; }
}
.p-memberHistory__year { font-size: var(--fs-20); line-height: 1; font-weight: var(--fw-bold); font-family: var(--font-num); }
.p-memberHistory__label { font-size: var(--fs-16); line-height: 1; font-weight: var(--fw-bold); }
.p-memberHistory__body { flex: 1 1 0%; }
.p-memberHistory__item + .p-memberHistory__item { margin-top: 48px; }
@media (min-width: 960px) {
  .p-memberHistory__item + .p-memberHistory__item { margin-top: 64px; }
}
.p-memberHistory__title { font-size: var(--fs-24); line-height: 1.6; font-weight: var(--fw-bold); }
.p-memberHistory__description { margin-top: 24px; line-height: 2; text-align: justify; }
.p-memberHistory__section { margin-top: 48px; }
.p-memberHistory__section:first-child { padding-top: 8px; margin-top: 0px; }
@media (min-width: 960px) {
  .p-memberHistory__section { margin-top: 40px; }
}
.p-memberHistory__sectionTitle { line-height: 1; font-weight: var(--fw-bold); font-size: var(--fs-20); }
.p-memberHistory__articles { margin-top: 40px; display: flex; flex-direction: column; }
.p-memberHistory__article { position: relative; display: block; padding: 24px 40px 24px 0px; border-bottom: 1px solid var(--color-line); }
.p-memberHistory__article:first-of-type { border-top: 1px solid var(--color-line); }
.p-memberHistory__article::after { content: ""; position: absolute; right: 0px; top: 50%; transform: translateY(-50%); width: 24px; height: 24px; background-image: url("../bbe70ceaf868e90c5735.svg"); background-size: contain; background-repeat: no-repeat; background-position: center center; transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); }
.p-memberHistory__article:hover::after { transform: translateY(-50%) translateX(4px); }
.p-memberHistory__articleTitle { font-size: var(--fs-16); line-height: 1.6; font-weight: var(--fw-bold); }
.p-memberHistory__articleMeta { margin-top: 12px; display: flex; gap: 10px; flex-direction: column; }
@media (min-width: 960px) {
  .p-memberHistory__articleMeta { align-items: center; gap: 16px; flex-direction: row; }
}
.p-memberHistory__articleTags { position: relative; display: flex; align-items: center; flex-wrap: wrap; gap: var(--gap-tag); }
.p-memberHistory__articleTags a { position: relative; z-index: 2; }
.p-memberHistory__articleDate { line-height: 1; color: var(--color-text-muted); font-size: var(--fs-13); font-family: var(--font-num); }
.p-memberHistory__achievements { margin-top: 40px; }
.p-memberHistory__achievement { position: relative; border-bottom: 1px solid var(--color-line); }
.p-memberHistory__achievement:first-of-type { border-top: 1px solid var(--color-line); }
.p-memberHistory__achievement.is--open .p-memberHistory__achievementTitle::before { transform: translateY(-50%); }
.p-memberHistory__achievement .p-memberHistory__achievementTitle:hover + .p-memberHistory__line::before, .p-memberHistory__achievement .p-memberHistory__achievementTitle:hover + .p-memberHistory__line::after { transform: scaleX(1); transform-origin: left center; }
.p-memberHistory__line { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; pointer-events: none; }
.p-memberHistory__line::before, .p-memberHistory__line::after { content: ""; position: absolute; z-index: 1; left: 0px; width: 100%; height: 1px; background-color: var(--color-bg-dark); transform: scaleX(0); transition: transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1); transform-origin: right center; }
.p-memberHistory__line::before { top: -1px; }
.p-memberHistory__line::after { bottom: -1px; }
.p-memberHistory__achievementTitle { position: relative; display: block; width: 100%; text-align: left; padding: 16px 48px 16px 0px; font-size: var(--fs-16); line-height: 1.6; font-weight: var(--fw-bold); }
.p-memberHistory__achievementTitle::before, .p-memberHistory__achievementTitle::after { content: ""; position: absolute; height: 2px; width: 16px; background-color: var(--color-bg-muted); top: calc(50% - 1px); transition: background-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); }
.p-memberHistory__achievementTitle::before { right: 4px; transform: translateY(-50%) rotate(90deg); }
.p-memberHistory__achievementTitle::after { right: 4px; transform: translateY(-50%); }
.p-memberHistory__achievementTitle:hover::before, .p-memberHistory__achievementTitle:hover::after { background-color: var(--color-bg-dark); }
.p-memberHistory__achievementContent { overflow: hidden; height: 0px; transition: height 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); }
.p-memberHistory__achievementDescription { padding-right: 48px; padding-bottom: 24px; font-size: var(--fs-14); }
.p-memberHistory__moreButton { margin-top: 32px; width: 100%; }
@media (min-width: 960px) {
  .p-memberHistory__moreButton { margin-top: 40px; }
}
.p-memberHistory__moreLinkWrapper { margin-top: 24px; display: flex; }
.p-memberHistory__moreLink { position: relative; width: 100%; height: 48px; display: flex; align-items: center; justify-content: center; text-align: center; font-size: var(--fs-14); line-height: 1; gap: 8px; padding: 4px; border-bottom: 1px solid var(--color-line); }
.p-memberHistory__moreLink img { width: 16px; height: 16px; transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); }
.p-memberHistory__moreLink::before, .p-memberHistory__moreLink::after { content: ""; position: absolute; z-index: 1; left: 0px; width: 100%; height: 1px; background-color: var(--color-bg-dark); transform: scaleX(0); transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); transform-origin: right center; }
.p-memberHistory__moreLink::before { top: -1px; }
.p-memberHistory__moreLink::after { bottom: -1px; }
.p-memberHistory__moreLink:hover img { transform: translateX(4px); }
.p-memberHistory__moreLink:hover::before, .p-memberHistory__moreLink:hover::after { transform-origin: left center; transform: scaleX(1); }
.p-new_service__inner { margin: 48px 0px; }
.p-new_service__inner .client-contents { display: flex; flex-direction: column; gap: 8px; }
.p-new_service__inner .client-content { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.p-new_service__inner .client-content a { width: 100%; display: flex; flex-direction: column; border: 1px solid var(--color-line-strong); padding-bottom: 0px; }
@media (min-width: 960px) {
  .p-new_service__inner .client-content a { flex-direction: row; }
}
.p-new_service__inner .client-content a:hover .client-title > span { background-position: left bottom; }
.p-new_service__inner .client-content a:hover .p-caseItem__arrow { transform: translate(4px, -50%); }
.p-new_service__inner .client-thumb { position: relative; width: 100%; padding-bottom: 68%; }
@media (min-width: 960px) {
  .p-new_service__inner .client-thumb { width: 200px; min-height: 120px; padding-bottom: 0px; }
}
.p-new_service__inner .client-thumb img { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; object-fit: cover; }
.p-new_service__inner .client-text { position: relative; flex: 1 1 0%; padding: 24px; }
@media (min-width: 960px) {
  .p-new_service__inner .client-text { padding: 24px 64px 24px 24px; }
}
.p-new_service__inner .client-cat { width: fit-content; padding: 6px 8px 5px; border: 1px solid var(--color-line); font-size: var(--fs-12); line-height: 1; margin-bottom: 12px; }
.p-new_service__inner .client-title { font-size: var(--fs-16); line-height: 1.8; }
.p-new_service__inner .client-title > span { position: relative; padding-bottom: 3px; background-image: linear-gradient(to left, var(--color-bg-muted) 50%, var(--color-bg-dark) 50%); background-size: 200% 1px; background-repeat: no-repeat; background-position: right bottom; transition: background-position 0.4s cubic-bezier(0.645, 0.045, 0.355, 1); }
.p-new_service__inner .p-caseItem__arrow { position: absolute; top: 50%; right: 24px; width: 24px; height: 24px; transform: translateY(-50%); background: url("../bbe70ceaf868e90c5735.svg") center center / contain no-repeat; transition: transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1); display: none; }
@media (min-width: 960px) {
  .p-new_service__inner .p-caseItem__arrow { display: block; }
}
.p-secondHalf { position: relative; padding: 0px 25px; color: var(--color-text); font-size: var(--fs-16); }
@media (min-width: 768px) {
  .p-secondHalf { padding: 0px 48px; }
}
@media (max-width: 767px) {
  .p-secondHalf .is-pc { display: none; }
}
@media (min-width: 768px) {
  .p-secondHalf .is-sp { display: none; }
}
.p-secondHalf-mv { position: relative; min-height: calc(-88px + 100svh); }
@media (min-width: 768px) {
  .p-secondHalf-mv { display: flex; align-items: center; padding: 60px 0px; min-height: calc(-60px + 100vh); }
}
.p-secondHalf-mv__contents { display: flex; flex-direction: column; margin: 0px auto; width: 100%; max-width: 800px; min-height: calc(-88px + 100svh); }
@media (min-width: 768px) {
  .p-secondHalf-mv__contents { display: block; min-height: 0px; }
}
.p-secondHalf-mv__messageWrap { margin: auto 0px; padding: 60px 0px; width: 100%; }
@media (min-width: 768px) {
  .p-secondHalf-mv__messageWrap { padding: 0px; }
}
.p-secondHalf-mv__messageImages01, .p-secondHalf-mv__messageImages02 { display: flex; align-items: flex-end; }
.p-secondHalf-mv__messageImages01 img, .p-secondHalf-mv__messageImages02 img { display: inline-block; }
.p-secondHalf-mv__messageImages01 .p-secondHalf-mv__messageImage-main { width: 46.5%; }
@media (min-width: 768px) {
  .p-secondHalf-mv__messageImages01 .p-secondHalf-mv__messageImage-main { width: 336px; }
}
.p-secondHalf-mv__messageImages01 .p-secondHalf-mv__messageImage-sub { margin-left: 2%; width: 8.5%; }
@media (min-width: 768px) {
  .p-secondHalf-mv__messageImages01 .p-secondHalf-mv__messageImage-sub { margin-left: 14px; width: 60px; }
}
.p-secondHalf-mv__messageImages02 { margin-top: 9vw; }
@media (min-width: 768px) {
  .p-secondHalf-mv__messageImages02 { margin-top: 76px; }
}
.p-secondHalf-mv__messageImages02 .p-secondHalf-mv__messageImage-main { width: 87%; }
@media (min-width: 768px) {
  .p-secondHalf-mv__messageImages02 .p-secondHalf-mv__messageImage-main { width: 630px; }
}
.p-secondHalf-mv__messageImages02 .p-secondHalf-mv__messageImage-sub { margin-left: 2%; width: 9%; }
@media (min-width: 768px) {
  .p-secondHalf-mv__messageImages02 .p-secondHalf-mv__messageImage-sub { margin-left: 14px; width: 63px; }
}
.p-secondHalf-mv__text { width: 100%; font-size: var(--fs-18); line-height: 1.9; }
@media (min-width: 768px) {
  .p-secondHalf-mv__text { position: static; margin-top: 100px; font-size: var(--fs-24); }
}
.p-secondHalf-mv__arrow { position: relative; height: 88px; }
@media (min-width: 768px) {
  .p-secondHalf-mv__arrow { height: 60px; }
}
.p-secondHalf-mv__arrowLink { display: inline-block; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 40px; height: 40px; }
@media (min-width: 768px) {
  .p-secondHalf-mv__arrowLink { top: 0px; transform: translateX(-50%); }
  .p-secondHalf-mv__arrowLink:hover img { transform: translate(-50%, calc(-50% + 5px)); }
}
.p-secondHalf-mv__arrowLink img { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); transition: transform 0.5s cubic-bezier(0.075, 0.82, 0.165, 1); width: 9px; height: auto; }
.p-secondHalf-contents { padding-top: 80px; }
@media (min-width: 768px) {
  .p-secondHalf-contents { padding-top: 60px; }
}
@media (min-width: 1100px) {
  .p-secondHalf-contents { display: flex; }
}
.p-secondHalf-aside { position: fixed; right: 0px; bottom: 0px; transform: translateY(5px); visibility: hidden; opacity: 0; z-index: 100; transition: 0.3s ease-in; }
@media (min-width: 1100px) {
  .p-secondHalf-aside { position: relative; transform: translateY(0px); visibility: visible; opacity: 1; padding-top: 12px; padding-bottom: 80px; width: 56px; }
}
.p-secondHalf-aside.is-show { transform: translateY(0px); visibility: visible; opacity: 1; }
.p-secondHalf-aside__wrap { display: flex; align-items: center; background-color: var(--color-bg); padding: 26px 32px 26px 20px; }
@media (min-width: 1100px) {
  .p-secondHalf-aside__wrap { display: block; position: sticky; top: 80px; padding: 0px; }
}
.p-secondHalf-aside__title { display: flex; justify-content: center; align-items: center; padding-top: 2px; width: 43px; }
.p-secondHalf-aside__title img { display: inline-block; width: 43px; height: auto; }
@media (min-width: 1100px) {
  .p-secondHalf-aside__title { border-top: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); padding-top: 0px; width: 100%; height: 44px; }
}
.p-secondHalf-aside__sns { display: flex; align-items: center; margin-left: 26px; }
@media (min-width: 1100px) {
  .p-secondHalf-aside__sns { display: block; margin-left: 0px; border-bottom: 1px solid var(--color-line); padding: 26px 0px 28px; }
}
@media (min-width: 1100px) {
  .p-secondHalf-aside__snsItem { text-align: center; }
}
.p-secondHalf-aside__snsItem:not(:first-of-type) { margin-left: 22px; }
@media (min-width: 1100px) {
  .p-secondHalf-aside__snsItem:not(:first-of-type) { margin-top: 22px; margin-left: 0px; }
}
.p-secondHalf-aside__snsItem a { display: inline-block; transition: opacity 0.3s; width: 36px; height: 36px; }
.p-secondHalf-aside__snsItem a img { display: inline-block; width: 100%; height: 100%; object-fit: contain; }
@media (min-width: 768px) {
  .p-secondHalf-aside__snsItem a:hover { opacity: 0.5; }
}
.p-secondHalf-aside__snsItem:first-of-type { padding-top: 2px; }
@media (min-width: 1100px) {
  .p-secondHalf-aside__snsItem:first-of-type { padding-top: 0px; }
}
@media (min-width: 1100px) {
  .p-secondHalf-main { padding-right: 56px; width: calc(100% - 56px); }
}
.p-seocndHalf-main__container { margin: 0px auto; width: 100%; max-width: 800px; }
.p-secondHalf-top > p { font-size: var(--fs-18); line-height: 1.9; letter-spacing: var(--tracking); text-align: justify; }
@media (min-width: 768px) {
  .p-secondHalf-top > p { font-size: var(--fs-24); }
}
.p-secondHalf-top > p:not(:first-of-type) { margin-top: 34px; }
@media (min-width: 768px) {
  .p-secondHalf-top > p:not(:first-of-type) { margin-top: 44px; }
}
.p-secondHalf-section { margin-top: 160px; }
.p-secondHalf-section__headLabel { position: relative; font-size: var(--fs-18); line-height: 1; letter-spacing: var(--tracking); }
@media (min-width: 768px) {
  .p-secondHalf-section__headLabel { font-size: var(--fs-24); }
}
.p-secondHalf-section__headLabel span { display: inline-block; position: relative; z-index: 1; background-color: var(--color-bg); padding-right: 24px; }
.p-secondHalf-section__headLabel::after { position: absolute; top: 50%; left: 1px; transform: translateY(-50%); background-color: var(--color-bg-dark); width: calc(100% - 1px); height: 1px; content: ""; }
.p-secondHalf-section__headTitle { margin-top: 32px; font-size: var(--fs-40); line-height: 1.43; letter-spacing: var(--tracking); }
.p-secondHalf-section__headTitle span { display: inline-block; }
.p-secondHalf-section__headTitle span.is-narrow { margin-left: -0.5em; }
@media (min-width: 768px) {
  .p-secondHalf-section__headTitle { margin-top: 52px; font-size: var(--fs-48); }
}
.p-secondHalf-section__contents { margin-top: 32px; }
@media (min-width: 768px) {
  .p-secondHalf-section__contents { margin-top: 52px; }
}
.p-secondHalf-section__contents > :first-child { margin-top: 0px; }
.p-secondHalf-section__contents > p { margin-top: 32px; line-height: 2; text-align: justify; }
.p-secondHalf-section__list { margin-top: 40px; }
@media (min-width: 768px) {
  .p-secondHalf-section__list { margin-top: 64px; }
}
.p-secondHalf-section__list > li { border: 1px solid var(--color-line); border-radius: var(--r-card); padding: 19px 24px; font-weight: var(--fw-bold); font-size: var(--fs-18); line-height: 1.6; text-align: justify; }
@media (min-width: 768px) {
  .p-secondHalf-section__list > li { text-align: left; }
}
.p-secondHalf-section__list > li:not(:first-of-type) { margin-top: 16px; }
.p-secondHalf-section__list02 { margin-top: 40px; }
@media (min-width: 768px) {
  .p-secondHalf-section__list02 { margin-top: 64px; }
}
.p-secondHalf-section__list02 > li { border: 1px solid var(--color-line); border-radius: var(--r-card); padding: 23px 24px; }
.p-secondHalf-section__list02 > li:not(:first-of-type) { margin-top: 24px; }
.p-secondHalf-section__list02 > li > span { line-height: 1; }
.p-secondHalf-section__list02 > li > p { margin-top: 16px; font-weight: var(--fw-bold); font-size: var(--fs-18); line-height: 1.6; }
.p-secondHalf-section__order { list-style: none; }
.p-sectionHalf-secion__orderItem:not(:first-of-type) { margin-top: 64px; }
.p-sectionHalf-secion__orderNum img { width: 40px; }
.p-sectionHalf-secion__orderTitle { margin-top: 8px; font-size: var(--fs-24); line-height: 1.6; }
.p-sectionHalf-secion__orderTitle span { display: inline-block; }
.p-sectionHalf-secion__orderText { margin-top: 24px; line-height: 2; text-align: justify; }
.p-secondHalf-section__contents .p-secondHalf-president__message { margin-top: 40px; font-weight: var(--fw-bold); line-height: 1.75; text-align: right; }
@media (min-width: 768px) {
  .p-secondHalf-section__contents .p-secondHalf-president__message { margin-top: 64px; }
}
/* ds-allow:raw-color -- 旧ページ（/second-half/）の写真の影。見た目をそのまま残す */
.p-secondHalf-image { position: relative; box-shadow: rgba(0, 0, 0, 0.16) 0px 24px 64px 0px; padding-bottom: 70%; }
.p-secondHalf-image img { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; object-fit: cover; }
.p-secondHalf-footer { display: flex; position: relative; align-items: center; padding: 108px 0px 20px; min-height: calc(-88px + 100vh); }
@media (min-width: 1100px) {
  .p-secondHalf-footer { padding: 160px 0px 100px; min-height: calc(-60px + 100vh); }
}
.p-secondHalf-footer__contents { width: 100%; }
.p-secondHalf-footer__messageText { color: var(--color-text-muted); font-weight: var(--fw-bold); font-size: var(--fs-28); line-height: 1.57; letter-spacing: var(--tracking); }
@media (min-width: 768px) {
  .p-secondHalf-footer__messageText { font-size: var(--fs-32); line-height: 1; }
}
.p-secondHalf-footer__messageText span { display: inline-block; }
.p-secondHalf-footer__messageImage { display: flex; align-items: flex-end; margin-top: 48px; }
@media (min-width: 768px) {
  .p-secondHalf-footer__messageImage { margin-top: 44px; }
}
.p-secondHalf-footer__messageImage img { display: inline-block; height: auto; }
.p-secondHalf-footer__messageImage-main { width: 87%; }
@media (min-width: 768px) {
  .p-secondHalf-footer__messageImage-main { width: 630px; }
}
.p-secondHalf-footer__messageImage-sub { margin-left: 2%; width: 9%; }
@media (min-width: 768px) {
  .p-secondHalf-footer__messageImage-sub { margin-left: 14px; width: 63px; }
}
.p-secondHalf-footer__link { margin-top: 120px; }
.p-secondHalf-footer__link a { display: block; position: relative; padding: 32px 16px; width: 100%; }
@media (min-width: 768px) {
  .p-secondHalf-footer__link a { padding: 27px 24px; }
}
.p-secondHalf-footer__link a::before, .p-secondHalf-footer__link a::after { position: absolute; left: 0px; transition: background-position 0.9s cubic-bezier(0.075, 0.82, 0.165, 1); background-image: linear-gradient(90deg, var(--color-bg-dark) 0%, var(--color-bg-dark) 50%, var(--color-bg-muted) 50%, var(--color-bg-muted) 100%); background-position: 100% 0px; background-size: 200% 100%; width: 100%; height: 1px; content: ""; }
.p-secondHalf-footer__link a::before { top: -1px; }
.p-secondHalf-footer__link a::after { bottom: -1px; }
@media (min-width: 768px) {
  .p-secondHalf-footer__link a:hover::before, .p-secondHalf-footer__link a:hover::after { background-position: 0px 0px; }
  .p-secondHalf-footer__link a:hover img { transform: translateY(-50%) translateX(8px); }
}
.p-secondHalf-footer__link a span { z-index: 1; font-weight: var(--fw-bold); font-size: var(--fs-16); line-height: 1; }
@media (min-width: 768px) {
  .p-secondHalf-footer__link a span { font-size: var(--fs-24); }
}
.p-secondHalf-footer__link img { position: absolute; top: 50%; right: 16px; transform: translateY(-50%); z-index: 1; transition: transform 1s cubic-bezier(0.075, 0.82, 0.165, 1); width: 24px; height: auto; }
@media (min-width: 768px) {
  .p-secondHalf-footer__link img { right: 24px; }
}
.p-secondHalf-copy { display: flex; align-items: center; height: 88px; color: var(--color-text-disabled); font-weight: var(--fw-bold); font-size: var(--fs-12); line-height: 1; }
.p-secondHalf-copy img { display: inline-block; width: 103px; height: auto; }
@media (min-width: 1100px) {
  .p-secondHalf-copy { display: block; height: 60px; }
}
.p-topProjects__headToggle { align-items: center; padding: 2px; background-color: var(--color-bg-subtle); display: flex; width: 100%; }
@media (min-width: 960px) {
  .p-topProjects__headToggle { width: 240px; }
}
.p-topProjects__headToggleButton { display: flex; align-items: center; justify-content: center; flex: 1 1 0%; font-size: var(--fs-14); line-height: 1; height: 34px; color: var(--color-text-muted); transition: color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1), background-color 0.3s cubic-bezier(0.215, 0.61, 0.355, 1), box-shadow 0.3s cubic-bezier(0.215, 0.61, 0.355, 1); }
.p-topProjects__headToggleButton:hover { color: var(--color-text); }
.p-topProjects__headToggleButton.is--selected { background-color: var(--color-bg); font-weight: var(--fw-bold); color: var(--color-text); }
.p-topProjects__inner { margin-top: 64px; }
@media (min-width: 960px) {
  .p-topProjects__inner { margin-top: 96px; }
}
.p-topProject__more.is--hide { display: none; }
.p-topProjects__item { display: flex; flex-direction: column; gap: 24px; margin-top: 64px; transition: opacity 1s cubic-bezier(0.215, 0.61, 0.355, 1); }
.p-topProjects__item:first-of-type { margin-top: 0px; }
@media (min-width: 960px) {
  .p-topProjects__item { gap: 40px; flex-direction: row; margin-top: 96px; }
}
.p-topProjects__content { flex: 1 1 0%; order: 3; }
@media (min-width: 960px) {
  .p-topProjects__content { order: 1; }
}
.p-topProjects__contentInner { position: relative; }
.p-topProjects__contentInner:hover .p-topProjects__link { color: var(--color-text-on-dark); background-color: var(--color-bg-dark); }
.p-topProjects__contentInner:hover .p-topProjects__link::before { filter: brightness(0) invert(1); }
.p-topProjects__contentInner:hover .p-topProjects__main::before, .p-topProjects__contentInner:hover .p-topProjects__main::after { transform-origin: left center; transform: scaleX(1); }
.p-topProjects__overlayLink { position: absolute; top: 0px; left: 0px; width: 100%; height: calc(100% + 10px); z-index: 3; }
.p-topProjects__itemHead.is--pc { display: none; }
@media (min-width: 960px) {
  .p-topProjects__itemHead.is--pc { display: block; }
}
.p-topProjects__itemHead.is--sp { order: 1; display: block; }
@media (min-width: 960px) {
  .p-topProjects__itemHead.is--sp { display: none; }
}
.p-topProjects__subtitle { display: block; font-size: var(--fs-18); line-height: 1.6; font-weight: var(--fw-bold); }
@media (min-width: 960px) {
  .p-topProjects__subtitle { font-size: var(--fs-20); }
}
.p-topProjects__title { margin-top: 2px; font-size: var(--fs-20); line-height: 1.6; font-weight: var(--fw-bold); display: block; }
@media (min-width: 960px) {
  .p-topProjects__title { font-size: var(--fs-22); }
}
.p-topProjects__main { position: relative; display: block; padding: 16px 0px 20px; border-top: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); font-size: var(--fs-14); text-align: justify; }
.p-topProjects__main::before, .p-topProjects__main::after { content: ""; display: block; position: absolute; left: 0px; width: 100%; height: 1px; background-color: var(--color-bg-dark); transform: scaleX(0); transition: transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1); transform-origin: right center; }
.p-topProjects__main::before { top: -1px; }
.p-topProjects__main::after { bottom: -1px; }
@media (min-width: 960px) {
  .p-topProjects__main { position: relative; margin-top: 16px; }
}
.p-topProjects__link { position: absolute; z-index: 2; bottom: 0px; right: 0px; transform: translateY(50%); }
.p-topProjects__link::after { content: ""; display: block; position: absolute; left: 0px; top: 0px; width: 12px; height: 100%; background-color: var(--color-bg); transform: translateX(-100%); }
.p-topProjects__itemHead:hover ~ .p-topProjects__content .p-topProjects__link, .p-topProjects__images:hover ~ .p-topProjects__content .p-topProjects__link { color: var(--color-text-on-dark); background-color: var(--color-bg-dark); }
.p-topProjects__itemHead:hover ~ .p-topProjects__content .p-topProjects__link::before, .p-topProjects__images:hover ~ .p-topProjects__content .p-topProjects__link::before { filter: brightness(0) invert(1); }
.p-topProjects__itemHead:hover ~ .p-topProjects__content .p-topProjects__main::before, .p-topProjects__itemHead:hover ~ .p-topProjects__content .p-topProjects__main::after, .p-topProjects__images:hover ~ .p-topProjects__content .p-topProjects__main::before, .p-topProjects__images:hover ~ .p-topProjects__content .p-topProjects__main::after { transform-origin: left center; transform: scaleX(1); }
.p-topProjects__tags { margin-top: 30px; display: flex; gap: var(--gap-tag); flex-wrap: wrap; }
.p-topProjects__comment { margin-top: 16px; }
.p-topProjects__commentText { position: relative; font-size: var(--fs-14); padding: 6px 12px; background-color: var(--color-bg-subtle); text-align: justify; }
.p-topProjects__commentText::before { position: absolute; content: ""; display: block; background: var(--color-bg-subtle); height: 10px; width: 12px; clip-path: polygon(50% 100%, 0px 0px, 100% 0px); bottom: 0px; left: 10px; transform: translateY(100%); }
.p-topProjects__author { margin-top: 14px; padding: 0px 4px; display: flex; align-items: center; gap: 12px; }
.p-topProjects__author img { display: block; border-radius: 50%; width: 24px; height: 24px; }
.p-topProjects__author span { display: flex; gap: 8px; align-items: center; font-size: var(--fs-14); line-height: 1; color: var(--color-text-muted); }
.p-topProjects__author span a { position: relative; line-height: 1; padding: 5px 0px; font-weight: var(--fw-bold); color: var(--color-text); }
.p-topProjects__images { display: flex; flex-direction: column; gap: 1px; order: 2; }
@media (min-width: 960px) {
  .p-topProjects__images { width: 237px; }
}
@media (min-width: 1024px) {
  .p-topProjects__images { width: 460px; }
}
.p-topProjects__mainImage { position: relative; display: block; padding-bottom: 69%; width: 100%; }
.p-topProjects__mainImage img { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; object-fit: cover; }
.p-topProjects__thumbnails { display: flex; gap: 1px; flex-wrap: wrap; }
.p-topProjects__thumbnail { position: relative; display: block; width: calc(33.3333% - 0.666667px); padding-bottom: 23%; }
@media (min-width: 960px) {
  .p-topProjects__thumbnail { width: calc(50% - 0.5px); padding-bottom: 34.5%; }
  .p-topProjects__thumbnail:first-of-type { width: 100%; padding-bottom: 69%; }
}
@media (min-width: 1024px) {
  .p-topProjects__thumbnail { width: calc(33.3333% - 0.666667px); padding-bottom: 23%; }
  .p-topProjects__thumbnail:first-of-type { width: calc(33.3333% - 0.666667px); padding-bottom: 23%; }
}
.p-topProjects__thumbnail img { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; object-fit: cover; }
.p-topProjects__simpleHead { display: none; opacity: 0; transition: opacity 1s cubic-bezier(0.215, 0.61, 0.355, 1); border-bottom: 1px solid var(--color-line); }
.p-topProjects__simpleHeadInner { display: none; }
@media (min-width: 960px) {
  .p-topProjects__simpleHeadInner { display: flex; gap: 24px; padding-bottom: 16px; }
}
.p-topProjects__simpleHeadInner span { font-size: var(--fs-12); line-height: 1.6; color: var(--color-text-muted); display: block; }
.p-topProjects__simpleHeadInner span:nth-of-type(1) { flex: 1 1 0%; }
.p-topProjects__simpleHeadInner span:nth-of-type(2) { width: 220px; }
.p-topProjects__simpleHeadInner span:nth-of-type(3) { width: 360px; }
.p-topProjects__simple { display: none; padding: 32px 0px; position: relative; border-bottom: 1px solid var(--color-line); opacity: 0; transition: opacity 1s cubic-bezier(0.215, 0.61, 0.355, 1); }
.p-topProjects__simpleInner { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; }
@media (min-width: 1024px) {
  .p-topProjects__simpleInner { column-gap: 24px; }
}
.p-topProjects__simpleClient { width: 100%; padding-bottom: 8px; }
@media (min-width: 1024px) {
  .p-topProjects__simpleClient { margin-bottom: 0px; padding-bottom: 0px; flex: 1 1 0%; }
}
.p-topProjects__simpleClientName { font-size: var(--fs-16); line-height: 1.6; font-weight: var(--fw-bold); }
.p-topProjects__simpleClientTag { margin-top: 8px; font-size: var(--fs-12); line-height: 1.6; color: var(--color-text-muted); }
.p-topProjects__simpleClientTag span { display: inline-block; }
.p-topProjects__simpleServices { width: 100%; }
@media (min-width: 960px) {
  .p-topProjects__simpleServices { width: 240px; }
}
@media (min-width: 1024px) {
  .p-topProjects__simpleServices { width: 220px; }
}
.p-topProjects__simpleServices li { font-size: var(--fs-12); line-height: 1.6; }
.p-topProjects__simpleProject { width: 100%; }
@media (min-width: 960px) {
  .p-topProjects__simpleProject { width: auto; flex: 1 1 0%; }
}
@media (min-width: 1024px) {
  .p-topProjects__simpleProject { flex: 0 0 auto; width: 360px; }
}
.p-topProjects__simpleProject p { font-size: var(--fs-12); line-height: 1.6; }
.block-faq { margin: 48px 0px; }
.block-faq__item { position: relative; padding-bottom: 8px; padding-top: 8px; border-bottom: 1px solid var(--color-line); }
.block-faq__item:first-of-type { border-top: 1px solid var(--color-line); }
.block-faq__item.is--open .block-faq__item-title::before { transform: translateY(-50%); }
.block-faq__item .block-faq__item-title:hover + .block-faq__item-line::before, .block-faq__item .block-faq__item-title:hover + .block-faq__item-line::after { transform: scaleX(1); transform-origin: left center; }
.block-faq__item-line { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; pointer-events: none; display: block; }
.block-faq__item-line::before, .block-faq__item-line::after { content: ""; position: absolute; z-index: 1; left: 0px; width: 100%; height: 1px; background-color: var(--color-bg-dark); transform: scaleX(0); transition: transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1); transform-origin: right center; }
.block-faq__item-line::before { top: -1px; }
.block-faq__item-line::after { bottom: -1px; }
.block-faq__item-title { position: relative; display: flex; gap: 16px; cursor: pointer; padding: 16px 40px 16px 0px; }
@media (min-width: 960px) {
  .block-faq__item-title { padding: 16px 48px 16px 0px; }
}
.block-faq__item-title::before, .block-faq__item-title::after { content: ""; position: absolute; height: 2px; width: 16px; background-color: var(--color-bg-muted); top: calc(50% - 1px); transition: background-color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); }
.block-faq__item-title::before { right: 4px; transform: translateY(-50%) rotate(90deg); }
.block-faq__item-title::after { right: 4px; transform: translateY(-50%); }
.block-faq__item-title:hover::before, .block-faq__item-title:hover::after { background-color: var(--color-bg-dark); }
.block-faq__item-title-number { display: block; padding-top: 4px; font-weight: var(--fw-bold); font-size: var(--fs-20); line-height: 1; font-family: var(--font-num); }
.block-faq__item-title-text { font-size: var(--fs-16); line-height: 1.8; font-weight: var(--fw-bold); flex: 1 1 0%; }
.block-faq__item-content { overflow: hidden; height: 0px; transition: height 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); }
.block-faq__item-content-inner { display: flex; gap: 16px; padding-bottom: 16px; }
.block-faq__item-content-number { font-size: var(--fs-20); line-height: 1; font-family: var(--font-num); display: block; padding-top: 6px; }
.block-faq__item-content-text { flex: 1 1 0%; }
.block-faq__item-content-text-inner { font-size: var(--fs-16); line-height: 1.8; }
.block-faq__item-content-text-inner p + p { margin-top: 16px; }
.block-list1 { margin: 48px 0px; padding: 16px 24px; border: 1px solid var(--color-line-strong); }
.block-list1 .block-list1__title { font-weight: var(--fw-bold); padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid var(--color-line-strong); }
.block-list1 .block-list1__ul, .block-list1 .block-list1__ol { margin: 0px; }
.block-list1 .block-list1__item { font-size: var(--fs-16); }
.block-list1 .block-list1__ul .block-list1__item { position: relative; padding-left: 20px; }
.block-list1 .block-list1__ul .block-list1__item::before { position: absolute; top: 2px; left: 0px; content: "・"; }
.block-list1 .block-list1__ol { counter-reset: list 0; }
.block-list1 .block-list1__ol .block-list1__item { position: relative; padding-left: 20px; }
.block-list1 .block-list1__ol .block-list1__item::before { position: absolute; top: 0px; left: 0px; counter-increment: list 1; content: counter(list) "."; }
.block-member { margin: 48px 0px; background-color: var(--color-bg-dark); }
.block-member .p-mediaAuthor__name-en { line-height: 1; font-size: var(--fs-12); }
.block-member .p-mediaAuthor__name-jp { margin-top: 10px; margin-bottom: 0px; font-size: var(--fs-20); line-height: 1; padding-left: 0px; border-left-width: medium; border-left-style: none; border-left-color: currentcolor; }
.block-member .p-mediaAuthor__position { font-size: var(--fs-12); line-height: 1; margin-bottom: 0px; }
.block-member .p-mediaAuthor__bio { font-size: var(--fs-14); line-height: 1.8; margin-bottom: 0px; }
.block-member .p-mediaAuthor__expertiseTitle { margin: 0px; font-size: var(--fs-14); line-height: 1; }
.block-member .p-mediaAuthor__expertiseItem { line-height: 1; padding-left: 0px; }
.block-member .p-mediaAuthor__expertiseItem::before { display: none; }
.block-member .p-mediaAuthor__actions a { padding-bottom: 0px; background-image: none !important; }
.block-post { padding: 16px 24px; border: 1px solid var(--color-line-strong); margin: 48px 0px 24px; display: flex; gap: 16px; flex-direction: column; }
.block-post + .block-post { margin-top: 24px; }
@media (min-width: 960px) {
  .block-post { flex-direction: row; align-items: center; gap: 24px; }
}
.block-post__label { font-size: var(--fs-16); font-weight: var(--fw-bold); line-height: 1; }
.block-post__space { display: block; width: 100%; height: 1px; background-color: var(--color-bg-dark); }
@media (min-width: 960px) {
  .block-post__space { height: 26px; width: 1px; }
}
.block-post__title { flex: 1 1 0%; }

/* ページ送りの10ページごとの目印（Pagination.astro）。スマホでは幅がないので隠す（リンクはHTMLに残る） */
@media (max-width: 599px) { .p-media__paginationItem.is--landmark { display: none; } }

/* width・height 属性を付けた画像：CSS で高さを指定していないものは縦横比を保つ（優先度0なので、既存の指定が常に勝つ） */
:where(img[width][height]) { height: auto; }

/* header.css */
/* ヘッダー・ドロワー・下部CTA・フッターの共通スタイル（全ページ共通。トップページのものを正とした：2026-09） */
.l-header__inner{justify-content:flex-start;gap:0}
.l-header__logo{order:1;flex:0 0 auto}
.l-header__nav{order:2;margin-left:auto}
.l-header__cta{order:3;flex:0 0 auto;display:none;align-items:center;gap:8px;margin-left:20px}
.l-header__navBtn{order:4;margin-left:auto}
@media(min-width:960px){
  .l-header__inner{padding:0 24px}
  .l-header__cta{display:flex}
  .l-header__logo a,.l-header__logo span{width:146px}
  .l-header__navItem a{padding:0 10px}
  .l-header__navItem span{font-size:var(--fs-14)}
  .l-header.is--fixed .l-header__logo a,.l-header.is--fixed .l-header__logo span{width:146px}
  .l-header__inner{max-width:1280px}
}
@media(min-width:1160px){
  .l-header__inner{padding:0 32px}
  .l-header__logo a,.l-header__logo span{width:146px}
  .l-header.is--fixed .l-header__logo a,.l-header.is--fixed .l-header__logo span{width:146px}
  .l-header__navItem a{padding:0 16px}
  .l-header__navItem span{font-size:var(--fs-14)}
  .l-header__cta{margin-left:28px}
}
.l-drawer__cta{display:flex;flex-direction:column;gap:12px;margin-top:28px;padding:0 24px 32px}
/* ===== ヘッダーのドロップダウン／メガメニュー ===== */
.l-header{overflow:visible}
.l-header__navItem.has--mega{position:static}
.l-header__navItem.has--mega > a span::after,.l-header__navItem.has--drop > a span::after{content:"";display:inline-block;
  width:5px;height:5px;margin-left:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:translateY(-3px) rotate(45deg);opacity:.55;transition:transform .25s ease}
.l-header__navItem.has--mega:hover > a span::after,.l-header__navItem.has--mega:focus-within > a span::after,
.l-header__navItem.has--drop:hover > a span::after,.l-header__navItem.has--drop:focus-within > a span::after{transform:translateY(0) rotate(-135deg)}
.l-header__mega,.l-header__drop{position:absolute;top:100%;opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .22s ease,transform .22s ease,visibility 0s linear .22s;z-index:5}
.l-header__navItem:hover > .l-header__mega,.l-header__navItem:focus-within > .l-header__mega,
.l-header__navItem:hover > .l-header__drop,.l-header__navItem:focus-within > .l-header__drop{opacity:1;visibility:visible;
  transform:none;transition:opacity .22s ease,transform .22s ease,visibility 0s}
/* 企業情報：小さなドロップダウン（内側 8px・行は角丸 4px。文字の位置は 8＋14＝22px） */
.l-header__drop{left:50%;margin-left:-110px;width:220px;background:var(--color-bg);border:1px solid var(--color-line-subtle);
  box-shadow:var(--shadow-raised)}
.l-header__drop ul{margin:0;padding:8px;list-style:none}
.l-header .l-header__drop a{display:block;height:auto!important;padding:12px 14px!important;border-radius:var(--r-item);font-size:var(--fs-14);font-weight:var(--fw-regular);line-height:1.5;
  color:var(--color-text);text-decoration:none;transition:background-color .2s}
.l-header__drop a:hover,.l-header__drop a:focus-visible{background:var(--color-bg-subtle)}
/* サービス：メガメニュー */
/* サブメニューの罫線は、サービス・企業情報とも全周 base10（--color-line-subtle） */
.l-header__mega{left:0;right:0;background:var(--color-bg);border:1px solid var(--color-line-subtle);
  box-shadow:var(--shadow-overlay)}
.l-header__megaInner{max-width:1160px;margin:0 auto;padding:32px 36px 36px;display:grid;
  grid-template-columns:minmax(0,1fr) 216px;grid-template-areas:"head ai" "grid ai";gap:20px 32px}
.l-header__megaHead{grid-area:head;display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  padding-bottom:14px;border-bottom:1px solid var(--color-line-subtle)}
.l-header__megaType{margin:0;font-size:var(--fs-14);font-weight:var(--fw-bold);color:var(--color-text);display:flex;align-items:baseline;gap:10px}
.l-header__megaType small{font-size:var(--fs-12);font-weight:var(--fw-regular);color:var(--color-text-muted)}
.l-header__megaGrid{grid-area:grid;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 24px}
.l-header__megaArea{margin:0 0 10px;padding-top:10px;border-top:2px solid var(--color-line-strong);display:inline-block;
  font-size:var(--fs-13);font-weight:var(--fw-bold);color:var(--color-text)}
.l-header__megaCol ul,.l-header__megaAi ul{margin:0;padding:0;list-style:none}
.l-header .l-header__megaCol a{display:block;height:auto!important;padding:6px 0!important;font-size:var(--fs-13);font-weight:var(--fw-regular);
  line-height:1.6;color:var(--color-text-sub);text-decoration:none;word-break:auto-phrase}
.l-header__megaCol a:hover,.l-header__megaCol a:focus-visible{color:var(--color-text)}
.l-header__megaAi{grid-area:ai;background:var(--color-bg-dark);color:var(--color-text-on-dark);padding:22px 22px 18px;align-self:start}
.l-header__megaAi .l-header__megaType{color:var(--color-text-on-dark);padding-bottom:12px;border-bottom:1px solid var(--color-line-on-dark)}
.l-header__megaAi .l-header__megaType small{color:var(--color-text-on-dark)}
.l-header .l-header__megaAi a{display:flex!important;flex-direction:column;gap:3px;height:auto!important;padding:14px 0!important;
  border-bottom:1px solid var(--color-line-on-dark);color:var(--color-text-on-dark);text-decoration:none}
.l-header__megaAi li:last-child a{border-bottom:0}
.l-header__megaAi b{font-size:var(--fs-14);font-weight:var(--fw-bold);line-height:1.5}
.l-header__megaAi span{font-size:var(--fs-12);color:var(--color-text-on-dark)}
/* ===== スマホ用ドロワー（Drawer.astro）=====
   リンクの行は右端に矢印（.c-arrow）、開閉する行は右端に ＋／−（.c-accIcon）。開閉は site.ts */
.l-drawer__navItem.is--current{border-left:0;box-shadow:inset 4px 0 0 var(--color-line-strong)}
.l-drawer__navLink{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:60px;padding:0 24px;
  border:0;background:none;font:inherit;font-size:var(--fs-14);line-height:1.4;text-align:left;color:var(--color-text);cursor:pointer}
.l-drawer__subWrap{overflow:hidden;transition:height .3s cubic-bezier(0.215,0.61,0.355,1)}
.l-drawer__sub{margin:0;padding:0 24px 16px 40px;list-style:none}
.l-drawer__sub a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:6px 0;
  font-size:var(--fs-14);line-height:1.5;color:var(--color-text);text-decoration:none}
.l-drawer__subArea{margin-top:8px;border-top:1px solid var(--color-line-subtle)}
.l-drawer__subArea a,.l-drawer__subArea span{font-size:var(--fs-13);font-weight:var(--fw-bold);letter-spacing:var(--tracking);color:var(--color-text)}
.l-drawer__subArea span{display:flex;align-items:center;min-height:44px}
.l-drawer__sub a[aria-current="page"]{font-weight:var(--fw-bold)}
@media(prefers-reduced-motion:reduce){
  .l-header__mega,.l-header__drop{transition:none}
}
/* ===== 角丸（全ページ共通） ===== */
.l-header__drop{border-radius:var(--r-card);overflow:hidden}
.l-header__mega{border-radius:var(--r-card)}
.l-header__megaAi{border-radius:var(--r-inner)}
.l-bottomCta__contents{display:flex;flex-direction:column;gap:12px;padding:24px}  /* SP の左右はほかのセクションと同じ 24px */
.l-bottomCta__item{border-radius:var(--r-card);overflow:hidden;border:0!important}
/* 見出しの右に共通の矢印。カード全体（重ねたリンク）のホバーで、背景がフェードして矢印が伸びる */
.l-bottomCta__title{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-right:0;transition:color .35s cubic-bezier(0.215,0.61,0.355,1)}
.l-bottomCta__title::after{content:none}
.l-bottomCta__content{transition:background-color .35s cubic-bezier(0.215,0.61,0.355,1)}
@media(min-width:960px){
  .l-bottomCta__contents{flex-direction:row;gap:16px;padding:40px 0}
  .l-bottomCta__item{width:auto;flex:1 1 0;min-width:0}
}
/* ===== スマホ下部の固定ボタン（FixCta.astro）=====
   ボタンはサイト共通の Button（PC ヘッダーと同じ型）。960px 以上では出さない */
.p-fixCta{position:fixed;left:0;right:0;bottom:0;z-index:500;display:flex;gap:8px;padding:20px 24px;background:var(--color-bg)}
.p-fixCta .c-btn{flex:1 1 0;min-width:0}
@media(min-width:960px){.p-fixCta{display:none}}
/* ===== フッター（Footer.astro）=====
   幅は本文・ヘッダーと同じ .l-container。上から縦に ロゴ→サービス→その他のメニュー→下の段（左に SNS、右にプライバシー・著作権）。
   ロゴはヘッダー（スクロール前）と同じ幅。メニューの並びはヘッダーと同じ（src/data/nav.ts）。
   サービスは 5 列（4 つの領域＋右端に AI を軸にした支援形態）で、全サービスを並べる */
.l-footer a{color:inherit;text-decoration:none;transition:color .35s var(--ease),background-size .35s var(--ease)}
.l-footer__top{display:flex;flex-direction:column;align-items:flex-start;gap:40px}
.l-footer__logo{display:block;flex:none;width:172px;filter:brightness(0) invert(1)}
.l-footer__logo img{display:block;width:100%;height:auto}
.l-footer__nav{display:flex;flex-direction:column;gap:40px;width:100%;color:var(--color-text-on-dark)}
.l-footer__head{margin:0;font-size:var(--fs-14);font-weight:var(--fw-bold);line-height:1.5}
.l-footer__serviceGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px;margin-top:20px}
.l-footer__area{margin:0 0 10px;padding-bottom:10px;border-bottom:1px solid var(--color-line-on-dark);font-size:var(--fs-13);font-weight:var(--fw-bold);line-height:1.5}
.l-footer__sub{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.l-footer__sub a{display:inline-block;font-size:var(--fs-12);line-height:1.6;color:var(--color-text-on-dark-sub);word-break:auto-phrase;overflow-wrap:anywhere}
.l-footer__list{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;align-content:start}
.l-footer__list .l-footer__sub{margin-top:10px}
.l-footer a:hover,.l-footer a:focus-visible{color:var(--color-text-on-dark)}
.l-footer__bottom{display:flex;flex-direction:column;gap:20px;margin-top:48px}
.l-footer__legal{display:flex;flex-direction:column;gap:12px}
.l-footer .l-footer__privacy{font-size:var(--fs-12);line-height:1.5;color:var(--color-text-on-dark)}
.l-footer__legal .l-footer__copyright{margin:0}
.l-footer__sns{display:flex;gap:8px;margin-left:-4px}
.l-footer__snsItem{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px}
.l-footer__snsItem img{transition:opacity .35s var(--ease)}
.l-footer__snsItem:hover img{opacity:.6}
@media(min-width:960px){
  .l-footer__logo{width:188px}
  .l-footer__serviceGrid{grid-template-columns:repeat(5,minmax(0,1fr));gap:0 28px}
  .l-footer__list{display:flex;flex-wrap:wrap;gap:20px 48px}
  .l-footer__bottom{flex-direction:row;align-items:center;justify-content:space-between}
  .l-footer__legal{flex-direction:row;align-items:center;gap:32px}
}
@media(min-width:1160px){
  .l-footer__logo{width:204px}
}
@media(prefers-reduced-motion:reduce){.l-footer a,.l-footer__snsItem img{transition:none}}
