/*
 * 他テンプレートからセクションを流用したときに足りなくなるユーティリティ class の補完。
 * main.css の直後・jp-typography.css の前に読み込む。
 *
 * ── なぜ必要か ──
 * public/assets/main.css は automation-saas を Tailwind でビルドした成果物なので、
 * 「そのテンプレートが実際に使った class」しか出力されていない。
 * 他テンプレート（ai-gadgets 等）のセクションを貼ると、markup が参照している class が
 * ビルドに含まれておらず、背景色も余白も見出しサイズも当たらない状態になる。
 *
 * ── ここに書いてよいもの ──
 * 流用元テンプレートの main.css に出力されている**そのままのルール**だけ。
 * 値を自分で決めない（デザインはテンプレートに従う）。
 * 和文向けの補正は jp-typography.css 側に書く。
 *
 * デザイントークン（--text-heading-*, --color-background-* 等）は Nexsas 共通で、
 * automation-saas / ai-gadgets とも同一値であることを確認済み。
 * そのため値の重複定義はせず、ビルドに漏れた変数だけを下で補っている。
 */

/*
 * automation-saas 側が使っていないため main.css に出力されていない変数。
 * 値は流用元テンプレートの main.css からそのまま持ってきている。
 */
:root {
  /* ai-gadgets */
  --radius-4xl: 2rem;
  --font-weight-light: 300;

  /* wealth-management */
  --color-ns-ivory: #f4efe7;
  --blur-ns-badge-blur: 17.2283px;

  /* ai-software / digital-marketing */
  --container-xl: 36rem;
  --text-lg: 1.125rem;
  --text-lg--line-height: calc(1.75 / 1.125);
}

/* =====================================================================
 * ai-gadgets / index.html の What We Do セクション（1894〜1912行）用
 * 抽出元: main-v2.7.0/templates/ai-gadgets/assets/main.css
 * ===================================================================== */

.mb-10 {
  margin-bottom: calc(var(--spacing) * 10);
}

.py-16 {
  padding-block: calc(var(--spacing) * 16);
}

.max-w-\[1400px\] {
  max-width: 1400px;
}

.max-w-\[1880px\] {
  max-width: 1880px;
}

.rounded-4xl {
  border-radius: var(--radius-4xl);
}

.bg-background-12 {
  background-color: var(--color-background-12);
}

.font-light {
  --tw-font-weight: var(--font-weight-light);
  font-weight: var(--font-weight-light);
}

.wrap-break-word {
  overflow-wrap: break-word;
}

.text-heading-3 {
  font-size: var(--text-heading-3);
  line-height: var(--tw-leading, var(--text-heading-3--line-height));
}

/*
 * 見出しサイズの段。ステートメント帯は元テンプレートのままだと
 * HERO の h1（和文で 3.875rem）より大きくなって階層が逆転するため、
 * テンプレートの段を1段下げて使っている（値は作らず既存トークンのまま）。
 * automation-saas / ai-gadgets のビルドに無い段は他テンプレートから抽出:
 *   xl:text-heading-2 → templates/financial-management-platform/assets/main.css
 */

@media not all and (min-width: 1920px) {
  .max-\[1920px\]\:px-5 {
    padding-inline: calc(var(--spacing) * 5);
  }
}

@media (min-width: 40rem) {
  .sm\:text-heading-4 {
    font-size: var(--text-heading-4);
    line-height: var(--tw-leading, var(--text-heading-4--line-height));
  }

  .sm\:text-heading-5 {
    font-size: var(--text-heading-5);
    line-height: var(--tw-leading, var(--text-heading-5--line-height));
  }
}

@media (min-width: 48rem) {
  .md\:px-5 {
    padding-inline: calc(var(--spacing) * 5);
  }

  .md\:py-30 {
    padding-block: calc(var(--spacing) * 30);
  }

  .md\:rounded-4xl {
    border-radius: var(--radius-4xl);
  }

  .md\:text-heading-3 {
    font-size: var(--text-heading-3);
    line-height: var(--tw-leading, var(--text-heading-3--line-height));
  }

  .md\:text-heading-4 {
    font-size: var(--text-heading-4);
    line-height: var(--tw-leading, var(--text-heading-4--line-height));
  }
}

@media (min-width: 64rem) {
  .lg\:py-24 {
    padding-block: calc(var(--spacing) * 24);
  }

  .lg\:text-heading-2 {
    font-size: var(--text-heading-2);
    line-height: var(--tw-leading, var(--text-heading-2--line-height));
  }

  .lg\:text-heading-3 {
    font-size: var(--text-heading-3);
    line-height: var(--tw-leading, var(--text-heading-3--line-height));
  }
}

@media (min-width: 80rem) {
  .xl\:py-28 {
    padding-block: calc(var(--spacing) * 28);
  }

  .xl\:text-heading-1 {
    font-size: var(--text-heading-1);
    line-height: var(--tw-leading, var(--text-heading-1--line-height));
  }

  .xl\:text-heading-2 {
    font-size: var(--text-heading-2);
    line-height: var(--tw-leading, var(--text-heading-2--line-height));
  }
}

/* =====================================================================
 * wealth-management / index.html の HERO（2093〜2227行）用
 * → 特徴1「Enterprise Intelligence Platform」セクション
 * 抽出元: main-v2.7.0/templates/wealth-management/assets/main.css
 * ===================================================================== */

.badge {
  padding-inline: calc(var(--spacing) * 5);
  padding-block: calc(var(--spacing) * 1.5);
  font-size: var(--text-tagline-2);
  line-height: var(--tw-leading, var(--text-tagline-2--line-height));
  --tw-font-weight: var(--font-weight-normal);
  font-weight: var(--font-weight-normal);
  text-wrap: nowrap;
  color: var(--color-secondary);
  text-transform: lowercase;
  --tw-backdrop-blur: blur(var(--blur-ns-badge-blur));
  -webkit-backdrop-filter: var(--tw-backdrop-blur,);
  backdrop-filter: var(--tw-backdrop-blur,);
  border-radius: 3.40282e38px;
  display: inline-block;
}

.badge-ivory {
  background-color: var(--color-ns-ivory);
  font-size: var(--text-tagline-2);
  line-height: var(--tw-leading, var(--text-tagline-2--line-height));
  --tw-font-weight: var(--font-weight-normal);
  font-weight: var(--font-weight-normal);
  color: var(--color-secondary);
}

.shadow-2 {
  --tw-shadow:
    0px 10px 20px -5px var(--tw-shadow-color, #1c222b0d),
    0px 20px 65px -5px var(--tw-shadow-color, #1c222b0d);
  box-shadow:
    var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
    var(--tw-ring-shadow), var(--tw-shadow);
}

.ml-auto {
  margin-left: auto;
}

.z-1 {
  z-index: 1;
}

.-z-1 {
  z-index: calc(1 * -1);
}

.pt-\[230px\] {
  padding-top: 230px;
}

.pb-\[100px\] {
  padding-bottom: 100px;
}

.h-\[650px\] {
  height: 650px;
}

.max-w-\[724px\] {
  max-width: 724px;
}

.w-\[150px\] {
  width: 150px;
}

.w-\[200px\] {
  width: 200px;
}

.w-\[350px\] {
  width: 350px;
}

.w-\[600px\] {
  width: 600px;
}

.top-\[150px\] {
  top: 150px;
}

.top-\[250px\] {
  top: 250px;
}

.bottom-\[-20px\] {
  bottom: -20px;
}

.left-\[2px\] {
  left: 2px;
}

.left-\[40px\] {
  left: 40px;
}

.rotate-\[8deg\] {
  rotate: 8deg;
}

.rotate-\[-15deg\] {
  rotate: -15deg;
}

@media not all and (min-width: 40rem) {
  .max-sm\:top-\[10px\] {
    top: 10px;
  }

  :where(.max-sm\:space-y-18 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 18) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 18) * calc(1 - var(--tw-space-y-reverse)));
  }
}

@media (min-width: 40rem) {
  .sm\:left-0 {
    left: calc(var(--spacing) * 0);
  }

  .sm\:-left-\[45px\] {
    left: -45px;
  }

  .sm\:-bottom-\[60px\] {
    bottom: -60px;
  }
}

@media (min-width: 48rem) {
  .md\:top-5 {
    top: calc(var(--spacing) * 5);
  }

  .md\:left-\[10px\] {
    left: 10px;
  }

  .md\:w-\[357px\] {
    width: 357px;
  }

  .md\:text-left {
    text-align: left;
  }
}

@media (min-width: 64rem) {
  .lg\:top-0 {
    top: calc(var(--spacing) * 0);
  }

  .lg\:left-\[100px\] {
    left: 100px;
  }

  .lg\:w-\[273px\] {
    width: 273px;
  }

  .lg\:w-\[370px\] {
    width: 370px;
  }

  .lg\:pb-\[200px\] {
    padding-bottom: 200px;
  }
}

@media (min-width: 80rem) {
  .xl\:right-\[25px\] {
    right: 25px;
  }

  .xl\:left-\[135px\] {
    left: 135px;
  }

  .xl\:w-\[280px\] {
    width: 280px;
  }

  .xl\:w-\[408px\] {
    width: 408px;
  }
}

/* =====================================================================
 * ブランド色
 *
 * 購入テンプレートの main.css にアンバー系の色は入っていない（元の配色は
 * 紫・ライム・シアン）。混ぜたセクションの見た目はトークンで揃える方針なので
 * （docs/plans/design-composition.md）、プロジェクトのブランド色を
 * src/styles/global.css からそのまま持ってきて、テンプレートの器でも使えるようにする。
 * ここだけは流用元テンプレート由来ではない。値は global.css が正本。
 * ===================================================================== */

:root {
  /* ブランドのキーカラー。値の正本は brand-2026.css（--brand-pickle-green） */
  --color-brand: var(--brand-pickle-green, #afc70f);
}

.bg-brand {
  background-color: var(--color-brand);
}

/* =====================================================================
 * ai-software / index.html の How it Works セクション（2855〜2941行）用
 * → 特徴2「AIエージェント管理基盤」
 * 抽出元: main-v2.7.0/templates/ai-software/assets/main.css
 *         （text-[28px] のみ ai-solutions。ai-software のビルドに無かった）
 * ===================================================================== */

.pt-14 {
  padding-top: calc(var(--spacing) * 14);
}

.pb-14 {
  padding-bottom: calc(var(--spacing) * 14);
}

.mb-2 {
  margin-bottom: calc(var(--spacing) * 2);
}

.mb-\[112px\] {
  margin-bottom: 112px;
}

.size-14 {
  width: calc(var(--spacing) * 14);
  height: calc(var(--spacing) * 14);
}

.max-w-\[750px\] {
  max-width: 750px;
}

.rounded-\[48px\] {
  border-radius: 48px;
}

.text-\[28px\] {
  font-size: 28px;
}

.text-\[52px\] {
  font-size: 52px;
}

.badge-blur-light {
  color: var(--color-accent);
  background-color: #fcfcfc1a;
}

.bg-white\/14 {
  background-color: #ffffff24;
}

.text-accent\/60 {
  color: #fcfcfc99;
}

.backdrop-blur-\[50px\] {
  --tw-backdrop-blur: blur(50px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur,);
  backdrop-filter: var(--tw-backdrop-blur,);
}

@media (min-width: 40rem) {
  .sm\:gap-4 {
    gap: calc(var(--spacing) * 4);
  }

  .sm\:p-10 {
    padding: calc(var(--spacing) * 10);
  }
}

@media (min-width: 48rem) {
  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .md\:gap-8 {
    gap: calc(var(--spacing) * 8);
  }

  .md\:p-4 {
    padding: calc(var(--spacing) * 4);
  }

  .md\:pt-16 {
    padding-top: calc(var(--spacing) * 16);
  }

  .md\:pb-16 {
    padding-bottom: calc(var(--spacing) * 16);
  }
}

@media (min-width: 64rem) {
  .lg\:pt-\[88px\] {
    padding-top: 88px;
  }

  .lg\:pb-\[88px\] {
    padding-bottom: 88px;
  }
}

@media (min-width: 80rem) {
  .xl\:pt-\[100px\] {
    padding-top: 100px;
  }

  .xl\:pb-\[100px\] {
    padding-bottom: 100px;
  }
}

@media not all and (min-width: 64rem) {
  .max-lg\:mb-3 {
    margin-bottom: calc(var(--spacing) * 3);
  }

  .max-lg\:mb-12 {
    margin-bottom: calc(var(--spacing) * 12);
  }

  .max-lg\:w-\[90\%\] {
    width: 90%;
  }

  .max-lg\:rounded-2xl {
    border-radius: var(--radius-2xl);
  }

  .max-lg\:px-5 {
    padding-inline: calc(var(--spacing) * 5);
  }

  .max-lg\:py-12 {
    padding-block: calc(var(--spacing) * 12);
  }

  .max-lg\:text-heading-6 {
    font-size: var(--text-heading-6);
    line-height: var(--tw-leading, var(--text-heading-6--line-height));
  }

  .max-lg\:text-lg {
    font-size: var(--text-lg);
    line-height: var(--tw-leading, var(--text-lg--line-height));
  }

  .max-lg\:text-tagline-2 {
    font-size: var(--text-tagline-2);
    line-height: var(--tw-leading, var(--text-tagline-2--line-height));
  }

  :where(.max-lg\:space-y-3 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
  }
}

/* =====================================================================
 * digital-marketing / index.html の Services overview（2265〜2394行）用
 * → オファリング機能
 * 抽出元: main-v2.7.0/templates/digital-marketing/assets/main.css
 *         （btn 系と stack-cards は ai-software の同一ルール）
 * ===================================================================== */

.stack-cards {
  --stack-cards-gap: 24px;
}

.stack-cards__item {
  top: calc(var(--spacing) * 28);
  transform-origin: top;
  position: sticky;
  overflow: hidden;
}

.btn {
  cursor: pointer;
  border-style: var(--tw-border-style);
  text-align: center;
  --tw-font-weight: var(--font-weight-normal);
  font-weight: var(--font-weight-normal);
  text-wrap: nowrap;
  text-transform: lowercase;
  transition-property: all;
  --tw-duration: 0.5s;
  --tw-ease: var(--ease-in-out);
  transition-duration: 0.5s;
  transition-timing-function: var(--ease-in-out);
  border-width: 1px;
  border-radius: 3.40282e38px;
  display: inline-block;
  position: relative;
  overflow: hidden;
}

.btn-md {
  min-width: 90px;
  padding-inline: calc(var(--spacing) * 5);
  padding-block: calc(var(--spacing) * 2.5);
  font-size: var(--text-tagline-2);
  line-height: var(--tw-leading, var(--text-tagline-2--line-height));
}

.btn-secondary {
  border-color: var(--color-black);
  background-color: var(--color-secondary);
  color: var(--color-white);
  --tw-shadow: 0px 1px 2px 0px var(--tw-shadow-color, #1018280d);
  box-shadow:
    var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
    var(--tw-ring-shadow), var(--tw-shadow);
}

.bg-background-2 {
  background-color: var(--color-background-2);
}

.border-stroke-4\/50 {
  border-color: #eceff480;
}

.mb-5 {
  margin-bottom: calc(var(--spacing) * 5);
}

.mb-14 {
  margin-bottom: calc(var(--spacing) * 14);
}

.min-h-\[170px\] {
  min-height: 170px;
}

.max-w-\[512px\] {
  max-width: 512px;
}

.max-w-xl {
  max-width: var(--container-xl);
}

.pb-\[220px\] {
  padding-bottom: 220px;
}

@media (min-width: 40rem) {
  .sm\:pb-14 {
    padding-bottom: calc(var(--spacing) * 14);
  }
}

@media (min-width: 48rem) {
  .md\:justify-between {
    justify-content: space-between;
  }

  .md\:max-w-\[595px\] {
    max-width: 595px;
  }

  .md\:gap-x-\[120px\] {
    column-gap: 120px;
  }
}

@media (min-width: 64rem) {
  .lg\:sticky {
    position: sticky;
  }

  .lg\:top-28 {
    top: calc(var(--spacing) * 28);
  }
}

@media not all and (min-width: 48rem) {
  .max-md\:gap-y-18 {
    row-gap: calc(var(--spacing) * 18);
  }
}

/* =====================================================================
 * 2xl（1536px 以上）の段
 *
 * CSS のクラス名は数字で始められないため、Tailwind は `2xl:` を
 * `\32 xl\:`（16進エスケープ＋スペース）として出力する。
 * ここを見落として「どのテンプレートにも無い＝効いていない class」と
 * 誤判定し、パディングまで削ってしまったことがある。**必ずこの形で探すこと。**
 * ===================================================================== */

@media (min-width: 96rem) {
  /* ai-software（特徴2のパネル） */
  .\32 xl\:max-w-\[1440px\] {
    max-width: 1440px;
  }

  .\32 xl\:px-\[100px\] {
    padding-inline: 100px;
  }

  .\32 xl\:py-\[176px\] {
    padding-block: 176px;
  }

  /* wealth-management（特徴1の左右の間隔） */
  .\32 xl\:gap-x-\[100px\] {
    column-gap: 100px;
  }
}

/* =====================================================================
 * ai-software のアクセント3色（特徴2のカードの丸ピル）
 * 抽出元: main-v2.7.0/templates/ai-software/assets/main.css
 * ===================================================================== */

:root {
  --color-ns-yellow: #f9eb57;
  --color-ns-green: #c6f56f;
  --color-ns-cyan: #83e7ee;
}

.bg-ns-yellow {
  background-color: var(--color-ns-yellow);
}

.bg-ns-green {
  background-color: var(--color-ns-green);
}

.bg-ns-cyan {
  background-color: var(--color-ns-cyan);
}

.text-ns-yellow {
  color: var(--color-ns-yellow);
}

/*
 * 特徴2のパネルの余白。テンプレートは同じ値を 2xl（1536px 以上）から当てているが、
 * 1440px のノートPCでは効かず、パネル内側が 40px しかない状態になる。
 * 値はテンプレートのまま、当たり始める幅だけ xl（1280px）に下げている。
 * ルール自体も作っていない（他テンプレートのビルドから抽出）。
 *   xl:py-[176px]     → templates/ai-kw-generator
 *   xl:px-[100px]     → templates/mobile-management-software
 *   xl:max-w-[1440px] → templates/pos-system
 */
@media (min-width: 80rem) {
  .xl\:max-w-\[1440px\] {
    max-width: 1440px;
  }

  .xl\:px-\[100px\] {
    padding-inline: 100px;
  }

  .xl\:py-\[176px\] {
    padding-block: 176px;
  }
}

/*
 * 特徴2のカード用の追加分。
 * アイコンを丸で囲うのをやめて素の字形にしたため、色をアイコン自体に付ける。
 * 上下の余白も少し広げている（p-8 → py-12）。ルールはすべて他テンプレートから抽出。
 *   px-8 / py-12 / text-ns-green → templates/ai-agency
 *   text-ns-cyan                 → templates/ai-software
 *   md:px-4                      → templates/ai-agency
 *   lg:px-8                      → templates/analytics-and-reporting
 */

.px-8 {
  padding-inline: calc(var(--spacing) * 8);
}

.py-12 {
  padding-block: calc(var(--spacing) * 12);
}

.text-ns-green {
  color: var(--color-ns-green);
}

.text-ns-cyan {
  color: var(--color-ns-cyan);
}

@media (min-width: 48rem) {
  .md\:px-4 {
    padding-inline: calc(var(--spacing) * 4);
  }
}

@media (min-width: 64rem) {
  .lg\:px-8 {
    padding-inline: calc(var(--spacing) * 8);
  }
}

/*
 * 機能の抜粋セクション（ai-application / index.html の Services section）用。
 * すべて templates/ai-application/assets/main.css から抽出したそのままのルール。
 * `pnpm extract:css src/components/template/TemplateFeatureShowcase.astro ai-application` の出力。
 *
 * group/card-img は Tailwind の group 名なので単体のルールを持たない
 * （実体は下の .group-hover\/card-img\:scale-105 の :is(:where(.group\/card-img):hover *)）。
 * ai-application のビルドでも出現は1箇所のみで、欠落ではないことを確認済み。
 */

.mb-1 {
  margin-bottom: calc(var(--spacing) * 1);
}

.mb-11 {
  margin-bottom: calc(var(--spacing) * 11);
}

.w-18 {
  width: calc(var(--spacing) * 18);
}

.max-w-\[905px\] {
  max-width: 905px;
}

.rounded-t-lg {
  border-top-left-radius: var(--radius-lg);
  border-top-right-radius: var(--radius-lg);
}

.border-background-12 {
  border-color: var(--color-background-12);
}

.badge-gray-light-v2 {
  background-color: var(--color-background-12);
  --tw-font-weight: var(--font-weight-medium);
  font-weight: var(--font-weight-medium);
  color: var(--color-secondary);
}

.py-14 {
  padding-block: calc(var(--spacing) * 14);
}

.pt-8 {
  padding-top: calc(var(--spacing) * 8);
}

.pb-9 {
  padding-bottom: calc(var(--spacing) * 9);
}

@media (hover: hover) {
  .group-hover\/card-img\:scale-105:is(:where(.group\/card-img):hover *) {
    --tw-scale-x: 105%;
    --tw-scale-y: 105%;
    --tw-scale-z: 105%;
    scale: var(--tw-scale-x) var(--tw-scale-y);
  }

  .hover\:bg-primary-500:hover {
    background-color: var(--color-primary-500);
  }
}

@media (min-width: 48rem) {
  .md\:mb-3 {
    margin-bottom: calc(var(--spacing) * 3);
  }

  .md\:h-13 {
    height: calc(var(--spacing) * 13);
  }

  .md\:w-22 {
    width: calc(var(--spacing) * 22);
  }

  .md\:gap-6 {
    gap: calc(var(--spacing) * 6);
  }

  .md\:rounded-\[20px\] {
    border-radius: 20px;
  }

  .md\:rounded-t-\[20px\] {
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
  }

  .md\:p-5 {
    padding: calc(var(--spacing) * 5);
  }

  .md\:px-8 {
    padding-inline: calc(var(--spacing) * 8);
  }

  .md\:py-16 {
    padding-block: calc(var(--spacing) * 16);
  }
}

@media (min-width: 64rem) {
  .lg\:mx-auto {
    margin-inline: auto;
  }

  .lg\:mb-9 {
    margin-bottom: calc(var(--spacing) * 9);
  }

  .lg\:max-w-\[530px\] {
    max-width: 530px;
  }

  .lg\:max-w-\[730px\] {
    max-width: 730px;
  }
}

/*
 * ai-marketing-agency 由来のセクション（セキュリティ / Tech Stack）用。
 * 出典: templates/ai-marketing-agency/assets/main.css。値は1つも変えていない。
 *
 * ── なぜ [data-opai] でスコープするのか ──
 * ai-marketing-agency は automation-saas と**同じ名前で違う値**のトークンを使っている。
 *   --color-background-13  手元 #f2f5fa（ほぼ白） / 流用元 #0d0d12（ほぼ黒）
 *   --color-background-7   手元 #181d26（濃紺）   / 流用元 #f8f9fa（ほぼ白）
 *   --color-stroke-3       手元 #d7dde5           / 流用元 #7c8ea5（ヘッダーが使用中）
 * :root に流用元の値を入れると既存セクション（特にヘッダー）が壊れ、入れないと
 * このセクションの色が全部反転する。そこでセクションの根に `data-opai` を付け、
 * **変数の値だけをその中に閉じ込めている**。class もルールも書き換えていない。
 *
 * --font-inter-tight はここに入れない（jp-typography.css が和文フォールバック込みで
 * 上書きしているため。上書きし返すと和文がヒラギノに落ちなくなる）。
 */
[data-opai] {
  --color-background-3: #252a32;
  --color-background-4: #191d2a;
  --color-background-5: #11141d;
  --color-background-6: #0d1017;
  --color-background-7: #f8f9fa;
  --color-background-8: #f1f4f6;
  --color-background-10: #e4eaee;
  --color-background-13: #0d0d12;
  --color-opai-blue: #227eff;
  --color-stroke-1: #94aecf;
  --color-stroke-3: #7c8ea5;
  --color-black: #000;
  --color-white: #fff;
  --font-instrument-serif: 'Instrument Serif', serif;
  --font-ibm-plex-mono: 'IBM Plex Mono', monospace;
  --text-tagline-1: 1.125rem;
  --text-tagline-1--line-height: 150%;
  --text-tagline-2: 1rem;
  --text-tagline-2--line-height: 150%;
  --text-tagline-4: 0.75rem;
  --text-tagline-4--line-height: 150%;
  --text-is-heading-1: 4.5rem;
  --text-is-heading-1--line-height: 120%;
  --text-is-heading-2: 3.25rem;
  --text-is-heading-2--line-height: 120%;
  --text-is-heading-3: 2.75rem;
  --text-is-heading-3--line-height: 120%;
  --text-is-heading-4: 2.25rem;
  --text-is-heading-4--line-height: 130%;
  --text-is-heading-5: 1.75rem;
  --text-is-heading-5--line-height: 140%;
  --text-is-heading-6: 1.25rem;
  --text-is-heading-6--line-height: 140%;
}

/*
 * 上のセクションが参照していて手元のビルドに無かった class。
 * `pnpm extract:css <component> ai-marketing-agency` の出力そのまま。
 *
 * medias / media-container / service-item / service-reveal-cursor は
 * 流用元 CSS にもルールが無い（JS が掴むためだけの目印）。
 * transition-color は Tailwind に存在しない綴り（正しくは transition-colors）で、
 * 流用元のビルドにも出力が無く元サイトでも効いていない。どちらも欠落ではない。
 */

.mt-\[1\.5px\] {
  margin-top: 1.5px;
}

.size-\[16px\] {
  width: 16px;
  height: 16px;
}

.size-\[18px\] {
  width: 18px;
  height: 18px;
}

.size-\[22px\] {
  width: 22px;
  height: 22px;
}

.h-0 {
  height: calc(var(--spacing) * 0);
}

.max-h-5 {
  max-height: calc(var(--spacing) * 5);
}

.w-\[85\%\] {
  width: 85%;
}

.translate-x-\[2\.5px\] {
  --tw-translate-x: 2.5px;
  translate: var(--tw-translate-x) var(--tw-translate-y);
}

.-translate-y-0\.5 {
  --tw-translate-y: calc(var(--spacing) * -0.5);
  translate: var(--tw-translate-x) var(--tw-translate-y);
}

.translate-y-0\.5 {
  --tw-translate-y: calc(var(--spacing) * 0.5);
  translate: var(--tw-translate-x) var(--tw-translate-y);
}

.scale-95 {
  --tw-scale-x: 95%;
  --tw-scale-y: 95%;
  --tw-scale-z: 95%;
  scale: var(--tw-scale-x) var(--tw-scale-y);
}

.gap-y-2 {
  row-gap: calc(var(--spacing) * 2);
}

.gap-y-14 {
  row-gap: calc(var(--spacing) * 14);
}

:where(.divide-y > :not(:last-child)) {
  --tw-divide-y-reverse: 0;
  border-bottom-style: var(--tw-border-style);
  border-top-style: var(--tw-border-style);
  border-top-width: calc(1px * var(--tw-divide-y-reverse));
  border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
}

:where(.divide-stroke-1\/11 > :not(:last-child)) {
  border-color: #94aecf1c;
}

:where(.divide-stroke-1\/11 > :not(:last-child)) {
  border-color: color-mix(in oklab, var(--color-stroke-1) 11%, transparent);
}

.bg-background-6 {
  background-color: var(--color-background-6);
}

.fill-opai-blue {
  fill: var(--color-opai-blue);
}

.stroke-background-10 {
  stroke: var(--color-background-10);
}

.stroke-2 {
  stroke-width: 2px;
}

.py-4 {
  padding-block: calc(var(--spacing) * 4);
}

.py-\[13px\] {
  padding-block: 13px;
}

.pl-0 {
  padding-left: calc(var(--spacing) * 0);
}

.font-ibm-plex-mono {
  font-family: var(--font-ibm-plex-mono);
}

.font-instrument-serif {
  font-family: var(--font-instrument-serif);
}

.text-is-heading-1,
.text-is-heading-2,
.text-is-heading-3,
.text-is-heading-4,
.text-is-heading-5,
.text-is-heading-6 {
  font-family: var(--font-instrument-serif);
}

.text-is-heading-4 {
  font-size: var(--text-is-heading-4);
  line-height: var(--tw-leading, var(--text-is-heading-4--line-height));
}

.text-tagline-4 {
  font-size: var(--text-tagline-4);
  line-height: var(--tw-leading, var(--text-tagline-4--line-height));
}

.text-\[26px\] {
  font-size: 26px;
}

.leading-\[1\.4\] {
  --tw-leading: 1.4;
  line-height: 1.4;
}

.text-background-13\/70 {
  color: #0d0d12b3;
}

.text-background-13\/70 {
  color: color-mix(in oklab, var(--color-background-13) 70%, transparent);
}

.text-white\/50 {
  color: #ffffff80;
}

.text-white\/50 {
  color: color-mix(in oklab, var(--color-white) 50%, transparent);
}

.mix-blend-color-burn {
  mix-blend-mode: color-burn;
}

.transition-\[height\] {
  transition-property: height;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: var(--tw-duration, var(--default-transition-duration));
}

.-top-7 {
  top: calc(var(--spacing) * -7);
}

.bottom-\[6\%\] {
  bottom: 6%;
}

.left-\[5\%\] {
  left: 5%;
}

.z-2 {
  z-index: 2;
}

.z-5 {
  z-index: 5;
}

.h-\[240px\] {
  height: 240px;
}

.w-\[800px\] {
  width: 800px;
}

.max-w-\[960px\] {
  max-width: 960px;
}

.bg-linear-\[0deg\,white_0\%\,white_100\%\] {
  --tw-gradient-position: 0deg, white 0%, white 100%;
  background-image: linear-gradient(var(--tw-gradient-stops, 0deg, white 0%, white 100%));
}

.pt-16 {
  padding-top: calc(var(--spacing) * 16);
}

.pb-16 {
  padding-bottom: calc(var(--spacing) * 16);
}

.text-background-5 {
  color: var(--color-background-5);
}

.text-background-13\/30 {
  color: #0d0d124d;
}

.text-background-13\/30 {
  color: color-mix(in oklab, var(--color-background-13) 30%, transparent);
}

.text-background-13\/60 {
  color: #0d0d1299;
}

.text-background-13\/60 {
  color: color-mix(in oklab, var(--color-background-13) 60%, transparent);
}

.text-black {
  color: var(--color-black);
}

.blur-\[5px\] {
  --tw-blur: blur(5px);
  filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,)
    var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,)
    var(--tw-drop-shadow,);
}

.integration-circle-animation {
  animation: 50s linear infinite spin;
}

/*
 * 上の animation が参照する keyframes。**抽出時にこれだけ漏れていて円が回っていなかった**
 * （2026-08-14 高木さん指摘）。`extract:css` は class 名で引くので、class を持たない
 * `@keyframes` は拾えない。値は流用元そのまま
 * （main-v2.7.0/templates/ai-marketing-agency/assets/main.css 5405〜5409行）。
 *
 * `prefers-reduced-motion` の分岐は流用元に無いので足していない（テンプレートの挙動のまま）。
 */
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@media (hover: hover) {
  .group-hover\:h-full:is(:where(.group):hover *) {
    height: 100%;
  }
  .group-hover\:-translate-y-\[105\%\]:is(:where(.group):hover *) {
    --tw-translate-y: calc(105% * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }
  .group-hover\:\!text-background-13\/90:is(:where(.group):hover *) {
    color: #0d0d12e6 !important;
  }
  .group-hover\:\!text-background-13\/90:is(:where(.group):hover *) {
    color: color-mix(in oklab, var(--color-background-13) 90%, transparent) !important;
  }
  .group-hover\:text-background-13\/60:is(:where(.group):hover *) {
    color: #0d0d1299;
  }
  .group-hover\:text-background-13\/60:is(:where(.group):hover *) {
    color: color-mix(in oklab, var(--color-background-13) 60%, transparent);
  }
  .group-hover\:text-background-13\/90:is(:where(.group):hover *) {
    color: #0d0d12e6;
  }
  .group-hover\:text-background-13\/90:is(:where(.group):hover *) {
    color: color-mix(in oklab, var(--color-background-13) 90%, transparent);
  }
  .hover\:border-stroke-3:hover {
    border-color: var(--color-stroke-3);
  }
  .hover\:pl-4:hover {
    padding-left: calc(var(--spacing) * 4);
  }
}

@media (min-width: 40rem) {
  .sm\:w-fit {
    width: fit-content;
  }
}

@media (min-width: 48rem) {
  .md\:w-\[292px\] {
    width: 292px;
  }
  .md\:py-24 {
    padding-block: calc(var(--spacing) * 24);
  }
  .md\:pt-18 {
    padding-top: calc(var(--spacing) * 18);
  }
  .md\:text-is-heading-2,
  .md\:text-is-heading-3,
  .md\:text-is-heading-5 {
    font-family: var(--font-instrument-serif);
  }
  .md\:text-is-heading-3 {
    font-size: var(--text-is-heading-3);
    line-height: var(--tw-leading, var(--text-is-heading-3--line-height));
  }
  .md\:text-is-heading-5 {
    font-size: var(--text-is-heading-5);
    line-height: var(--tw-leading, var(--text-is-heading-5--line-height));
  }
  .md\:main-container {
    max-width: 1290px;
    padding-inline: calc(var(--spacing) * 5);
    margin-inline: auto;
  }
  .md\:h-\[322px\] {
    height: 322px;
  }
  .md\:w-\[899px\] {
    width: 899px;
  }
  .md\:pt-24 {
    padding-top: calc(var(--spacing) * 24);
  }
  .md\:pb-28 {
    padding-bottom: calc(var(--spacing) * 28);
  }
}

@media (min-width: 64rem) {
  .lg\:h-\[386px\] {
    height: 386px;
  }
  .lg\:max-w-\[465px\] {
    max-width: 465px;
  }
  .lg\:max-w-\[514px\] {
    max-width: 514px;
  }
  .lg\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lg\:gap-8 {
    gap: calc(var(--spacing) * 8);
  }
  .lg\:py-8 {
    padding-block: calc(var(--spacing) * 8);
  }
  .lg\:py-28 {
    padding-block: calc(var(--spacing) * 28);
  }
  .lg\:text-is-heading-1,
  .lg\:text-is-heading-2,
  .lg\:text-is-heading-3 {
    font-family: var(--font-instrument-serif);
  }
  .lg\:text-is-heading-2 {
    font-size: var(--text-is-heading-2);
    line-height: var(--tw-leading, var(--text-is-heading-2--line-height));
  }
  .lg\:pt-28 {
    padding-top: calc(var(--spacing) * 28);
  }
  .lg\:pb-36 {
    padding-bottom: calc(var(--spacing) * 36);
  }
}

@media (min-width: 80rem) {
  .xl\:py-36 {
    padding-block: calc(var(--spacing) * 36);
  }
  .xl\:pt-36 {
    padding-top: calc(var(--spacing) * 36);
  }
  .xl\:pb-44 {
    padding-bottom: calc(var(--spacing) * 44);
  }
}

@media (min-width: 96rem) {
  .\32 xl\:py-44 {
    padding-block: calc(var(--spacing) * 44);
  }
  .\32 xl\:pt-44 {
    padding-top: calc(var(--spacing) * 44);
  }
}

@media not all and (min-width: 48rem) {
  .max-md\:leading-\[1\.1\] {
    --tw-leading: 1.1;
    line-height: 1.1;
  }
}

@media not all and (min-width: 64rem) {
  .max-lg\:scale-90 {
    --tw-scale-x: 90%;
    --tw-scale-y: 90%;
    --tw-scale-z: 90%;
    scale: var(--tw-scale-x) var(--tw-scale-y);
  }
}

@media (min-width: 1440px) {
  .md\:main-container {
    padding-inline: calc(var(--spacing) * 0);
  }
}

/*
 * CTA とフッターのルールが参照していて、手元の main.css にはそもそも定義が無かった変数。
 * 出典: templates/ai-gadgets/assets/main.css。値はそのまま。
 * automation-saas のビルドはこの4つを1度も参照していないので（var() の出現0件）、
 * :root に置いても既存セクションには影響しない。
 *
 * 未定義のままだと `color: var(--color-primary-50)` が無効値になり、
 * フッターのリンクが継承色（黒）で描かれて濃い地に沈む（実際にそうなっていた）。
 */
:root {
  --color-background-1: #fcfcfd;
  --color-primary-50: #f4f2fe;
  --color-stroke-4: #eceff4;
  --color-stroke-7: #2a333e;
}

/*
 * CTA とフッター（ai-gadgets / index.html の CTA section・Footer）用。
 * 出典: templates/ai-gadgets/assets/main.css。値は変えていない。
 *
 * footer-divider はどのテンプレートの CSS にもルールが無い。
 * 幅0の線を JS（dividerExpand）が 100% に伸ばすための目印なので、欠落ではない。
 * その JS は main.js に入っていないため template-extra.js に移植してある。
 */

.-right-\[16\%\] {
  right: -16%;
}

.-bottom-10 {
  bottom: calc(var(--spacing) * -10);
}

.-left-\[10\%\] {
  left: -10%;
}

.btn-md-v2 .btn-v2-icon {
  margin-top: 1px;
}

.btn-xl-v2 {
  height: 54px;
  padding-inline: calc(var(--spacing) * 8);
  padding-block: calc(var(--spacing) * 3.5);
  font-size: var(--text-tagline-1);
  line-height: var(--tw-leading, var(--text-tagline-1--line-height));
}

.w-\[90\%\] {
  width: 90%;
}

.-translate-x-2 {
  --tw-translate-x: calc(var(--spacing) * -2);
  translate: var(--tw-translate-x) var(--tw-translate-y);
}

.btn-v2-white {
  border-style: var(--tw-border-style);
  border-width: 1px;
  border-color: var(--color-stroke-3);
  background-color: var(--color-white);
  color: var(--color-secondary);
}

.btn-v2-white .btn-v2-icon {
  fill: var(--color-secondary);
}

.\!border-0 {
  border-style: var(--tw-border-style) !important;
  border-width: 0 !important;
}

.btn-secondary-v2 {
  border-color: var(--color-stroke-7);
  background-color: var(--color-background-5);
  color: var(--color-accent);
  --tw-shadow: 0px 1px 2px 0px var(--tw-shadow-color, #1018280d);
  box-shadow:
    var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
    var(--tw-ring-shadow), var(--tw-shadow);
}

.btn-gray-v2 .btn-v2-icon {
  fill: var(--color-secondary);
}

.btn-secondary-v2 {
  background-color: var(--color-secondary);
  color: var(--color-white);
  --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, #10182842);
  box-shadow:
    var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
    var(--tw-ring-shadow), var(--tw-shadow);
}

.btn-secondary-v2 .btn-v2-icon {
  fill: var(--color-white);
}

.btn-primary-v2 .btn-v2-icon {
  fill: var(--color-white);
}

.btn-stone-v2 .btn-v2-icon {
  fill: var(--color-secondary);
}

.py-28 {
  padding-block: calc(var(--spacing) * 28);
}

.lowercase {
  text-transform: lowercase;
}

.footer-link {
  font-size: var(--text-tagline-1);
  line-height: var(--tw-leading, var(--text-tagline-1--line-height));
  --tw-font-weight: var(--font-weight-normal);
  font-weight: var(--font-weight-normal);
  color: var(--color-primary-50);
  display: inline-block;
  position: relative;
  overflow: hidden;
}

.footer-link:before {
  content: var(--tw-content);
  content: var(--tw-content);
  bottom: calc(var(--spacing) * 0);
  content: var(--tw-content);
  left: calc(var(--spacing) * 0);
  content: var(--tw-content);
  content: var(--tw-content);
  content: var(--tw-content);
  transform-origin: 100%;
  content: var(--tw-content);
  --tw-scale-x: 0%;
  width: 100%;
  height: 1px;
  scale: var(--tw-scale-x) var(--tw-scale-y);
  content: var(--tw-content);
  background-color: var(--color-white);
  content: var(--tw-content);
  transition-property: transform, translate, scale, rotate;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: var(--tw-duration, var(--default-transition-duration));
  content: var(--tw-content);
  --tw-duration: 0.5s;
  content: var(--tw-content);
  --tw-content: '';
  content: var(--tw-content);
  transition-duration: 0.5s;
  position: absolute;
}

.footer-link:where(.dark, .dark *):before {
  content: var(--tw-content);
  background-color: var(--color-white);
}

.w-0 {
  width: calc(var(--spacing) * 0);
}

.bg-accent\/10 {
  background-color: #fcfcfc1a;
}

.bg-accent\/10 {
  background-color: color-mix(in oklab, var(--color-accent) 10%, transparent);
}

.bg-stroke-1\/20 {
  background-color: #dfe4eb33;
}

.bg-stroke-1\/20 {
  background-color: color-mix(in oklab, var(--color-stroke-1) 20%, transparent);
}

.text-primary-50 {
  color: var(--color-primary-50);
}

.dark\:bg-background-8:where(.dark, .dark *) {
  background-color: var(--color-background-8);
}

.dark\:bg-stroke-4\/10:where(.dark, .dark *) {
  background-color: #eceff41a;
}

.dark\:bg-stroke-4\/10:where(.dark, .dark *) {
  background-color: color-mix(in oklab, var(--color-stroke-4) 10%, transparent);
}

@media (hover: hover) {
  .btn-xl-v2:hover {
    --tw-scale-x: 102%;
    --tw-scale-y: 102%;
    --tw-scale-z: 102%;
    scale: var(--tw-scale-x) var(--tw-scale-y);
  }
  .group-hover\/btn-v2\:translate-x-1:is(:where(.group\/btn-v2):hover *) {
    --tw-translate-x: calc(var(--spacing) * 1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }
  .group-hover\/btn-v2\:translate-x-6:is(:where(.group\/btn-v2):hover *) {
    --tw-translate-x: calc(var(--spacing) * 6);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }
  .group-hover\/btn-v2\:btn-v2-white:is(:where(.group\/btn-v2):hover *) {
    border-style: var(--tw-border-style);
    border-width: 1px;
    border-color: var(--color-stroke-3);
    background-color: var(--color-white);
    color: var(--color-secondary);
  }
  .group-hover\/btn-v2\:btn-v2-white:is(:where(.group\/btn-v2):hover *) .btn-v2-icon {
    fill: var(--color-secondary);
  }
  .group-hover\/btn-v2\:btn-secondary-v2:is(:where(.group\/btn-v2):hover *) {
    border-color: var(--color-stroke-7);
    background-color: var(--color-background-5);
    color: var(--color-accent);
    --tw-shadow: 0px 1px 2px 0px var(--tw-shadow-color, #1018280d);
    box-shadow:
      var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
      var(--tw-ring-shadow), var(--tw-shadow);
  }
  .group-hover\/btn-v2\:btn-gray-v2:is(:where(.group\/btn-v2):hover *) {
    background-color: var(--color-background-1);
    color: var(--color-secondary);
    --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, #1018280d);
    box-shadow:
      var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
      var(--tw-ring-shadow), var(--tw-shadow);
  }
  .group-hover\/btn-v2\:btn-gray-v2:is(:where(.group\/btn-v2):hover *) .btn-v2-icon {
    fill: var(--color-secondary);
  }
  .group-hover\/btn-v2\:btn-secondary-v2:is(:where(.group\/btn-v2):hover *) {
    background-color: var(--color-secondary);
    color: var(--color-white);
    --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, #10182842);
    box-shadow:
      var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
      var(--tw-ring-shadow), var(--tw-shadow);
  }
  .group-hover\/btn-v2\:btn-secondary-v2:is(:where(.group\/btn-v2):hover *) .btn-v2-icon {
    fill: var(--color-white);
  }
  .group-hover\/btn-v2\:btn-primary-v2:is(:where(.group\/btn-v2):hover *) {
    background-color: var(--color-primary-500);
    color: var(--color-white);
  }
  .group-hover\/btn-v2\:btn-primary-v2:is(:where(.group\/btn-v2):hover *) .btn-v2-icon {
    fill: var(--color-white);
  }
  .footer-link:hover:before {
    content: var(--tw-content);
    transform-origin: 0;
    content: var(--tw-content);
    --tw-scale-x: 100%;
    scale: var(--tw-scale-x) var(--tw-scale-y);
  }
}

@media (min-width: 48rem) {
  .md\:-right-\[10\%\] {
    right: -10%;
  }
  .md\:-left-\[5\%\] {
    left: -5%;
  }
  .md\:h-auto {
    height: auto;
  }
}

@media (min-width: 64rem) {
  .lg\:right-0 {
    right: calc(var(--spacing) * 0);
  }
  .lg\:left-0 {
    left: calc(var(--spacing) * 0);
  }
  .lg\:py-22 {
    padding-block: calc(var(--spacing) * 22);
  }
}

@media not all and (min-width: 40rem) {
  .max-sm\:scale-75 {
    --tw-scale-x: 75%;
    --tw-scale-y: 75%;
    --tw-scale-z: 75%;
    scale: var(--tw-scale-x) var(--tw-scale-y);
  }
}

@media (min-width: 40rem) {
  :where(.sm\:space-y-5 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)));
  }
}

@media (min-width: 80rem) {
  .xl\:pt-\[90px\] {
    padding-top: 90px;
  }
}

@media not all and (min-width: 426px) {
  .footer-link {
    font-size: var(--text-tagline-2);
    line-height: var(--tw-leading, var(--text-tagline-2--line-height));
  }
}

/* =====================================================================
 * 機能詳細ページ（automation-saas / blog-details ＋ ai-gadgets のメガメニューカード
 * ＋ mobile-management-software の feature v2 section）
 * 2026-08-12 追加
 * ===================================================================== */

.max-w-\[720px\] {
  max-width: 720px;
}

@media (hover: hover) {
  .hover\:border-secondary\/30:hover {
    border-color: #1a1a1c4d;
  }

  .hover\:border-secondary\/30:hover {
    border-color: color-mix(in oklab, var(--color-secondary) 30%, transparent);
  }
}

@media (min-width: 40rem) {
  .sm\:col-span-6 {
    grid-column: span 6 / span 6;
  }

  .sm\:gap-5 {
    gap: calc(var(--spacing) * 5);
  }
}

@media (min-width: 48rem) {
  .md\:text-heading-5 {
    font-size: var(--text-heading-5);
    line-height: var(--tw-leading, var(--text-heading-5--line-height));
  }

  /*
   * 上の .sm\:gap-5（40rem）が、このファイルの前方（458行）にある .md\:gap-8 を
   * 後勝ちで打ち消してしまうため、同じ値をここで再掲する。
   */
  .md\:gap-8 {
    gap: calc(var(--spacing) * 8);
  }
}

/*
 * 上の .sm\:col-span-6 は main.css より後に読まれるため、main.css 側にある
 * .lg\:col-span-3 / .xl\:col-span-4（より広い画面用）を打ち消してしまう。
 * 詳細度が同じなので後勝ちになるのが原因。値は main.css のものをそのまま再掲する。
 */
@media (min-width: 64rem) {
  .lg\:col-span-3 {
    grid-column: span 3 / span 3;
  }

  .lg\:col-span-4 {
    grid-column: span 4 / span 4;
  }
}

@media (min-width: 80rem) {
  /* .xl\:col-span-3 は ai-gadgets のビルドから。automation-saas には出力が無い */
  .xl\:col-span-3 {
    grid-column: span 3 / span 3;
  }

  .xl\:col-span-4 {
    grid-column: span 4 / span 4;
  }
}

/* .items-stretch は ai-gadgets のビルドから。automation-saas には出力が無い。
   メガメニューの列を同じ高さにして、プロモカードを列いっぱいに伸ばすために使う。 */
.items-stretch {
  align-items: stretch;
}

/* =====================================================================
 * 機能詳細ページの再構成（2026-08-12 高木さん指名）
 * HERO: risk-management-software / index.html の HERO（2518〜2591行）
 * 本文・機能一覧・関連ページの器: ai-agency / index.html の Services（3317行〜）
 * 抽出元: 各テンプレートの assets/main.css。値は変えていない
 * ===================================================================== */

.-top-\[50\%\] {
  top: -50%;
}

.btn-xl {
  padding-inline: calc(var(--spacing) * 8);
  padding-block: calc(var(--spacing) * 3.5);
  font-size: var(--text-tagline-1);
  line-height: var(--tw-leading, var(--text-tagline-1--line-height));
}

.btn-xl:hover:before {
  width: calc(var(--spacing) * 3);
  height: calc(var(--spacing) * 3);
  --tw-translate-x: calc(var(--spacing) * -4);
  translate: var(--tw-translate-x) var(--tw-translate-y);
  opacity: 1;
}

.size-\[350px\] {
  width: 350px;
  height: 350px;
}

:where(.space-y-\[50px\] > :not(:last-child)) {
  --tw-space-y-reverse: 0;
  margin-block-start: calc(50px * var(--tw-space-y-reverse));
  margin-block-end: calc(50px * calc(1 - var(--tw-space-y-reverse)));
}

.pt-\[150px\] {
  padding-top: 150px;
}

.mb-3 {
  margin-bottom: calc(var(--spacing) * 3);
}

.max-w-\[430px\] {
  max-width: 430px;
}

.max-w-\[1010px\] {
  max-width: 1010px;
}

.bg-top {
  background-position: top;
}

/* ai-agency のビルドどおり相対パス（/assets/ から ../images/ = /images/） */
.bg-\[url\(\'\/images\/ns-img-169\.webp\'\)\] {
  background-image: url('../images/ns-img-169.webp');
}

@media (hover: hover) {
  .hover\:btn-primary:hover {
    border-color: var(--color-primary-600);
    background-color: var(--color-primary-500);
    color: var(--color-white);
    --tw-shadow: 0px 1px 2px 0px var(--tw-shadow-color, #1018280d);
    box-shadow:
      var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
      var(--tw-ring-shadow), var(--tw-shadow);
  }

  .hover\:btn-primary:hover:where(.dark, .dark *) {
    border-color: var(--color-primary-400);
  }

  .hover\:btn-primary:hover:before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='white' viewBox='0 0 256 256'%3E%3Cpath d='M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z'%3E%3C/path%3E%3C/svg%3E");
  }
}

@media not all and (min-width: 40rem) {
  .max-sm\:text-heading-6 {
    font-size: var(--text-heading-6);
    line-height: var(--tw-leading, var(--text-heading-6--line-height));
  }
}

@media (min-width: 425px) {
  .min-\[425px\]\:size-\[400px\] {
    width: 400px;
    height: 400px;
  }
}

@media (min-width: 40rem) {
  .sm\:size-\[550px\] {
    width: 550px;
    height: 550px;
  }

  .sm\:max-w-\[500px\] {
    max-width: 500px;
  }

  .sm\:max-w-\[600px\] {
    max-width: 600px;
  }

  :where(.sm\:space-y-4 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
  }

  .sm\:pt-\[160px\] {
    padding-top: 160px;
  }

  .sm\:pb-\[100px\] {
    padding-bottom: 100px;
  }

  .sm\:min-h-\[288px\] {
    min-height: 288px;
  }
}

@media (min-width: 48rem) {
  .md\:size-\[650px\] {
    width: 650px;
    height: 650px;
  }

  .md\:max-w-\[600px\] {
    max-width: 600px;
  }

  .md\:max-w-\[630px\] {
    max-width: 630px;
  }

  .md\:max-w-\[800px\] {
    max-width: 800px;
  }

  :where(.md\:space-y-\[80px\] > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(80px * var(--tw-space-y-reverse));
    margin-block-end: calc(80px * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.md\:space-y-0 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 0) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 0) * calc(1 - var(--tw-space-y-reverse)));
  }

  .md\:pt-\[180px\] {
    padding-top: 180px;
  }

  .md\:pb-\[130px\] {
    padding-bottom: 130px;
  }

  .md\:pt-20 {
    padding-top: calc(var(--spacing) * 20);
  }

  /*
   * .md\:w-auto は main.css（4087行）にあるが、このファイル前方の
   * .w-\[90%\]（1429行）が後から読まれて全幅に負けていた。
   * 同じ値をここで再掲して順序を戻す（HERO の CTA ボタン用）。
   */
  .md\:w-auto {
    width: auto;
  }
}

@media (min-width: 64rem) {
  .lg\:-top-\[35\%\] {
    top: -35%;
  }

  .lg\:size-\[700px\] {
    width: 700px;
    height: 700px;
  }

  .lg\:max-w-\[800px\] {
    max-width: 800px;
  }

  .lg\:max-w-full {
    max-width: 100%;
  }

  :where(.lg\:space-y-\[100px\] > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(100px * var(--tw-space-y-reverse));
    margin-block-end: calc(100px * calc(1 - var(--tw-space-y-reverse)));
  }

  .lg\:pt-\[234px\] {
    padding-top: 234px;
  }

  .lg\:pt-\[90px\] {
    padding-top: 90px;
  }

  .lg\:pb-\[90px\] {
    padding-bottom: 90px;
  }
}

@media (min-width: 80rem) {
  .xl\:size-\[897px\] {
    width: 897px;
    height: 897px;
  }

  .xl\:max-w-\[802px\] {
    max-width: 802px;
  }

  .xl\:max-w-\[1170px\] {
    max-width: 1170px;
  }

  .xl\:pb-\[200px\] {
    padding-bottom: 200px;
  }

  /*
   * xl:pt-[100px] / xl:pb-[100px] は同ファイル前方（486行付近）に既にあるが、
   * 上の md: / lg: のブロックがそれより後ろに来たため、1280px 以上で
   * 後勝ちに負けてしまう。同じ値をここで再掲して順序を戻す。
   */
  .xl\:pt-\[100px\] {
    padding-top: 100px;
  }

  .xl\:pb-\[100px\] {
    padding-bottom: 100px;
  }
}
$ node scripts/extract-template-css.mjs src/components/template/TemplateFooter.astro messaging-platform ai-gadgets automation-saas
/* =====================================================================
 * フッターの背景イラスト2枚の配置（messaging-platform のビルドからそのまま）
 * 2026-08-12 追加
 * ===================================================================== */

.top-\[-17\%\] {
  top: -17%;
} /* messaging-platform */
.right-\[-64\%\] {
  right: -64%;
} /* messaging-platform */
.bottom-\[-33\%\] {
  bottom: -33%;
} /* messaging-platform */
.left-\[-83\%\] {
  left: -83%;
} /* messaging-platform */
.size-\[550px\] {
  width: 550px;
  height: 550px;
} /* messaging-platform */
.size-\[728px\] {
  width: 728px;
  height: 728px;
} /* messaging-platform */
.rotate-\[-30deg\] {
  rotate: -30deg;
} /* messaging-platform */
.bg-top-right {
  background-position: 100% 0;
} /* messaging-platform */
.object-top {
  object-position: top;
} /* messaging-platform */
@media (min-width: 2559px) {
  .min-\[2559px\]\:\!left-\[-0\%\] {
    left: -0% !important;
  } /* messaging-platform */
}
@media (min-width: 48rem) {
  .md\:top-\[-25\%\] {
    top: -25%;
  } /* messaging-platform */
  .md\:right-\[-30\%\] {
    right: -30%;
  } /* messaging-platform */
  .md\:bottom-\[-60\%\] {
    bottom: -60%;
  } /* messaging-platform */
  .md\:left-\[-52\%\] {
    left: -52%;
  } /* messaging-platform */
  .md\:size-\[870px\] {
    width: 870px;
    height: 870px;
  } /* messaging-platform */
}
@media (min-width: 64rem) {
  .lg\:right-\[-19\%\] {
    right: -19%;
  } /* messaging-platform */
  .lg\:left-\[-38\%\] {
    left: -38%;
  } /* messaging-platform */
}
@media (min-width: 80rem) {
  .xl\:top-\[-32\%\] {
    top: -32%;
  } /* messaging-platform */
  .xl\:right-\[-9\%\] {
    right: -9%;
  } /* messaging-platform */
  .xl\:bottom-\[-70\%\] {
    bottom: -70%;
  } /* messaging-platform */
  .xl\:left-\[-30\%\] {
    left: -30%;
  } /* messaging-platform */
}
@media (min-width: 96rem) {
  .\32 xl\:left-\[-15\%\] {
    left: -15%;
  } /* messaging-platform */
}
@media not all and (min-width: 376px) {
  .max-\[376px\]\:right-\[-83\%\] {
    right: -83%;
  } /* messaging-platform */
}

/*
 * 機能詳細ページの「最近の改善」（TemplateFeatureReleaseNotes）。
 * 移植元 risk-management-software のビルドから pnpm extract:css で抜き出した。
 * 同じプロパティを持つ広いブレークポイントのルールは他に無いので、再掲は不要。
 */
@media (min-width: 64rem) {
  .lg\:mb-14 {
    margin-bottom: calc(var(--spacing) * 14);
  } /* risk-management-software */
}

/*
 * 「最近の改善」のカード余白（TemplateFeatureReleaseNotes）。
 * ai-agency のビルドから抜き出した（automation-saas のビルドには出力が無い）。
 * padding を持つ広いブレークポイントのルールは他に無いので、再掲は不要。
 */
@media (min-width: 64rem) {
  .lg\:p-6 {
    padding: calc(var(--spacing) * 6);
  } /* ai-agency */
}

/* ============================================================
 * /faq — ai-software / faq.html「FAQ section」（2315〜3545行）
 * pnpm extract:css src/components/template/TemplateFaq.astro ai-software の出力
 * ＋ 抽出スクリプトが `\=` エスケープを拾えない data-variant 4種を手動で抜き出したもの
 * （ai-software のビルド済み CSS に実在することを確認済み。値は変えていない）
 * ============================================================ */

:root {
  /* ai-software（automation-saas のビルドに出力が無い変数のみ） */
  --color-stroke-6: #202731;
}

.bottom-\[-1px\] {
  bottom: -1px;
} /* ai-software */
.z-\[1\] {
  z-index: 1;
} /* ai-software */
.col-span-6 {
  grid-column: span 6 / span 6;
} /* ai-software */
.-mb-px {
  margin-bottom: -1px;
} /* ai-software */
.ml-2\.5 {
  margin-left: calc(var(--spacing) * 2.5);
} /* ai-software */
.h-\[2px\] {
  height: 2px;
} /* ai-software */
.min-w-16 {
  min-width: calc(var(--spacing) * 16);
} /* ai-software */
.border-t {
  border-top-style: var(--tw-border-style);
  border-top-width: 1px;
} /* ai-software */
.border-stroke-2 {
  border-color: var(--color-stroke-2);
} /* ai-software */
.border-t-stroke-2 {
  border-top-color: var(--color-stroke-2);
} /* ai-software */
.bg-background-1 {
  background-color: var(--color-background-1);
} /* ai-software */
.px-3\.5 {
  padding-inline: calc(var(--spacing) * 3.5);
} /* ai-software */
.px-10 {
  padding-inline: calc(var(--spacing) * 10);
} /* ai-software */
.py-\[70px\] {
  padding-block: 70px;
} /* ai-software */
.pt-32 {
  padding-top: calc(var(--spacing) * 32);
} /* ai-software */
.ease-\[cubic-bezier\(0\.25\,0\.46\,0\.45\,0\.94\)\] {
  --tw-ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
} /* ai-software */
.focus-visible\:outline-0:focus-visible {
  outline-style: var(--tw-outline-style);
  outline-width: 0;
} /* ai-software */

/* extract:css が `\=` を拾えないため手動抽出（ai-software main.css の記述そのまま） */
.data-\[state\=selected\]\:text-secondary[data-state='selected'] {
  color: var(--color-secondary);
} /* ai-software */
.data-\[mobile-active\=true\]\:scale-\[1\.05\][data-mobile-active='true'] {
  scale: 1.05;
} /* ai-software */
.data-\[mobile-active\=true\]\:bg-primary-500[data-mobile-active='true'] {
  background-color: var(--color-primary-500);
} /* ai-software */
.data-\[mobile-active\=true\]\:text-white[data-mobile-active='true'] {
  color: var(--color-white);
} /* ai-software */

@media (min-width: 40rem) {
  .sm\:ml-auto {
    margin-left: auto;
  } /* ai-software */
  .sm\:pt-36 {
    padding-top: calc(var(--spacing) * 36);
  } /* ai-software */
}
@media (min-width: 48rem) {
  .md\:pt-42 {
    padding-top: calc(var(--spacing) * 42);
  } /* ai-software */
}
@media (min-width: 80rem) {
  .xl\:pt-\[180px\] {
    padding-top: 180px;
  } /* ai-software */
}

/* ============================================================
 * /glossary — ai-software / glossary.html（HERO 2312〜2323行・リスト 2325〜3448行）
 * pnpm extract:css src/components/template/TemplateGlossary.astro ai-software の出力
 * ＋ `*:`（子セレクタ variant）は抽出スクリプトがエスケープを拾えないため手動抽出
 * ============================================================ */

.top-25 {
  top: calc(var(--spacing) * 25);
} /* ai-software */
.max-w-\[50px\] {
  max-width: 50px;
} /* ai-software */
.max-w-\[467px\] {
  max-width: 467px;
} /* ai-software */
.pt-\[192px\] {
  padding-top: 192px;
} /* ai-software */
.pb-28 {
  padding-bottom: calc(var(--spacing) * 28);
} /* ai-software */

/* extract:css が `\*\:` を拾えないため手動抽出（ai-software main.css の記述そのまま） */
:is(.\*\:border-b > *) {
  border-bottom-style: var(--tw-border-style);
  border-bottom-width: 1px;
} /* ai-software */
:is(.\*\:border-b-stroke-1 > *) {
  border-bottom-color: var(--color-stroke-1);
} /* ai-software */
:is(.\*\:last\:border-0 > *):last-child {
  border-style: var(--tw-border-style);
  border-width: 0;
} /* ai-software */
:is(.\*\:last\:pb-0 > *):last-child {
  padding-bottom: calc(var(--spacing) * 0);
} /* ai-software */
:is(.\*\:pb-8 > *) {
  padding-bottom: calc(var(--spacing) * 8);
} /* ai-software */

@media (min-width: 48rem) {
  .md\:max-w-\[180px\] {
    max-width: 180px;
  } /* ai-software */
  .md\:gap-x-14 {
    column-gap: calc(var(--spacing) * 14);
  } /* ai-software */
}
@media (min-width: 64rem) {
  .lg\:max-w-\[467px\] {
    max-width: 467px;
  } /* ai-software */
}
@media (min-width: 80rem) {
  .xl\:pb-28 {
    padding-bottom: calc(var(--spacing) * 28);
  } /* ai-software */
}

/* ============================================================
 * /why-pickles・/comparison・/order-made — ai-software / analytics.html
 * （Hero 2315〜2376行・Details 2381〜2618行）
 * pnpm extract:css（3コンポーネント分の和集合）の出力。
 * dark 用の :where(.dark) ルールだけは載せない（このサイトはダーク非対応で、
 * markup からも dark: class を外しているため）
 * ============================================================ */

:is(.refund-policy, .process-steps, .privacy-policy, .changelog, .documentation, .analytics) ul li {
  list-style-type: none;
} /* ai-software */
:is(.refund-policy, .process-steps, .privacy-policy, .changelog, .documentation, .analytics)
  ul
  li:before {
  content: var(--tw-content);
  content: var(--tw-content);
  left: calc(var(--spacing) * 0);
  content: var(--tw-content);
  margin-right: calc(var(--spacing) * 2);
  content: var(--tw-content);
  content: var(--tw-content);
  height: calc(var(--spacing) * 1.5);
  content: var(--tw-content);
  width: calc(var(--spacing) * 1.5);
  content: var(--tw-content);
  --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
  translate: var(--tw-translate-x) var(--tw-translate-y);
  content: var(--tw-content);
  content: var(--tw-content);
  background-color: var(--color-secondary);
  content: var(--tw-content);
  --tw-content: '';
  content: var(--tw-content);
  border-radius: 3.40282e38px;
  display: inline-block;
  position: relative;
} /* ai-software */
.-top-10 {
  top: calc(var(--spacing) * -10);
} /* ai-software */
.left-10 {
  left: calc(var(--spacing) * 10);
} /* ai-software */
.mb-\[72px\] {
  margin-bottom: 72px;
} /* ai-software */
.w-\[98\%\] {
  width: 98%;
} /* ai-software */
.max-w-\[150px\] {
  max-width: 150px;
} /* ai-software */
.max-w-\[860px\] {
  max-width: 860px;
} /* ai-software */
.max-w-\[1540px\] {
  max-width: 1540px;
} /* ai-software */
.gap-y-\[50px\] {
  row-gap: 50px;
} /* ai-software */
.py-\[100px\] {
  padding-block: 100px;
} /* ai-software */
.pt-\[70px\] {
  padding-top: 70px;
} /* ai-software */
.shadow-3 {
  --tw-shadow: 0px 25px 80px -12px var(--tw-shadow-color, #1c222b1a);
  box-shadow:
    var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
    var(--tw-ring-shadow), var(--tw-shadow);
} /* ai-software */

@media (min-width: 1440px) {
  .lp\:max-w-\[1416px\] {
    max-width: 1416px;
  } /* ai-software */
}
@media (min-width: 40rem) {
  .sm\:right-14 {
    right: calc(var(--spacing) * 14);
  } /* ai-software */
  .sm\:bottom-14 {
    bottom: calc(var(--spacing) * 14);
  } /* ai-software */
  .sm\:max-w-\[200px\] {
    max-width: 200px;
  } /* ai-software */
}
@media (min-width: 64rem) {
  .lg\:top-20 {
    top: calc(var(--spacing) * 20);
  } /* ai-software */
  .lg\:right-20 {
    right: calc(var(--spacing) * 20);
  } /* ai-software */
  .lg\:bottom-5 {
    bottom: calc(var(--spacing) * 5);
  } /* ai-software */
  .lg\:left-20 {
    left: calc(var(--spacing) * 20);
  } /* ai-software */
  .lg\:max-w-\[282px\] {
    max-width: 282px;
  } /* ai-software */
  .lg\:max-w-\[320px\] {
    max-width: 320px;
  } /* ai-software */
  .lg\:max-w-\[1140px\] {
    max-width: 1140px;
  } /* ai-software */
  .lg\:rounded-none {
    border-radius: 0;
  } /* ai-software */
  .lg\:px-0 {
    padding-inline: calc(var(--spacing) * 0);
  } /* ai-software */
}
@media (min-width: 80rem) {
  .xl\:top-1\/2 {
    top: 50%;
  } /* ai-software */
  .xl\:-right-0 {
    right: calc(var(--spacing) * 0);
  } /* ai-software */
  .xl\:bottom-auto {
    bottom: auto;
  } /* ai-software */
  .xl\:left-0 {
    left: calc(var(--spacing) * 0);
  } /* ai-software */
  .xl\:mx-0 {
    margin-inline: calc(var(--spacing) * 0);
  } /* ai-software */
  .xl\:max-w-\[1280px\] {
    max-width: 1280px;
  } /* ai-software */
  .xl\:translate-x-\[36\%\] {
    --tw-translate-x: 36%;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  } /* ai-software */
  .xl\:-translate-y-1\/2 {
    --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  } /* ai-software */
}

/* /why-pickles の2カラム（ai-software / about.html「Our Mission section」）追加分 */
@media (min-width: 48rem) {
  .md\:max-w-\[540px\] {
    max-width: 540px;
  } /* ai-software */
}
@media (min-width: 64rem) {
  .lg\:flex-nowrap {
    flex-wrap: nowrap;
  } /* ai-software */
  .lg\:gap-4 {
    gap: calc(var(--spacing) * 4);
  } /* ai-software */
}
@media (min-width: 80rem) {
  .xl\:gap-8 {
    gap: calc(var(--spacing) * 8);
  } /* ai-software */
}

/* /why-pickles チェック付きリスト（messaging-platform / about.html「Values section」）追加分 */
@media (min-width: 48rem) {
  :where(.md\:space-y-3\.5 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 3.5) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 3.5) * calc(1 - var(--tw-space-y-reverse)));
  } /* ai-software */
}

/* ============================================================
 * whitepaper-details 型の上部（ai-software / whitepaper-details.html
 * タイトル 2312〜2329行・Overview 2331〜2447行）
 * /why-pickles・/comparison・/order-made で使用（2026-08-13 レビュー後の標準型）
 * ============================================================ */

.mb-10\.5 {
  margin-bottom: calc(var(--spacing) * 10.5);
} /* ai-software */
.min-h-\[300px\] {
  min-height: 300px;
} /* ai-software */
.flex-col-reverse {
  flex-direction: column-reverse;
} /* ai-software */
.gap-x-10 {
  column-gap: calc(var(--spacing) * 10);
} /* ai-software */
.pt-\[100px\] {
  padding-top: 100px;
} /* ai-software */

@media (min-width: 64rem) {
  .lg\:min-h-\[490px\] {
    min-height: 490px;
  } /* ai-software */
  .lg\:max-w-\[560px\] {
    max-width: 560px;
  } /* ai-software */
  .lg\:max-w-\[613px\] {
    max-width: 613px;
  } /* ai-software */
  .lg\:pt-\[140px\] {
    padding-top: 140px;
  } /* ai-software */
  .lg\:pb-20 {
    padding-bottom: calc(var(--spacing) * 20);
  } /* ai-software */
}
@media (min-width: 80rem) {
  .xl\:pt-\[170px\] {
    padding-top: 170px;
  } /* ai-software */
}

/*
 * 後勝ち再掲（status.md「後勝ち事故に注意」の定石）:
 * 上の .flex-col-reverse は main.css より後に読まれるため、そのままだと
 * main.css 側の .lg:flex-row を lg 以上でも打ち消してしまう。
 * 同じプロパティを持つ広い側のルールをここに再掲して優先順位を戻す。
 */
@media (min-width: 64rem) {
  .lg\:flex-row {
    flex-direction: row;
  } /* ai-software */
}

/*
 * /blog 一覧（TemplateBlogList = ai-software/blog.html の記事グリッド）で使う class。
 * pnpm extract:css の出力をそのまま貼っている（値は流用元のビルド済み CSS）。
 */

.h-\[6px\] {
  height: 6px;
} /* ai-software */
.min-h-\[480px\] {
  min-height: 480px;
} /* ai-software */
.w-\[5px\] {
  width: 5px;
} /* ai-software */
.max-w-\[738px\] {
  max-width: 738px;
} /* ai-software */
.scale-100 {
  --tw-scale-x: 100%;
  --tw-scale-y: 100%;
  --tw-scale-z: 100%;
  scale: var(--tw-scale-x) var(--tw-scale-y);
} /* ai-software */
.gap-7 {
  gap: calc(var(--spacing) * 7);
} /* ai-software */
.btn-white {
  border-color: var(--color-stroke-3);
  background-color: var(--color-background-1);
  color: var(--color-secondary);
  --tw-shadow: 0px 1px 2px 0px var(--tw-shadow-color, #1018280d);
  box-shadow:
    var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
    var(--tw-ring-shadow), var(--tw-shadow);
} /* ai-software */
.btn-white:before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='%231a1a1c' viewBox='0 0 256 256'%3E%3Cpath d='M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z'%3E%3C/path%3E%3C/svg%3E");
} /* ai-software */
.bg-\[\#ECE8FF\] {
  background-color: #ece8ff;
} /* ai-software */
@media (hover: hover) {
  .hover\:scale-\[102\%\]:hover {
    scale: 102%;
  } /* ai-software */
  .hover\:transition-transform:hover {
    transition-property: transform, translate, scale, rotate;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  } /* ai-software */
  .hover\:duration-500:hover {
    --tw-duration: 0.5s;
    transition-duration: 0.5s;
  } /* ai-software */
}
@media (min-width: 40rem) {
  .sm\:text-tagline-1 {
    font-size: var(--text-tagline-1);
    line-height: var(--tw-leading, var(--text-tagline-1--line-height));
  } /* ai-software */
}
@media (min-width: 48rem) {
  .md\:mb-\[70px\] {
    margin-bottom: 70px;
  } /* ai-software */
  .md\:max-h-\[260px\] {
    max-height: 260px;
  } /* ai-software */
  .md\:min-h-\[260px\] {
    min-height: 260px;
  } /* ai-software */
  .md\:min-h-\[552px\] {
    min-height: 552px;
  } /* ai-software */
  .md\:gap-10 {
    gap: calc(var(--spacing) * 10);
  } /* ai-software */
  .md\:p-6 {
    padding: calc(var(--spacing) * 6);
  } /* ai-software */
}
@media (min-width: 64rem) {
  .lg\:py-\[88px\] {
    padding-block: 88px;
  } /* ai-software */
}
@media (min-width: 80rem) {
  .xl\:max-w-\[409px\] {
    max-width: 409px;
  } /* ai-software */
  .xl\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  } /* ai-software */
  .xl\:py-\[100px\] {
    padding-block: 100px;
  } /* ai-software */
}

/*
 * /documents（TemplateDocuments = risk-management-software/download.html の行カード）で使う class。
 * pnpm extract:css の出力をそのまま貼っている（値は流用元のビルド済み CSS）。
 */

.mt-8 {
  margin-top: calc(var(--spacing) * 8);
} /* risk-management-software */
.size-13 {
  width: calc(var(--spacing) * 13);
  height: calc(var(--spacing) * 13);
} /* risk-management-software */
.max-w-\[652px\] {
  max-width: 652px;
} /* risk-management-software */
.pt-3 {
  padding-top: calc(var(--spacing) * 3);
} /* ai-gadgets */
@media (min-width: 40rem) {
  .sm\:p-6 {
    padding: calc(var(--spacing) * 6);
  } /* risk-management-software */
}

/*
 * /contact・/demo（ai-software/contact.html の head とフォームの白カード）で使う class。
 * pnpm extract:css の出力をそのまま貼っている（値は流用元のビルド済み CSS）。
 */

.max-w-\[680px\] {
  max-width: 680px;
} /* ai-software */
.max-w-\[847px\] {
  max-width: 847px;
} /* ai-software */
:where(.space-y-\[70px\] > :not(:last-child)) {
  --tw-space-y-reverse: 0;
  margin-block-start: calc(70px * var(--tw-space-y-reverse));
  margin-block-end: calc(70px * calc(1 - var(--tw-space-y-reverse)));
} /* ai-software */
@media (min-width: 64rem) {
  .lg\:p-11 {
    padding: calc(var(--spacing) * 11);
  } /* ai-software */
}

/*
 * /cases/<slug>（risk-management-software/case-study-details.html の見出しと写真）で使う class。
 * pnpm extract:css の出力をそのまま貼っている（値は流用元のビルド済み CSS）。
 * 注意: check:template-css は src/components/template/ しか走査しないため、
 * ページ直下（src/pages/cases/[...slug].astro）の class は手動確認が要る。
 */
.max-w-\[884px\] {
  max-width: 884px;
} /* risk-management-software */
.max-w-\[1290px\] {
  max-width: 1290px;
} /* risk-management-software */

/*
 * /why-pickles の HERO（investment-management / index.html 2091〜2175行）で使う class。
 * pnpm extract:css の出力をそのまま貼っている（値は流用元のビルド済み CSS）。
 * bg-[url(...)] だけは extract:css がエスケープを拾えないので main.css から手で写した
 * （status.md「移植の型」2）。画像は public/images/ にあるので ../images/ で参照する。
 */
.top-\[50\%\] {
  top: 50%;
} /* investment-management */
.z-\[2\] {
  z-index: 2;
} /* investment-management */
.max-w-\[800px\] {
  max-width: 800px;
} /* investment-management */
.max-w-\[1365px\] {
  max-width: 1365px;
} /* investment-management */
.pt-\[71px\] {
  padding-top: 71px;
} /* investment-management */
.text-primary-500 {
  color: var(--color-primary-500);
} /* investment-management */
.bg-\[url\(\'\/images\/ns-img-218\.svg\'\)\] {
  background-image: url('../images/ns-img-218.svg');
} /* investment-management */
@media (hover: hover) {
  .hover\:btn-secondary:hover {
    border-color: var(--color-black);
    background-color: var(--color-secondary);
    color: var(--color-white);
    --tw-shadow: 0px 1px 2px 0px var(--tw-shadow-color, #1018280d);
    box-shadow:
      var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
      var(--tw-ring-shadow), var(--tw-shadow);
  } /* investment-management */
  .hover\:btn-secondary:hover:before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='white' viewBox='0 0 256 256'%3E%3Cpath d='M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z'%3E%3C/path%3E%3C/svg%3E");
  } /* investment-management */
  .hover\:btn-white:hover {
    border-color: var(--color-stroke-3);
    background-color: var(--color-background-1);
    color: var(--color-secondary);
    --tw-shadow: 0px 1px 2px 0px var(--tw-shadow-color, #1018280d);
    box-shadow:
      var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
      var(--tw-ring-shadow), var(--tw-shadow);
  } /* investment-management */
  .hover\:btn-white:hover:before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='%231a1a1c' viewBox='0 0 256 256'%3E%3Cpath d='M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z'%3E%3C/path%3E%3C/svg%3E");
  } /* investment-management */
}
@media (min-width: 1440px) {
  .min-\[1440px\]\:top-\[350px\] {
    top: 350px;
  } /* investment-management */
}
@media (min-width: 1921px) {
  .min-\[1921px\]\:overflow-hidden {
    overflow: hidden;
  } /* investment-management */
}
@media (min-width: 2559px) {
  .min-\[2559px\]\:\!top-\[0px\] {
    top: 0 !important;
  } /* investment-management */
}
@media (min-width: 40rem) {
  .sm\:top-\[38\%\] {
    top: 38%;
  } /* investment-management */
  .sm\:w-auto {
    width: auto;
  } /* investment-management */
  .sm\:flex-row {
    flex-direction: row;
  } /* investment-management */
  .sm\:pt-24 {
    padding-top: calc(var(--spacing) * 24);
  } /* investment-management */
  .sm\:pb-20 {
    padding-bottom: calc(var(--spacing) * 20);
  } /* investment-management */
}
@media (min-width: 48rem) {
  .md\:top-\[20\%\] {
    top: 20%;
  } /* investment-management */
  .md\:btn-xl {
    padding-inline: calc(var(--spacing) * 8);
    padding-block: calc(var(--spacing) * 3.5);
    font-size: var(--text-tagline-1);
    line-height: var(--tw-leading, var(--text-tagline-1--line-height));
  } /* investment-management */
  .md\:btn-xl:hover:before {
    width: calc(var(--spacing) * 3);
    height: calc(var(--spacing) * 3);
    --tw-translate-x: calc(var(--spacing) * -4);
    translate: var(--tw-translate-x) var(--tw-translate-y);
    opacity: 1;
  } /* investment-management */
  .md\:w-full {
    width: 100%;
  } /* investment-management */
}
@media (min-width: 64rem) {
  .lg\:top-\[20\%\] {
    top: 20%;
  } /* investment-management */
  /*
   * 再掲。lg:pt-28 はこのファイルの上のほう（ai-software 由来）に既にあるが、
   * その後ろに sm:pt-24 を足したせいで lg では sm のほうが後勝ちしてしまう。
   * 流用元のビルドでは Tailwind が sm → lg の順に出しているので、順序を戻す。
   * 値は上の定義と同一（自分で決めていない）。
   */
  .lg\:pt-28 {
    padding-top: calc(var(--spacing) * 28);
  } /* ai-software / 順序復元 */
}
@media (min-width: 80rem) {
  .xl\:top-\[411px\] {
    top: 411px;
  } /* investment-management */
  /*
   * 再掲。xl:max-w-[1140px] は main.css にあるが、このファイルは main.css の後に
   * 読まれるため、上で足した素の max-w-[800px] が xl でも勝ってしまう。
   * 値は main.css の定義と同一。
   */
  .xl\:max-w-\[1140px\] {
    max-width: 1140px;
  } /* main.css / 順序復元 */
  .xl\:h-\[962px\] {
    height: 962px;
  } /* investment-management */
  .xl\:w-full {
    width: 100%;
  } /* investment-management */
  .xl\:max-w-\[804px\] {
    max-width: 804px;
  } /* investment-management */
  .xl\:pt-\[109px\] {
    padding-top: 109px;
  } /* investment-management */
  .xl\:pb-\[94px\] {
    padding-bottom: 94px;
  } /* investment-management */
}
@media (min-width: 96rem) {
  .\32 xl\:top-\[194px\] {
    top: 194px;
  } /* investment-management */
}

/*
 * /comparison の HERO（decrentralized-finance / index.html 2516〜2653行）と
 * 比較表（ai-software / pricing.html 2313〜2673行の Our pricing）で使う class。
 * pnpm extract:css の出力をそのまま貼っている（値は流用元のビルド済み CSS）。
 * before:content-[''] / after:content-[''] は extract:css がエスケープを拾えないので
 * 流用元の main.css から手で写した（status.md「移植の型」2）。
 */

.hero-text-gradient {
  -webkit-text-fill-color: transparent;
  color: #0000;
  background-repeat: no-repeat;
  background-size: 200%;
  -webkit-background-clip: text;
  background-clip: text;
  animation: 5s linear infinite textAnimate;
  display: inline-block;
} /* decrentralized-finance */
.hero-text-color-1 {
  background-image: linear-gradient(45deg, #a585ff, #ffc2ad, #a585ff);
} /* decrentralized-finance */
.top-\[-81px\] {
  top: -81px;
} /* decrentralized-finance */
.top-\[106px\] {
  top: 106px;
} /* decrentralized-finance */
.left-\[45px\] {
  left: 45px;
} /* decrentralized-finance */
.z-\[-1\] {
  z-index: -1;
} /* decrentralized-finance */
.size-\[300px\] {
  width: 300px;
  height: 300px;
} /* decrentralized-finance */
.w-\[100\%\] {
  width: 100%;
} /* decrentralized-finance */
.max-w-\[390px\] {
  max-width: 390px;
} /* decrentralized-finance */
.max-w-\[1251px\] {
  max-width: 1251px;
} /* decrentralized-finance */
:where(.space-y-2\.5 > :not(:last-child)) {
  --tw-space-y-reverse: 0;
  margin-block-start: calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));
  margin-block-end: calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)));
} /* decrentralized-finance */
.border-b-stroke-4 {
  border-bottom-color: var(--color-stroke-4);
} /* decrentralized-finance */
.bg-stroke-1 {
  background-color: var(--color-stroke-1);
} /* decrentralized-finance */
.before\:-top-1:before {
  content: var(--tw-content);
  top: calc(var(--spacing) * -1);
} /* decrentralized-finance */
.before\:top-0:before {
  content: var(--tw-content);
  top: calc(var(--spacing) * 0);
} /* decrentralized-finance */
.before\:left-\[106px\]:before {
  content: var(--tw-content);
  left: 106px;
} /* decrentralized-finance */
.before\:left-\[110px\]:before {
  content: var(--tw-content);
  left: 110px;
} /* decrentralized-finance */
.before\:z-10:before {
  content: var(--tw-content);
  z-index: 10;
} /* decrentralized-finance */
.before\:z-20:before {
  content: var(--tw-content);
  z-index: 20;
} /* decrentralized-finance */
.before\:h-2:before {
  content: var(--tw-content);
  height: calc(var(--spacing) * 2);
} /* decrentralized-finance */
.before\:h-\[100\%\]:before {
  content: var(--tw-content);
  height: 100%;
} /* decrentralized-finance */
.before\:w-2:before {
  content: var(--tw-content);
  width: calc(var(--spacing) * 2);
} /* decrentralized-finance */
.before\:w-px:before {
  content: var(--tw-content);
  width: 1px;
} /* decrentralized-finance */
.before\:rotate-45:before {
  content: var(--tw-content);
  rotate: 45deg;
} /* decrentralized-finance */
.before\:bg-stroke-1:before {
  content: var(--tw-content);
  background-color: var(--color-stroke-1);
} /* decrentralized-finance */
.before\:bg-\[linear-gradient\(180deg\,\#ECE8FF_0\%\,\#FAF9FC_100\%\)\]:before {
  content: var(--tw-content);
  background-image: linear-gradient(#ece8ff 0%, #faf9fc 100%);
} /* decrentralized-finance */
.before\:ring-8:before {
  content: var(--tw-content);
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width))
    var(--tw-ring-color, currentcolor);
  box-shadow:
    var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
    var(--tw-ring-shadow), var(--tw-shadow);
} /* decrentralized-finance */
.before\:ring-background-2:before {
  content: var(--tw-content);
  --tw-ring-color: var(--color-background-2);
} /* decrentralized-finance */
.after\:-top-1:after {
  content: var(--tw-content);
  top: calc(var(--spacing) * -1);
} /* decrentralized-finance */
.after\:top-0:after {
  content: var(--tw-content);
  top: calc(var(--spacing) * 0);
} /* decrentralized-finance */
.after\:right-\[106px\]:after {
  content: var(--tw-content);
  right: 106px;
} /* decrentralized-finance */
.after\:right-\[110px\]:after {
  content: var(--tw-content);
  right: 110px;
} /* decrentralized-finance */
.after\:z-10:after {
  content: var(--tw-content);
  z-index: 10;
} /* decrentralized-finance */
.after\:z-20:after {
  content: var(--tw-content);
  z-index: 20;
} /* decrentralized-finance */
.after\:h-2:after {
  content: var(--tw-content);
  height: calc(var(--spacing) * 2);
} /* decrentralized-finance */
.after\:h-\[100\%\]:after {
  content: var(--tw-content);
  height: 100%;
} /* decrentralized-finance */
.after\:w-2:after {
  content: var(--tw-content);
  width: calc(var(--spacing) * 2);
} /* decrentralized-finance */
.after\:w-px:after {
  content: var(--tw-content);
  width: 1px;
} /* decrentralized-finance */
.after\:rotate-\[-45deg\]:after {
  content: var(--tw-content);
  rotate: -45deg;
} /* decrentralized-finance */
.after\:bg-stroke-1:after {
  content: var(--tw-content);
  background-color: var(--color-stroke-1);
} /* decrentralized-finance */
.after\:bg-\[linear-gradient\(180deg\,\#ECE8FF_0\%\,\#FAF9FC_100\%\)\]:after {
  content: var(--tw-content);
  background-image: linear-gradient(#ece8ff 0%, #faf9fc 100%);
} /* decrentralized-finance */
.after\:ring-8:after {
  content: var(--tw-content);
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width))
    var(--tw-ring-color, currentcolor);
  box-shadow:
    var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
    var(--tw-ring-shadow), var(--tw-shadow);
} /* decrentralized-finance */
.after\:ring-background-2:after {
  content: var(--tw-content);
  --tw-ring-color: var(--color-background-2);
} /* decrentralized-finance */
.-right-20 {
  right: calc(var(--spacing) * -20);
} /* ai-software */
.max-w-2xl {
  max-width: var(--container-2xl);
} /* ai-software */
.max-w-\[1440px\] {
  max-width: 1440px;
} /* ai-software */
.pr-6 {
  padding-right: calc(var(--spacing) * 6);
} /* ai-software */
@media (min-width: 40rem) {
  .sm\:top-\[-136px\] {
    top: -136px;
  } /* decrentralized-finance */
  .sm\:left-\[78px\] {
    left: 78px;
  } /* decrentralized-finance */
  .sm\:max-w-\[560px\] {
    max-width: 560px;
  } /* decrentralized-finance */
}
@media (min-width: 48rem) {
  .md\:size-\[600px\] {
    width: 600px;
    height: 600px;
  } /* decrentralized-finance */
  .md\:max-w-\[804px\] {
    max-width: 804px;
  } /* decrentralized-finance */
  .md\:max-w-full {
    max-width: 100%;
  } /* decrentralized-finance */
  .md\:h-\[195px\] {
    height: 195px;
  } /* ai-software */
  .md\:w-\[290px\] {
    width: 290px;
  } /* ai-software */
}
@media (min-width: 64rem) {
  .lg\:top-\[-157px\] {
    top: -157px;
  } /* decrentralized-finance */
  .lg\:left-\[116px\] {
    left: 116px;
  } /* decrentralized-finance */
  .lg\:size-\[800px\] {
    width: 800px;
    height: 800px;
  } /* decrentralized-finance */
  .lg\:pt-\[180px\] {
    padding-top: 180px;
  } /* decrentralized-finance */
  .lg\:px-10 {
    padding-inline: calc(var(--spacing) * 10);
  } /* ai-software */
}
@media (min-width: 80rem) {
  .xl\:left-\[198px\] {
    left: 198px;
  } /* decrentralized-finance */
  .xl\:px-16 {
    padding-inline: calc(var(--spacing) * 16);
  } /* ai-software */
}
@media not all and (min-width: 376px) {
  .max-\[376px\]\:left-\[25px\] {
    left: 25px;
  } /* decrentralized-finance */
}
.before\:content-\[\'\'\]:before {
  --tw-content: '';
  content: var(--tw-content);
} /* decrentralized-finance */
.after\:content-\[\'\'\]:after {
  --tw-content: '';
  content: var(--tw-content);
} /* decrentralized-finance */

/*
 * 比較表の1行の高さ。流用元は h-14（56px・チェックマーク1個ぶん）だが、
 * 高木さん指示で1セルが「◎◯△✗ ＋ 小さい補足文」の2段になったため入らない。
 * 4列すべて同じ値を使って行を揃える（軸の見出し列とセル列で共有）。
 * 値は実測で決めた（下の「行の高さの決め方」参照）。
 */
.h-\[124px\] {
  height: 124px;
} /* 比較表の行（流用元の h-14 の置き換え） */

/*
 * pb-2.5 はどのテンプレートのビルドにも出力されていなかった（Tailwind は
 * 実際に使われた class しか出さないため）。ただし 2.5 という刻み自体は
 * space-y-2.5 が使っており、値は他の pb-* とまったく同じ式で決まる。
 * /comparison の比較表で、軸の見出しと1行目の間隔を流用元の space-y-2.5 と
 * 同じ 10px に保つために使っている。
 */
.pb-2\.5 {
  padding-bottom: calc(var(--spacing) * 2.5);
} /* 流用元の刻みに合わせて追加 */

/*
 * /order-made の HERO（web-hosting / index.html 2110〜2256行）で使う class。
 * pnpm extract:css の出力をそのまま貼っている（値は流用元のビルド済み CSS）。
 */

.mt-12 {
  margin-top: calc(var(--spacing) * 12);
} /* web-hosting */
.size-\[882px\] {
  width: 882px;
  height: 882px;
} /* web-hosting */
.max-h-\[192px\] {
  max-height: 192px;
} /* web-hosting */
.max-w-\[370px\] {
  max-width: 370px;
} /* web-hosting */
.max-w-\[679px\] {
  max-width: 679px;
} /* web-hosting */
.p-10 {
  padding: calc(var(--spacing) * 10);
} /* web-hosting */
.pt-\[180px\] {
  padding-top: 180px;
} /* web-hosting */
.pb-\[200px\] {
  padding-bottom: 200px;
} /* web-hosting */
@media (min-width: 80rem) {
  .xl\:-mt-20 {
    margin-top: calc(var(--spacing) * -20);
  } /* web-hosting */
  .xl\:max-w-full {
    max-width: 100%;
  } /* web-hosting */
  .xl\:text-left {
    text-align: left;
  } /* web-hosting */
}
@media (min-width: 96rem) {
  .\32 xl\:right-0 {
    right: calc(var(--spacing) * 0);
  } /* web-hosting */
  .\32 xl\:-bottom-28 {
    bottom: calc(var(--spacing) * -28);
  } /* web-hosting */
  .\32 xl\:pt-\[264px\] {
    padding-top: 264px;
  } /* web-hosting */
}
@media not all and (min-width: 64rem) {
  .max-lg\:right-0 {
    right: calc(var(--spacing) * 0);
  } /* web-hosting */
  .max-lg\:left-0 {
    left: calc(var(--spacing) * 0);
  } /* web-hosting */
}
@media not all and (min-width: 80rem) {
  .max-xl\:right-0 {
    right: calc(var(--spacing) * 0);
  } /* web-hosting */
  .max-xl\:-bottom-28 {
    bottom: calc(var(--spacing) * -28);
  } /* web-hosting */
  .max-xl\:left-0 {
    left: calc(var(--spacing) * 0);
  } /* web-hosting */
}

/*
 * トップページのリリースノート帯（TemplateReleaseNotes）で使う。
 * `pnpm extract:css src/components/template/TemplateReleaseNotes.astro ai-marketing-agency ai-gadgets`
 * の出力そのまま。ai-marketing-agency のビルドには出力が無く、ai-gadgets 側にあった。
 */
@media (min-width: 64rem) {
  .lg\:col-span-2 {
    grid-column: span 2 / span 2;
  } /* ai-gadgets */
}
