/* Hallmark · pre-emit critique: P4 H4 E4 S5 R4 V3
   macrostructure: design.md multi-page system · genre: modern-minimal · theme: studied-DNA
   contrast: pass · responsive: pass · motion: reduced-motion-safe */
@import url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/common/css/tokens.css");

/* =========================================================
   svltd テンプレート スタイルシート
   ブレークポイント: md=768px / lg=1024px / xl=1280px (min-width, mobile first)
   ========================================================= */

:root {
  /* ベース */
  --color-bg: #ffffff;
  --color-bg-sub: #f7f8fb;
  --color-navy: #101b3d;
  --color-navy-soft: #1e2c5c;
  --color-text: #2d2d2d;
  --color-text-sub: #6b7280;
  --color-border: #e5e7eb;

  /* グラデーションアクセント(ピンク→紫→青) */
  --color-grad-start: #ff5f9e;
  --color-grad-mid: #a855f7;
  --color-grad-end: #3b82f6;
  --gradient-accent: linear-gradient(90deg, var(--color-grad-start), var(--color-grad-mid), var(--color-grad-end));
  --gradient-accent-vertical: linear-gradient(180deg, var(--color-grad-start), var(--color-grad-mid), var(--color-grad-end));

  /* CTA・ステータス */
  --color-yellow: #ffd400;
  --color-yellow-dark: #f0c000;
  --color-green: #2ecc71;
  --color-green-dark: #1f9e57;
  --color-orange: #ff8a3d;
  --color-orange-dark: #f2701c;
  --color-teal: #0e9488;
  --color-teal-dark: #0b6f66;
  --color-blue-soft: #eaf2ff;
  --color-blue-strong: #0d3aac;
  --color-pink: #e91587;
  /* 10分無料相談CTAの標準色(デザイン標準 --color-consult)。--color-footer-b-consult と同値 */
  --color-consult: oklch(57% 0.235 356.7); /* #d6007a */
  --color-cyan: #01a9e0;
  --color-topbar-bg: #222222;
  --color-subsidy-new-combined: #157a3a;
  --color-subsidy-new-combined-dark: #0e5d2b;
  --color-subsidy-new-combined-soft: #e8f5ec;
  --color-subsidy-labor-saving: #de9200;
  --color-subsidy-labor-saving-dark: #8a5b00;
  --color-subsidy-labor-saving-soft: #fff4df;
  --color-subsidy-labor-saving-ink: var(--color-navy);
  --gradient-heading-vertical: linear-gradient(to bottom, var(--color-pink) 0%, var(--color-pink) 20%, var(--color-cyan) 52%, var(--color-cyan) 67%, var(--color-yellow) 100%);

  --color-primary: var(--color-navy);
  --color-accent: var(--color-grad-mid);

  --font-base: var(--font-koduka-gothic);

  --space-1: 4px;
  --space-2: 8px;
  --space-3: 16px;
  --space-4: 24px;
  --space-5: 32px;
  --space-6: 48px;
  --space-7: 64px;
  --space-8: 96px;
  --space-md: 1rem;

  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-full: 999px;

  --shadow-sm: 0 2px 8px rgba(0, 0, 0, .06);
  --shadow-md: 0 4px 16px rgba(0, 0, 0, .1);

  --container-max: 1120px;
  --container-wide: 1500px;
  --container-article: 760px;

  --z-header: 100;
  --z-back-to-top: 90;
}

/* TOP・下層ページ共通の大画面用ワイドコンテナ */
@media (min-width: 1440px) {
  .l-container.l-container--wide {
    max-width: var(--container-wide);
  }
}

/* =========================================================
   下層ページ共通パーツ
   lower hero · 2/3-column cards · contact CTA
   ========================================================= */
:where(.p-lower-template, .p-lower-hero, .p-lower-card, .p-lower-contact) {
  --lower-accent-blue: var(--color-blue-strong);
  --lower-accent-pink: var(--color-grad-start);
  --lower-accent-purple: var(--color-grad-mid);
  --lower-accent-cyan: #16b7e8;
}

/* 下層メインビジュアル */
.p-lower-hero {
  position: relative;
  isolation: isolate;
  min-height: 260px;
  overflow: clip;
  border-block-end: 1px solid var(--color-border);
  background-color: var(--color-bg);
}

.p-lower-hero::before,
.p-lower-hero::after {
  position: absolute;
  inset: 0;
  content: "";
  background-repeat: no-repeat;
  background-size: auto 100%;
  pointer-events: none;
}

.p-lower-hero::before {
  z-index: var(--z-lower-hero-decoration-back);
  background-image: url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/common/img/lower-hero-decoration-left.png?v=20260821");
  background-position: left center;
}

.p-lower-hero::after {
  z-index: var(--z-lower-hero-decoration-front);
  background-image: url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/common/img/lower-hero-decoration-right.png?v=20260821");
  background-position: calc(100% + var(--space-6)) center;
}

.p-lower-hero__inner {
  position: relative;
  z-index: var(--z-lower-hero-content);
  display: grid;
  min-height: inherit;
  align-content: center;
  padding-block: var(--space-6);
}

.p-lower-hero__content {
  min-inline-size: 0;
  max-inline-size: 720px;
  padding-inline: clamp(0px, 6vw, 64px);
}

.p-lower-hero__title {
  color: var(--color-navy);
  font-size: clamp(2rem, 7vw, 3.75rem);
  font-style: normal;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .03em;
}

.p-lower-hero__lead {
  max-inline-size: 48rem;
  margin-block-start: var(--space-3);
  color: var(--color-text);
  font-size: clamp(1rem, 2vw, 1.2rem);
  font-weight: 700;
  line-height: 1.8;
}

.p-lower-hero__rule {
  display: block;
  inline-size: min(320px, 72%);
  block-size: 4px;
  margin-block-start: var(--space-3);
  background: linear-gradient(90deg,
    var(--lower-accent-purple) 0 18%,
    var(--lower-accent-pink) 18% 35%,
    var(--color-yellow) 35% 48%,
    var(--lower-accent-cyan) 48% 76%,
    var(--color-green) 76% 100%);
}

/* 標準メインビジュアル：テキストのみ（FAQ・一覧・フォーム） */
.p-lower-hero--text {
  min-block-size: 16.25rem;
  background-image: url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/common/img/lower-hero-bg.webp");
  background-position: center 46%;
  background-repeat: no-repeat;
  background-size: cover;
}

.p-lower-hero--text::before,
.p-lower-hero--text::after {
  content: none;
}

.p-lower-hero--text .p-lower-hero__content {
  max-inline-size: 52.5rem;
}

/* SPでは斜線グラフィックがタイトル・リードに重なり可読性が落ちるため、
   白のグラデーションを重ねる(p-servicelower-hero / p-company-hero と同じ手法) */
@media (max-width: 767px) {
  .p-lower-hero--text {
    background-image:
      linear-gradient(90deg,
        rgba(255, 255, 255, .95) 0 68%,
        rgba(255, 255, 255, .78) 86%,
        rgba(255, 255, 255, .42) 100%),
      url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/common/img/lower-hero-bg.webp");
  }
}

.p-servicelower-hero {
  border-block-end: 1px solid var(--color-border);
  background-color: var(--color-bg);
  background-image: url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/staff/assets/staff-hero-bg.webp?v=20260812");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

.p-servicelower-hero::before,
.p-servicelower-hero::after {
  content: none;
}

.p-servicelower-hero .p-lower-hero__content {
  max-inline-size: 860px;
}

@media (max-width: 767px) {
  .p-servicelower-hero {
    background-image:
      linear-gradient(90deg, rgba(255, 255, 255, .98) 0 86%, rgba(255, 255, 255, .9) 94%, rgba(255, 255, 255, .18) 100%),
      url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/staff/assets/staff-hero-bg.webp?v=20260812");
    background-position: 20% center;
  }
}

/* 2カラム / 3カラム共通カード */
.p-lower-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-4);
}

.p-lower-card {
  --card-accent: var(--lower-accent-blue);
  display: flex;
  min-inline-size: 0;
  block-size: 100%;
  flex-direction: column;
  overflow: clip;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg);
}

.p-lower-card--pink { --card-accent: var(--lower-accent-pink); }
.p-lower-card--purple { --card-accent: var(--lower-accent-purple); }
.p-lower-card--cyan { --card-accent: var(--lower-accent-cyan); }
.p-lower-card--green { --card-accent: var(--color-green); }
.p-lower-card--yellow { --card-accent: #e8bc00; }

.p-lower-card__media {
  position: relative;
  margin: 0;
  overflow: clip;
  background: var(--color-bg-sub);
  aspect-ratio: 16 / 9;
}

.p-lower-grid--3 .p-lower-card__media {
  aspect-ratio: 4 / 3;
}

.p-lower-card__media::before {
  position: absolute;
  z-index: 1;
  inset: 0 auto auto 0;
  inline-size: 76px;
  block-size: 76px;
  background: linear-gradient(135deg,
    var(--card-accent) 0 35%,
    color-mix(in srgb, var(--card-accent) 48%, transparent) 35% 50%,
    transparent 50% 100%);
  content: "";
  pointer-events: none;
}

.p-lower-card__media img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}

.p-lower-card__body {
  display: flex;
  min-inline-size: 0;
  flex: 1 1 auto;
  flex-direction: column;
  padding: var(--space-4);
}

.p-lower-card__label {
  align-self: flex-start;
  margin-block-end: var(--space-2);
  padding: 2px 10px;
  border: 1px solid var(--card-accent);
  color: var(--color-navy);
  font-size: .875rem;
  font-weight: 700;
  line-height: 1.5;
}

.p-lower-card__title {
  color: var(--color-navy);
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  font-style: normal;
  font-weight: 700;
  line-height: 1.45;
}

.p-lower-grid--3 .p-lower-card__title {
  font-size: clamp(1.15rem, 2vw, 1.4rem);
}

.p-lower-card__text {
  margin-block-start: var(--space-3);
  line-height: 1.9;
}

.p-lower-card__action {
  display: inline-flex;
  min-block-size: 44px;
  align-items: center;
  align-self: flex-start;
  gap: var(--space-2);
  margin-block-start: auto;
  padding-block-start: var(--space-4);
  color: var(--color-navy);
  font-weight: 700;
  white-space: nowrap;
}

.p-lower-card__action::after {
  content: "→";
  color: var(--card-accent);
}

.p-lower-card__action:hover {
  color: var(--card-accent);
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* 下層ページ共通問い合わせ */
.p-lower-contact {
  position: relative;
  overflow: clip;
  background-color: var(--color-bg-sub);
  background-image: url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/common/img/cv_bg.png");
  background-position: center;
  background-size: cover;
}

.p-lower-contact__title {
  max-inline-size: 920px;
  margin-inline: auto;
  color: var(--color-navy);
  font-size: clamp(1.45rem, 4vw, 2rem);
  font-style: normal;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

.p-lower-contact__title::after {
  display: block;
  inline-size: 180px;
  block-size: 4px;
  margin: var(--space-3) auto 0;
  background: linear-gradient(90deg,
    var(--lower-accent-purple),
    var(--lower-accent-pink),
    var(--color-yellow),
    var(--lower-accent-cyan),
    var(--color-green));
  content: "";
}

.p-lower-contact__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
  max-inline-size: 820px;
  margin: var(--space-5) auto 0;
}

.p-lower-contact__action {
  display: grid;
  min-block-size: 112px;
  grid-template-columns: minmax(0, 1fr) 48px;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4);
  border: 2px solid transparent;
  border-radius: var(--radius-sm);
  color: #fff;
}

.p-lower-contact__action--consultation {
  background: var(--color-blue-strong);
}

.p-lower-contact__action--contact {
  background: var(--lower-accent-pink);
}

.p-lower-contact__action:hover {
  filter: brightness(.94);
}

.p-lower-contact__copy {
  min-inline-size: 0;
}

.p-lower-contact__label {
  display: block;
  font-size: clamp(1.15rem, 3vw, 1.45rem);
  font-weight: 700;
  line-height: 1.45;
}

.p-lower-contact__note {
  display: block;
  margin-block-start: var(--space-1);
  font-size: .875rem;
  line-height: 1.5;
}

.p-lower-contact__arrow {
  display: grid;
  inline-size: 44px;
  block-size: 44px;
  place-items: center;
  border-radius: var(--radius-full);
  background: #fff;
  color: var(--color-navy);
  font-size: 1.25rem;
  font-weight: 700;
}

@media (min-width: 768px) {
  .p-lower-hero {
    min-height: 320px;
  }

  .p-lower-hero::after {
    background-position: right center;
  }

  .p-lower-hero__inner {
    padding-block: var(--space-7);
  }

  .p-lower-grid--2,
  .p-lower-grid--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .p-lower-contact__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .p-lower-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5);
  }

  .p-lower-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (prefers-reduced-motion: reduce) {
  .p-lower-card__action,
  .p-lower-contact__action {
    transition-duration: .01ms;
  }
}
/* =========================================================
   リセット
   ========================================================= */
* { box-sizing: border-box; }
html {
  font-size: 16px;
  scroll-behavior: smooth;
  overflow-x: clip;
}
body {
  margin: 0;
  font-family: var(--font-base);
  font-size: 1rem;
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.7;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, p { margin: 0; }
small { font-size: 1rem; }
h1, h2, h3, h4 {
  min-width: 0;
  overflow-wrap: anywhere;
}
button { font: inherit; cursor: pointer; }
table { border-collapse: collapse; }

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--color-grad-end);
  outline-offset: 3px;
}
:where(a, button, input, select, textarea):active {
  opacity: .88;
}
:where(button, input, select, textarea):disabled,
a[aria-disabled="true"] {
  opacity: .55;
  cursor: not-allowed;
}

.u-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.u-img-fluid {
  width: 100%;
  height: auto;
}

.text-nowrap {
  white-space: nowrap;
}

.sec_img img {
  height: auto;
}
.sec_img.center img {
  margin: 0 auto;
}

@media print, screen and (min-width: 769px) {
  .box_2col {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
  }
  .box_2col .col {
    width: 48.4375%;
  }
  .sec_img.w_70per {
    width: 70%;
    margin: 0 auto;
  }
}
@media only screen and (max-width: 768px) {
  .sec_img {
    width: 100%;
    margin: 0 auto;
  }
  .box_2col .col {
    margin: 1.625em 0;
  }
  .sec_img.w_70per {
    width: 100%;
  }
}


/* =========================================================
   レイアウト(l-)
   ========================================================= */
.l-container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--space-3);
}
@media (min-width: 768px) {
  .l-container { padding: 0 var(--space-4); }
}

.l-section {
  padding: var(--space-7) 0;
  border-bottom: 1px solid var(--color-border);
}

/* 汎用ラッパー(l-wrapper) : 見出し+本文などのブロックを入れ子にする際、
   兄弟要素との間・親要素の先頭以外に自動で縦の余白を確保する */
.l-wrapper {
  margin-top: var(--space-4);
}
.l-wrapper:first-child {
  margin-top: 0;
}

/* 記事の章は汎用ブロックより広い間隔を取り、章内の見出し余白と重複させない */
.p-article-body > .l-wrapper {
  margin-top: var(--space-6);
}
.p-article-body > .l-wrapper:first-child {
  margin-top: 0;
}
@media (min-width: 768px) {
  .p-article-body > .l-wrapper {
    margin-top: var(--space-7);
  }
}

/* 見出し階層(c-heading) : 大見出し(無印/--lg) / 中見出し(--md) / 小見出し(--sm)
   サイト全体で見出しデザインを統一するための共通コンポーネント。
   デザイン案(top_design_260722)に合わせ、下線バーは使用せずスラッシュ+太字のみで表現する。 */
.c-heading,
.c-heading--lg {
  display: flex;
  align-items: baseline;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-navy);
  margin-bottom: var(--space-5);
}
.c-heading::before,
.c-heading--lg::before {
  content: "/";
  margin-right: var(--space-2);
  font-weight: 700;
  background: var(--gradient-accent);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
}
.c-heading--cv {
  justify-content: center;
  gap: var(--space-2);
  text-align: center;
}
.c-heading--cv::before,
.c-heading--cv::after {
  content: "//";
  flex: 0 0 auto;
  margin: 0;
  background: none;
  color: var(--color-grad-end);
  font-weight: 700;
  letter-spacing: -.12em;
}
.c-heading--cv::after {
  color: color-mix(in srgb, var(--color-grad-start) 90%, var(--color-navy));
}
@media (min-width: 768px) {
  .c-heading,
  .c-heading--lg { font-size: 1.9rem; }
}

/* 中見出し(--md) : 左にグラデーションの縦バー */
.c-heading--md {
  position: relative;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--color-navy);
  margin-bottom: var(--space-4);
  padding-left: var(--space-3);
}
.c-heading--md::before {
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  inline-size: 4px;
  background: var(--gradient-accent-vertical);
  content: "";
}
@media (min-width: 768px) {
  .c-heading--md { font-size: 1.3rem; }
}

/* 小見出し(--sm) : テキスト幅ぶんのグラデーション下線 */
.c-heading--sm {
  position: relative;
  display: inline-block;
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-navy);
  margin-bottom: var(--space-3);
  padding-bottom: 6px;
}
.c-heading--sm::after {
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  block-size: 3px;
  background: var(--gradient-accent);
  content: "";
}

/* 基礎設計に沿った見出し(h2) */
.c-heading-section {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: var(--space-md);
  color: var(--color-navy);
  font-size: 1.625rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.c-heading-accent {
  display: block;
  flex: 0 0 auto;
  background: var(--gradient-heading-vertical);
  transform: rotate(18deg);
  transform-origin: center;
}

.c-heading-accent--h2 {
  inline-size: 0.25rem;
  block-size: 1.75rem;
}

@media (min-width: 48rem) {
  .c-heading-section {
    font-size: 2rem;
  }

  .c-heading-accent--h2 {
    inline-size: 0.3125rem;
    block-size: 2.25rem;
  }
}

/* 基礎設計に沿った見出し(h3) */
.c-heading-content {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: var(--space-sm);
  color: var(--color-navy);
  font-size: 1.25rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.c-heading-content__accent {
  display: flex;
  flex: 0 0 auto;
  gap: var(--space-2xs);
}

.c-heading-content__accent::before,
.c-heading-content__accent::after {
  display: block;
  inline-size: 0.125rem;
  block-size: 1.25rem;
  background: var(--gradient-heading-vertical);
  content: "";
  transform: rotate(18deg);
  transform-origin: center;
}
@media (min-width: 48rem) {
  .c-heading-content {
    gap: 0.875rem;
    font-size: 1.5rem;
  }

  .c-heading-content__accent {
    gap: 0.3125rem;
  }

  .c-heading-content__accent::before,
  .c-heading-content__accent::after {
    inline-size: 0.1875rem;
    block-size: 1.5625rem;
  }
}

/* 基礎設計に沿った見出し(h4) */
.c-heading-part {
  min-width: 0;
  color: var(--color-navy);
  font-size: 1.125rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
@media (min-width: 48rem) {
  .c-heading-part {
    font-size: 1.25rem;
  }
}




/* ヘッダー */
.l-header {
  position: relative;
  top: auto;
  z-index: var(--z-header);
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-border);
  transform: none;
}

.l-header.is-scroll-fixed {
  position: fixed;
  inset: 0 0 auto;
  width: 100%;
  transform: translateY(-100%);
  transition: transform 560ms cubic-bezier(.4, 0, .2, 1);
  will-change: transform;
}

.l-header.is-scroll-fixed.is-scroll-visible {
  transform: translateY(0);
}

.l-header-placeholder {
  block-size: 0;
  pointer-events: none;
}

.l-header-placeholder.is-active {
  block-size: var(--header-placeholder-height, 0px);
}

@media (prefers-reduced-motion: reduce) {
  .l-header.is-scroll-fixed {
    transition-duration: .01ms;
  }
}
.l-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
}
.l-header__brand {
  display: flex;
  align-items: center;
}
.l-header__certification {
  display: none;
}
.l-header__logo {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--color-navy);
}
.l-header__logo img {
  object-fit: contain;
}
.l-header__logo-icon {
  width: 22px;
  height: 22px;
  color: var(--color-orange);
  flex-shrink: 0;
}
.l-header__logo-text { color: var(--color-text-sub); font-size: 1.1rem; }
.l-header__logo-text-accent { color: var(--color-orange); }
.l-header__nav {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-border);
  max-height: 0;
  overflow: hidden;
  transition: opacity .2s ease;
  opacity: 0;
}
.l-header__nav.is-open { max-height: calc(100vh - 64px); overflow-y: auto; opacity: 1; }
.l-header__nav-list { padding: var(--space-3) var(--space-4); }
.l-header__nav-list li + li { margin-top: var(--space-3); }
.l-header__nav-list a {
  font-size: 1rem;
  font-weight: 500;
}
.l-header__nav-toggle {
  width: 32px;
  height: 24px;
  position: relative;
  background: none;
  border: none;
  padding: 0;
}
.l-header__nav-toggle span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--color-navy);
  transition: transform .2s ease, opacity .2s ease;
}
.l-header__nav-toggle span:nth-child(1) { top: 0; }
.l-header__nav-toggle span:nth-child(2) { top: 11px; }
.l-header__nav-toggle span:nth-child(3) { top: 22px; }
.l-header__nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(11px) rotate(45deg); }
.l-header__nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.l-header__nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-11px) rotate(-45deg); }

@media (min-width: 1025px) {
  .l-header__nav {
    position: static;
    max-height: none;
    overflow: visible;
    border-bottom: none;
    opacity: 1;
  }
  .l-header__nav-list {
    padding: 0;
    display: flex;
    gap: var(--space-5);
  }
  .l-header__nav-list li + li { margin-top: 0; }
}

@media (min-width: 1541px) {
  .l-header__nav-toggle { display: none; }
}

/* =========================================================
   ヘッダー内ユーティリティ行(お知らせ系リンク+CTAボタン)
   デザイン案(top_design_260722)の「事例紹介/セミナー情報/…」+
   青いボタン3つの行 (l-header__utility) を再現する
   ========================================================= */
.l-header__utility {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4) 0;
}
.l-header__utility-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-3);
}
.l-header__utility-links a { font-size: 1rem; font-weight: 500; white-space: nowrap; }
.l-header__utility-links a:hover { color: var(--color-blue-strong); }

.l-header__cta { display: flex; flex-wrap: wrap; }
.l-header__cta li { flex: 1 1 auto; }
.l-header__cta li + li { margin-left: 0; }
.l-header__cta a {
  display: block;
  background: var(--color-blue-strong);
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  text-align: center;
  padding: var(--space-2) var(--space-3);
  clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
  white-space: nowrap;
}
.l-header__cta a:hover { background: var(--color-navy); }

/* =========================================================
   ヘッダー内グローバルナビ(補助金サポート/販売店サポート)
   _include_/gnav.html の中身(l-header__gnav-group)を並べる
   ========================================================= */
.l-header__gnav { padding: var(--space-4); }
.l-header__gnav-group + .l-header__gnav-group {
  margin-top: var(--space-4);
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border);
}
.l-header__gnav-label {
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-navy);
  margin-bottom: var(--space-2);
}
.l-header__gnav-list { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-4); }
.l-header__gnav-list a { font-size: 1rem; font-weight: 500; white-space: nowrap; }
.l-header__gnav-list a:hover { color: var(--color-blue-strong); }

@media (max-width: 1540px) {
  .l-header__gnav-group:last-child { display: none; }
  .l-header__nav.is-open .l-header__gnav-group:last-child { display: block; }
}

@media (min-width: 1025px) {
  .l-header__inner { height: auto; min-height: 64px; align-items: flex-start; padding-top: var(--space-2); padding-bottom: var(--space-2); }
  .l-header__logo { padding-top: var(--space-1); }
  .l-header__utility { padding: var(--space-2) var(--space-4) 0; }
  .l-header__cta li + li { margin-left: 0; }
}

@media (min-width: 1025px) {
  .l-header__inner { align-items: center; }
  .l-header__logo { padding-top: 0; }
  .l-header__nav {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--space-2);
  }
  .l-header__utility {
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    padding: 0;
    gap: var(--space-5);
  }
  .l-header__cta li + li { margin-left: 0; }
  .l-header__gnav { padding: 0; display: flex; }
  .l-header__gnav-group + .l-header__gnav-group {
    margin-top: 0;
    padding-top: 0;
    padding-left: var(--space-4);
    margin-left: var(--space-4);
    border-top: none;
    border-left: 1px solid var(--color-border);
  }
  .l-header__gnav-label { margin-bottom: var(--space-1); }
  .l-header__gnav-list { flex-wrap: nowrap; gap: var(--space-3); }
  .l-header__gnav-list li { flex-shrink: 0; }
  .l-header__utility-links li { flex-shrink: 0; }
}

/* フッター */
.l-footer {
  background: var(--color-navy);
  color: #cfd6e6;
  padding: var(--space-6) 0 var(--space-4);
}
.l-footer__nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  justify-content: center;
  margin-bottom: var(--space-4);
}
.l-footer__nav a { font-size: 1rem; }
.l-footer__copyright {
  text-align: center;
  font-size: 1rem;
  color: #8b93ab;
}

/* =========================================================
   ボタン(c-btn)
   ========================================================= */
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: 12px 28px;
  border-radius: var(--radius-full);
  font-weight: 700;
  font-size: 1rem;
  border: 2px solid transparent;
  transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
  white-space: nowrap;
}
.c-btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.c-btn:focus-visible { box-shadow: 0 0 0 4px var(--color-blue-soft); }
.c-btn:active { transform: translateY(0); box-shadow: none; }
.c-btn[aria-busy="true"],
.c-btn[data-state="loading"] {
  opacity: .72;
  cursor: progress;
}
.c-btn[data-state="error"] {
  border-color: var(--color-grad-start);
}
.c-btn[data-state="success"] {
  background: var(--color-subsidy-new-combined-dark);
  color: var(--color-bg);
}
.c-btn[aria-disabled="true"],
.c-btn:disabled {
  opacity: .55;
  cursor: not-allowed;
  pointer-events: none;
}

.c-btn--primary { background: var(--color-navy); color: #fff; }
/* 10分無料相談。用途は相談予約への主要導線に限定する */
.c-btn--consult { background: var(--color-consult); color: #fff; }
.c-btn--accent { background: var(--gradient-accent); color: #fff; }
.c-btn--outline { background: transparent; border-color: var(--color-navy); color: var(--color-navy); }
.c-btn--outline-white { background: transparent; border-color: #fff; color: #fff; }
.c-btn--yellow { background: var(--color-yellow); color: var(--color-navy); }
.c-btn--yellow:hover { background: var(--color-yellow-dark); }
.c-btn--sm { padding: 8px 18px; font-size: 1rem; }
.c-btn--block { width: 100%; }

.c-btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

/* =========================================================
   リスト(c-list)
   ========================================================= */
.p-list-demo {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-6);
}
@media (min-width: 768px) {
  .p-list-demo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.p-list-demo__title {
  text-align: left;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-navy);
  margin-bottom: var(--space-3);
}

.c-list--unordered li,
.c-list--ordered li {
  position: relative;
  padding-left: var(--space-4);
  margin-bottom: var(--space-2);
}
.c-list--unordered li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .75em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-accent);
}
.c-list--ordered { counter-reset: c-list-counter; }
.c-list--ordered li { counter-increment: c-list-counter; }
.c-list--ordered li::before {
  content: counter(c-list-counter) ".";
  position: absolute;
  left: 0;
  font-weight: 700;
  color: var(--color-navy);
}

/* =========================================================
   チェックリスト(c-check-list)
   ========================================================= */
.c-check-list__item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}
.c-check-list__icon {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  color: var(--color-green);
  margin-top: 2px;
}

/* =========================================================
   タグ・バッジ(c-tag)
   ========================================================= */
.c-tag {
  display: inline-block;
  font-size: 1rem;
  font-weight: 700;
  padding: 2px 10px;
  border-radius: var(--radius-full);
  background: var(--color-bg-sub);
  color: var(--color-text-sub);
}

/* =========================================================
   画像ギャラリー(p-gallery)
   ========================================================= */
.p-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}
@media (min-width: 768px) {
  .p-gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.p-gallery img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: var(--radius-md);
}

/* =========================================================
   支援事例カード(p-case-card)
   ========================================================= */
.p-case-card-list { display: flex; flex-direction: column; gap: var(--space-6); }
.p-case-card {
  padding: var(--space-5) var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
.p-case-card__tags { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-3); }
.p-case-card__title { font-size: 1.1rem; font-weight: 700; color: var(--color-navy); margin-bottom: var(--space-3); }
.p-case-card__meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2) var(--space-4);
  margin-bottom: var(--space-3);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--color-border);
}
@media (min-width: 768px) {
  .p-case-card__meta { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.p-case-card__meta dt { font-size: 1rem; color: var(--color-text-sub); margin-bottom: 2px; }
.p-case-card__meta dd { margin: 0; font-size: 1rem; font-weight: 700; color: var(--color-navy); }
.p-case-card__text { margin-bottom: var(--space-4); }
.p-case-card__note { font-size: 1rem; color: var(--color-text-sub); margin-top: var(--space-2); }

/* =========================================================
   テーブル(c-table)
   ========================================================= */
.c-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
.c-table {
  width: 100%;
  min-width: 480px;
  font-size: 1rem;
}
.c-table th, .c-table td {
  padding: 14px 18px;
  text-align: left;
  border-bottom: 1px solid var(--color-border);
}
.c-table thead th {
  background: var(--color-bg-sub);
  color: var(--color-navy);
  font-weight: 700;
  white-space: nowrap;
}
.c-table tbody tr:last-child td { border-bottom: none; }
.c-table__highlight { color: var(--color-orange-dark); font-weight: 700; }

/* =========================================================
   支援事例フィルター(p-case-filter)
   ========================================================= */
.p-case-filter {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  margin-top: var(--space-4);
  padding: var(--space-4);
  background: var(--color-bg-sub);
  border-radius: var(--radius-md);
}
.p-case-filter__label {
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-text-sub);
  margin-bottom: var(--space-2);
}
.p-case-filter__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.p-case-filter__tab {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  padding: var(--space-2) var(--space-4);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-text-sub);
}
.p-case-filter__tab.is-active {
  background: var(--color-navy);
  border-color: var(--color-navy);
  color: #fff;
}
.p-case-filter__empty {
  margin-top: var(--space-5);
  padding: var(--space-5);
  text-align: center;
  color: var(--color-text-sub);
  background: var(--color-bg-sub);
  border-radius: var(--radius-md);
}

/* =========================================================
   お知らせリスト(c-news-list)
   ========================================================= */
.c-news-list__item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-border);
}
.c-news-list__date {
  color: var(--color-text-sub);
  font-size: 1rem;
  min-width: 90px;
}
.c-news-list__category {
  display: inline-block;
  font-size: 1rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: var(--radius-full);
  background: var(--color-bg-sub);
  color: var(--color-navy);
}
.c-news-list__category--info { background: #e6f0ff; color: var(--color-grad-end); }
.c-news-list__category--important { background: #ffe8ee; color: var(--color-grad-start); }
.c-news-list__link {
  flex: 1 1 100%;
  font-size: 1rem;
}
@media (min-width: 768px) {
  .c-news-list__link { flex: 1 1 auto; }
}
.c-news-list__link:hover { text-decoration: underline; }

/* =========================================================
   BOX形アイコン付きリンクボタン(c-icon-box)
   ========================================================= */
.c-icon-box-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
}
@media (min-width: 768px) {
  .c-icon-box-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.c-icon-box {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg);
  transition: box-shadow .15s ease, transform .15s ease;
}
.c-icon-box:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.c-icon-box__icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  color: var(--color-orange);
}
.c-icon-box__label {
  flex: 1;
  font-weight: 700;
  color: var(--color-navy);
}
.c-icon-box__arrow {
  flex-shrink: 0;
  color: var(--color-text-sub);
}

/* =========================================================
   3カラムブロック(p-columns)
   ========================================================= */
.p-columns__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-4);
}
@media (min-width: 768px) {
  .p-columns__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .p-columns__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.p-columns__item {
  padding: var(--space-5) var(--space-4);
  border-radius: var(--radius-lg);
  background: var(--color-bg-sub);
  text-align: center;
}
.p-columns__icon {
  width: 48px;
  height: 48px;
  margin: 0 auto var(--space-3);
  color: var(--color-accent);
}
.p-columns__title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-navy);
  margin-bottom: var(--space-2);
}
.p-columns__text {
  font-size: 1rem;
  color: var(--color-text-sub);
}

/* =========================================================
   アイコン+タイトルのサービス一覧(p-icon-feature-list)
   3カラムブロックより項目数が多く、説明文を持たない
   「アイコン+短いラベルのみ」の一覧に使用
   ========================================================= */
.p-icon-feature-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}
@media (min-width: 768px) {
  .p-icon-feature-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .p-icon-feature-list { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.p-icon-feature-list__item {
  text-align: center;
  padding: var(--space-4) var(--space-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
.p-icon-feature-list__icon {
  width: 100%;
  max-width: 166px;
  aspect-ratio: 166 / 86;
  margin: 0 auto var(--space-2);
}
.p-icon-feature-list__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.p-icon-feature-list__title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-navy);
}

/* =========================================================
   申請の流れ図(p-service-flow)
   figureの既定余白を打ち消し、画像を枠幅いっぱいに表示する
   ========================================================= */
.p-service-flow {
  margin: 0;
  overflow-x: auto;
}
.p-service-flow img {
  width: 100%;
  min-width: 720px;
  height: auto;
}

/* =========================================================
   コンバージョンブロック / ボタンリスト
   ========================================================= */
.p-cv-section {
  background-color: var(--color-bg-sub);
  background-image: url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/common/img/cv_bg.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  text-align: center;
}

.p-cv-buttons {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
}
@media (min-width: 768px) {
  .p-cv-buttons { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .p-sample-cv-buttons {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 800px;
    margin-right: auto;
    margin-left: auto;
  }
  .p-cv-buttons--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 800px;
    margin-right: auto;
    margin-left: auto;
  }
}
.p-cv-buttons .c-btn { width: 100%; }

/* =========================================================
   流れ・ステップ(p-steps)
   ========================================================= */
.p-steps {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.p-steps__item {
  position: relative;
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
.p-steps__item:not(:last-child)::after {
  content: "↓";
  position: absolute;
  left: 50%;
  bottom: calc(var(--space-4) * -1 - 4px);
  transform: translateX(-50%);
  color: var(--color-accent);
  font-size: 1.4rem;
  line-height: 1;
}
.p-steps__number {
  display: inline-block;
  font-size: 1.5rem;
  font-weight: 700;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--color-accent);
  margin-bottom: var(--space-2);
}
.p-steps__title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-navy);
  margin-bottom: var(--space-1);
}
.p-steps__text {
  font-size: 1rem;
  color: var(--color-text-sub);
}
@media (min-width: 1024px) {
  .p-steps {
    flex-direction: row;
  }
  .p-steps__item { flex: 1; }
  .p-steps__item:not(:last-child)::after {
    content: "→";
    left: auto;
    right: calc(var(--space-4) * -1 - 4px);
    bottom: 50%;
    top: 50%;
    transform: translateY(-50%);
  }
}

/* =========================================================
   人物紹介BOX(p-person)
   ========================================================= */
.p-person-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-4);
}
@media (min-width: 768px) {
  .p-person-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .p-person-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .p-article-body .p-person-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.p-person {
  display: flex;
  gap: var(--space-4);
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
.p-person__avatar {
  flex-shrink: 0;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--gradient-accent);
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-person__avatar span {
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
}
.p-person__avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}
.p-person__role {
  font-size: 1rem;
  color: var(--color-text-sub);
  margin-bottom: var(--space-1);
}
.p-person__name {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-navy);
  margin-bottom: var(--space-2);
}
.p-person__desc {
  font-size: 1rem;
  color: var(--color-text-sub);
}

/* =========================================================
   FAQリスト(p-faq)
   ========================================================= */
.p-faq__item {
  border-bottom: 1px solid var(--color-border);
}
.p-faq__question {
  width: 100%;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4) 0;
  background: none;
  border: none;
  text-align: left;
}
.p-faq__q-mark {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--color-navy);
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-faq__q-text {
  flex: 1;
  font-weight: 700;
  color: var(--color-navy);
}
.p-faq__toggle-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  position: relative;
}
.p-faq__toggle-icon::before,
.p-faq__toggle-icon::after {
  content: "";
  position: absolute;
  background: var(--color-text-sub);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.p-faq__toggle-icon::before { width: 100%; height: 2px; }
.p-faq__toggle-icon::after {
  width: 2px;
  height: 100%;
  transition: transform .2s ease;
}
.p-faq__question[aria-expanded="true"] .p-faq__toggle-icon::after { transform: translate(-50%, -50%) scaleY(0); }
.p-faq__answer {
  display: flex;
  gap: var(--space-3);
  padding: 0 0 var(--space-4) 40px;
  font-size: 1rem;
  color: var(--color-text-sub);
}
.p-faq__answer[hidden],
.p-faq__empty[hidden],
.p-form__error[hidden],
[data-faq-item][hidden] {
  display: none;
}
.p-faq__a-mark {
  flex-shrink: 0;
  font-weight: 700;
  color: var(--color-grad-mid);
}

/* =========================================================
   TOPに戻る(c-back-to-top)
   ========================================================= */
.c-back-to-top {
  position: fixed;
  right: var(--space-3);
  bottom: var(--space-3);
  z-index: var(--z-back-to-top);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: none;
  background: var(--color-navy);
  color: #fff;
  box-shadow: var(--shadow-md);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.c-back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.c-back-to-top svg {
  width: 20px;
  height: 20px;
  margin: 0 auto;
}

/* =========================================================
   ブログ記事ヘッダー(p-article-header)
   ========================================================= */
.p-article {
  width: 100%;
  max-width: calc(var(--container-article) + (var(--space-4) * 2));
  margin: 0 auto;
  padding-right: var(--space-3);
  padding-left: var(--space-3);
}
@media (min-width: 768px) {
  .p-article {
    padding-right: var(--space-4);
    padding-left: var(--space-4);
  }
}
.p-article-header {
  padding: var(--space-3) 0 var(--space-4);
  border-bottom: 0;
  margin-bottom: var(--space-5);
  background: var(--color-bg);
}
.p-article-header > .p-article {
  display: grid;
  min-width: 0;
}
.p-article-header > .p-article::after {
  display: block;
  height: 3px;
  margin-top: var(--space-4);
  background: var(--gradient-blog-header-rule);
  content: "";
}
.p-article-header .p-blog-card__category {
  justify-self: start;
  margin-bottom: var(--space-2);
  clip-path: none;
  color: var(--color-top-on-dark);
  background: var(--color-top-blue-deep);
}
.p-article-header__mv {
  max-width: var(--container-max);
  margin: auto;
}
.p-article-header__mv img {
  width: 100%;
  aspect-ratio: 1628.88 / 543;
  object-fit: cover;
  border-radius: var(--radius-md);
}
.p-article-header__eyecatch {
  width: 100%;
  max-width: var(--container-max);
  margin: var(--space-4) auto 0;
  overflow: hidden;
  border-radius: var(--radius-md);
  background: var(--color-bg-subtle);
}
.p-article-header__eyecatch img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.p-article-header__title {
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-navy);
  margin-bottom: 0;
  min-width: 0;
  overflow-wrap: anywhere;
}
.p-article-header__meta {
  margin-top: var(--space-3);
  font-size: .875rem;
  color: var(--color-top-muted);
  font-variant-numeric: tabular-nums;
}
.p-article-header__meta p {
  margin: 0;
}
.p-article-header__meta p + p {
  margin-top: var(--space-1);
}
@media (min-width: 768px) {
  .p-article-header__title { font-size: 1.8rem; }
}

/* =========================================================
   ポイントまとめBOX(c-points-box)
   ========================================================= */
.c-points-box {
  list-style: none;
  padding: var(--space-4) var(--space-5);
  margin: 0 0 var(--space-4);
  background: var(--color-bg-sub);
  border-left: 4px solid var(--color-accent);
  border-radius: var(--radius-md);
}
.c-points-box li {
  position: relative;
  padding-left: var(--space-4);
  font-size: 1rem;
  margin-bottom: var(--space-2);
}
.c-points-box li:last-child { margin-bottom: 0; }
.c-points-box li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .7em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-grad-mid);
}
.c-points-box--combined {
  border-left-color: var(--color-subsidy-new-combined);
  background: var(--color-subsidy-new-combined-soft);
}
.c-points-box--combined li::before {
  background: var(--color-subsidy-new-combined);
}

/* =========================================================
   記事本文タイポグラフィ(p-article-body)
   AI整形・移行された生のセマンティックHTML(h2/h3/p/ul/ol/table/figure等)
   にクラス付与なしで統一デザインを適用するためのスコープ付きスタイル
   ========================================================= */
/* 記事本文の見出し階層 : h2=大見出し / h3=中見出し / h4=小見出し
   クラスのないCMS本文見出しを .c-heading系と同じデザインへ自動対応する。
   明示的な共通見出しクラスがある場合は、そのクラスの仕様を優先する。 */
.p-article-body h2:not([class]) {
  display: flex;
  align-items: baseline;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-navy);
  margin: 0 0 var(--space-5);
}
.p-article-body h2:not([class])::before {
  content: "/";
  margin-right: var(--space-2);
  font-weight: 700;
  background: var(--gradient-accent);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
}
@media (min-width: 768px) {
  .p-article-body h2:not([class]) {
    font-size: 1.9rem;
  }
}
.p-article-body h3:not([class]) {
  position: relative;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--color-navy);
  margin: var(--space-5) 0 var(--space-4);
  padding-left: var(--space-3);
}
.p-article-body h3:not([class])::before {
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  inline-size: 4px;
  background: var(--gradient-accent-vertical);
  content: "";
}
@media (min-width: 768px) {
  .p-article-body h3:not([class]) { font-size: 1.3rem; }
}
.p-article-body h4:not([class]) {
  position: relative;
  display: inline-block;
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-navy);
  margin: var(--space-4) 0 var(--space-3);
  padding-bottom: 6px;
}
.p-article-body h4:not([class])::after {
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  block-size: 3px;
  background: var(--gradient-accent);
  content: "";
}
.p-article-body .p-icon-feature-list__title {
  display: block;
  margin: 0;
  padding-bottom: 0;
  border-bottom: none;
}
.p-article-body .p-icon-feature-list__title::before,
.p-article-body .p-icon-feature-list__title::after { content: none; }
.p-article-body p {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--color-text);
  margin: 0 0 var(--space-3);
}
.p-article-body strong {
  color: var(--color-grad-end);
  font-weight: 700;
}
.p-article-body ul,
.p-article-body ol {
  margin: 0 0 var(--space-4);
  list-style: none;
}
.p-article-body ul:not([class]) > li,
.p-article-body ol > li {
  position: relative;
  padding-left: var(--space-4);
}
.p-article-body ul:not([class]) > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .75em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-accent);
}
.p-article-body ol { counter-reset: article-list; }
.p-article-body ol > li { counter-increment: article-list; }
.p-article-body ol > li::before {
  content: counter(article-list) ".";
  position: absolute;
  left: 0;
  font-weight: 700;
  color: var(--color-navy);
}
.p-article-body li { font-size: 1rem; margin-bottom: var(--space-2); }
.p-article-body a { color: var(--color-grad-end); text-decoration: underline; }
.p-article-body--combined a,
.p-article-body--combined strong {
  color: var(--color-subsidy-new-combined-dark);
}
.p-article-body--combined ul:not([class]) > li::before {
  background: var(--color-subsidy-new-combined);
}
.p-article-body figure {
  margin: var(--space-5) 0;
}
.p-article-body figure img {
  width: 100%;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
}
.c-figure-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16 / 9;
  background: var(--color-bg-sub);
  border: 1px dashed var(--color-border);
  border-radius: var(--radius-md);
  color: var(--color-text-sub);
  font-size: 1rem;
}
.p-article-body figcaption {
  margin-top: var(--space-2);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--color-text-sub);
  word-break: break-all;
}
.p-article-body table {
  display: block;
  width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
  font-size: 1rem;
  margin: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
.p-article-body th,
.p-article-body td {
  padding: 14px 18px;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
}
.p-article-body th p,
.p-article-body td p {
  margin: 0;
  color: inherit;
  font-size: inherit;
  line-height: inherit;
}
.p-article-body tbody tr:last-child td { border-bottom: none; }
.p-article-body thead th {
  background: var(--color-bg-sub);
  color: var(--color-navy);
  font-weight: 700;
  white-space: nowrap;
}

/* =========================================================
   ユーティリティ
   ========================================================= */
.u-intro {
  background: var(--color-bg-sub);
  padding: var(--space-4);
  border-radius: var(--radius-md);
  font-size: 1rem;
  color: var(--color-text-sub);
}
.u-mt-4 { margin-top: var(--space-4); }
.u-mb-3 { margin-bottom: var(--space-3); }
.u-mb-4 { margin-bottom: var(--space-4); }
.u-text-sub { font-size: 1rem; color: var(--color-text-sub); }
.red { color: #f00 !important; }

/* =========================================================
   下層ページ共通パンくずリスト(c-breadcrumb)
   ヘッダー(l-header)直下、main の前に置く
   ========================================================= */
.c-breadcrumb {
  overflow: hidden;
  border-bottom: 1px solid var(--color-border);
  padding: var(--space-1) 0;
}
.c-breadcrumb__list {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  font-size: 1rem;
}
.c-breadcrumb__list li {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
  white-space: nowrap;
}
.c-breadcrumb__list li:not(:first-child):not(:last-child) {
  max-width: min(38vw, 420px);
}
.c-breadcrumb__list li:not(:first-child):not(:last-child) a,
.c-breadcrumb__list li:last-child {
  overflow: hidden;
  text-overflow: ellipsis;
}
.c-breadcrumb__list li:last-child {
  display: block;
  flex: 1 1 auto;
}
.c-breadcrumb__list li:not(:last-child)::after {
  content: "›";
  flex: 0 0 auto;
  margin-left: var(--space-1);
}
.c-breadcrumb__list a {
  min-width: 0;
}
.c-breadcrumb__list a:hover { text-decoration: underline; }
.c-breadcrumb__list li[aria-current="page"] { }

/* =========================================================
   下層ページ共通見出し(c-page-header)
   ========================================================= */
.c-page-header {
  background: var(--color-bg-sub);
  padding: var(--space-6) 0;
  text-align: center;
}
.c-page-header__title {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--color-navy);
  margin-bottom: var(--space-3);
}
.c-page-header__lead {
  font-size: 1rem;
  color: var(--color-text-sub);
  line-height: 1.8;
}
@media (min-width: 768px) {
  .c-page-header__title { font-size: 2.2rem; }
}

/* =========================================================
   ここから TOPページ構成パーツ
   top_design_260722.jpg のデザイン案を再現するための専用パーツ群
   ========================================================= */

/* 写真タイル(ヒーロー・採用バナー用のダミー写真枠) */
.c-photo-tile {
  border-radius: var(--radius-md);
  background: var(--gradient-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  overflow: hidden;
}
.c-photo-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* =========================================================
   トップバー(l-topbar)
   ========================================================= */
.l-topbar {
  background: var(--color-topbar-bg);
  color: #FFFFFF;
  font-size: 0.75rem;
  font-weight: 700;
}
.l-topbar__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-1) var(--space-2);
  max-width: none;
}
.l-topbar__links,
.l-topbar__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}
.l-topbar__links a:hover,
.l-topbar__actions a:hover { text-decoration: underline; }
.l-topbar__actions a { font-weight: 700; color: #fff; }

.l-topbar__info { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-1); }
.l-topbar__info-badge { color: var(--color-yellow); font-weight: 700; }
.l-topbar__info-offices { color: #fff; font-weight: 700; }
.l-topbar__info-tagline { display: none; }
.l-topbar__cert { display: none; }
@media (min-width: 1024px) {
  .l-topbar__info-tagline,
  .l-topbar__cert { display: inline; }
}

/* =========================================================
   ヒーロー(p-hero)
   ========================================================= */
.p-hero {
  position: relative;
  overflow: hidden;
  background: var(--color-bg-sub);
  padding: var(--space-7) 0;
}
.p-hero__deco {
  position: absolute;
  top: 0;
  right: -4%;
  width: 68%;
  max-width: 640px;
  height: 100%;
  pointer-events: none;
}
.p-hero__deco-svg { width: 100%; height: 100%; }
.p-hero__inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-6);
  align-items: center;
}
@media (min-width: 1024px) {
  .p-hero__inner { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
}
.p-hero__lead {
  display: inline-block;
  font-weight: 700;
  font-size: 1rem;
  color: var(--color-accent);
  background: #fff;
  padding: 6px 16px;
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-sm);
  margin-bottom: var(--space-4);
}
.p-hero__title {
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-navy);
  margin-bottom: var(--space-5);
}
.p-hero__title-accent {
  background: var(--gradient-accent);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
@media (min-width: 768px) {
  .p-hero__title { font-size: 2.6rem; }
}
.p-hero__photos {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
}
.p-hero__photos .c-photo-tile { aspect-ratio: 1; font-size: 1.6rem; border-radius: 0; }
.p-hero__photos .c-photo-tile:nth-child(4),
.p-hero__photos .c-photo-tile:nth-child(5) {
  grid-column: span 1;
}
.p-hero__photos-row2 {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
  width: 66%;
  margin: 0 auto;
}

/* =========================================================
   実績スタッツ(p-stats)
   ========================================================= */
.p-stats { padding: var(--space-6) 0; }
.p-stats__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
}
@media (min-width: 768px) {
  .p-stats__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.p-stats__item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  clip-path: polygon(16px 0, 100% 0, calc(100% - 16px) 100%, 0 100%);
  border: 1px solid var(--color-border);
  background: var(--color-bg);
}
.p-stats__icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
}
.p-stats__item--blue { border-color: var(--color-green); }
.p-stats__item--blue .p-stats__icon { color: var(--color-green); }
.p-stats__item--yellow { border-color: var(--color-orange); }
.p-stats__item--yellow .p-stats__icon { color: var(--color-orange); }
.p-stats__item--purple { border-color: var(--color-grad-mid); }
.p-stats__item--purple .p-stats__icon { color: var(--color-grad-mid); }
.p-stats__label { font-size: 1rem; color: var(--color-text-sub); margin-bottom: 2px; }
.p-stats__value { font-size: 1.6rem; font-weight: 700; color: var(--color-navy); }
.p-stats__value span { font-size: 1rem; font-weight: 700; margin-left: 4px; }

/* =========================================================
   4項目リサーチ帯 + CTAボックス(p-intro-banner)
   ========================================================= */
.p-intro-banner { background: var(--color-yellow); }
.p-intro-banner__row {
  display: flex;
  flex-direction: column;
}
@media (min-width: 1024px) {
  .p-intro-banner__row { flex-direction: row; align-items: stretch; }
}
.p-intro-banner__list {
  display: flex;
  flex-direction: column;
  background: var(--color-navy);
  color: #fff;
  padding: var(--space-5) var(--space-4);
  gap: var(--space-3);
}
@media (min-width: 768px) {
  .p-intro-banner__list { flex-direction: row; gap: 0; }
}
@media (min-width: 1024px) {
  .p-intro-banner__list { flex: 0 1 68%; }
}
.p-intro-banner__list li {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex: 1;
}
@media (min-width: 768px) {
  .p-intro-banner__list li { padding: 0 var(--space-3); }
  .p-intro-banner__list li:first-child { padding-left: 0; }
  .p-intro-banner__list li + li { border-left: 1px solid rgba(255, 255, 255, .25); }
}
.p-intro-banner__icon { flex-shrink: 0; width: 24px; height: 24px; color: var(--color-yellow); }
.p-intro-banner__list span { font-size: 1rem; font-weight: 700; line-height: 1.5; }

.p-intro-banner__cta { padding: var(--space-5) var(--space-4); }
@media (min-width: 1024px) {
  .p-intro-banner__cta { flex: 1; padding: var(--space-5) 0 var(--space-5) var(--space-5); }
}
.p-intro-banner__cta-title {
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--color-navy);
  margin-bottom: var(--space-3);
}
.p-intro-banner__cta-box {
  display: flex;
  background: #fff;
  border-radius: var(--radius-lg);
  padding: var(--space-3) 0;
}
.p-intro-banner__cta-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  padding: 0 var(--space-2);
  text-align: center;
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-navy);
}
.p-intro-banner__cta-item + .p-intro-banner__cta-item { border-left: 1px solid var(--color-border); }
.p-intro-banner__cta-item svg { width: 26px; height: 26px; }
.p-intro-banner__cta-item:nth-child(1) svg { color: var(--color-grad-start); }
.p-intro-banner__cta-item:nth-child(2) svg { color: var(--color-grad-end); }
.p-intro-banner__cta-item:nth-child(3) svg { color: var(--color-green); }

/* =========================================================
   4カラムバナー(p-feature-banner)
   ========================================================= */
.p-feature-banner {
  position: relative;
  background: var(--color-yellow);
  padding: var(--space-6) 0;
}
.p-feature-banner__deco {
  position: absolute;
  top: -1px;
  left: 0;
  width: 100%;
  height: 24px;
  line-height: 0;
}
.p-feature-banner__deco svg { width: 100%; height: 100%; display: block; }
.p-feature-banner__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-4);
}
@media (min-width: 768px) {
  .p-feature-banner__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .p-feature-banner__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.p-feature-banner__item { padding: 0; }
@media (min-width: 768px) {
  .p-feature-banner__item { padding: 0 var(--space-4); border-left: 1px solid rgba(255, 255, 255, .6); }
}
@media (min-width: 1024px) {
  .p-feature-banner__item { border-left: 1px solid rgba(255, 255, 255, .6); padding-left: var(--space-4); }
}
.p-feature-banner__item h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-navy);
  margin-bottom: var(--space-2);
}
.p-feature-banner__item p {
  font-size: 1rem;
  color: var(--color-text);
  margin-bottom: var(--space-3);
}
.p-feature-banner__link { font-size: 1rem; font-weight: 700; color: var(--color-navy); }
.p-feature-banner__link:hover { text-decoration: underline; }

/* =========================================================
   デュアルバナー(p-dual-banner)
   ========================================================= */
.p-dual-banner__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 1024px) {
  .p-dual-banner__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.p-dual-banner__card {
  position: relative;
  overflow: hidden;
  padding: var(--space-5) var(--space-4);
}
.p-dual-banner__card--dark { background: var(--color-navy); color: #fff; }
.p-dual-banner__card--light { background: var(--color-blue-soft); color: var(--color-text); }
@media (min-width: 1024px) {
  .p-dual-banner__card--dark { padding-left: max(var(--space-4), calc((100vw - var(--container-max)) / 2 + var(--space-4))); }
  .p-dual-banner__card--light { padding-right: max(var(--space-4), calc((100vw - var(--container-max)) / 2 + var(--space-4))); }
}
.p-dual-banner__deco {
  position: absolute;
  top: 0;
  right: 0;
  width: 40%;
  height: 100%;
  opacity: .35;
  pointer-events: none;
}
.p-dual-banner__deco svg { width: 100%; height: 100%; }
.p-dual-banner__title {
  position: relative;
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: var(--space-3);
}
.p-dual-banner__card--dark .p-dual-banner__title { color: #fff; }
.p-dual-banner__card--light .p-dual-banner__title { color: var(--color-navy); }
.p-dual-banner__badge {
  position: relative;
  display: inline-block;
  font-size: 1rem;
  font-weight: 700;
  padding: 2px 10px;
  border-radius: var(--radius-full);
  margin-bottom: var(--space-2);
}
.p-dual-banner__card--dark .p-dual-banner__badge { background: rgba(255, 255, 255, .15); color: #fff; }
.p-dual-banner__card--light .p-dual-banner__badge { background: rgba(16, 27, 61, .08); color: var(--color-navy); }
.p-dual-banner__features {
  position: relative;
  margin-bottom: var(--space-4);
  columns: 1;
}
@media (min-width: 480px) {
  .p-dual-banner__features { columns: 2; column-gap: var(--space-4); }
}
.p-dual-banner__features li {
  position: relative;
  padding-left: var(--space-4);
  margin-bottom: var(--space-2);
  font-size: 1rem;
  break-inside: avoid;
}
.p-dual-banner__features li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .75em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}
.p-dual-banner__features li[data-dot="teal"]::before { background: var(--color-teal); }
.p-dual-banner__features li[data-dot="orange"]::before { background: var(--color-orange); }
.p-dual-banner__features li[data-dot="pink"]::before { background: var(--color-grad-start); }
.p-dual-banner__features li[data-dot="purple"]::before { background: var(--color-grad-mid); }
.p-dual-banner__actions {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

/* =========================================================
   補助金別情報 + サイドバー(p-subsidy)
   ========================================================= */
.p-subsidy { position: relative; overflow: hidden; }
.p-subsidy > .l-container { position: relative; z-index: 1; }
.p-subsidy__deco {
  position: absolute;
  top: 0;
  right: 0;
  width: 220px;
  height: 260px;
  pointer-events: none;
}
.p-subsidy__deco svg { width: 100%; height: 100%; }
.p-subsidy__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-6);
}
@media (min-width: 1024px) {
  .p-subsidy__layout { grid-template-columns: minmax(0, 1fr) 320px; }
}
.p-subsidy__main {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.p-subsidy-card {
  padding-bottom: var(--space-5);
  border-bottom: 1px solid var(--color-border);
}
.p-subsidy-card:last-child { border-bottom: none; padding-bottom: 0; }

.p-subsidy-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}
@media (min-width: 901px) {
  .p-subsidy-card__head { flex-wrap: nowrap; }
}
.p-subsidy-card__title { flex-shrink: 0; font-size: 1.2rem; font-weight: 700; color: var(--color-navy); }
.p-subsidy-card__stats {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 4px 10px;
  flex: 1 1 auto;
  min-width: 0;
  padding: 6px 12px;
  border-radius: var(--radius-full);
  font-size: 1rem;
  white-space: nowrap;
  color: var(--color-text-sub);
}
.p-subsidy-card__stats-strong { font-weight: 700; color: var(--color-navy); }
.p-subsidy-card--blue .p-subsidy-card__stats { background: color-mix(in srgb, var(--color-grad-end) 10%, #fff); }
.p-subsidy-card--blue .p-subsidy-card__stats b { color: var(--color-grad-end); }
.p-subsidy-card--orange .p-subsidy-card__stats { background: color-mix(in srgb, var(--color-orange) 10%, #fff); }
.p-subsidy-card--orange .p-subsidy-card__stats b { color: var(--color-orange-dark); }
.p-subsidy-card--pink .p-subsidy-card__stats { background: var(--color-subsidy-labor-saving-soft); }
.p-subsidy-card--pink .p-subsidy-card__stats b { color: var(--color-subsidy-labor-saving-dark); }
.p-subsidy-card--purple .p-subsidy-card__stats { background: color-mix(in srgb, var(--color-grad-mid) 10%, #fff); }
.p-subsidy-card--purple .p-subsidy-card__stats b { color: var(--color-grad-mid); }

.p-subsidy-card__cta {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  white-space: nowrap;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  padding: 6px 6px 6px 16px;
  border-radius: var(--radius-full);
}
.p-subsidy-card__cta-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .3);
}
.p-subsidy-card__cta-icon svg { width: 16px; height: 16px; }
.p-subsidy-card--blue .p-subsidy-card__cta { background: var(--color-grad-end); }
.p-subsidy-card--orange .p-subsidy-card__cta { background: var(--color-orange); }
.p-subsidy-card--pink .p-subsidy-card__cta {
  background: var(--color-subsidy-labor-saving);
  color: var(--color-subsidy-labor-saving-ink);
}
.p-subsidy-card--purple .p-subsidy-card__cta { background: var(--color-grad-mid); }
@media (max-width: 640px) {
  .p-subsidy-card__stats { flex-wrap: wrap; white-space: normal; }
}

.p-subsidy-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
}
.p-subsidy-card__tag {
  flex-shrink: 0;
  white-space: nowrap;
  font-size: 1rem;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  color: var(--color-text-sub);
}
.p-subsidy-card__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-4);
}
@media (min-width: 640px) {
  .p-subsidy-card__body { grid-template-columns: 96px minmax(0, 1fr) 160px; align-items: stretch; }
}
.p-subsidy-card__badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  padding: var(--space-2);
  text-align: center;
}
.p-subsidy-card--blue .p-subsidy-card__badge { background: var(--color-grad-end); }
.p-subsidy-card--orange .p-subsidy-card__badge { background: var(--color-orange); }
.p-subsidy-card--pink .p-subsidy-card__badge {
  background: var(--color-subsidy-labor-saving);
  color: var(--color-subsidy-labor-saving-ink);
}
.p-subsidy-card--purple .p-subsidy-card__badge { background: var(--color-grad-mid); }
.p-subsidy-card__info { display: flex; flex-direction: column; justify-content: center; gap: var(--space-2); }
.p-subsidy-card__period { font-weight: 700; color: var(--color-navy); }
.p-subsidy-card__note { font-size: 1rem; line-height: 1.6; color: var(--color-text-sub); }
.p-subsidy-card__thumb { position: relative; }
.p-subsidy-card__thumb .c-figure-placeholder { aspect-ratio: 4 / 3; border-radius: 0; }
.p-subsidy-card__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 36px;
  height: 36px;
  color: #fff;
  background: rgba(16, 27, 61, .7);
  border-radius: 50%;
  padding: 8px;
}
.p-subsidy-card__thumb-caption {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, 22px);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  color: var(--color-text-sub);
  white-space: nowrap;
}
.p-subsidy-card__links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
  margin-top: var(--space-3);
  font-size: 1rem;
  color: var(--color-text-sub);
}
.p-subsidy-card__links a:hover { text-decoration: underline; }

.p-sidebar { display: flex; flex-direction: column; gap: var(--space-4); }
.p-sidebar-box {
  padding: var(--space-4);
  background: var(--color-bg-sub);
}
.p-sidebar-box__title { font-weight: 700; color: var(--color-navy); margin-bottom: var(--space-3); }
.p-sidebar-box__list { display: flex; flex-direction: column; gap: var(--space-3); margin-bottom: var(--space-3); }
.p-sidebar-box__list li {
  display: flex;
  gap: var(--space-2);
  font-size: 1rem;
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--color-border);
}
.p-sidebar-box__list li:last-child { border-bottom: none; padding-bottom: 0; }
.p-sidebar-box__list a:hover { text-decoration: underline; }
.p-sidebar-box__q {
  flex-shrink: 0;
  font-weight: 700;
  color: var(--color-accent);
}
.p-sidebar-box__more { display: block; margin-top: var(--space-3); font-size: 1rem; font-weight: 700; color: var(--color-navy); }
.p-sidebar-box__more:hover { text-decoration: underline; }
.p-sidebar-box__ai-form { display: flex; gap: var(--space-2); }
.p-sidebar-box__ai-input {
  flex: 1;
  min-width: 0;
  padding: 10px 14px;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font: inherit;
  font-size: 1rem;
}
.p-sidebar-box__ai-submit {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: none;
  background: var(--color-grad-end);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-sidebar-box__ai-submit svg { width: 18px; height: 18px; }
.p-sidebar-box__ai-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-3);
}
.p-sidebar-box__ai-chip {
  font: inherit;
  font-size: 1rem;
  color: var(--color-text);
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  padding: 6px 14px;
  cursor: pointer;
}
.p-sidebar-box__ai-chip:hover { border-color: var(--color-accent); color: var(--color-accent); }
.p-sidebar-box__video {
  position: relative;
}
.p-sidebar-box__video .c-figure-placeholder { aspect-ratio: 16 / 10; border-radius: 0; }
.p-sidebar-box__video .p-subsidy-card__play {
  width: 32px;
  height: 32px;
  padding: 7px;
}

/* =========================================================
   採用バナー(p-recruit-banner)
   ========================================================= */
.p-recruit-banner {
  position: relative;
  overflow: hidden;
  color: #fff;
  padding: var(--space-7) 0;
}
.p-recruit-banner__deco {
  position: absolute;
  inset: 0;
  z-index: -1;
}
.p-recruit-banner__deco svg { width: 100%; height: 100%; }
.p-recruit-banner__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
  align-items: center;
}
@media (min-width: 1024px) {
  .p-recruit-banner__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.p-recruit-banner__label {
  display: inline-block;
  font-weight: 700;
  letter-spacing: .1em;
  font-size: 1rem;
  padding: 4px 16px;
  border: 1px solid #fff;
  border-radius: var(--radius-full);
  margin-bottom: var(--space-3);
}
.p-recruit-banner__company { font-size: 1rem; margin-bottom: var(--space-2); }
.p-recruit-banner__title { font-size: 1.8rem; font-weight: 700; margin-bottom: var(--space-3); }
.p-recruit-banner__text { font-size: 1rem; margin-bottom: var(--space-4); opacity: .9; }
.p-recruit-banner__btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 14px 28px;
  border-radius: var(--radius-full);
  background: #fff;
  color: var(--color-teal-dark);
  font-weight: 700;
}
.p-recruit-banner__btn:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.p-recruit-banner__photos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
}
.p-recruit-banner__photos .c-photo-tile { aspect-ratio: 1; background: rgba(255, 255, 255, .18); border-radius: 0; }
.p-recruit-banner__photos .c-photo-tile:nth-child(2) { margin-top: var(--space-5); }

/* =========================================================
   お知らせ(p-news)
   ========================================================= */
.p-news { position: relative; overflow: hidden; }
.p-news > .l-container { position: relative; z-index: 1; }
.p-news__deco {
  position: absolute;
  bottom: 0;
  left: -40px;
  width: 200px;
  height: 260px;
  transform: rotate(180deg);
  pointer-events: none;
}
.p-news__deco svg { width: 100%; height: 100%; }

/* =========================================================
   お知らせタブ(p-news-tabs)
   ========================================================= */
.p-news-tabs__nav {
  display: flex;
  gap: var(--space-5);
  border-bottom: 1px solid var(--color-border);
  margin-bottom: var(--space-5);
}
.p-news-tabs__tab {
  background: none;
  border: none;
  padding: var(--space-3) 0;
  font-weight: 700;
  font-size: 1rem;
  color: var(--color-text-sub);
  border-bottom: 3px solid transparent;
  margin-bottom: -1px;
}
.p-news-tabs__tab.is-active {
  color: var(--color-navy);
  border-bottom-color: var(--color-accent);
}
.p-news-tabs__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 768px) {
  .p-news-tabs__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--space-5);
  }
}
.p-news-tabs__footer { text-align: center; margin-top: var(--space-5); }

/* =========================================================
   service.html専用メインビジュアル(p-service-hero)
   ========================================================= */
.p-service-hero {
  position: relative;
  overflow: hidden;
  background: var(--color-bg-sub);
  padding: var(--space-7) 0;
}
.p-service-hero__deco {
  position: absolute;
  opacity: .5;
  pointer-events: none;
}
.p-service-hero__deco svg { width: 100%; height: 100%; }
.p-service-hero__deco--left { top: 0; left: -60px; width: 200px; height: 65%; }
.p-service-hero__deco--right { bottom: 0; right: -40px; width: 180px; height: 55%; transform: scaleX(-1); }

.p-service-hero__inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-6);
}
@media (min-width: 1024px) {
  .p-service-hero__inner { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: center; }
}

.p-service-hero__title {
  font-size: 1.9rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--color-navy);
  margin-bottom: var(--space-4);
}
@media (min-width: 768px) {
  .p-service-hero__title { font-size: 2.4rem; }
}
.p-service-hero__title-accent {
  background: linear-gradient(90deg, var(--color-grad-end), var(--color-navy-soft));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.p-service-hero__lead {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--color-text);
  margin-bottom: var(--space-5);
}
.p-service-hero__lead strong { color: var(--color-grad-end); font-weight: 700; }

.p-service-hero__points { display: flex; flex-direction: column; }
.p-service-hero__points li {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-border);
  font-weight: 700;
  color: var(--color-navy);
  font-size: 1rem;
}
.p-service-hero__points li:last-child { border-bottom: none; }
.p-service-hero__points-icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 2px solid var(--color-grad-end);
  color: var(--color-grad-end);
}
.p-service-hero__points-icon svg { width: 20px; height: 20px; }

.p-service-hero__side { display: flex; flex-direction: column; gap: var(--space-4); }
.p-service-hero__cta-wrap {
  background: var(--color-bg);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: var(--space-3);
}
.p-service-hero__cta {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: 18px 24px;
  border-radius: var(--radius-md);
  background: linear-gradient(90deg, var(--color-grad-end), var(--color-navy-soft));
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
}
.p-service-hero__cta:hover { transform: translateY(-2px); }
.p-service-hero__cta svg:first-child { width: 26px; height: 26px; flex-shrink: 0; }
.p-service-hero__cta span { flex: 1; }
.p-service-hero__cta-arrow { width: 22px; height: 22px; flex-shrink: 0; }

.p-service-hero__notice {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4);
  background: var(--color-bg);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}
.p-service-hero__notice svg { flex-shrink: 0; width: 32px; height: 32px; color: var(--color-grad-end); }
.p-service-hero__notice-title { font-weight: 700; color: var(--color-navy); margin-bottom: 2px; }
.p-service-hero__notice-text { font-size: 1rem; color: var(--color-text-sub); }
.p-service-hero__notice-text strong { color: var(--color-grad-end); }

.p-service-hero__stats {
  display: flex;
  background: var(--color-bg);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.p-service-hero__stats-item { flex: 1; text-align: center; padding: var(--space-4) var(--space-2); }
.p-service-hero__stats-item + .p-service-hero__stats-item { border-left: 1px solid var(--color-border); }
.p-service-hero__stats-item svg { width: 28px; height: 28px; color: var(--color-grad-end); margin: 0 auto var(--space-2); }
.p-service-hero__stats-label { font-size: 1rem; color: var(--color-text-sub); margin-bottom: 2px; }
.p-service-hero__stats-value { font-size: 1.4rem; font-weight: 700; color: var(--color-navy); }
.p-service-hero__stats-value span { font-size: 1rem; font-weight: 700; margin-left: 2px; }

/* =========================================================
   コラム一覧(p-blog-list)
   ========================================================= */
.p-blog-list__banner {
  margin: 0 0 var(--space-5);
}
.p-blog-list__banner img {
  width: 100%;
  border-radius: var(--radius-md);
}
.p-blog-list__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
}
@media (min-width: 768px) {
  .p-blog-list__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .p-blog-list__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.p-blog-card {
  display: flex;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: box-shadow .15s ease, transform .15s ease;
}
.p-blog-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.p-blog-card__link {
  display: flex;
  flex-direction: column;
  width: 100%;
}
.p-blog-card__thumb { aspect-ratio: 16 / 9; overflow: hidden; }
.p-blog-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.p-blog-card__body { padding: var(--space-4); }
.p-blog-card__category {
  display: inline-block;
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-accent);
  background: var(--color-bg-sub);
  padding: 2px 10px;
  border-radius: var(--radius-full);
  margin-bottom: var(--space-2);
}
.p-blog-card__category--combined {
  color: var(--color-subsidy-new-combined-dark);
  background: var(--color-subsidy-new-combined-soft);
}
.p-blog-card__title {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-navy);
  margin-bottom: var(--space-2);
}
.p-blog-card__excerpt {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--color-text-sub);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* =========================================================
   ページネーション(c-pagination)
   ========================================================= */
.c-pagination {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-6);
  margin-bottom: var(--space-6);
}
.c-pagination__item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 var(--space-3);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-navy);
}
.c-pagination__item:hover { border-color: var(--color-accent); }
.c-pagination__item.is-active {
  background: var(--color-navy);
  border-color: var(--color-navy);
  color: #fff;
}
.c-pagination__item--next { color: var(--color-text-sub); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* =========================================================
   画像メインビジュアル(p-image-hero)
   ========================================================= */
.p-image-hero {
  background: var(--color-bg-sub);
  overflow: clip;
}
.p-image-hero picture,
.p-image-hero img {
  width: 100%;
  max-width: 1200px;
  margin: auto;
}

/* =========================================================
   統合フォーム(p-form)
   ========================================================= */
.p-form-intro {
  max-width: 760px;
  margin-inline: auto;
}
.p-form-notice {
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-left: 4px solid var(--color-blue-strong);
  border-radius: var(--radius-md);
  background: var(--color-blue-soft);
  color: var(--color-navy);
}
.p-form-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
  align-items: start;
}
.p-form-guide,
.p-form-panel,
.p-complete-panel {
  min-width: 0;
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-bg);
  box-shadow: var(--shadow-sm);
}
.p-form-guide {
  background: var(--color-bg-sub);
}
.p-form-guide__list {
  display: grid;
  gap: var(--space-4);
}
.p-form-guide__item {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: var(--space-3);
  align-items: start;
}
.p-form-guide__number {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  background: var(--color-blue-soft);
  color: var(--color-blue-strong);
  font-weight: 700;
}
.p-form-guide__title {
  margin-bottom: var(--space-1);
  color: var(--color-navy);
  font-weight: 700;
}
.p-form {
  display: grid;
  gap: var(--space-5);
}
.p-form__group {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.p-form__label,
.p-form__legend {
  display: block;
  margin-bottom: var(--space-2);
  color: var(--color-navy);
  font-weight: 700;
}
.c-form-required,
.c-form-optional {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  margin-left: var(--space-2);
  padding: 0 var(--space-2);
  border-radius: var(--radius-sm);
  font-size: 1rem;
  line-height: 1;
  vertical-align: middle;
  white-space: nowrap;
}
.c-form-required {
  background: var(--color-grad-start);
  color: var(--color-navy);
}
.c-form-optional {
  background: var(--color-bg-sub);
  color: var(--color-text-sub);
}
.c-form-control {
  width: 100%;
  min-height: 48px;
  padding: 11px var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  outline: 2px solid transparent;
  background: var(--color-bg);
  color: var(--color-text);
  font: inherit;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
textarea.c-form-control {
  min-height: 144px;
  resize: vertical;
}
.c-form-control:hover {
  border-color: var(--color-grad-end);
}
.c-form-control:focus-visible {
  border-color: var(--color-grad-end);
  outline: 2px solid var(--color-grad-end);
  outline-offset: 1px;
  box-shadow: 0 0 0 4px var(--color-blue-soft);
}
.c-form-control[aria-invalid="true"] {
  border-color: var(--color-grad-start);
  background: color-mix(in srgb, var(--color-grad-start) 5%, var(--color-bg));
}
.c-form-control:disabled {
  opacity: .55;
  cursor: not-allowed;
  background: var(--color-bg-sub);
}
.p-form__checks {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-2);
}
.c-form-check {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  min-width: 0;
  min-height: 48px;
  padding: 11px var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg);
  cursor: pointer;
}
.c-form-check:hover {
  border-color: var(--color-grad-end);
  background: var(--color-blue-soft);
}
.c-form-check:active {
  background: var(--color-bg-sub);
}
.c-form-check:has(input:checked) {
  border-color: var(--color-blue-strong);
  background: var(--color-blue-soft);
}
.c-form-check:has(input[aria-invalid="true"]),
.c-form-check[data-state="error"] {
  border-color: var(--color-grad-start);
}
.c-form-check:has(input:disabled),
.c-form-check[aria-disabled="true"] {
  opacity: .55;
  cursor: not-allowed;
  background: var(--color-bg-sub);
}
.c-form-check[aria-busy="true"],
.c-form-check[data-state="loading"] {
  opacity: .72;
  cursor: progress;
}
.c-form-check[data-state="success"] {
  border-color: var(--color-green-dark);
}
.c-form-check input {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  margin: 2px 0 0;
  accent-color: var(--color-blue-strong);
}
.c-form-check:focus-within {
  border-color: var(--color-grad-end);
  outline: 3px solid var(--color-blue-soft);
  outline-offset: 2px;
}
.c-form-check span {
  min-width: 0;
}
.p-form__helper,
.p-form__error {
  display: block;
  min-height: 1.7em;
  margin-top: var(--space-1);
  font-size: 1rem;
}
.p-form__helper {
  color: var(--color-text-sub);
}
.p-form__error {
  color: color-mix(in srgb, var(--color-grad-start) 75%, var(--color-navy));
  font-weight: 700;
}
.p-form__other[hidden],
.p-form__confirm[hidden] {
  display: none;
}
.p-form__privacy {
  max-height: 220px;
  overflow: auto;
  padding: var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-bg-sub);
  font-size: 1rem;
}
.p-form__actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
}
.p-form__actions .c-btn {
  width: 100%;
}
.p-form__confirm {
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg-sub);
}
.p-form__confirm-list {
  display: grid;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}
.p-form__confirm-list div {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-1);
  padding-bottom: var(--space-2);
  border-bottom: 1px solid var(--color-border);
}
.p-form__confirm-list dt {
  color: var(--color-text-sub);
  font-size: 1rem;
  font-weight: 700;
}
.p-form__confirm-list dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}
.p-complete-panel {
  max-width: 760px;
  margin-inline: auto;
  text-align: center;
}
.p-complete-panel__icon {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  margin: 0 auto var(--space-4);
  border-radius: var(--radius-full);
  background: var(--color-blue-soft);
  color: var(--color-blue-strong);
  font-size: 2rem;
  font-weight: 700;
}

/* =========================================================
   FAQ検索・共通一覧レイアウト
   ========================================================= */
.p-faq-tools {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg-sub);
}
.p-faq-tools__search {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-2);
}
.p-faq-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
}
.p-faq-nav {
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg-sub);
}
.p-faq-nav__list {
  display: grid;
  gap: var(--space-2);
  margin-top: var(--space-3);
}
.p-faq-nav__button {
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-bg);
  color: var(--color-navy);
  text-align: left;
}
.p-faq-nav__button.is-active {
  border-color: var(--color-blue-strong);
  background: var(--color-blue-strong);
  color: var(--color-bg);
}
.p-faq__empty {
  padding: var(--space-5);
  border-radius: var(--radius-md);
  background: var(--color-bg-sub);
  text-align: center;
}

/* =========================================================
   支援事例・コンセプトページ共通グリッド
   ========================================================= */
.p-card-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-4);
}
.p-media-card {
  min-width: 0;
  overflow: clip;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg);
}
.p-media-card__image {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  overflow: hidden;
}
.p-media-card__body {
  padding: var(--space-4);
}
.p-media-card__title {
  margin-bottom: var(--space-2);
  color: var(--color-navy);
  font-size: 1.08rem;
  font-weight: 700;
}
.p-media-card__text {
  margin-bottom: var(--space-4);
  color: var(--color-text-sub);
  font-size: 1rem;
}
.p-concept-lead {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
  align-items: center;
}
.p-concept-lead__image {
  width: 100%;
  border-radius: var(--radius-md);
}
.p-case-summary {
  padding: var(--space-4);
  border-left: 4px solid var(--color-blue-strong);
  background: var(--color-bg-sub);
}
.p-case-points {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
}
.p-case-points__item {
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}
.p-case-points__item h3 {
  margin-bottom: var(--space-2);
  color: var(--color-navy);
  font-size: 1rem;
}

@media (min-width: 768px) {
  .p-form-panel,
  .p-form-guide,
  .p-complete-panel {
    padding: var(--space-5);
  }
  .p-form__checks {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .p-form__actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .p-form__confirm-list div {
    grid-template-columns: 160px minmax(0, 1fr);
  }
  .p-faq-tools__search {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .p-card-grid,
  .p-case-points {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .p-concept-lead {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .p-form-layout {
    grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr);
  }
  .p-form-layout--contact {
    grid-template-columns: minmax(0, 1fr);
    max-width: 880px;
    margin-inline: auto;
  }
  .p-faq-layout {
    grid-template-columns: 240px minmax(0, 1fr);
  }
  .p-card-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .p-case-points {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
+
/* =========================================================
   Shared site header / footer
   Source of truth for TOP and lower pages.
   ========================================================= */
/* =========================================================
   Latest supplied reference geometry
   Top bar: 38px, header utility row: 99px, category row: 76px.
   ========================================================= */
@media (min-width: 75.0625rem) {
  .l-topbar {
    height: var(--size-topbar-reference);
  }

  .l-topbar__inner {
    width: 100%;
    max-width: none;
    height: var(--size-topbar-reference);
    padding-inline: var(--offset-header-edge);
  }

  .l-topbar__info {
    font-size: var(--text-topbar-info-reference);
    line-height: 1;
  }

  .l-topbar__actions {
    font-size: var(--text-topbar-reference);
    line-height: 1;
  }

  .l-topbar__actions {
    align-self: stretch;
    flex-wrap: nowrap;
    align-items: center;
    gap: var(--space-5);
  }

  .l-topbar__mailmagazine {
    text-decoration: underline;
    text-underline-offset: 0.18em;
  }

  .l-topbar__contact {
    display: grid;
    width: var(--size-header-contact-width);
    height: var(--size-header-contact-height);
    place-items: center;
    background: var(--color-header-contact);
    color: var(--color-top-on-dark);
    text-decoration: none;
  }
}

@media (min-width: 1025px) {
  .l-header {
    height: var(--size-header-reference);
  }

  .l-header__inner {
    width: 100%;
    max-width: none;
    height: var(--size-header-reference);
    min-height: var(--size-header-reference);
    padding: 0;
    align-items: center;
  }

  .l-header__brand {
    position: absolute;
    z-index: var(--z-raised);
    top: calc(var(--size-header-utility-height) / 2);
    left: var(--offset-header-logo);
    width: var(--size-header-brand-width);
    flex-direction: column;
    align-items: flex-start;
    transform: translateY(-50%);
  }

  .l-header__logo {
    position: static;
    width: var(--size-header-logo-width);
    transform: none;
  }

  .l-header__logo img {
    width: var(--size-header-logo-width);
    height: auto;
  }

  .l-header__certification {
    display: block;
    margin-block-start: var(--offset-header-cert-gap);
    color: var(--color-header-ink);
    font-size: var(--text-header-cert-reference);
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
  }

  .l-header__nav {
    position: absolute;
    inset: 0;
    width: 100%;
    height: var(--size-header-reference);
    margin: 0;
    display: block;
  }

  .l-header__utility {
    position: absolute;
    inset: 0 0 auto;
    display: flex;
    align-items: center;
    height: var(--size-header-utility-height);
    padding: 0 var(--offset-header-utility-right) 0 var(--offset-header-utility-links);
    border-block-end: var(--rule-top-hairline) solid var(--color-header-rule);
  }

  .l-header__utility-links {
    position: static;
    display: flex;
    width: 100%;
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: var(--space-5);
    align-items: center;
  }

  .l-header__utility-links a {
    font-size: var(--text-header-link-reference);
    font-weight: 700;
    line-height: 1;
  }

  .l-header__gnav {
    position: absolute;
    inset: var(--size-header-utility-height) 0 auto;
    display: flex;
    align-items: stretch;
    width: 100%;
    height: var(--size-header-gnav-height);
    padding: 0;
    border-block-end: var(--rule-top-hairline) solid var(--color-header-rule);
  }

  .l-header__gnav-group {
    position: relative;
    display: flex;
    align-items: center;
    height: 100%;
  }

  .l-header__gnav-group:first-child {
    flex: 0 0 var(--size-header-gnav-primary);
    gap: clamp(1.5rem, 2.9vw, 3rem);
    padding-inline: var(--offset-header-gnav-label) var(--space-5);
  }

  .l-header__gnav-group:first-child::after {
    content: "";
    position: absolute;
    inset: auto 0 -1px;
    height: 2px;
    background: linear-gradient(90deg,
      var(--color-top-blue-deep) 0 27%,
      var(--color-top-pink) 27% 49%,
      var(--color-top-yellow) 49% 68%,
      var(--color-top-green) 68% 83%,
      var(--color-top-orange) 83% 100%);
  }

  .l-header__gnav-group + .l-header__gnav-group {
    flex: 1;
    margin: 0;
    gap: clamp(1.25rem, 2.45vw, 2.5rem);
    padding: 0 var(--space-4) 0 1.75rem;
    border: 0;
    border-inline-start: var(--rule-top-hairline) solid var(--color-top-rule);
  }

  .l-header__gnav-label {
    flex: none;
    margin: 0;
    color: var(--color-top-blue-deep);
    font-size: var(--text-header-label-reference);
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
  }

  .l-header__gnav-list {
    display: flex;
    flex-wrap: nowrap;
    flex: 1;
    justify-content: space-between;
    gap: var(--space-3);
  }

  .l-header__gnav-list a {
    font-size: var(--text-header-link-reference);
    font-weight: 700;
    line-height: 1;
  }
}

@media (min-width: 1025px) and (max-width: 1540px) {
  .l-header__brand {
    width: 310px;
  }

  .l-header__utility {
    padding-inline: 360px 80px;
  }

  .l-header__utility-links {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: var(--space-3) var(--space-5);
  }

  .l-header__gnav-group:first-child {
    flex-basis: 100%;
  }

  .l-header__gnav-list {
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .l-header__gnav-group:last-child {
    display: none;
  }

  .l-header__nav.is-open .l-header__gnav-group:last-child {
    position: absolute;
    z-index: var(--z-raised);
    inset: calc(100% + 1px) var(--space-4) auto auto;
    display: flex;
    width: min(360px, calc(100vw - (var(--space-4) * 2)));
    height: auto;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4);
    border: var(--rule-top-hairline) solid var(--color-header-rule);
    background: var(--color-header-surface);
    box-shadow: 0 12px 32px oklch(20% 0.02 257.3 / 0.18);
  }

  .l-header__nav.is-open .l-header__gnav-group:last-child .l-header__gnav-list {
    flex-direction: column;
    align-items: flex-start;
  }

  .l-header__nav-toggle {
    position: absolute;
    z-index: calc(var(--z-raised) + 1);
    top: calc((var(--size-header-utility-height) - 24px) / 2);
    right: var(--offset-header-edge);
    display: block;
  }
}

/* =========================================================
   Shared site footer — supplied 「フッターA」 reference
   Reference canvas: 1672 × 941
   ========================================================= */
.p-footer {
  --footer-blue: #073daf;
  --footer-blue-deep: #052a72;
  --footer-navy: #06234c;
  --footer-pink: #f70770;
  --footer-cyan: #04b8ed;
  --footer-yellow: #ffe000;
  --footer-green: #83cf2a;
  --footer-ink: #24262b;
  --footer-rule: #d9dde5;
  width: 100%;
  color: var(--footer-ink);
  background: #fff;
  font-family: var(--font-koduka-gothic);
  line-height: 1.7;
}

.p-footer a {
  transition: color var(--duration-top-hover) var(--ease-top-out), opacity var(--duration-top-hover) var(--ease-top-out), background-color var(--duration-top-hover) var(--ease-top-out), transform var(--duration-top-hover) var(--ease-top-out);
}

.p-footer-consult {
  height: 212px;
  padding: 24px max(5.75vw, 24px) 15px;
  overflow: hidden;
  background: linear-gradient(118deg, #0646bf 0%, #0739a6 58%, #062e80 100%);
}

.p-footer-consult__panel {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.38fr) minmax(460px, .88fr);
  align-items: center;
  width: min(1480px, 100%);
  height: 173px;
  margin: 0 auto;
  padding: 25px 96px 24px 112px;
  border: 1px solid #d6dbe6;
  border-radius: 7px;
  background: linear-gradient(104deg, #fff 0%, #fff 72%, #fbfdff 100%);
  box-shadow: 0 1px 5px rgba(5, 32, 84, .1);
}

.p-footer-consult__copy {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  gap: 27px;
  min-width: 0;
}

.p-footer-consult__icon {
  flex: 0 0 72px;
  width: 72px;
  height: 72px;
  margin-top: 12px;
  color: var(--footer-blue);
}

.p-footer-consult__title {
  color: #202124;
  font-size: clamp(1.45rem, 1.83vw, 1.96rem);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .035em;
  white-space: nowrap;
}

.p-footer-consult__title span {
  color: var(--footer-blue);
}

.p-footer-consult__title small {
  margin-left: .28em;
  color: #202124;
  font-size: .48em;
  font-weight: 700;
  letter-spacing: .06em;
}

.p-footer-consult__description {
  margin-top: 13px;
  color: #33363b;
  font-size: .89rem;
  font-weight: 500;
  line-height: 2.05;
  letter-spacing: .02em;
}

.p-footer-consult__action {
  position: relative;
  z-index: 2;
  min-width: 0;
}

.p-footer-consult__points {
  display: grid;
  grid-template-columns: .85fr 1.25fr .88fr;
  gap: 12px;
  margin-bottom: 14px;
}

.p-footer-consult__points li {
  display: flex;
  height: 34px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid #f0f2f6;
  border-radius: 5px;
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 4px 14px rgba(10, 48, 125, .025);
  color: #282b31;
  font-size: .82rem;
  font-weight: 700;
  white-space: nowrap;
}

.p-footer-consult__points li span {
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  border: 2px solid var(--footer-blue);
  border-radius: 50%;
  color: var(--footer-blue);
  font-size: .68rem;
  line-height: 1;
}

.p-footer-consult__button {
  position: relative;
  display: grid;
  width: 100%;
  height: 58px;
  place-items: center;
  border-radius: 999px;
  background: linear-gradient(90deg, #0749c4 0%, #0639a9 65%, #07338d 100%);
  color: #fff;
  font-size: 1.16rem;
  font-weight: 700;
  letter-spacing: .07em;
}

.p-footer-consult__button span,
.p-footer-mini-cta a span {
  position: absolute;
  top: 50%;
  right: 21px;
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: var(--footer-blue);
  font-size: 1.7rem;
  font-weight: 400;
  line-height: 1;
  transform: translateY(-50%);
}

.p-footer-stripes,
.p-footer-stripes i {
  position: absolute;
  display: block;
  pointer-events: none;
}

.p-footer-stripes i {
  width: 14px;
  border-radius: 1px;
  transform: rotate(34deg);
}

.p-footer-stripes--consult-left {
  z-index: 1;
  inset: -25px auto auto 28px;
  width: 65px;
  height: 178px;
}

.p-footer-stripes--consult-left i:nth-child(1) { left: 4px; top: 0; height: 53px; background: var(--footer-green); }
.p-footer-stripes--consult-left i:nth-child(2) { left: 18px; top: 1px; width: 18px; height: 72px; background: var(--footer-yellow); }
.p-footer-stripes--consult-left i:nth-child(3) { left: 4px; top: 58px; width: 13px; height: 90px; background: #139de7; }
.p-footer-stripes--consult-left i:nth-child(4) { left: -3px; top: 117px; width: 11px; height: 65px; background: var(--footer-pink); }

.p-footer-stripes--consult-right {
  z-index: 1;
  inset: -36px -74px auto auto;
  width: 190px;
  height: 250px;
}

.p-footer-stripes--consult-right i:nth-child(1) { left: 68px; top: -4px; width: 12px; height: 75px; background: var(--footer-yellow); }
.p-footer-stripes--consult-right i:nth-child(2) { left: 91px; top: 4px; width: 11px; height: 78px; background: var(--footer-pink); }
.p-footer-stripes--consult-right i:nth-child(3) { left: 103px; top: 23px; width: 37px; height: 235px; background: var(--footer-cyan); }
.p-footer-stripes--consult-right i:nth-child(4) { left: 70px; top: 92px; width: 41px; height: 170px; background: #f30e83; }
.p-footer-stripes--consult-right i:nth-child(5) { left: 113px; top: 92px; width: 17px; height: 165px; background: #0742bd; }

.p-footer-main {
  height: 656px;
  background: linear-gradient(104deg, #fff 0%, #fdfdfe 65%, #fbfcfe 100%);
}

.p-footer-main__inner {
  width: min(1500px, calc(100% - 64px));
  height: 100%;
  margin: 0 auto;
  padding-top: 53px;
}

.p-footer-sitemap {
  display: grid;
  grid-template-columns: 350px minmax(0, 1fr) 212px;
  gap: 55px;
  min-height: 319px;
}

.p-footer-brand__logo {
  display: block;
  width: 230px;
  height: 47px;
  overflow: hidden;
}

.p-footer-brand__logo img {
  width: 230px;
  height: auto;
  object-fit: contain;
}

.p-footer-brand__tagline {
  margin-top: 8px;
  font-size: .86rem;
  font-weight: 700;
  letter-spacing: .01em;
}

.p-footer-brand__description {
  margin-top: 11px;
  font-size: .76rem;
  font-weight: 500;
  line-height: 1.82;
  letter-spacing: .015em;
}

.p-footer-brand__contact {
  position: relative;
  display: flex;
  width: 330px;
  height: 56px;
  margin-top: 19px;
  padding: 0 47px 0 24px;
  align-items: center;
  gap: 13px;
  border: 2px solid var(--footer-blue);
  border-radius: 999px;
  color: var(--footer-blue);
  font-size: .86rem;
  font-weight: 700;
  white-space: nowrap;
}

.p-footer-brand__contact svg {
  flex: 0 0 25px;
  width: 25px;
  height: 25px;
}

.p-footer-brand__contact b {
  position: absolute;
  top: 50%;
  right: 16px;
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 50%;
  background: var(--footer-blue);
  color: #fff;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1;
  transform: translateY(-50%);
}

.p-footer-social {
  display: flex;
  gap: 17px;
  margin-top: 24px;
}

.p-footer-social a {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: #333;
  color: #fff;
}

.p-footer-social svg {
  width: 23px;
  height: 23px;
  fill: currentColor;
}

.p-footer-nav {
  display: grid;
  grid-template-columns: .92fr 1.1fr 1.22fr 1fr;
  gap: 43px;
  min-width: 0;
  padding-top: 9px;
}

.p-footer-nav__column h2 {
  margin: 5px 0 17px;
  color: var(--footer-blue);
  font-size: .94rem;
  font-weight: 700;
  line-height: 1.35;
  white-space: nowrap;
}

.p-footer-nav__column li + li {
  margin-top: 11px;
}

.p-footer-nav__column a {
  position: relative;
  display: inline-block;
  padding-left: 18px;
  color: #31343a;
  font-size: .79rem;
  font-weight: 500;
  line-height: 1.55;
  white-space: nowrap;
}

.p-footer-nav__column a::before {
  content: "›";
  position: absolute;
  top: -.08em;
  left: 0;
  color: #30343a;
  font-size: 1.25em;
  font-weight: 400;
}

.p-footer-mini-cta {
  position: relative;
  height: 291px;
  margin-top: 14px;
  overflow: hidden;
  padding: 58px 10px 20px;
  border: 1px solid #d5d9e0;
  border-radius: 5px;
  background: #fff;
  text-align: center;
}

.p-footer-mini-cta__lead {
  font-size: .85rem;
  font-weight: 700;
  line-height: 1.7;
}

.p-footer-mini-cta__lead strong {
  color: var(--footer-pink);
  font-size: 1.1rem;
}

.p-footer-mini-cta__text {
  margin-top: 16px;
  font-size: .68rem;
  font-weight: 700;
}

.p-footer-mini-cta a {
  position: relative;
  display: grid;
  width: 191px;
  height: 48px;
  margin: 24px auto 0;
  padding-right: 22px;
  place-items: center;
  border-radius: 999px;
  background: linear-gradient(90deg, #f0086b, #fb147a);
  color: #fff;
  font-size: .86rem;
  font-weight: 700;
}

.p-footer-mini-cta a span {
  right: 10px;
  width: 23px;
  height: 23px;
  color: var(--footer-pink);
  font-size: 1.4rem;
}

.p-footer-stripes--mini-top {
  inset: -18px auto auto -6px;
  width: 60px;
  height: 95px;
}

.p-footer-stripes--mini-top i:nth-child(1) { left: 0; top: 7px; width: 14px; height: 78px; background: #0746bd; }
.p-footer-stripes--mini-top i:nth-child(2) { left: 17px; top: 11px; width: 9px; height: 57px; background: var(--footer-yellow); }
.p-footer-stripes--mini-top i:nth-child(3) { left: 29px; top: 13px; width: 9px; height: 55px; background: var(--footer-cyan); }

.p-footer-stripes--mini-bottom {
  inset: auto -16px -18px auto;
  width: 70px;
  height: 85px;
}

.p-footer-stripes--mini-bottom i:nth-child(1) { right: 27px; bottom: -4px; width: 10px; height: 75px; background: var(--footer-yellow); }
.p-footer-stripes--mini-bottom i:nth-child(2) { right: 10px; bottom: -3px; width: 12px; height: 72px; background: var(--footer-cyan); }
.p-footer-stripes--mini-bottom i:nth-child(3) { right: -2px; bottom: -3px; width: 10px; height: 69px; background: var(--footer-pink); }

.p-footer-offices {
  margin-top: 19px;
  padding-top: 10px;
  border-top: 1px solid var(--footer-rule);
}

.p-footer-offices > h2 {
  margin-left: 14px;
  padding-left: 14px;
  border-left: 5px solid var(--footer-blue);
  font-size: .91rem;
  font-weight: 700;
  line-height: 1.35;
}

.p-footer-offices__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 19px;
  margin-top: 10px;
}

.p-footer-office {
  height: 146px;
  padding: 17px 16px 12px;
  border: 1px solid #d9dde3;
  border-radius: 5px;
  background: rgba(255, 255, 255, .82);
  color: #303238;
  font-size: .73rem;
  font-style: normal;
  font-weight: 500;
  line-height: 1.55;
}

.p-footer-office h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 7px;
  color: var(--footer-blue);
  font-size: .85rem;
  font-weight: 700;
  line-height: 1.3;
}

.p-footer-office h3 svg {
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  fill: currentColor;
}

.p-footer-office p + p {
  margin-top: 6px;
}

.p-footer-office p span {
  display: inline-block;
  padding-left: 2.7em;
}

.p-footer-bottom {
  position: relative;
  height: 73px;
  overflow: hidden;
  background: linear-gradient(102deg, #05264f, #061e42);
  color: #fff;
}

.p-footer-bottom__inner {
  position: relative;
  z-index: 2;
  display: flex;
  width: min(1500px, calc(100% - 64px));
  height: 100%;
  margin: 0 auto;
  align-items: center;
  justify-content: space-between;
}

.p-footer-bottom nav {
  display: flex;
  align-items: center;
}

.p-footer-bottom nav a {
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .015em;
  white-space: nowrap;
}

.p-footer-bottom nav a + a::before {
  content: "";
  display: inline-block;
  width: 1px;
  height: 12px;
  margin: 0 15px;
  background: rgba(255, 255, 255, .75);
  vertical-align: -2px;
}

.p-footer-bottom p {
  margin-right: 120px;
  font-size: .68rem;
  font-weight: 500;
  white-space: nowrap;
}

.p-footer-stripes--bottom {
  z-index: 1;
  inset: -56px 45px auto auto;
  width: 145px;
  height: 190px;
}

.p-footer-stripes--bottom i:nth-child(1) { right: 75px; top: 0; width: 25px; height: 190px; background: var(--footer-pink); }
.p-footer-stripes--bottom i:nth-child(2) { right: 48px; top: 0; width: 20px; height: 190px; background: #0875e4; }
.p-footer-stripes--bottom i:nth-child(3) { right: 28px; top: 0; width: 13px; height: 190px; background: var(--footer-cyan); }
.p-footer-stripes--bottom i:nth-child(4) { right: 7px; top: 0; width: 9px; height: 190px; background: var(--footer-yellow); }

@media (hover: hover) and (pointer: fine) {
  .p-footer-nav a:hover,
  .p-footer-bottom a:hover {
    color: var(--footer-blue);
  }

  .p-footer-consult__button:hover,
  .p-footer-brand__contact:hover,
  .p-footer-mini-cta a:hover {
    opacity: .84;
  }

  .p-footer-social a:hover {
    background: var(--footer-blue);
    transform: translateY(-2px);
  }
}

@media (max-width: 1439px) {
  .p-footer-consult__panel {
    padding-inline: 74px;
  }

  .p-footer-main {
    height: auto;
  }

  .p-footer-main__inner {
    padding-bottom: 64px;
  }

  .p-footer-sitemap {
    grid-template-columns: 310px minmax(0, 1fr);
    gap: 44px;
  }

  .p-footer-mini-cta {
    display: none;
  }

  .p-footer-nav {
    gap: 28px;
  }

  .p-footer-office {
    height: auto;
    min-height: 154px;
  }
}

@media (max-width: 1100px) {
  .p-footer-consult {
    height: auto;
  }

  .p-footer-consult__panel {
    grid-template-columns: 1fr;
    height: auto;
    gap: 25px;
    padding: 34px 64px;
  }

  .p-footer-consult__action {
    padding-left: 99px;
  }

  .p-footer-sitemap {
    grid-template-columns: 1fr;
  }

  .p-footer-brand {
    display: grid;
    grid-template-columns: minmax(300px, .8fr) 1fr;
    column-gap: 48px;
  }

  .p-footer-brand__description,
  .p-footer-brand__contact,
  .p-footer-social {
    grid-column: 2;
  }

  .p-footer-brand__description {
    grid-row: 1 / span 2;
    margin-top: 0;
  }

  .p-footer-brand__contact {
    margin-top: 12px;
  }

  .p-footer-social {
    margin-top: 14px;
  }

  .p-footer-offices__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .p-footer-bottom {
    height: auto;
    min-height: 88px;
    padding: 18px 0;
  }

  .p-footer-bottom__inner {
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
  }

  .p-footer-bottom p {
    margin-right: 0;
  }
}

@media (max-width: 767px) {
  .p-footer-consult {
    padding: 16px;
  }

  .p-footer-consult__panel {
    gap: 22px;
    padding: 30px 22px 28px;
  }

  .p-footer-consult__copy {
    gap: 14px;
  }

  .p-footer-consult__icon {
    flex-basis: 48px;
    width: 48px;
    height: 48px;
    margin-top: 3px;
  }

  .p-footer-consult__title {
    font-size: clamp(1.05rem, 5vw, 1.35rem);
    white-space: normal;
  }

  .p-footer-consult__title small {
    display: block;
    margin: 4px 0 0;
    font-size: .66em;
  }

  .p-footer-consult__description {
    font-size: .76rem;
    line-height: 1.8;
  }

  .p-footer-consult__description br,
  .p-footer-brand__description br {
    display: none;
  }

  .p-footer-consult__action {
    padding-left: 0;
  }

  .p-footer-consult__points {
    grid-template-columns: 1fr;
    gap: 7px;
  }

  .p-footer-consult__points li {
    justify-content: flex-start;
    padding-left: 18px;
  }

  .p-footer-consult__button {
    height: 52px;
    font-size: .95rem;
  }

  .p-footer-main__inner,
  .p-footer-bottom__inner {
    width: calc(100% - 32px);
  }

  .p-footer-main__inner {
    padding-top: 44px;
    padding-bottom: 48px;
  }

  .p-footer-sitemap {
    gap: 42px;
  }

  .p-footer-brand {
    display: block;
  }

  .p-footer-brand__description {
    margin-top: 12px;
  }

  .p-footer-brand__contact {
    width: 100%;
  }

  .p-footer-nav {
    grid-template-columns: 1fr 1fr;
    gap: 34px 24px;
  }

  .p-footer-nav__column h2,
  .p-footer-nav__column a {
    white-space: normal;
  }

  .p-footer-offices {
    margin-top: 42px;
  }

  .p-footer-offices__grid {
    grid-template-columns: 1fr;
  }

  .p-footer-office {
    min-height: 0;
  }

  .p-footer-bottom nav {
    flex-wrap: wrap;
    gap: 7px 18px;
  }

  .p-footer-bottom nav a + a::before {
    display: none;
  }

  .p-footer-stripes--bottom {
    right: -30px;
    opacity: .72;
  }
}


/* Shared header interaction states */
.l-header__logo,
.l-topbar__mailmagazine,
.l-topbar__contact {
  transition:
    background-color var(--duration-top-hover) var(--ease-top-out),
    color var(--duration-top-hover) var(--ease-top-out),
    opacity var(--duration-top-hover) var(--ease-top-out);
}

.l-header__utility-links a,
.l-header__gnav-list a {
  position: relative;
}

.l-header__utility-links a::after,
.l-header__gnav-list a::after {
  position: absolute;
  inset: auto 0 -0.125rem;
  height: 2px;
  background: var(--nav-hover-color, var(--color-top-blue-deep));
  content: "";
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--duration-top-hover) var(--ease-top-out);
}

.l-header__gnav-group:first-child li:nth-child(1) { --nav-hover-color: var(--color-top-blue-deep); }
.l-header__gnav-group:first-child li:nth-child(2) { --nav-hover-color: var(--color-top-pink); }
.l-header__gnav-group:first-child li:nth-child(3) { --nav-hover-color: var(--color-top-green-dark); }
.l-header__gnav-group:first-child li:nth-child(4) { --nav-hover-color: var(--color-top-orange); }
.l-header__gnav-group:last-child li { --nav-hover-color: var(--color-top-blue-deep); }

.l-header__utility-links a:focus-visible::after,
.l-header__gnav-list a:focus-visible::after {
  transform: scaleX(1);
}

.l-topbar__mailmagazine:focus-visible { color: var(--color-top-yellow); }
.l-topbar__contact:focus-visible { background: var(--color-top-blue-deep); }

@media (hover: hover) and (pointer: fine) {
  .l-header__logo:hover { opacity: .72; }
  .l-topbar__mailmagazine:hover { color: var(--color-top-yellow); }
  .l-topbar__contact:hover {
    background: var(--color-top-blue-deep);
    text-decoration: none;
  }
  .l-header__utility-links a:hover::after,
  .l-header__gnav-list a:hover::after {
    transform: scaleX(1);
  }
}

.l-topbar__contact:active {
  opacity: .78;
  transition-duration: var(--duration-top-press);
}

@media (prefers-reduced-motion: reduce) {
  .l-header__utility-links a::after,
  .l-header__gnav-list a::after,
  .l-header__logo,
  .l-topbar__mailmagazine,
  .l-topbar__contact {
    transition-duration: .01ms;
  }
}

/* =========================================================
   共通フッターB
   _include_/footer.html / mobile first / component scoped
   ========================================================= */
.p-footer-b {
  container-name: footer-b;
  container-type: inline-size;
  overflow-x: clip;
  color: var(--color-footer-b-ink);
  background: var(--color-footer-b-paper-raised);
  font-family: var(--font-base);
  font-size: var(--text-footer-b-md);
  line-height: 1.65;
}

.p-footer-b *,
.p-footer-b *::before,
.p-footer-b *::after {
  box-sizing: border-box;
}

.p-footer-b h2,
.p-footer-b p,
.p-footer-b ul,
.p-footer-b address {
  margin: 0;
}

.p-footer-b ul {
  padding: 0;
  list-style: none;
}

.p-footer-b a {
  color: inherit;
  text-decoration: none;
}

.p-footer-b__actions {
  position: relative;
  overflow: clip;
  padding: var(--space-7) var(--space-3);
  border-bottom: 1px solid var(--color-footer-b-rule);
  background-color: var(--color-footer-b-paper);
  background-image: url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/common/img/cv_bg.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.p-footer-b__actions > h2 {
  position: relative;
  z-index: var(--z-content);
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  color: var(--color-footer-b-ink);
  font-size: clamp(var(--text-footer-b-md), 3vw, var(--text-footer-b-xl));
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
}

.p-footer-b__actions > h2 > span:first-child {
  color: var(--color-footer-b-navy);
}

.p-footer-b__headline-logo {
  display: inline-flex;
  inline-size: clamp(8rem, 16vw, 11rem);
  align-items: center;
}

.p-footer-b__headline-logo img {
  display: block;
  inline-size: 100%;
  block-size: auto;
}

.p-footer-b__action-grid {
  position: relative;
  z-index: var(--z-content);
  display: grid;
  gap: var(--space-3);
  inline-size: min(100%, 78rem);
  margin: var(--space-5) auto 0;
}

.p-footer-b-card {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 9rem;
  grid-template-columns: 2.75rem minmax(0, 1fr) 2rem;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-3);
  overflow: clip;
  border: 1px solid var(--color-footer-b-rule-strong);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-footer-b-card);
  transition: opacity var(--duration-footer-b-hover) ease-out;
}

.p-footer-b-card > svg {
  inline-size: 2.75rem;
  block-size: 2.75rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.p-footer-b-card__copy {
  display: grid;
  min-width: 0;
  gap: var(--space-2);
}

.p-footer-b-card__copy b {
  font-size: clamp(var(--text-footer-b-md), 2.5vw, var(--text-footer-b-lg));
  line-height: 1.25;
  white-space: nowrap;
}

.p-footer-b-card__copy small {
  font-size: clamp(.625rem, 1.5vw, var(--text-footer-b-xs));
  line-height: 1.8;
}

.p-footer-b-card__arrow {
  display: grid;
  inline-size: 2rem;
  block-size: 2rem;
  place-items: center;
  border-radius: var(--radius-full);
  background: var(--color-footer-b-navy);
  color: var(--color-footer-b-on-dark);
  font-size: var(--text-footer-b-lg);
  line-height: 1;
}

.p-footer-b-card__badge {
  position: absolute;
  inset-block-start: calc(var(--space-1) * -1);
  inset-inline-end: var(--space-2);
  display: grid;
  inline-size: 4.25rem;
  block-size: 4.25rem;
  place-items: center;
  border-radius: var(--radius-full);
  background: var(--color-footer-b-yellow);
  color: var(--color-footer-b-on-yellow);
  font-size: .625rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.p-footer-b .p-footer-b-card--consult {
  border-color: var(--color-footer-b-consult);
  background: var(--color-footer-b-consult);
  color: var(--color-footer-b-on-dark);
}

.p-footer-b-card--consult .p-footer-b-card__copy {
  padding-block-start: var(--space-3);
}

.p-footer-b .p-footer-b-card--contact {
  border-color: var(--color-footer-b-navy);
  background: var(--color-footer-b-navy);
  color: var(--color-footer-b-on-dark);
}

.p-footer-b-card--consult .p-footer-b-card__arrow,
.p-footer-b-card--contact .p-footer-b-card__arrow {
  background: var(--color-footer-b-paper-raised);
}

.p-footer-b-card--consult .p-footer-b-card__arrow {
  color: var(--color-footer-b-consult);
}

.p-footer-b-card--contact .p-footer-b-card__arrow {
  color: var(--color-footer-b-navy);
}

.p-footer-b-card--partner {
  border-color: var(--color-footer-b-yellow);
  background: var(--color-footer-b-yellow);
  color: var(--color-footer-b-on-yellow);
}

.p-footer-b-card:focus-visible,
.p-footer-b__nav-column a:focus-visible,
.p-footer-b__identity a:focus-visible,
.p-footer-b__bottom a:focus-visible,
.p-footer-b__back:focus-visible {
  outline: 3px solid var(--color-footer-b-cyan);
  outline-offset: 3px;
}

.p-footer-b-card:active,
.p-footer-b__back:active {
  opacity: .72;
  transition-duration: var(--duration-footer-b-press);
}

.p-footer-b-card[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: .52;
  pointer-events: none;
}

.p-footer-b-card[data-state="loading"] {
  cursor: progress;
  opacity: .78;
}

.p-footer-b-card[data-state="error"] {
  outline: 3px solid var(--color-footer-b-error);
  outline-offset: 3px;
}

.p-footer-b-card[data-state="success"] {
  outline: 3px solid var(--color-footer-b-success);
  outline-offset: 3px;
}

.p-footer-b__stripes,
.p-footer-b__stripes i {
  position: absolute;
  display: block;
  pointer-events: none;
}

.p-footer-b__stripes {
  inline-size: 7rem;
  block-size: 7rem;
}

.p-footer-b__stripes i {
  inline-size: .75rem;
  block-size: 8rem;
  transform: rotate(36deg);
}

.p-footer-b__stripes i:nth-child(1) { inset-inline-start: 0; background: var(--color-footer-b-cyan); }
.p-footer-b__stripes i:nth-child(2) { inset-inline-start: 1.25rem; background: var(--color-footer-b-pink); }
.p-footer-b__stripes i:nth-child(3) { inset-inline-start: 2.5rem; background: var(--color-footer-b-yellow); }
.p-footer-b__stripes i:nth-child(4) { inset-inline-start: 3.75rem; background: var(--color-footer-b-green); }
.p-footer-b__stripes--top-left { inset-block-start: -4.5rem; inset-inline-start: -2rem; }
.p-footer-b__stripes--top-right { inset-block-start: -3rem; inset-inline-end: -2rem; transform: scaleX(-1); }

.p-footer-b__sitemap {
  display: grid;
  gap: var(--space-6);
  inline-size: min(100%, 78rem);
  margin-inline: auto;
  padding: var(--space-7) var(--space-3);
}

.p-footer-b__nav-column h2 {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-footer-b-ink);
  font-size: var(--text-footer-b-md);
  font-weight: 700;
  line-height: 1.5;
}

.p-footer-b__nav-column h2 > span {
  inline-size: var(--space-2);
  block-size: var(--space-4);
  flex: 0 0 auto;
  border-inline-start: 3px solid var(--color-footer-b-cyan);
  border-inline-end: 3px solid var(--color-footer-b-pink);
  transform: skewX(-24deg);
}

.p-footer-b__nav-column ul {
  margin-top: var(--space-3);
  border-top: 1px solid var(--color-footer-b-rule);
}

.p-footer-b__nav-column a {
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding-block: var(--space-2);
  border-bottom: 1px solid var(--color-footer-b-rule);
  color: var(--color-footer-b-muted);
  font-size: var(--text-footer-b-xs);
  font-weight: 500;
  line-height: 1.55;
}

.p-footer-b__nav-column a > span {
  flex: 0 0 auto;
  color: var(--color-footer-b-muted);
  font-size: var(--text-footer-b-md);
}

.p-footer-b__company {
  display: grid;
  gap: var(--space-5);
  padding: var(--space-7) var(--space-3);
  border-top: 1px solid var(--color-footer-b-rule);
  background: var(--color-footer-b-paper-soft);
}

.p-footer-b__identity img {
  display: block;
  inline-size: min(11rem, 100%);
  block-size: auto;
}

.p-footer-b__identity h2 {
  margin-top: var(--space-2);
  color: var(--color-footer-b-ink);
  font-size: var(--text-footer-b-md);
  font-weight: 700;
}

.p-footer-b__identity p {
  margin-top: var(--space-2);
  color: var(--color-footer-b-muted);
  font-size: var(--text-footer-b-xs);
}

.p-footer-b__address {
  display: grid;
  align-content: center;
  gap: var(--space-2);
  color: var(--color-footer-b-ink);
  font-size: var(--text-footer-b-xs);
  font-style: normal;
}

.p-footer-b__address p {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.p-footer-b__address svg {
  inline-size: 1.5rem;
  block-size: 1.5rem;
  flex: 0 0 auto;
  fill: none;
  stroke: var(--color-footer-b-navy);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.5;
}

.p-footer-b__certs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
}

.p-footer-b__certs > div {
  display: flex;
  min-height: 5.5rem;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-2);
  border: 1px solid var(--color-footer-b-rule);
  background: var(--color-footer-b-paper-raised);
  font-size: .625rem;
  text-align: center;
}

.p-footer-b__certs b,
.p-footer-b__certs small {
  line-height: 1.35;
  white-space: nowrap;
}

.p-footer-b__cert-mark {
  inline-size: 2.5rem;
  block-size: 2.5rem;
  flex: 0 0 auto;
  border: .5rem solid var(--color-footer-b-cyan);
  transform: rotate(45deg);
}

.p-footer-b__privacy-mark {
  display: grid;
  inline-size: 2.75rem;
  block-size: 2.75rem;
  flex: 0 0 auto;
  place-items: center;
  border: 3px solid var(--color-footer-b-navy);
  border-radius: var(--radius-full);
  color: var(--color-footer-b-navy);
  font-size: var(--text-footer-b-lg);
  font-weight: 700;
}

.p-footer-b__social {
  display: grid;
  align-content: center;
  justify-items: start;
  gap: var(--space-2);
}

.p-footer-b__social h2 {
  color: var(--color-footer-b-ink);
  font-size: var(--text-footer-b-sm);
  font-weight: 700;
}

.p-footer-b__social > div {
  display: flex;
  gap: var(--space-2);
}

.p-footer-b__social > div > span {
  display: grid;
  inline-size: 2rem;
  block-size: 2rem;
  place-items: center;
  border-radius: var(--radius-full);
  color: var(--color-footer-b-on-dark);
  font-size: var(--text-footer-b-sm);
  font-weight: 700;
  line-height: 1;
}

.p-footer-b__social svg {
  inline-size: 1.25rem;
  block-size: 1.25rem;
  fill: currentColor;
}

.p-footer-b__social .is-linkedin,
.p-footer-b__social .is-facebook { background: var(--color-footer-b-navy); }
.p-footer-b__social .is-youtube { background: var(--color-footer-b-error); }
.p-footer-b__social .is-x { background: var(--color-footer-b-ink); }

.p-footer-b__bottom {
  position: relative;
  display: grid;
  gap: var(--space-3);
  overflow: clip;
  padding: var(--space-4) 5rem var(--space-4) var(--space-3);
  background: var(--gradient-footer-b-navy);
  color: var(--color-footer-b-on-dark);
  font-size: var(--text-footer-b-xs);
}

.p-footer-b__bottom > p,
.p-footer-b__bottom > nav {
  position: relative;
  z-index: var(--z-content);
}

.p-footer-b__bottom > nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
}

.p-footer-b__bottom a,
.p-footer-b__bottom nav > span {
  white-space: nowrap;
}

.p-footer-b__bottom nav > span {
  opacity: .7;
}

.p-footer-b__back {
  position: absolute;
  z-index: var(--z-raised);
  inset-block-end: var(--space-3);
  inset-inline-end: var(--space-3);
  display: grid;
  inline-size: 2.75rem;
  block-size: 2.75rem;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: var(--radius-full);
  background: var(--color-footer-b-paper-raised);
  color: var(--color-footer-b-navy);
  cursor: pointer;
  font: inherit;
  font-size: var(--text-footer-b-md);
  font-weight: 700;
}

.p-footer-b__stripes--bottom-left {
  inset-block-start: -3rem;
  inset-inline-start: -1.5rem;
  background-image: url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/common/img/bg_diadef_rt.svg");
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: contain;
}

.p-footer-b__stripes--bottom-left i {
  display: none;
}

@media (min-width: 40rem) {
  .p-footer-b__sitemap,
  .p-footer-b__company {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .p-footer-b__bottom {
    padding-inline: var(--space-7) 5rem;
  }
}

@media (min-width: 64rem) {
  .p-footer-b__sitemap {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .p-footer-b__company {
    grid-template-columns: 1.2fr 1.2fr 1.2fr .55fr;
    align-items: center;
    padding-inline: max(var(--space-3), calc((100% - 78rem) / 2));
  }

  .p-footer-b__bottom {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    padding-inline: max(var(--space-7), calc((100% - 78rem) / 2));
  }

  .p-footer-b__bottom > nav {
    justify-content: flex-end;
  }
}

@container footer-b (min-width: 72rem) {
  .p-footer-b__action-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .p-footer-b-card {
    grid-template-columns: 4.25rem minmax(0, 1fr) 2rem;
    padding-inline: var(--space-4);
  }

  .p-footer-b-card > svg {
    inline-size: 4.25rem;
    block-size: 4.25rem;
  }
}

@media (hover: hover) and (pointer: fine) {
  .p-footer-b-card:hover {
    opacity: .9;
  }

  .p-footer-b__nav-column a:hover,
  .p-footer-b__bottom a:hover {
    text-decoration: underline;
    text-underline-offset: .2em;
  }

  .p-footer-b__back:hover {
    opacity: .82;
  }
}

@media (prefers-reduced-motion: reduce) {
  .p-footer-b-card,
  .p-footer-b__back {
    transition-duration: .01ms;
  }
}

/* =========================================================
   Subsidy AI assistant
   ========================================================= */
.p-subsidy-ai,
.p-subsidy-ai * {
  box-sizing: border-box;
}

.p-subsidy-ai {
  color: var(--color-subsidy-ai-ink);
  font-family: var(--font-base);
  line-height: 1.6;
}

.p-subsidy-ai__launcher[hidden],
.p-subsidy-ai__panel[hidden],
.p-subsidy-ai__lock[hidden] {
  display: none !important;
}

.p-subsidy-ai__error[hidden] {
  display: block !important;
  visibility: hidden;
}

.p-subsidy-ai__launcher {
  position: fixed;
  z-index: var(--z-subsidy-ai);
  right: 1.25rem;
  bottom: max(5rem, calc(env(safe-area-inset-bottom) + 1rem));
  display: inline-flex;
  min-height: 3.25rem;
  align-items: center;
  gap: .625rem;
  padding: .75rem 1.25rem;
  border: 0;
  border-radius: 999px;
  background: var(--gradient-subsidy-ai-header);
  box-shadow: var(--shadow-subsidy-ai);
  color: var(--color-subsidy-ai-on-dark);
  cursor: pointer;
  font: inherit;
  font-size: .9375rem;
  font-weight: 700;
  letter-spacing: .01em;
  white-space: nowrap;
  transition: filter var(--duration-subsidy-ai) ease, transform var(--duration-subsidy-ai) ease;
}

.p-subsidy-ai__launcher svg,
.p-subsidy-ai__mark svg,
.p-subsidy-ai__tools svg,
.p-subsidy-ai__lock-icon svg {
  width: 1.5rem;
  height: 1.5rem;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.p-subsidy-ai__panel {
  position: fixed;
  z-index: var(--z-subsidy-ai);
  right: 1rem;
  bottom: 1rem;
  display: grid;
  grid-template-rows: auto minmax(10rem, 1fr) auto;
  width: min(var(--size-subsidy-ai-panel), calc(100vw - 2rem));
  max-height: min(46rem, calc(100dvh - 2rem));
  overflow: hidden;
  border: 1px solid var(--color-subsidy-ai-rule);
  border-radius: .875rem;
  background: var(--color-subsidy-ai-paper);
  box-shadow: var(--shadow-subsidy-ai);
  color: var(--color-subsidy-ai-ink);
}

.p-subsidy-ai__panel.is-expanded {
  inset: 1rem;
  width: auto;
  max-height: none;
}

.p-subsidy-ai__header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem;
  padding: .875rem 1rem;
  background: var(--gradient-subsidy-ai-header);
  color: var(--color-subsidy-ai-on-dark);
}

.p-subsidy-ai__mark {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border-radius: 999px;
  background: var(--color-subsidy-ai-paper);
  color: var(--color-subsidy-ai-blue-deep);
}

.p-subsidy-ai__heading h2 {
  margin: 0;
  color: inherit;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.45;
}

.p-subsidy-ai__heading p {
  margin: .125rem 0 0;
  color: inherit;
  font-size: .75rem;
  line-height: 1.45;
}

.p-subsidy-ai__tools {
  display: flex;
  gap: .5rem;
}

.p-subsidy-ai__tools button {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  padding: 0;
  border: 1px solid var(--color-subsidy-ai-tool-border);
  border-radius: .5rem;
  background: var(--color-subsidy-ai-tool);
  color: var(--color-subsidy-ai-on-dark);
  cursor: pointer;
  font: inherit;
  transition: background-color var(--duration-subsidy-ai) ease, transform var(--duration-subsidy-ai) ease;
}

.p-subsidy-ai__messages {
  min-height: 0;
  padding: 1rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--color-subsidy-ai-surface);
}

.p-subsidy-ai__messages > ol {
  display: grid;
  gap: .75rem;
  margin: .75rem 0 0;
  padding: 0;
  list-style: none;
}

.p-subsidy-ai-message {
  display: flex;
  align-items: flex-start;
  gap: .625rem;
  margin: 0;
}

.p-subsidy-ai-message > div,
.p-subsidy-ai-message > p {
  max-width: 82%;
  margin: 0;
  padding: .75rem 1rem;
  overflow-wrap: anywhere;
  border: 1px solid var(--color-subsidy-ai-rule);
  border-radius: .75rem;
  background: var(--color-subsidy-ai-paper);
  color: var(--color-subsidy-ai-ink);
  font-size: .875rem;
  white-space: pre-wrap;
}

.p-subsidy-ai-message > div {
  display: grid;
  gap: .375rem;
  white-space: normal;
}

.p-subsidy-ai-message p,
.p-subsidy-ai-message small {
  margin: 0;
}

.p-subsidy-ai-message small {
  color: var(--color-subsidy-ai-muted);
  font-size: .75rem;
  line-height: 1.65;
}

.p-subsidy-ai-message__avatar {
  display: grid;
  width: 2.25rem;
  height: 2.25rem;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 999px;
  background: var(--color-subsidy-ai-blue-deep);
  color: var(--color-subsidy-ai-on-dark);
  font-size: .6875rem;
  font-weight: 700;
}

.p-subsidy-ai-message--user {
  justify-content: flex-end;
}

.p-subsidy-ai-message--user > p {
  border-color: color-mix(in srgb, var(--color-subsidy-ai-blue) 42%, var(--color-subsidy-ai-rule));
  background: color-mix(in srgb, var(--color-subsidy-ai-blue) 10%, var(--color-subsidy-ai-paper));
  color: var(--color-subsidy-ai-blue-deep);
}

.p-subsidy-ai__controls {
  display: grid;
  gap: .75rem;
  padding: 1rem;
  border-top: 1px solid var(--color-subsidy-ai-rule);
  background: var(--color-subsidy-ai-paper);
}

.p-subsidy-ai__form {
  display: grid;
  gap: .625rem;
  margin: 0;
}

.p-subsidy-ai__subsidies {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.p-subsidy-ai__subsidies legend {
  margin: 0 0 .5rem;
  padding: 0;
  color: var(--color-subsidy-ai-blue-deep);
  font-size: .8125rem;
  font-weight: 700;
}

.p-subsidy-ai__subsidies legend small {
  margin-left: .375rem;
  color: var(--color-subsidy-ai-muted);
  font-size: .75rem;
  font-weight: 400;
}

.p-subsidy-ai__options {
  display: flex;
  gap: .5rem;
  padding: .125rem .125rem .375rem;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

.p-subsidy-ai__option {
  position: relative;
  display: flex;
  min-height: 2.5rem;
  flex: 0 0 auto;
  align-items: center;
  padding: .5rem .75rem;
  border: 1px solid var(--color-subsidy-ai-rule);
  border-radius: 999px;
  background: var(--color-subsidy-ai-paper);
  color: var(--color-subsidy-ai-muted);
  cursor: pointer;
  font-size: .75rem;
  line-height: 1.45;
  white-space: nowrap;
  transition: background-color var(--duration-subsidy-ai) ease, border-color var(--duration-subsidy-ai) ease, transform var(--duration-subsidy-ai) ease;
}

.p-subsidy-ai__option input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  border: 0;
  clip-path: inset(50%);
  white-space: nowrap;
}

.p-subsidy-ai__option:has(input:focus-visible) {
  outline: 3px solid var(--color-subsidy-ai-focus);
  outline-offset: 2px;
}

.p-subsidy-ai__option:has(input:checked) {
  background: color-mix(in srgb, var(--color-subsidy-ai-blue) 9%, var(--color-subsidy-ai-paper));
  color: var(--color-subsidy-ai-blue-deep);
  font-weight: 700;
}

.p-subsidy-ai__option:has(input:checked) span::before {
  content: "✓";
  margin-right: .375rem;
}

.p-subsidy-ai__option--combined:has(input:checked) {
  border-color: var(--color-subsidy-ai-combined);
}

.p-subsidy-ai__option--saving:has(input:checked) {
  border-color: var(--color-subsidy-ai-saving);
}

.p-subsidy-ai__option--growth:has(input:checked) {
  border-color: var(--color-subsidy-ai-growth);
}

.p-subsidy-ai__option:has(input:disabled) {
  cursor: not-allowed;
  opacity: .55;
}

.p-subsidy-ai__composer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .625rem;
  align-items: stretch;
}

.p-subsidy-ai__composer textarea {
  min-height: 4.75rem;
  max-height: 12rem;
  margin: 0;
  padding: .75rem 1rem;
  resize: vertical;
  border: 1px solid var(--color-subsidy-ai-rule);
  border-radius: .625rem;
  outline: 2px solid var(--color-subsidy-ai-transparent);
  outline-offset: 1px;
  background: var(--color-subsidy-ai-paper);
  color: var(--color-subsidy-ai-ink);
  font: inherit;
  font-size: .875rem;
  line-height: 1.55;
}

.p-subsidy-ai__composer textarea:focus-visible {
  border-color: var(--color-subsidy-ai-blue);
  outline-color: var(--color-subsidy-ai-focus);
}

.p-subsidy-ai__composer textarea[aria-invalid="true"] {
  border-color: var(--color-subsidy-ai-error);
  background: var(--color-subsidy-ai-error-soft);
}

.p-subsidy-ai__composer textarea:disabled {
  cursor: not-allowed;
  opacity: .55;
}

.p-subsidy-ai__composer button {
  min-width: 5.5rem;
  min-height: 3rem;
  padding: .75rem 1rem;
  border: 0;
  border-radius: 999px;
  background: var(--color-subsidy-ai-blue);
  color: var(--color-subsidy-ai-on-dark);
  cursor: pointer;
  font: inherit;
  font-size: .875rem;
  font-weight: 700;
  transition: filter var(--duration-subsidy-ai) ease, transform var(--duration-subsidy-ai) ease;
}

.p-subsidy-ai__composer button:disabled {
  cursor: not-allowed;
  opacity: .55;
}

.p-subsidy-ai__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .375rem 1rem;
  color: var(--color-subsidy-ai-muted);
  font-size: .75rem;
  font-variant-numeric: tabular-nums;
}

.p-subsidy-ai__meta strong {
  color: var(--color-subsidy-ai-blue-deep);
}

.p-subsidy-ai__error {
  min-height: 1lh;
  margin: 0;
  color: var(--color-subsidy-ai-error);
  font-size: .75rem;
}

.p-subsidy-ai__lock {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem 1rem;
  padding: .875rem;
  border: 1px solid var(--color-subsidy-ai-lock-ink);
  border-radius: .625rem;
  background: var(--color-subsidy-ai-lock);
  color: var(--color-subsidy-ai-ink);
}

.p-subsidy-ai__lock-icon {
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  place-items: center;
  color: var(--color-subsidy-ai-lock-ink);
}

.p-subsidy-ai__lock strong {
  color: var(--color-subsidy-ai-lock-ink);
  font-size: .875rem;
}

.p-subsidy-ai__lock p {
  margin: .125rem 0 0;
  color: var(--color-subsidy-ai-muted);
  font-size: .75rem;
}

.p-subsidy-ai__register {
  display: inline-flex;
  min-height: 3rem;
  align-items: center;
  justify-content: center;
  gap: .375rem;
  padding: .625rem 1rem;
  border: 1px solid color-mix(in srgb, var(--color-subsidy-ai-register-ink) 28%, var(--color-subsidy-ai-transparent));
  border-radius: 999px;
  background: var(--color-subsidy-ai-register);
  color: var(--color-subsidy-ai-register-ink);
  font-size: .8125rem;
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  transition: filter var(--duration-subsidy-ai) ease, transform var(--duration-subsidy-ai) ease;
}

.p-subsidy-ai[data-state="loading"] .p-subsidy-ai__panel {
  cursor: progress;
}

.p-subsidy-ai[data-state="success"] [data-subsidy-ai-remaining] {
  color: var(--color-subsidy-ai-combined);
}

.p-subsidy-ai[data-locked="true"] .p-subsidy-ai__form {
  opacity: .7;
}

.p-subsidy-ai__launcher:focus-visible,
.p-subsidy-ai__tools button:focus-visible,
.p-subsidy-ai__composer button:focus-visible,
.p-subsidy-ai__register:focus-visible {
  outline: 2px solid var(--color-subsidy-ai-on-dark);
  outline-offset: 2px;
  box-shadow: 0 0 0 5px var(--color-subsidy-ai-focus);
}

.p-subsidy-ai__launcher:disabled,
.p-subsidy-ai__tools button:disabled {
  cursor: not-allowed;
  opacity: .55;
}

.p-subsidy-ai__launcher:active,
.p-subsidy-ai__tools button:active,
.p-subsidy-ai__option:active,
.p-subsidy-ai__composer button:active,
.p-subsidy-ai__register:active {
  transform: translateY(1px);
}

@media (hover: hover) and (pointer: fine) {
  .p-subsidy-ai__launcher:hover,
  .p-subsidy-ai__composer button:hover,
  .p-subsidy-ai__register:hover {
    filter: brightness(.94);
  }

  .p-subsidy-ai__tools button:hover {
    background: var(--color-subsidy-ai-tool-hover);
  }

  .p-subsidy-ai__option:hover {
    background: var(--color-subsidy-ai-surface);
  }
}

@media (max-width: 47.99rem) {
  .p-subsidy-ai__launcher {
    right: .75rem;
    bottom: max(4.5rem, calc(env(safe-area-inset-bottom) + .75rem));
    min-height: 3rem;
    padding: .625rem 1rem;
    font-size: .8125rem;
  }

  .p-subsidy-ai__panel {
    right: .5rem;
    bottom: max(.5rem, env(safe-area-inset-bottom));
    width: calc(100vw - 1rem);
    max-height: calc(100dvh - 1rem - env(safe-area-inset-bottom));
    border-radius: .75rem;
  }

  .p-subsidy-ai__panel.is-expanded {
    inset: .5rem;
  }

  .p-subsidy-ai__header {
    gap: .5rem;
    padding: .75rem;
  }

  .p-subsidy-ai__mark {
    width: 2.5rem;
    height: 2.5rem;
  }

  .p-subsidy-ai__heading p {
    display: none;
  }

  .p-subsidy-ai__tools {
    gap: .375rem;
  }

  .p-subsidy-ai__tools button {
    width: 2.5rem;
    height: 2.5rem;
  }

  .p-subsidy-ai__messages,
  .p-subsidy-ai__controls {
    padding: .75rem;
  }

  .p-subsidy-ai__composer {
    grid-template-columns: minmax(0, 1fr);
  }

  .p-subsidy-ai__composer textarea {
    min-height: 4.25rem;
  }

  .p-subsidy-ai__composer button {
    width: 100%;
  }

  .p-subsidy-ai__lock {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .p-subsidy-ai__register {
    grid-column: 1 / -1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .p-subsidy-ai__launcher,
  .p-subsidy-ai__tools button,
  .p-subsidy-ai__option,
  .p-subsidy-ai__composer button,
  .p-subsidy-ai__register {
    transition-duration: .01ms;
  }
}

@media print {
  .p-subsidy-ai {
    display: none !important;
  }
}

.p-service__table {
  width: 100%;
}

.p-service__table .c-table {
  width: 100%;
  min-width: 0;
  font-variant-numeric: tabular-nums;
}

.p-service__table .c-table th,
.p-service__table .c-table td {
  padding: var(--space-3);
  font-size: 1rem;
  line-height: 1.7;
}

.p-service__table .c-table th {
  color: var(--color-navy);
  background: color-mix(in srgb, var(--color-blue-strong) 6%, var(--color-bg));
  white-space: nowrap;
}

.p-service__table .c-table td span {
  color: var(--color-text-sub);
  font-size: 1rem;
}

.p-link__list {
  max-width: fit-content;
}

.p-link__list a {
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding-block: var(--space-2);
  border-bottom: 1px solid var(--color-footer-b-rule);
  font-weight: 500;
  line-height: 1.55;
}

.p-link__list a > span {
  flex: 0 0 auto;
}

@media (hover: hover) and (pointer: fine) {
    .p-link__list a:hover {
        text-decoration: underline;
        text-underline-offset: .2em;
    }
}

.p-sitemap__nav a {
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding-block: var(--space-2);
  border-bottom: 1px solid var(--color-footer-b-rule);
  font-weight: 500;
  line-height: 1.55;
}

.p-sitemap__nav a > span {
  flex: 0 0 auto;
}

@media (hover: hover) and (pointer: fine) {
    .p-sitemap__nav a:hover {
        text-decoration: underline;
        text-underline-offset: .2em;
    }
}

/* Subscriber access: follows the supplied lock screen and existing site tokens. */
.p-subsidy-ai {
  --color-subsidy-ai-subscriber: #007b65;
  --color-subsidy-ai-lock: #fff0f3;
  --color-subsidy-ai-lock-ink: #bd1743;
}
.p-subsidy-ai [hidden] { display: none !important; }
.p-subsidy-ai .p-subsidy-ai__lock {
  display: block;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: var(--color-subsidy-ai-paper);
}
.p-subsidy-ai__limit-notice {
  display: flex;
  align-items: center;
  gap: .875rem;
  padding: .875rem;
  margin-bottom: .875rem;
  border: 1px solid color-mix(in srgb, var(--color-subsidy-ai-lock-ink) 32%, var(--color-subsidy-ai-paper));
  border-radius: .75rem;
  background: var(--color-subsidy-ai-lock);
}
.p-subsidy-ai__limit-notice .p-subsidy-ai__lock-icon {
  width: 3.5rem;
  height: 3.5rem;
  flex: 0 0 auto;
  border-radius: 50%;
  color: var(--color-subsidy-ai-paper);
  background: var(--color-subsidy-ai-lock-ink);
}
.p-subsidy-ai__access-options { display: grid; grid-template-columns: 1fr 1.1fr; gap: .875rem; }
.p-subsidy-ai__access-option {
  --access-accent: var(--color-subsidy-ai-blue-deep);
  display: flex;
  flex-direction: column;
  gap: .75rem;
  min-width: 0;
  padding: 1rem;
  border: 1px solid color-mix(in srgb, var(--access-accent) 15%, var(--color-subsidy-ai-paper));
  border-radius: .75rem;
  background: color-mix(in srgb, var(--access-accent) 5%, var(--color-subsidy-ai-paper));
}
.p-subsidy-ai__access-option--subscriber { --access-accent: var(--color-subsidy-ai-subscriber); }
.p-subsidy-ai__access-option h3 { display: flex; align-items: center; gap: .75rem; margin: 0; color: var(--access-accent); font-size: 1.05rem; }
.p-subsidy-ai__access-option h3 svg { width: 2rem; height: 2rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.p-subsidy-ai__access-option small { color: var(--color-subsidy-ai-muted); font-size: .75rem; }
.p-subsidy-ai__access-link { display: flex; justify-content: center; align-items: center; position: relative; gap: 1rem; min-height: 2.75rem; padding: .5rem .875rem; border-radius: .5rem; background: var(--access-accent); color: var(--color-subsidy-ai-on-dark); font-size: .875rem; font-weight: 700; text-decoration: none; }
.p-subsidy-ai__access-link span { position: absolute; right: .875rem; }
.p-subsidy-ai__auth { padding-top: .75rem; border-top: 1px dashed var(--color-subsidy-ai-rule); }
.p-subsidy-ai__auth label { font-size: .8125rem; font-weight: 700; }
.p-subsidy-ai__auth-fields { display: flex; gap: .5rem; margin-top: .5rem; }
.p-subsidy-ai__auth-fields input { min-width: 0; width: 100%; min-height: 2.75rem; padding: .5rem .625rem; border: 1px solid var(--color-subsidy-ai-rule); border-radius: .5rem; background: var(--color-subsidy-ai-paper); color: var(--color-subsidy-ai-ink); font: inherit; font-size: .8125rem; }
.p-subsidy-ai__auth-fields button { flex-shrink: 0; min-height: 2.75rem; padding: .5rem .75rem; border: 1px solid var(--access-accent); border-radius: .5rem; background: var(--access-accent); color: var(--color-subsidy-ai-on-dark); cursor: pointer; font: inherit; font-size: .8125rem; font-weight: 700; }
.p-subsidy-ai__auth-fields button:disabled { opacity: .5; cursor: wait; }
.p-subsidy-ai__auth [role="alert"] { margin-top: .5rem; color: var(--color-subsidy-ai-error); }
.p-subsidy-ai__access-note { margin-top: .75rem !important; }
.p-subsidy-ai__auth-toggle { justify-self: start; border: 0; padding: .125rem 0; background: none; color: var(--color-subsidy-ai-blue-deep); font: inherit; font-size: .75rem; text-decoration: underline; cursor: pointer; }
.p-subsidy-ai__auth-success { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; color: var(--color-subsidy-ai-subscriber); font-size: .75rem; }
.p-subsidy-ai__auth-success a { color: inherit; text-underline-offset: .2em; }
.p-subsidy-ai__panel { grid-template-rows: auto minmax(4rem, 1fr) auto; }
.p-subsidy-ai__controls { min-height: 0; overflow-y: auto; max-height: min(30rem, calc(100dvh - 12rem)); }
.p-subsidy-ai__access-link:hover, .p-subsidy-ai__auth-fields button:hover { filter: brightness(.94); }
.p-subsidy-ai__access-link:focus-visible, .p-subsidy-ai__auth-fields :focus-visible, .p-subsidy-ai__auth-toggle:focus-visible { outline: 3px solid var(--color-subsidy-ai-focus); outline-offset: 2px; }
@media (max-width: 47.99rem) {
  .p-subsidy-ai__access-options { grid-template-columns: 1fr; gap: .625rem; }
  .p-subsidy-ai__access-option { padding: .75rem; gap: .5rem; }
  .p-subsidy-ai__limit-notice { padding: .625rem; }
  .p-subsidy-ai__controls { max-height: min(30rem, calc(100dvh - 10rem)); }
}
.p-subscriber-videos { max-width: 64rem; padding-block: 3rem 5rem; }
.p-subscriber-videos > * + * { margin-top: 1.5rem; }
.p-subscriber-video-auth { max-width: 34rem; display: grid; gap: .75rem; padding: 1.5rem; border: 1px solid var(--color-subsidy-ai-rule); border-radius: .75rem; }
.p-subscriber-video-auth[hidden], .p-subscriber-video-list[hidden] { display: none; }
.p-subscriber-video-auth input { width: 100%; min-height: 3rem; padding: .5rem .75rem; border: 1px solid var(--color-subsidy-ai-rule); border-radius: .5rem; font: inherit; }
.p-subscriber-video-auth button { min-height: 3rem; border: 0; border-radius: .5rem; background: var(--color-subsidy-ai-blue-deep); color: var(--color-subsidy-ai-on-dark); font: inherit; cursor: pointer; }
.p-subscriber-video-auth button:disabled { opacity: .55; cursor: wait; }
.p-subscriber-video-list { padding: 0; list-style: none; }
.p-subscriber-video-list a { display: block; padding: 1.25rem 0; border-bottom: 1px solid var(--color-subsidy-ai-rule); color: var(--color-subsidy-ai-blue-deep); }

/* VisionCompass-compatible Markdown inside AI answer bubbles. */
.p-subsidy-ai-message > .p-subsidy-ai-markdown { min-width: 0; overflow-wrap: anywhere; white-space: normal; }
.p-subsidy-ai-markdown p { margin: 0 0 .7em; }
.p-subsidy-ai-markdown > :last-child { margin-bottom: 0; }
.p-subsidy-ai-markdown :is(h3, h4, h5, h6) { margin: 1em 0 .45em; color: var(--color-subsidy-ai-blue-deep); font-weight: 700; line-height: 1.5; }
.p-subsidy-ai-markdown h3 { font-size: 1.1em; }
.p-subsidy-ai-markdown :is(h4, h5, h6) { font-size: 1em; }
.p-subsidy-ai-markdown > :first-child { margin-top: 0; }
.p-subsidy-ai-markdown :is(ul, ol) { margin: .3em 0 .8em; padding-left: 1.5em; list-style-position: outside; }
.p-subsidy-ai-markdown ul { list-style-type: disc; }
.p-subsidy-ai-markdown ol { list-style-type: decimal; }
.p-subsidy-ai-markdown li { margin: .25em 0; }
.p-subsidy-ai-markdown strong { font-weight: 700; }
.p-subsidy-ai-markdown a { color: var(--color-subsidy-ai-blue-deep); text-decoration: underline; text-underline-offset: .18em; }
.p-subsidy-ai-markdown blockquote { margin: .7em 0; padding: .5em .8em; border-left: 3px solid var(--color-subsidy-ai-rule); background: var(--color-subsidy-ai-surface); }
.p-subsidy-ai-table-scroll { max-width: 100%; margin: .8em 0; overflow-x: auto; }
.p-subsidy-ai-markdown table { width: 100%; border-collapse: collapse; font-size: .92em; }
.p-subsidy-ai-markdown :is(th, td) { min-width: 6rem; padding: .5em .65em; border: 1px solid var(--color-subsidy-ai-rule); vertical-align: top; }
.p-subsidy-ai-markdown th { background: var(--color-subsidy-ai-surface); font-weight: 700; }
.p-subsidy-ai-markdown pre { max-width: 100%; margin: .7em 0; padding: .8em; overflow-x: auto; background: var(--color-subsidy-ai-surface); border-radius: .375rem; white-space: pre; }
.p-subsidy-ai-markdown code { padding: .1em .3em; border-radius: .2em; background: var(--color-subsidy-ai-surface); font-size: .9em; }
.p-subsidy-ai-markdown pre code { padding: 0; }
.p-subsidy-ai-markdown hr { border: 0; border-top: 1px solid var(--color-subsidy-ai-rule); margin: .9em 0; }
.p-subsidy-ai-markdown[data-streaming="true"]::after { content: '▍'; color: var(--color-subsidy-ai-blue); }
.p-subsidy-ai-stream-error { margin-top: .75em !important; color: var(--color-subsidy-ai-error); font-size: .8em; }

.p-subsidy-ai-feedback { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 16px; font-size: 12px; }
.p-subsidy-ai-feedback button { padding: 6px 10px; border: 1px solid #cbd5e1; border-radius: 6px; background: #fff; color: #334155; cursor: pointer; font: inherit; }
.p-subsidy-ai-feedback button[aria-pressed="true"] { border-color: #176a61; background: #e6f4f0; color: #12574f; }
.p-subsidy-ai-feedback button:disabled { opacity: .6; cursor: wait; }
.p-subsidy-ai-feedback [role="status"] { width: 100%; }

/* Hallmark · genre: modern-minimal · macrostructure: Long Document · theme: studied-DNA (source: supplied case design and shared site system)
 * audience: manufacturing partners · use: collaboration inquiry · tone: technical and trustworthy
 * enrichment: approved interview photography and staff-page alternating corner diagonals · nav: shared N12-like · footer: shared Footer B
 * pre-emit critique: P5 H5 E5 S5 R4 V4 · contrast: pass (40–41) · slop: pass (42–45)
 * honest: pass (46) · chrome: pass (47) · tokens: pass (48) · responsive: pass (49) · icons: pass (30) · mobile: pass (34, 49, 50–57)
 */

:root {
  --case-paper: var(--color-bg);
  --case-paper-sub: var(--color-bg-sub);
  --case-ink: var(--color-navy);
  --case-text: var(--color-text);
  --case-muted: var(--color-text-sub);
  --case-rule: var(--color-border);
  --case-accent: var(--color-accent);
  --case-accent-deep: var(--color-blue-strong);
  --case-speaker-mitsubishi: var(--color-blue-strong);
  --case-speaker-mitsubishi-bg: color-mix(in srgb, var(--case-speaker-mitsubishi) 8%, var(--case-paper));
  --case-speaker-sharevision: var(--color-grad-start);
  --case-speaker-sharevision-bg: color-mix(in srgb, var(--case-speaker-sharevision) 8%, var(--case-paper));
  --case-shadow: var(--shadow-sm);
  --case-hero-bg-image: url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/common/img/lower-hero-bg.webp");
  --case-hero-decoration-left: url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/common/img/lower-hero-decoration-left.png");
  --case-hero-decoration-right: url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/common/img/lower-hero-decoration-right.png");
  --case-diagonal-left: url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/common/img/bg_diadef_lt.svg");
  --case-body-decoration-right: url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/common/img/bg_top_right.svg");
  --case-body-decoration-left: url("https://svltd2.files.cmssv.awsv.jp/_build_/common_v7/assets/site-register-20260906/common/img/bg_bottom_left.svg");
}

html,
body {
  overflow-x: clip;
}

.p-mitsubishi-case {
  overflow: clip;
  color: var(--case-text);
  background: var(--case-paper);
}

.p-mitsubishi-case img {
  display: block;
  max-inline-size: 100%;
  block-size: auto;
}

.p-mitsubishi-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-block-end: 1px solid var(--case-rule);
  background-color: var(--case-paper);
  background-image: var(--case-hero-bg-image);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.p-mitsubishi-hero::before,
.p-mitsubishi-hero::after {
  position: absolute;
  inset: 0;
  content: "";
  background-repeat: no-repeat;
  background-size: auto 100%;
  pointer-events: none;
}

.p-mitsubishi-hero::before {
  z-index: var(--z-lower-hero-decoration-back);
  background-image: var(--case-hero-decoration-left);
  background-position: left center;
}

.p-mitsubishi-hero::after {
  z-index: var(--z-lower-hero-decoration-front);
  background-image: var(--case-hero-decoration-right);
  background-position: calc(100% + var(--space-6)) center;
}

.p-mitsubishi-hero__grid {
  position: relative;
  z-index: var(--z-lower-hero-content);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
  align-items: center;
  padding-block: var(--space-6);
}

.p-mitsubishi-hero__copy {
  min-inline-size: 0;
}

.p-mitsubishi-hero__type {
  margin-block-end: var(--space-3);
  color: var(--case-accent-deep);
  font-size: 1rem;
  font-weight: 700;
}

.p-mitsubishi-hero__type::before {
  display: inline-block;
  inline-size: var(--space-5);
  block-size: 3px;
  margin-inline-end: var(--space-2);
  vertical-align: middle;
  background: var(--case-accent);
  content: "";
}

.p-mitsubishi-hero__lead {
  max-inline-size: 34rem;
  margin-block-end: var(--space-3);
  color: var(--case-ink);
  font-size: clamp(1.05rem, .98rem + .36vw, 1.28rem);
  font-weight: 700;
  line-height: 1.65;
}

.p-mitsubishi-hero__title {
  max-inline-size: 18ch;
  margin: 0;
  color: var(--case-ink);
  font-size: clamp(2rem, 1.55rem + 2.1vw, 3.25rem);
  font-style: normal;
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.32;
  overflow-wrap: anywhere;
}

.p-mitsubishi-hero__company {
  margin-block-start: var(--space-4);
  color: var(--case-ink);
  font-size: 1rem;
  font-weight: 700;
}

.p-mitsubishi-hero__media {
  position: relative;
  z-index: var(--z-raised);
  min-inline-size: 0;
  margin: 0;
  background: var(--case-paper);
  box-shadow: var(--case-shadow);
}

.p-mitsubishi-hero__media img {
  inline-size: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: center;
}

.p-mitsubishi-intro {
  padding-block: var(--space-6);
  border-block-end: 1px solid var(--case-rule);
}

.p-mitsubishi-intro p,
.p-mitsubishi-profile__description p,
.p-mitsubishi-turn__body p {
  font-size: 1rem;
  line-height: 1.95;
}

.p-mitsubishi-intro p + p,
.p-mitsubishi-turn__body p + p {
  margin-block-start: var(--space-3);
}

.p-mitsubishi-profile {
  position: relative;
  padding-block: var(--space-7);
  overflow: hidden;
  background-color: var(--case-paper-sub);
}

.p-mitsubishi-profile::before {
  position: absolute;
  inset: 0;
  background-image: var(--case-diagonal-left);
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: min(42vw, 560px) auto;
  content: "";
  opacity: .16;
  pointer-events: none;
}

.p-mitsubishi-profile > .l-container {
  position: relative;
  z-index: var(--z-raised);
}

.p-mitsubishi-profile__brand {
  display: grid;
  place-items: center;
  min-inline-size: 0;
  min-block-size: 10rem;
  padding: var(--space-5);
  margin-block-end: var(--space-5);
  border: 1px solid var(--case-rule);
  background: #fff;
  box-shadow: var(--case-shadow);
}

.p-mitsubishi-profile__logo {
  inline-size: clamp(8.75rem, 16vw, 11.25rem);
}

.p-mitsubishi-profile__description {
  max-inline-size: 900px;
  padding-block: var(--space-2);
}

.p-mitsubishi-profile__description p + p {
  margin-block-start: var(--space-3);
}

.p-mitsubishi-body {
  background: var(--case-paper);
}

.p-mitsubishi-chapter {
  position: relative;
  isolation: isolate;
  padding-block: var(--space-7);
  overflow: hidden;
  border-block-end: 1px solid var(--case-rule);
  background-color: var(--case-paper);
  scroll-margin-block-start: var(--space-7);
}

.p-mitsubishi-chapter::before {
  position: absolute;
  z-index: var(--z-base);
  inset: 0;
  background-image: var(--case-body-decoration-right);
  background-repeat: no-repeat;
  background-position: right top;
  background-size: clamp(150px, 18vw, 280px) auto;
  content: "";
  opacity: .32;
  pointer-events: none;
}

.p-mitsubishi-chapter--sub {
  background-color: var(--case-paper-sub);
}

.p-mitsubishi-chapter--sub::before {
  background-image: var(--case-body-decoration-left);
  background-position: left bottom;
  background-size: clamp(84px, 9vw, 132px) auto;
  opacity: .42;
}

.p-mitsubishi-chapter > .l-container {
  position: relative;
  z-index: var(--z-raised);
}

.p-mitsubishi-chapter .c-heading {
  text-wrap: balance;
  word-break: auto-phrase;
}

.p-mitsubishi-turn {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
  padding-block: var(--space-4);
  border-block-start: 1px solid var(--case-rule);
}

.p-mitsubishi-turn:last-of-type {
  padding-block-end: 0;
}

.p-mitsubishi-turn__body {
  min-inline-size: 0;
}

.p-mitsubishi-turn__content {
  min-inline-size: 0;
}

.p-mitsubishi-turn__content > .p-mitsubishi-turn__body + .p-mitsubishi-turn__body {
  margin-block-start: var(--space-4);
  padding-block-start: var(--space-4);
  border-block-start: 1px solid var(--case-rule);
}

.p-mitsubishi-turn__name {
  color: var(--case-ink);
  font-weight: 700;
}

.p-mitsubishi-turn__photo {
  min-inline-size: 0;
  margin: 0;
  align-self: start;
}

.p-mitsubishi-turn__photo img {
  inline-size: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
}

.p-mitsubishi-turn__photo--portrait img {
  aspect-ratio: 4 / 5;
  object-position: center 38%;
}

.p-mitsubishi-turn__photo--vertical img {
  aspect-ratio: 3 / 4;
  object-position: center;
}

.p-mitsubishi-interviewee img {
  aspect-ratio: 2 / 3;
  object-position: center;
}

.p-mitsubishi-interviewee figcaption {
  padding-block-start: var(--space-2);
  color: var(--case-ink);
  font-size: .875rem;
  line-height: 1.65;
}

.p-mitsubishi-interviewee figcaption span,
.p-mitsubishi-interviewee figcaption strong {
  display: block;
}

.p-mitsubishi-interviewee figcaption span {
  color: var(--case-muted);
}

.p-mitsubishi-interviewee figcaption strong {
  margin-block-start: var(--space-1);
  font-size: 1rem;
}

.p-mitsubishi-photo {
  margin: var(--space-4) 0 0;
  overflow: hidden;
}

.p-mitsubishi-photo img {
  display: block;
  inline-size: 100%;
  aspect-ratio: 16 / 7;
  object-fit: cover;
  object-position: center 35%;
}

.p-mitsubishi-apply {
  padding-block: var(--space-7);
  text-align: center;
  background-color: var(--case-paper-sub);
}

.p-mitsubishi-apply .c-btn {
  white-space: nowrap;
}

@media (min-width: 768px) {
  .p-mitsubishi-hero__grid {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: var(--space-6);
    min-block-size: 560px;
    padding-block: var(--space-7);
  }

  .p-mitsubishi-hero__media {
    margin-inline-end: calc(var(--space-4) * -1);
  }

  .p-mitsubishi-hero::after {
    background-position: right center;
  }

  .p-mitsubishi-intro {
    padding-block: var(--space-7);
  }

  .p-mitsubishi-profile > .l-container {
    display: grid;
    grid-template-columns: minmax(230px, .85fr) minmax(0, 1.65fr);
    gap: var(--space-6);
    align-items: stretch;
  }

  .p-mitsubishi-profile__brand {
    min-block-size: 0;
    margin-block-end: 0;
  }

  .p-mitsubishi-turn {
    padding-block: var(--space-5);
  }

  .p-mitsubishi-turn--photo-left {
    grid-template-columns: minmax(200px, 2fr) minmax(0, 3fr);
    gap: var(--space-5);
    align-items: start;
  }
}

@media (min-width: 1024px) {
  .p-mitsubishi-hero__grid {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  }

  .p-mitsubishi-hero__media {
    margin-inline-end: calc((100vw - var(--container-max)) / -2);
  }

  .p-mitsubishi-profile > .l-container {
    grid-template-columns: minmax(270px, .8fr) minmax(0, 1.7fr);
    gap: var(--space-7);
  }

  .p-mitsubishi-turn--with-photo {
    grid-template-columns: minmax(0, 3.2fr) minmax(230px, 1.8fr);
    align-items: start;
  }

  .p-mitsubishi-turn--photo-left {
    grid-template-columns: minmax(230px, 1.8fr) minmax(0, 3.2fr);
  }

  .p-mitsubishi-turn--with-photo .p-mitsubishi-turn__photo {
    grid-column: auto;
  }
}

@media (max-width: 767px) {
  .p-mitsubishi-hero {
    background-position: 42% center;
  }

  .p-mitsubishi-hero::before,
  .p-mitsubishi-hero::after {
    background-size: auto 46%;
  }

  .p-mitsubishi-hero::before {
    background-position: left top;
  }

  .p-mitsubishi-hero::after {
    background-position: right bottom;
  }
}

@media (prefers-reduced-motion: reduce) {
  .p-mitsubishi-case *,
  .p-mitsubishi-case *::before,
  .p-mitsubishi-case *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
