@charset "UTF-8";
/* ==========================================================================
   株式会社がんてつ コーポレートサイト
   参考サイト（goemon-co.com）のコーディング手法を踏襲：
   - SP（〜767px）は 375px 基準の vw 指定（1px = 0.26667vw）
   - PC（768px〜）は 1280px 基準の min(vw, rem) 指定（1px = 0.078125vw / 0.0625rem）
   - フォント：Noto Sans JP（本文）/ Poppins（英字）
   - 日替わりカラーテーマ（html.color01 / color02 / color03）
   ========================================================================== */

/* --------------------------------------------------------------------------
   Reset
   -------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; min-width: 0; }
body, h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd { margin: 0; }
ul, ol, li { padding: 0; margin: 0; list-style: none; }
img, picture { max-width: 100%; display: block; }
input, button, textarea, select { font: inherit; }
button { padding: 0; appearance: none; cursor: pointer; background: transparent; border: none; color: inherit; }
a { text-decoration: none; color: inherit; }
address { font-style: normal; }
svg { height: auto; }
dialog { width: unset; max-width: unset; height: unset; max-height: unset; padding: unset; overflow: unset; color: unset; background: unset; border: unset; }
:focus:not(:focus-visible) { outline: none; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 6rem; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* --------------------------------------------------------------------------
   Variables
   -------------------------------------------------------------------------- */
:root {
  --color-white: #ffffff;
  --color-black: #000000;
  --color-text: #1f1f1f;
  --color-key: #2fffb5;
  --color-yellow: #fff799;
  --color-gray-black: #636b70;
  --color-red: #ff2119;
  --color-dark-gray: #afbec7;
  --color-gray: #ced6db;
  --color-light-gray: #e6ecf0;
  --color-white-blue: #eaf3f9;
  --color-sky-blue: #d5e7f3;
  --color-blue: #1469a2;
  --color-dark-blue: #105482;
  --color-bg-text: #afbec7;
  --rounded-full: 9999px;
  --ease-out-expo: cubic-bezier(.16, 1, .3, 1);
  --ease-title: cubic-bezier(.18, .06, .23, 1);
}
html.color01 { --color-dark-gray: #afbec7; --color-gray: #ced6db; --color-light-gray: #e6ecf0; --color-white-blue: #eaf3f9; --color-sky-blue: #d5e7f3; --color-blue: #1469a2; --color-dark-blue: #105482; --color-bg-text: #afbec7; }
html.color02 { --color-dark-gray: #a6bd9e; --color-gray: #cbdec4; --color-light-gray: #e6f3e2; --color-white-blue: #f4f5f5; --color-sky-blue: #e4e7e7; --color-blue: #165ba0; --color-dark-blue: #11477e; --color-bg-text: #c9cfcf; }
html.color03 { --color-dark-gray: #ceb4da; --color-gray: #dfd0e7; --color-light-gray: #f2eaf5; --color-white-blue: #f3f3f7; --color-sky-blue: #e0e2eb; --color-blue: #2f459d; --color-dark-blue: #26377e; --color-bg-text: #c1c5d7; }

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
body {
  min-height: 100vh;
  width: 100%;
  overflow-x: clip;
  overscroll-behavior: none;
  font-family: "Noto Sans JP", sans-serif;
  color: var(--color-text);
  line-height: 1.5;
  overflow-wrap: anywhere;
  line-break: strict;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: var(--color-gray);
}
body.is-menu-open { overflow: hidden; }
main { display: block; }
@media screen and (max-width: 767px) { main { margin-top: -21.3333333333vw; } }
@media screen and (min-width: 768px) { main { margin-top: max(-6.25vw, -5rem); } }

.u-sp-hidden { display: none; }
@media screen and (min-width: 768px) { .u-sp-hidden { display: inline; } }
@media screen and (min-width: 768px) { .u-md\:hidden { display: none; } }

.c-icon { display: block; width: 100%; height: 100%; clip-path: circle(50% at 50% 50%); }
.c-icon svg { display: block; width: 100%; height: 100%; }
.c-icon-blue { fill: var(--color-blue); }
.c-icon-sky-blue { fill: var(--color-sky-blue); }
.c-icon-dark-gray { fill: var(--color-dark-gray); }
.c-icon-light-gray { fill: var(--color-light-gray); }

/* --------------------------------------------------------------------------
   c-title / c-heading（英字ラベル＋日本語見出し）
   -------------------------------------------------------------------------- */
.c-title { font-family: Poppins, sans-serif; letter-spacing: 0; line-height: 1.4; font-weight: 400; display: block; }
@media screen and (max-width: 767px) { .c-title { font-size: 2.6666666667vw; } }
@media screen and (min-width: 768px) { .c-title { font-size: min(.9375vw, .75rem); } }
.c-title--white { color: var(--color-white); }

.c-title-wrap { display: block; overflow: hidden; }
.c-title-wrap > span { display: block; }
.c-title-wrap .js-heading-title, .c-title-wrap .js-heading-title-en { transform: translateY(100%); }
.c-title-wrap .js-heading-title.is-active, .c-title-wrap .js-heading-title-en.is-active { transform: translateY(0); }
.c-title-wrap .js-heading-title-en { transition: transform .7s var(--ease-title); }
.c-title-wrap .js-heading-title { transition: transform .5s var(--ease-title); transition-delay: .3s; }

.c-heading { display: flex; flex-direction: column; }
.c-heading--center { align-items: center; text-align: center; }
@media screen and (max-width: 767px) { .c-heading { row-gap: 3.2vw; } }
@media screen and (min-width: 768px) { .c-heading { row-gap: min(1.25vw, 1rem); } }
.c-heading__title { color: var(--color-text); letter-spacing: .08em; line-height: 1.3; font-weight: 700; }
@media screen and (max-width: 767px) { .c-heading__title { font-size: 7.4666666667vw; } }
@media screen and (min-width: 768px) { .c-heading__title { font-size: min(3.125vw, 2.5rem); } }
.c-heading__title--blue { color: var(--color-blue); }
.c-heading__title--white { color: var(--color-white); }
@media screen and (max-width: 767px) { .c-heading__title--sm { font-size: 5.8666666667vw; } }
@media screen and (min-width: 768px) { .c-heading__title--sm { font-size: min(2.1875vw, 1.75rem); } }

/* --------------------------------------------------------------------------
   c-button（黒ピル＋キーカラーの丸矢印）
   -------------------------------------------------------------------------- */
.c-button { position: relative; display: flex; align-items: center; justify-content: space-between; transition: all .3s ease-out; }
.c-button::before {
  position: absolute; top: 50%; left: 50%; width: 100%; height: 100%; content: "";
  background-color: var(--color-black); border: solid 1px var(--color-white); border-radius: var(--rounded-full);
  transform: translate(-50%, -50%); transition: all .3s ease-out;
}
@media screen and (max-width: 767px) { .c-button { column-gap: 3.2vw; height: 16vw; padding-inline: 7.4666666667vw; } }
@media screen and (min-width: 768px) {
  .c-button { column-gap: min(1.25vw, 1rem); height: min(5.3125vw, 4.25rem); padding-inline: min(2.5vw, 2rem); }
  .c-button:hover::before { transform: translate(-50%, -50%) scale(1.06); }
  .c-button:hover .c-button__icon::before { background-color: var(--color-white); transform: translate(-50%, -50%) scale(1.15); }
}
.c-button__text { color: var(--color-white); letter-spacing: .08em; line-height: 1.2; font-weight: 700; z-index: 1; white-space: nowrap; transition: all .3s ease-out; }
@media screen and (max-width: 767px) { .c-button__text { font-size: 3.4666666667vw; } }
@media screen and (min-width: 768px) { .c-button__text { font-size: min(1.171875vw, .9375rem); } }
.c-button__icon { position: relative; z-index: 1; display: flex; flex-shrink: 0; align-items: center; justify-content: center; margin-left: auto; border-radius: 50%; transition: all .3s ease-out; }
.c-button__icon::before {
  position: absolute; top: 50%; left: 50%; width: 100%; height: 100%; content: "";
  background-color: var(--color-key); border: .0625rem solid var(--color-black); border-radius: 50%;
  transform: translate(-50%, -50%); transition: all .3s ease-out;
}
@media screen and (max-width: 767px) { .c-button__icon { width: 5.3333333333vw; height: 5.3333333333vw; } }
@media screen and (min-width: 768px) { .c-button__icon { width: min(1.875vw, 1.5rem); height: min(1.875vw, 1.5rem); } }
.c-button__arrow { position: absolute; z-index: 1; }
@media screen and (max-width: 767px) { .c-button__arrow { width: 1.3333333333vw; height: 1.8666666667vw; translate: .2666666667vw 0; } }
@media screen and (min-width: 768px) { .c-button__arrow { width: min(.46875vw, .375rem); height: min(.625vw, .5rem); translate: min(.078125vw, .0625rem) 0; } }
.c-button__arrow svg { display: block; width: 100%; height: 100%; fill: var(--color-black); transition: all .3s ease-out; }

/* --------------------------------------------------------------------------
   c-logo（テキストロゴ：ヘッダー用 / 大型フッター用）
   -------------------------------------------------------------------------- */
.c-logo { display: flex; align-items: center; color: var(--color-black); }
@media screen and (max-width: 767px) { .c-logo { column-gap: 2.1333333333vw; } }
@media screen and (min-width: 768px) { .c-logo { column-gap: min(.78125vw, .625rem); } }
.c-logo__mark { position: relative; flex-shrink: 0; display: block; background-color: var(--color-blue); border: solid 1px var(--color-black); border-radius: 50% 50% 50% 0; }
.c-logo__mark::after { position: absolute; top: 50%; left: 50%; width: 42%; height: 42%; content: ""; background-color: var(--color-yellow); border-radius: 50%; transform: translate(-50%, -50%); }
@media screen and (max-width: 767px) { .c-logo__mark { width: 7.4666666667vw; height: 7.4666666667vw; } }
@media screen and (min-width: 768px) { .c-logo__mark { width: min(2.5vw, 2rem); height: min(2.5vw, 2rem); } }
.c-logo__body { display: flex; flex-direction: column; line-height: 1; }
.c-logo__en { font-family: Poppins, sans-serif; font-weight: 800; letter-spacing: .04em; color: var(--color-black); }
.c-logo__ja { font-weight: 700; letter-spacing: .08em; color: var(--color-gray-black); }
@media screen and (max-width: 767px) { .c-logo__en { font-size: 4.8vw; } .c-logo__ja { margin-top: 1.0666666667vw; font-size: 2.4vw; } }
@media screen and (min-width: 768px) { .c-logo__en { font-size: min(1.5625vw, 1.25rem); } .c-logo__ja { margin-top: min(.3125vw, .25rem); font-size: min(.703125vw, .5625rem); } }

.c-logo-big {
  display: block; width: 100%; text-align: center; white-space: nowrap;
  font-family: Poppins, sans-serif; font-weight: 800; letter-spacing: .02em; line-height: 1;
  color: var(--color-yellow);
  -webkit-text-stroke: .0625rem var(--color-black);
  paint-order: stroke fill;
}

/* --------------------------------------------------------------------------
   l-header（参考サイト踏襲：白ピル・黒1px枠・sticky）
   -------------------------------------------------------------------------- */
.l-header { position: sticky; z-index: 100; transition: opacity .25s ease, visibility .25s ease, transform .25s ease; }
@media screen and (max-width: 767px) { .l-header { top: 0; padding-top: 5.3333333333vw; margin-inline: 5.3333333333vw; } }
@media screen and (min-width: 768px) { .l-header { top: min(1.5625vw, 1.25rem); width: min(95vw, 76rem); margin: auto; } }
.l-header.is-hidden { visibility: hidden; opacity: 0; }
.l-header__inner {
  display: flex; align-items: center; justify-content: space-between;
  background-color: var(--color-white); border: solid 1px var(--color-black); border-radius: var(--rounded-full);
}
@media screen and (max-width: 767px) { .l-header__inner { height: 16vw; padding-right: 2.6666666667vw; padding-left: 4.2666666667vw; } }
@media screen and (min-width: 768px) { .l-header__inner { gap: min(1.875vw, 1.5rem); height: min(6.09375vw, 4.875rem); padding-inline: min(1.875vw, 1.5rem); } }
.l-header__left { display: flex; column-gap: min(3.125vw, 2.5rem); align-items: center; }
@media screen and (max-width: 767px) { .l-header__nav { display: none; } }
@media screen and (min-width: 768px) { .l-header__nav-list { display: flex; } }
.l-header__nav-item { position: relative; display: flex; column-gap: min(.625vw, .5rem); align-items: center; }
@media screen and (min-width: 768px) {
  .l-header__nav-item:not(:first-child) { padding-left: min(1.796875vw, 1.4375rem); }
  .l-header__nav-item:not(:first-child)::before {
    position: absolute; top: 50%; left: 0; display: block; width: min(.078125vw, .0625rem); height: min(1.09375vw, .875rem);
    content: ""; background-color: #afbec7; transform: translateY(-50%);
  }
  .l-header__nav-item:not(:last-child) { padding-right: min(1.875vw, 1.5rem); }
}
.l-header__nav-link { letter-spacing: .08em; line-height: 1.48; font-weight: 700; display: flex; align-items: center; white-space: nowrap; color: var(--color-black); transition: color .25s ease; }
@media screen and (min-width: 768px) { .l-header__nav-link { font-size: min(.9375vw, .75rem); } }
.l-header__nav-link:hover { color: rgba(0, 0, 0, .5); }
@media screen and (max-width: 767px) { .l-header__btn { display: none; } }
@media screen and (min-width: 768px) {
  .l-header__btn .c-button { column-gap: min(.9375vw, .75rem); height: min(3.90625vw, 3.125rem); padding-inline: min(1.875vw, 1.5rem); }
  .l-header__btn .c-button__text { font-size: min(.9375vw, .75rem); }
  .l-header__btn .c-button__icon { width: min(1.5625vw, 1.25rem); height: min(1.5625vw, 1.25rem); }
}
@media screen and (max-width: 767px) {
  .l-header__menu {
    display: flex; flex-direction: column; row-gap: .8vw; align-items: center; justify-content: center;
    width: 11.7333333333vw; height: 11.7333333333vw; margin-left: auto;
    background-color: var(--color-black); border: solid 1px var(--color-white); border-radius: 50%;
  }
}
@media screen and (min-width: 768px) { .l-header__menu { display: none; } }
.l-header__menu-icon-bar { display: block; width: 3.2vw; height: .2666666667vw; pointer-events: none; background-color: var(--color-white); }

/* --------------------------------------------------------------------------
   l-menu（SPフルスクリーンメニュー）
   -------------------------------------------------------------------------- */
.l-menu { position: fixed; inset: 0; z-index: 9999; visibility: hidden; width: 100%; height: 100dvh; overflow: auto; opacity: 0; transition: opacity .2s cubic-bezier(.34, .07, .095, .995), visibility .2s; }
.l-menu[open] { display: block; }
.l-menu.is-open { visibility: visible; opacity: 1; }
.l-menu.is-open .l-menu__bg { transform: scale(52); transition: .6s cubic-bezier(.905, .005, .66, .93); }
.l-menu.is-open .l-menu__close { opacity: 1; transition: all .3s ease; }
.l-menu.is-open .l-menu__wrapper { visibility: visible; opacity: 1; transition: visibility .3s .4s, opacity .3s cubic-bezier(.34, .07, .095, .995) .4s; }
.l-menu::backdrop { background-color: rgba(0, 0, 0, .6); }
.l-menu__container { position: absolute; top: 0; left: 0; display: block; width: 100%; min-height: 100%; overflow: hidden; border-top-left-radius: 42.6666666667vw; }
.l-menu__bg { position: absolute; top: 7.4666666667vw; right: 8vw; width: 11.7333333333vw; height: 11.7333333333vw; background-color: var(--color-white); border-radius: 50%; transform-origin: 50% 50%; transition: .6s cubic-bezier(.34, .07, .095, .995); }
.l-menu__wrapper { position: relative; visibility: hidden; width: 100%; height: 100%; padding: 26.6666666667vw 12vw 40vw 12vw; opacity: 0; transition: visibility .2s, opacity .2s; }
.l-menu__sticky { position: sticky; top: 0; left: 0; z-index: 10; width: 100%; height: 0; }
.l-menu__close {
  position: absolute; top: 7.4666666667vw; right: 8vw; display: flex; align-items: center; justify-content: center;
  width: 11.7333333333vw; height: 11.7333333333vw; background-color: var(--color-black); border: solid 1px var(--color-white); border-radius: 50%; opacity: 0;
}
.l-menu__close::before, .l-menu__close::after { position: absolute; top: 50%; left: 50%; display: block; width: 4vw; height: .2666666667vw; content: ""; background-color: var(--color-white); }
.l-menu__close::before { transform: translate(-50%, -50%) rotate(45deg); }
.l-menu__close::after { transform: translate(-50%, -50%) rotate(-45deg); }
.l-menu__nav-list { display: flex; flex-direction: column; gap: 6.4vw; }
.l-menu__nav-item { color: var(--color-black); letter-spacing: .08em; line-height: 1.6; font-weight: 700; font-size: 4.2666666667vw; }
.l-menu__btn { margin-top: 8.5333333333vw; }
.l-menu__btn-list { display: flex; flex-direction: column; gap: 2.6666666667vw; }
.l-menu__btn-item { margin-right: auto; }
.l-menu__btn-item .c-button { column-gap: 3.2vw; height: 12.8vw; padding-inline: 5.3333333333vw; }
.l-menu__btn-item .c-button__text { font-size: 3.4666666667vw; }
.l-menu__info { position: relative; padding-top: 8.5333333333vw; margin-top: 8.5333333333vw; font-size: 3.2vw; letter-spacing: .08em; line-height: 1.6; color: var(--color-gray-black); }
.l-menu__info::after { position: absolute; top: 0; left: 0; display: block; width: 100%; height: .2666666667vw; content: ""; background-color: #afbec7; }
.l-menu__tel { margin-top: 2.1333333333vw; }
.l-menu__info a span { position: relative; }
.l-menu__info a span::before { position: absolute; bottom: 0; left: 0; width: 100%; height: .0625rem; content: ""; background-color: var(--color-gray-black); }
.l-menu__logo { position: absolute; bottom: 2vw; left: 50%; width: 100%; transform: translateX(-50%); }
.l-menu__logo .c-logo-big { font-size: 19vw; }
@media screen and (min-width: 768px) { .l-menu { display: none !important; } }

/* --------------------------------------------------------------------------
   p-top-mv（ファーストビュー：グレー背景＋丸みのある図形グリッド）
   -------------------------------------------------------------------------- */
.p-top-mv { position: relative; z-index: 1; width: 100%; overflow: hidden; background-color: var(--color-gray); }
@media screen and (max-width: 767px) { .p-top-mv { padding-bottom: 4vw; margin-top: -21.3333333333vw; padding-top: 21.3333333333vw; } }
@media screen and (min-width: 768px) { .p-top-mv { padding-top: min(3.125vw, 2.5rem); } }
.p-top-mv__inner { position: relative; display: grid; margin-inline: auto; }
@media screen and (max-width: 767px) { .p-top-mv__inner { grid-template-columns: repeat(32, 3.125vw); grid-template-rows: repeat(52, 3.125vw); } }
@media screen and (min-width: 768px) { .p-top-mv__inner { grid-template-columns: repeat(32, 3.125vw); grid-template-rows: repeat(21, 3.125vw); } }

.p-top-mv__group { display: flex; opacity: 0; transform: scale(.6) rotate(-20deg); transform-origin: 50% 50%; }
.p-top-mv.is-start .p-top-mv__group { opacity: 1; transform: none; transition: opacity .6s ease var(--d, 0s), transform .9s var(--ease-out-expo) var(--d, 0s); }
.p-top-mv__part { position: relative; display: flex; flex-shrink: 0; align-items: center; justify-content: center; width: 100%; height: 100%; }
.p-top-mv__part.left { border-radius: var(--rounded-full) var(--rounded-full) var(--rounded-full) 0; }
.p-top-mv__part.right { border-radius: var(--rounded-full) var(--rounded-full) 0 var(--rounded-full); }
.p-top-mv__part.circle, .p-top-mv__part.pill { border-radius: var(--rounded-full); }
.p-top-mv__part.dashed { border: 1px dashed var(--color-blue); }
.p-top-mv__part.white { background-color: var(--color-light-gray); }
.p-top-mv__part.glay { background-color: var(--color-dark-gray); }
.p-top-mv__part-inner { display: flex; align-items: center; width: 100%; height: 100%; padding: 12.5%; }
.p-top-mv__part-content { position: relative; width: 100%; height: 100%; }
.p-top-mv__part-img { width: 100%; height: 100%; overflow: hidden; border: solid min(.078125vw, .0625rem) var(--color-black); border-radius: 50%; }
.p-top-mv__part-img img { width: 100%; height: 100%; object-fit: cover; }
.p-top-mv__part-text { font-feature-settings: "palt"; text-align: center; color: var(--color-blue); letter-spacing: .14em; line-height: 1.8; font-weight: 400; padding: 8%; }
@media screen and (max-width: 767px) { .p-top-mv__part-text { font-size: 2.9333333333vw; } }
@media screen and (min-width: 768px) { .p-top-mv__part-text { font-size: min(1.015625vw, .8125rem); } }

/* PC グリッド配置（32列 × 21行） */
@media screen and (min-width: 768px) {
  .p-top-mv__group.g01 { grid-column: 2 / 10; grid-row: 3 / 11; }
  .p-top-mv__group.g02 { grid-column: 10 / 12; grid-row: 2 / 4; }
  .p-top-mv__group.g03 { grid-column: 12 / 18; grid-row: 1 / 3; }
  .p-top-mv__group.g04 { grid-column: 19 / 23; grid-row: 1 / 5; }
  .p-top-mv__group.g05 { grid-column: 24 / 26; grid-row: 2 / 4; }
  .p-top-mv__group.g06 { grid-column: 27 / 31; grid-row: 2 / 6; }
  .p-top-mv__group.g07 { grid-column: 31 / 33; grid-row: 6 / 8; }
  .p-top-mv__group.g08 { grid-column: 1 / 4; grid-row: 12 / 15; }
  .p-top-mv__group.g09 { grid-column: 5 / 7; grid-row: 12 / 14; }
  .p-top-mv__group.g10 { grid-column: 3 / 8; grid-row: 15 / 20; }
  .p-top-mv__group.g11 { grid-column: 9 / 11; grid-row: 19 / 21; }
  .p-top-mv__group.g12 { grid-column: 26 / 31; grid-row: 7 / 12; }
  .p-top-mv__group.g13 { grid-column: 24 / 26; grid-row: 12 / 14; }
  .p-top-mv__group.g14 { grid-column: 27 / 32; grid-row: 14 / 19; }
  .p-top-mv__group.g16 { grid-column: 12 / 18; grid-row: 19 / 21; }
  .p-top-mv__group.g17 { grid-column: 19 / 23; grid-row: 16 / 20; }
  .p-top-mv__group.g18 { grid-column: 1 / 3; grid-row: 8 / 10; }
  .p-top-mv__group.g19 { grid-column: 31 / 33; grid-row: 10 / 12; }
  .p-top-mv__group.g20 { grid-column: 9 / 13; grid-row: 15 / 19; }
  .p-top-mv__group.g21 { grid-column: 24 / 26; grid-row: 19 / 21; }
  .p-top-mv__group.g22 { grid-column: 1 / 7; grid-row: 20 / 22; }
  .p-top-mv__copy { grid-column: 11 / 24; grid-row: 6 / 14; }
}
/* SP グリッド配置（32列 × 52行） */
@media screen and (max-width: 767px) {
  .p-top-mv__group.g01 { grid-column: 1 / 11; grid-row: 2 / 12; }
  .p-top-mv__group.g02 { grid-column: 12 / 15; grid-row: 5 / 8; }
  .p-top-mv__group.g03 { grid-column: 12 / 22; grid-row: 1 / 4; }
  .p-top-mv__group.g04 { grid-column: 23 / 31; grid-row: 2 / 10; }
  .p-top-mv__group.g05 { grid-column: 16 / 19; grid-row: 6 / 9; }
  .p-top-mv__group.g06 { grid-column: 20 / 28; grid-row: 10 / 18; }
  .p-top-mv__group.g07 { grid-column: 29 / 32; grid-row: 12 / 15; }
  .p-top-mv__group.g08 { display: none; }
  .p-top-mv__group.g09 { grid-column: 12 / 15; grid-row: 12 / 15; }
  .p-top-mv__group.g10 { grid-column: 20 / 30; grid-row: 33 / 43; }
  .p-top-mv__group.g11 { grid-column: 14 / 17; grid-row: 31 / 34; }
  .p-top-mv__group.g12 { grid-column: 3 / 13; grid-row: 32 / 42; }
  .p-top-mv__group.g13 { grid-column: 17 / 20; grid-row: 38 / 41; }
  .p-top-mv__group.g14 { grid-column: 21 / 31; grid-row: 43 / 53; }
  .p-top-mv__group.g16 { grid-column: 1 / 11; grid-row: 43 / 46; }
  .p-top-mv__group.g17 { display: none; }
  .p-top-mv__group.g18 { grid-column: 30 / 33; grid-row: 30 / 33; }
  .p-top-mv__group.g19 { display: none; }
  .p-top-mv__group.g20 { grid-column: 11 / 19; grid-row: 45 / 53; }
  .p-top-mv__group.g21 { grid-column: 1 / 4; grid-row: 37 / 40; }
  .p-top-mv__group.g22 { display: none; }
  .p-top-mv__group.g01 .p-top-mv__part-inner, .p-top-mv__group.g04 .p-top-mv__part-inner { padding: 10%; }
  .p-top-mv__copy { grid-column: 2 / 32; grid-row: 17 / 31; }
}

.p-top-mv__copy { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; opacity: 0; transform: translateY(1.5rem); }
.p-top-mv.is-start .p-top-mv__copy { opacity: 1; transform: none; transition: opacity .8s ease .5s, transform .9s var(--ease-out-expo) .5s; }
.p-top-mv__copy-en { color: var(--color-dark-blue); letter-spacing: .1em; }
.p-top-mv__copy-title { color: var(--color-text); letter-spacing: .06em; line-height: 1.2; font-weight: 700; }
@media screen and (max-width: 767px) { .p-top-mv__copy-title { margin-top: 3.2vw; font-size: 9.0666666667vw; }
.p-top-mv__copy-title img {max-width:85%;margin: 0 auto; } }
@media screen and (min-width: 768px) { .p-top-mv__copy-title { margin-top: min(1.25vw, 1rem); font-size: min(4.6875vw, 3.75rem); } }
.p-top-mv__copy-logo {
  font-family: Poppins, sans-serif; font-weight: 800; letter-spacing: .02em; line-height: 1; color: var(--color-yellow);
  -webkit-text-stroke: .0625rem var(--color-black); paint-order: stroke fill; white-space: nowrap;
}
@media screen and (max-width: 767px) { .p-top-mv__copy-logo { margin-top: 3.2vw; font-size: 12.8vw; } }
@media screen and (min-width: 768px) { .p-top-mv__copy-logo { margin-top: min(1.5625vw, 1.25rem); font-size: min(6.25vw, 5rem); } }
.p-top-mv__copy-lead { color: var(--color-blue); letter-spacing: .16em; line-height: 1.6; font-weight: 700; }
@media screen and (max-width: 767px) { .p-top-mv__copy-lead { margin-top: 4.2666666667vw; font-size: 3.7333333333vw; } }
@media screen and (min-width: 768px) { .p-top-mv__copy-lead { margin-top: min(1.875vw, 1.5rem); font-size: min(1.40625vw, 1.125rem); } }

/* --------------------------------------------------------------------------
   p-top-carousel（キーワードが流れるベルト）
   -------------------------------------------------------------------------- */
@keyframes infiniteAnimation { 0% { transform: translateX(0); } to { transform: translateX(-100%); } }
.p-top-carousel { position: relative; z-index: 1; overflow: hidden; background-color: var(--color-dark-gray); }
@media screen and (max-width: 767px) { .p-top-carousel { padding-block: 5.3333333333vw; } }
@media screen and (min-width: 768px) { .p-top-carousel { padding-block: min(2.5vw, 2rem); } }
.p-top-carousel__belt { position: relative; display: flex; width: max-content;margin-bottom:15px; }
@media screen and (max-width: 767px) { .p-top-carousel__belt { height: 4.8vw; } .p-top-carousel__belt:nth-of-type(2) { margin-top: 4.5333333333vw; } }
@media screen and (min-width: 768px) { .p-top-carousel__belt { height: min(1.875vw, 1.5rem); } .p-top-carousel__belt:nth-of-type(2) { margin-top: min(1.875vw, 1.5rem); } }
.p-top-carousel__inner { flex-shrink: 0; animation: infiniteAnimation 60s linear infinite; }
.p-top-carousel__belt:nth-of-type(2) .p-top-carousel__inner { animation-direction: reverse; }
.p-top-carousel__list { display: flex; flex-wrap: nowrap; align-items: center; }
@media screen and (max-width: 767px) { .p-top-carousel__list { gap: 3.2vw; padding-right: 3.2vw; } }
@media screen and (min-width: 768px) { .p-top-carousel__list { gap: min(1.09375vw, .875rem); padding-right: min(1.09375vw, .875rem); } }
.p-top-carousel__item { display: flex; flex-shrink: 0; align-items: center; white-space: nowrap; letter-spacing: .08em; line-height: 1.78; font-weight: 500; color: var(--color-text); }
@media screen and (max-width: 767px) { .p-top-carousel__item { gap: 3.2vw; font-size: 3.4666666667vw; } .p-top-carousel__item span { width: 4.8vw; height: 4.8vw; } }
@media screen and (min-width: 768px) { .p-top-carousel__item { gap: min(1.09375vw, .875rem); font-size: min(1.25vw, 1rem); } .p-top-carousel__item span { width: min(1.875vw, 1.5rem); height: min(1.875vw, 1.5rem); } }

/* --------------------------------------------------------------------------
   共通：セクション背景英字（overlay）／フェード
   -------------------------------------------------------------------------- */
.c-bg-text { font-family: Poppins, sans-serif; letter-spacing: .01em; line-height: 1.4; font-weight: 500; color: var(--color-bg-text); white-space: nowrap; mix-blend-mode: overlay; opacity: .6; pointer-events: none; }
.js-fade { opacity: 0; transform: translateY(1.5rem); transition: opacity .8s ease var(--delay, 0s), transform .9s var(--ease-out-expo) var(--delay, 0s); }
.js-fade.is-active { opacity: 1; transform: none; }
.c-scale { transform: scale(0) rotate(-90deg); transition: transform .8s var(--ease-out-expo); }
.js-rolling-target.is-active .c-scale { transform: scale(1) rotate(0); }

/* --------------------------------------------------------------------------
   p-message（ごあいさつ）：白背景・上部丸角・縦書きリード（参考サイトの p-message-ceo）
   -------------------------------------------------------------------------- */
.p-message { position: relative; z-index: 2; overflow: hidden; background-color: var(--color-white); }
@media screen and (max-width: 767px) { .p-message { padding-inline: 8vw; padding-top: 21.3333333333vw; padding-bottom: 21.3333333333vw; margin-top: -8vw; border-top-left-radius: 21.3333333333vw; border-top-right-radius: 21.3333333333vw; } }
@media screen and (min-width: 768px) { .p-message { padding-inline: min(9.375vw, 7.5rem); padding-top: min(9.375vw, 7.5rem); padding-bottom: min(12.5vw, 10rem); margin-top: max(-3.125vw, -2.5rem); border-top-left-radius: min(9.375vw, 7.5rem); border-top-right-radius: min(9.375vw, 7.5rem); } }
.p-message__inner { position: relative; z-index: 1; margin-inline: auto; }
@media screen and (min-width: 768px) { .p-message__inner { width: min(75vw, 60rem); } }
.p-message__bg-text { position: absolute; left: 50%; transform: translateX(-50%); font-family: Poppins, sans-serif; letter-spacing: -.02em; line-height: 1.4; font-weight: 500; color: var(--color-dark-gray); white-space: nowrap; opacity: .12; pointer-events: none; }
@media screen and (max-width: 767px) { .p-message__bg-text { top: 34.1333333333vw; font-size: 24.8vw; } }
@media screen and (min-width: 768px) { .p-message__bg-text { top: min(26.5625vw, 21.25rem); font-size: 23.4375vw; } }
.p-message__col { display: flex; align-items: flex-start; margin-left: auto; }
@media screen and (max-width: 767px) { .p-message__col { flex-direction: column; row-gap: 8.5333333333vw; margin-top: 14.4vw; } }
@media screen and (min-width: 768px) { .p-message__col { flex-direction: row; column-gap: min(7.1875vw, 5.75rem); width: min(68.515625vw, 54.8125rem); margin-top: min(8.4375vw, 6.75rem); } }
.p-message__lead-area { width: 100%; }
.p-message__lead { display: flex; flex-direction: column; overflow: hidden; color: var(--color-text); }
@media screen and (max-width: 767px) { .p-message__lead { letter-spacing: .08em; line-height: 1.6; font-weight: 500; font-size: 6.9333333333vw; } }
@media screen and (min-width: 768px) { .p-message__lead { letter-spacing: .4em; line-height: 1.5; font-weight: 500; font-size: min(3.125vw, 2.5rem); writing-mode: vertical-rl; margin-left: auto; } }
.p-message__lead span { display: block; }
@media screen and (min-width: 768px) { .p-message__lead span { white-space: nowrap; } }
@media screen and (min-width: 768px) { .p-message__text-area { flex-shrink: 0; width: min(39.0625vw, 31.25rem); margin-top: min(3.75vw, 3rem); } }
.p-message__text { letter-spacing: .1em; line-height: 1.9; font-weight: 400; }
@media screen and (max-width: 767px) { .p-message__text { font-size: 3.4666666667vw; } }
@media screen and (min-width: 768px) { .p-message__text { font-size: min(1.171875vw, .9375rem); } }
.p-message__text + .p-message__text { margin-top: calc(1em * 1.6); }
.p-message__name-area { display: flex; column-gap: 3.2vw; align-items: flex-end; justify-content: flex-end; margin-top: 7.4666666667vw; }
@media screen and (min-width: 768px) { .p-message__name-area { column-gap: min(1.25vw, 1rem); margin-top: min(3.125vw, 2.5rem); } }
.p-message__company { letter-spacing: .08em; line-height: 1.6; font-weight: 700; text-align: right; }
@media screen and (max-width: 767px) { .p-message__company { font-size: 3.2vw; } }
@media screen and (min-width: 768px) { .p-message__company { font-size: min(1.09375vw, .875rem); } }
.p-message__name { letter-spacing: .2em; line-height: 1.2; font-weight: 700; color: var(--color-text); }
@media screen and (max-width: 767px) { .p-message__name { font-size: 6.4vw; } }
@media screen and (min-width: 768px) { .p-message__name { font-size: min(2.34375vw, 1.875rem); } }

/* --------------------------------------------------------------------------
   p-slogan（スローガン）：sky-blue 背景に白いバルーン＋巨大英字
   -------------------------------------------------------------------------- */
.p-slogan { position: relative; overflow: hidden; background-color: var(--color-sky-blue); }
@media screen and (max-width: 767px) { .p-slogan { padding-inline: 5.3333333333vw; padding-top: 32vw; padding-bottom: 21.3333333333vw; } }
@media screen and (min-width: 768px) { .p-slogan { padding-top: min(17.8125vw, 14.25rem); padding-bottom: min(12.5vw, 10rem); } }
.p-slogan__bg-text { position: absolute; top: 0; left: 50%; translate: -50% 0; z-index: 0; font-family: Poppins, sans-serif; letter-spacing: .01em; line-height: 1.2; font-weight: 500; color: var(--color-bg-text); white-space: nowrap; mix-blend-mode: overlay; opacity: .7; pointer-events: none; }
@media screen and (max-width: 767px) { .p-slogan__bg-text { top: 8vw; font-size: 28vw; } }
@media screen and (min-width: 768px) { .p-slogan__bg-text { top: min(3.90625vw, 3.125rem); font-size: 22vw; } }
.p-slogan__inner { position: relative; z-index: 1; margin-inline: auto; }
@media screen and (min-width: 768px) { .p-slogan__inner { width: min(75vw, 60rem); } }
.p-slogan__box { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; background-color: var(--color-white); }
@media screen and (max-width: 767px) { .p-slogan__box { padding: 14.9333333333vw 8vw 16vw; border-radius: 21.3333333333vw 21.3333333333vw 21.3333333333vw 0; } }
@media screen and (min-width: 768px) { .p-slogan__box { padding: min(6.25vw, 5rem) min(9.375vw, 7.5rem) min(7.03125vw, 5.625rem); border-radius: min(18.75vw, 15rem) min(18.75vw, 15rem) min(18.75vw, 15rem) 0; } }
.p-slogan__icon { flex-shrink: 0; }
@media screen and (max-width: 767px) { .p-slogan__icon { width: 14.9333333333vw; height: 14.9333333333vw; margin-bottom: 5.3333333333vw; } }
@media screen and (min-width: 768px) { .p-slogan__icon { width: min(5.625vw, 4.5rem); height: min(5.625vw, 4.5rem); margin-bottom: min(1.875vw, 1.5rem); } }
.p-slogan__catch { color: var(--color-blue); letter-spacing: .1em; line-height: 1.5; font-weight: 700; }
@media screen and (max-width: 767px) { .p-slogan__catch { margin-top: 8.5333333333vw; font-size: 8.5333333333vw; } }
@media screen and (min-width: 768px) { .p-slogan__catch { margin-top: min(3.90625vw, 3.125rem); font-size: min(3.75vw, 3rem); } }
.p-slogan__text { letter-spacing: .1em; line-height: 1.9; font-weight: 500; }
@media screen and (max-width: 767px) { .p-slogan__text { margin-top: 6.4vw; font-size: 3.4666666667vw; text-align: left; } }
@media screen and (min-width: 768px) { .p-slogan__text { margin-top: min(2.5vw, 2rem); font-size: min(1.171875vw, .9375rem); } }

/* --------------------------------------------------------------------------
   p-philosophy（ミッション・ビジョン）：破線バルーンが白く満ちるカード（p-service-main__content 踏襲）
   -------------------------------------------------------------------------- */
.p-philosophy { position: relative; background-color: var(--color-light-gray); }
@media screen and (max-width: 767px) { .p-philosophy { padding-inline: 5.3333333333vw; padding-top: 17.0666666667vw; padding-bottom: 21.3333333333vw; } }
@media screen and (min-width: 768px) { .p-philosophy { padding-top: min(10.9375vw, 8.75rem); padding-bottom: min(12.5vw, 10rem); } }
.p-philosophy__inner { margin-inline: auto; }
@media screen and (min-width: 768px) { .p-philosophy__inner { width: min(90.625vw, 72.5rem); } }
.p-philosophy__col { display: flex; }
@media screen and (max-width: 767px) { .p-philosophy__col { flex-direction: column; row-gap: 10.6666666667vw; } }
@media screen and (min-width: 768px) { .p-philosophy__col { flex-direction: row; align-items: stretch; column-gap: min(3.125vw, 2.5rem); } }
.p-philosophy__content { position: relative; z-index: 1; display: flex; flex-direction: column; }
@media screen and (max-width: 767px) { .p-philosophy__content { padding: 14.9333333333vw 8.2666666667vw 22vw; } }
@media screen and (min-width: 768px) { .p-philosophy__content { flex: 1 1 0; padding: min(6.25vw, 5rem) min(5.46875vw, 4.375rem) min(7.8125vw, 6.25rem); } }
.p-philosophy__content::before {
  position: absolute; top: 50%; left: 50%; z-index: -1; width: 92%; height: 92%; content: "";
  border: 1px dashed var(--color-blue); transform: translate(-50%, -50%); transition: all .8s ease-out;
}
.p-philosophy__content.is-active::before { width: 100%; height: 100%; background-color: var(--color-white); border-color: transparent; }
@media screen and (max-width: 767px) {
  .p-philosophy__content--odd::before { border-radius: 21.3333333333vw 21.3333333333vw 0 21.3333333333vw; }
  .p-philosophy__content--even::before { border-radius: 21.3333333333vw 21.3333333333vw 21.3333333333vw 0; }
}
@media screen and (min-width: 768px) {
  .p-philosophy__content--odd::before { border-radius: min(12.5vw, 10rem) min(12.5vw, 10rem) 0 min(12.5vw, 10rem); }
  .p-philosophy__content--even::before { border-radius: min(12.5vw, 10rem) min(12.5vw, 10rem) min(12.5vw, 10rem) 0; }
}
.p-philosophy__statement { color: var(--color-blue); letter-spacing: .06em; line-height: 1.6; font-weight: 700; }
@media screen and (max-width: 767px) { .p-philosophy__statement { margin-top: 6.4vw; font-size: 5.3333333333vw; } }
@media screen and (min-width: 768px) { .p-philosophy__statement { margin-top: min(2.8125vw, 2.25rem); font-size: min(2.03125vw, 1.625rem); } }
.p-philosophy__body { margin-top: 5.3333333333vw; }
@media screen and (min-width: 768px) { .p-philosophy__body { margin-top: min(1.875vw, 1.5rem); } }
.p-philosophy__text { letter-spacing: .1em; line-height: 1.9; font-weight: 400; }
@media screen and (max-width: 767px) { .p-philosophy__text { font-size: 3.4666666667vw; } }
@media screen and (min-width: 768px) { .p-philosophy__text { font-size: min(1.171875vw, .9375rem); } }
.p-philosophy__text + .p-philosophy__text { margin-top: 3.2vw; }
@media screen and (min-width: 768px) { .p-philosophy__text + .p-philosophy__text { margin-top: min(1.25vw, 1rem); } }
.p-philosophy__icon { position: absolute; }
@media screen and (max-width: 767px) { .p-philosophy__icon { right: 8.2666666667vw; bottom: 8vw; width: 10.6666666667vw; height: 10.6666666667vw; } }
@media screen and (min-width: 768px) { .p-philosophy__icon { right: min(4.6875vw, 3.75rem); bottom: min(3.90625vw, 3.125rem); width: min(4.0625vw, 3.25rem); height: min(4.0625vw, 3.25rem); } }

/* --------------------------------------------------------------------------
   p-value（バリュー）：左 sticky 見出し＋右カードリスト（p-top-reason 踏襲）
   -------------------------------------------------------------------------- */
.p-value { position: relative; background-color: var(--color-sky-blue); }
@media screen and (max-width: 767px) { .p-value { padding-inline: 5.3333333333vw; padding-top: 21.3333333333vw; padding-bottom: 21.3333333333vw; } }
@media screen and (min-width: 768px) { .p-value { padding-top: min(12.5vw, 10rem); padding-bottom: min(14.0625vw, 11.25rem); } }
.p-value__bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; }
@media screen and (max-width: 767px) { .p-value__bg { padding-top: 95.4666666667vw; padding-bottom: 95.4666666667vw; } }
@media screen and (min-width: 768px) { .p-value__bg { padding-top: min(15.3125vw, 12.25rem); padding-bottom: min(13.28125vw, 10.625rem); } }
.p-value__bg-inner { position: sticky; z-index: 1; overflow: hidden; text-align: center; white-space: nowrap; mix-blend-mode: overlay; opacity: .7; }
@media screen and (max-width: 767px) { .p-value__bg-inner { top: calc(50vh - 14.9333333333vw); height: 29.8666666667vw; } }
@media screen and (min-width: 768px) { .p-value__bg-inner { top: calc(50% - 15.3125vw); height: 30.625vw; } }
.p-value__bg-text { font-family: Poppins, sans-serif; letter-spacing: .01em; line-height: 1.4; font-weight: 500; position: absolute; top: 0; left: 50%; color: var(--color-bg-text); transform: translateX(-50%); }
@media screen and (max-width: 767px) { .p-value__bg-text { font-size: 21.3333333333vw; } }
@media screen and (min-width: 768px) { .p-value__bg-text { font-size: 21.875vw; } }
.p-value__inner { position: relative; z-index: 1; }
@media screen and (max-width: 767px) { .p-value__inner { display: flex; flex-direction: column; } }
@media screen and (min-width: 768px) { .p-value__inner { display: flex; column-gap: min(3.125vw, 2.5rem); justify-content: space-between; width: min(100vw, 80rem); padding-inline: min(6.25vw, 5rem); margin-inline: auto; } }
@media screen and (min-width: 768px) { .p-value__left { padding-left: min(6.25vw, 5rem); } }
@media screen and (min-width: 768px) { .p-value__sticky { position: sticky; top: calc(50% - min(12.5vw, 10rem)); width: min(22.34375vw, 17.875rem); } }
.p-value__lead { color: var(--color-text); letter-spacing: .1em; line-height: 1.8; font-weight: 500; }
@media screen and (max-width: 767px) { .p-value__lead { margin-top: 6.4vw; font-size: 3.4666666667vw; } }
@media screen and (min-width: 768px) { .p-value__lead { margin-top: min(3.125vw, 2.5rem); font-size: min(1.171875vw, .9375rem); } }
.p-value__pagination { position: relative; display: flex; flex-direction: column; gap: min(.78125vw, .625rem); align-items: center; width: min(.546875vw, .4375rem); margin-top: min(3.125vw, 2.5rem); }
@media screen and (max-width: 767px) { .p-value__pagination { display: none; } }
.p-value__pagination::before { position: absolute; top: 0; left: 50%; width: min(.078125vw, .0625rem); height: 100%; content: ""; background-color: #afbec7; transform: translateX(-50%); }
.p-value__pagination-point { position: relative; z-index: 1; width: min(.546875vw, .4375rem); height: min(.546875vw, .4375rem); background-color: #afbec7; border-radius: 50%; transition: all .3s cubic-bezier(.33, 1, .68, 1); }
.p-value__pagination-point.is-active { background-color: var(--color-blue); transform: scale(1.4); }
@media screen and (min-width: 768px) { .p-value__content { margin-top: min(3.125vw, 2.5rem); } }
.p-value__list { display: flex; flex-direction: column; }
@media screen and (max-width: 767px) { .p-value__list { gap: 6.4vw; margin-top: 10.6666666667vw; } }
@media screen and (min-width: 768px) { .p-value__list { gap: min(3.125vw, 2.5rem); width: min(50vw, 40rem); } }
.p-value__item:nth-of-type(odd) .p-value__item-inner { border-bottom-left-radius: var(--rounded-full); }
.p-value__item:nth-of-type(even) .p-value__item-inner { border-bottom-right-radius: var(--rounded-full); }
.p-value__item-inner { position: relative; overflow: hidden; border: 1px dashed var(--color-blue); border-top-left-radius: var(--rounded-full); border-top-right-radius: var(--rounded-full); transition: all .4s cubic-bezier(.33, 1, .68, 1); }
.p-value__item.is-active .p-value__item-inner { background-color: var(--color-white-blue); border: solid 1px var(--color-blue); }
@media screen and (max-width: 767px) { .p-value__item-inner { padding: 21.3333333333vw 12.8vw 19.2vw; } }
@media screen and (min-width: 768px) { .p-value__item-inner { padding: min(7.8125vw, 6.25rem) min(9.375vw, 7.5rem) min(6.25vw, 5rem) min(8.59375vw, 6.875rem); } }
.p-value__item-num { font-family: Poppins, sans-serif; color: var(--color-blue); letter-spacing: .02em; line-height: 1.4; font-weight: 400; position: relative; z-index: 1; display: flex; align-items: center; }
@media screen and (max-width: 767px) { .p-value__item-num { font-size: 3.2vw; } .p-value__item-num span { margin-left: 1.6vw; font-size: 4vw; } }
@media screen and (min-width: 768px) { .p-value__item-num { font-size: min(.9375vw, .75rem); } .p-value__item-num span { margin-left: min(1.25vw, 1rem); font-size: min(1.25vw, 1rem); } }
.p-value__item-title { color: var(--color-blue); letter-spacing: .04em; line-height: 1.6; font-weight: 700; position: relative; z-index: 1; }
@media screen and (max-width: 767px) { .p-value__item-title { margin-top: 5.3333333333vw; font-size: 5.3333333333vw; } }
@media screen and (min-width: 768px) { .p-value__item-title { margin-top: min(2.5vw, 2rem); font-size: min(2.1875vw, 1.75rem); } }
.p-value__item-text { color: var(--color-text); letter-spacing: .1em; line-height: 1.9; font-weight: 400; position: relative; z-index: 1; }
@media screen and (max-width: 767px) { .p-value__item-text { margin-top: 3.2vw; font-size: 3.4666666667vw; } .p-value__item-text br { display: none; } }
@media screen and (min-width: 768px) { .p-value__item-text { margin-top: min(1.5625vw, 1.25rem); font-size: min(1.171875vw, .9375rem); } }
.p-value__item-icon { position: absolute; }
@media screen and (max-width: 767px) { .p-value__item-icon { top: 8vw; right: 12.8vw; width: 10.6666666667vw; height: 10.6666666667vw; } }
@media screen and (min-width: 768px) { .p-value__item-icon { top: min(4.6875vw, 3.75rem); right: min(6.25vw, 5rem); width: min(4.6875vw, 3.75rem); height: min(4.6875vw, 3.75rem); } }

/* --------------------------------------------------------------------------
   p-service（事業内容）：ブルー背景 2 カラム（左ギャラリー・右説明）（p-top-service 踏襲）
   -------------------------------------------------------------------------- */
.p-service { position: relative; background-color: var(--color-sky-blue); }
.p-service__inner { display: flex; }
@media screen and (max-width: 767px) { .p-service__inner { flex-direction: column-reverse; } }
@media screen and (min-width: 768px) { .p-service__inner { width: 100%; align-items: stretch; } }
.p-service__gallery { position: relative; overflow: hidden; background-color: var(--color-dark-blue); }
@media screen and (max-width: 767px) { .p-service__gallery { padding-top: 10.6666666667vw; padding-bottom: 17.0666666667vw; } }
@media screen and (min-width: 768px) { .p-service__gallery { flex: 0 0 min(37.5vw, 30rem); padding-top: min(15.9375vw, 12.75rem); padding-bottom: min(6.25vw, 5rem); } }
.p-service__gallery::before { position: absolute; content: ""; background-color: var(--color-blue); border-radius: var(--rounded-full) var(--rounded-full) var(--rounded-full) 0; opacity: .4; }
@media screen and (max-width: 767px) { .p-service__gallery::before { top: 4vw; left: 50%; width: 80vw; height: 80vw; transform: translateX(-50%); } }
@media screen and (min-width: 768px) { .p-service__gallery::before { top: min(7.421875vw, 5.9375rem); left: 50%; width: min(62.5vw, 50rem); height: min(62.5vw, 50rem); transform: translateX(calc(-50% - min(13.4375vw, 10.75rem))); } }
.p-service__slider { position: relative; overflow: hidden; }
@media screen and (max-width: 767px) { .p-service__slider + .p-service__slider { display: none; } }
@media screen and (min-width: 768px) { .p-service__slider + .p-service__slider { margin-top: min(2.5vw, 2rem); } }
.p-service__slider-list { display: flex; align-items: center; width: max-content; will-change: transform; }
@media screen and (max-width: 767px) { .p-service__slider-list { gap: 4.2666666667vw; } }
@media screen and (min-width: 768px) { .p-service__slider-list { gap: min(1.875vw, 1.5rem); } }
.p-service__slider-item { flex-shrink: 0; }
.p-service__slider-img { display: block; overflow: hidden; outline: .0625rem solid var(--color-black); outline-offset: -.0625rem; }
@media screen and (max-width: 767px) { .p-service__slider-img { width: 48vw; border-radius: 2.1333333333vw; } .p-service__slider-img--lg { width: 64vw; } }
@media screen and (min-width: 768px) { .p-service__slider-img { width: min(25vw, 20rem); border-radius: min(.625vw, .5rem); } .p-service__slider-img--lg { width: min(29.6875vw, 23.75rem); } }
.p-service__slider-img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.p-service__desc { background-color: var(--color-blue); }
@media screen and (max-width: 767px) { .p-service__desc { padding: 17.0666666667vw 5.3333333333vw 12.8vw; border-top-right-radius: 21.3333333333vw; } }
@media screen and (min-width: 768px) { .p-service__desc { flex: 1 1 auto; padding: min(10.9375vw, 8.75rem) min(9.375vw, 7.5rem) min(9.375vw, 7.5rem) min(6.25vw, 5rem); border-top-right-radius: min(9.375vw, 7.5rem); } }
@media screen and (min-width: 768px) { .p-service__desc-inner { max-width: min(46.875vw, 37.5rem); margin-right: auto; } }
.p-service__text { color: var(--color-white); letter-spacing: .08em; line-height: 1.9; font-weight: 500; }
@media screen and (max-width: 767px) { .p-service__text { margin-top: 6.4vw; font-size: 3.4666666667vw; } }
@media screen and (min-width: 768px) { .p-service__text { margin-top: min(3.4375vw, 2.75rem); font-size: min(1.171875vw, .9375rem); } }
.p-service__text p + p { margin-top: 1em; }
@media screen and (max-width: 767px) { .p-service__main { margin-top: 10.6666666667vw; } }
@media screen and (min-width: 768px) { .p-service__main { margin-top: min(4.375vw, 3.5rem); } }
.p-service__main-title { color: var(--color-white); letter-spacing: .08em; line-height: 1.7; font-weight: 400; }
@media screen and (max-width: 767px) { .p-service__main-title { font-size: 3.2vw; } }
@media screen and (min-width: 768px) { .p-service__main-title { font-size: min(1.015625vw, .8125rem); } }
.p-service__list { display: grid; grid-template-columns: repeat(2, 1fr); }
@media screen and (max-width: 767px) { .p-service__list { grid-template-columns: 1fr; gap: 2.6666666667vw; margin-top: 4.2666666667vw; } }
@media screen and (min-width: 768px) { .p-service__list { gap: min(1.25vw, 1rem); margin-top: min(1.875vw, 1.5rem); } }
.p-service__item { position: relative; display: flex; align-items: center; background-color: var(--color-white); border-radius: var(--rounded-full) var(--rounded-full) var(--rounded-full) 0; }
@media screen and (max-width: 767px) { .p-service__item { column-gap: 3.2vw; padding: 2.6666666667vw 5.3333333333vw 2.6666666667vw 2.6666666667vw; } }
@media screen and (min-width: 768px) { .p-service__item { column-gap: min(1.09375vw, .875rem); padding: min(.9375vw, .75rem) min(1.5625vw, 1.25rem) min(.9375vw, .75rem) min(.9375vw, .75rem); } }
.p-service__item-img { flex-shrink: 0; overflow: hidden; border: solid 1px var(--color-black); border-radius: 50%; }
@media screen and (max-width: 767px) { .p-service__item-img { width: 13.8666666667vw; height: 13.8666666667vw; } }
@media screen and (min-width: 768px) { .p-service__item-img { width: min(4.6875vw, 3.75rem); height: min(4.6875vw, 3.75rem); } }
.p-service__item-img img { width: 100%; height: 100%; object-fit: cover; }
.p-service__item-num { flex-shrink: 0; font-family: Poppins, sans-serif; color: var(--color-blue); font-weight: 500; letter-spacing: .04em; line-height: 1; }
@media screen and (max-width: 767px) { .p-service__item-num { font-size: 3.2vw; } }
@media screen and (min-width: 768px) { .p-service__item-num { font-size: min(.9375vw, .75rem); } }
.p-service__item-text { color: var(--color-blue); letter-spacing: .04em; line-height: 1.6; font-weight: 500; }
@media screen and (max-width: 767px) { .p-service__item-text { font-size: 3.2vw; } }
@media screen and (min-width: 768px) { .p-service__item-text { font-size: min(.9375vw, .75rem); } }

/* --------------------------------------------------------------------------
   p-company（会社概要）：白背景・上部丸角・地図＋定義リスト（p-company-profile 踏襲）
   -------------------------------------------------------------------------- */
.p-company { position: relative; z-index: 1; background-color: var(--color-white); }
@media screen and (max-width: 767px) { .p-company { padding-inline: 8vw; padding-top: 21.3333333333vw; padding-bottom: 21.3333333333vw; border-top-left-radius: 21.3333333333vw; border-top-right-radius: 21.3333333333vw; margin-top: -8vw; } }
@media screen and (min-width: 768px) { .p-company { padding-inline: min(9.375vw, 7.5rem); padding-top: min(9.375vw, 7.5rem); padding-bottom: min(10.3125vw, 8.25rem); border-top-left-radius: min(9.375vw, 7.5rem); border-top-right-radius: min(9.375vw, 7.5rem); margin-top: max(-3.125vw, -2.5rem); } }
.p-company__inner { margin-inline: auto; }
@media screen and (min-width: 768px) { .p-company__inner { width: min(81.25vw, 65rem); } }
.p-company__col { display: flex; align-items: flex-start; }
@media screen and (max-width: 767px) { .p-company__col { flex-direction: column; row-gap: 10.1333333333vw; margin-top: 10.6666666667vw; } }
@media screen and (min-width: 768px) { .p-company__col { flex-direction: row; column-gap: min(6.25vw, 5rem); margin-top: min(4.6875vw, 3.75rem); } }
@media screen and (max-width: 767px) { .p-company__map { width: 100%; } }
@media screen and (min-width: 768px) { .p-company__map { flex-shrink: 0; width: min(28.125vw, 22.5rem); margin-top: min(2.1875vw, 1.75rem); } }
.p-company__map-inner { width: 100%; overflow: hidden; border: solid 1px var(--color-black); }
@media screen and (max-width: 767px) { .p-company__map-inner { aspect-ratio: 4 / 3; border-radius: 2.1333333333vw; } }
@media screen and (min-width: 768px) { .p-company__map-inner { aspect-ratio: 1 / 1; border-radius: min(.9375vw, .75rem); } }
.p-company__map-inner iframe { display: block; width: 100%; height: 100%; border: 0; }
.p-company__info { width: 100%; }
.p-company__info-item { display: grid; align-items: start; width: 100%; border-top: 1px solid #ced6db; }
.p-company__info-item:last-child { border-bottom: 1px solid #ced6db; }
@media screen and (max-width: 767px) { .p-company__info-item { grid-template-columns: 1fr; row-gap: 2.1333333333vw; padding-inline: 2.1333333333vw; padding-top: 5.3333333333vw; padding-bottom: 4.8vw; } }
@media screen and (min-width: 768px) { .p-company__info-item { grid-template-columns: min(9.21875vw, 7.375rem) 1fr; column-gap: min(4.6875vw, 3.75rem); padding-inline: min(1.875vw, 1.5rem); padding-top: min(2.1875vw, 1.75rem); padding-bottom: min(2.109375vw, 1.6875rem); } }
.p-company__info-item dt { letter-spacing: .1em; line-height: 1.6; font-weight: 700; }
.p-company__info-item dd { letter-spacing: .1em; line-height: 1.8; font-weight: 400; }
@media screen and (max-width: 767px) { .p-company__info-item dt, .p-company__info-item dd { font-size: 3.4666666667vw; } }
@media screen and (min-width: 768px) { .p-company__info-item dt, .p-company__info-item dd { font-size: min(1.171875vw, .9375rem); } }
.p-company__business-list { display: flex; flex-direction: column; counter-reset: biz; }
@media screen and (max-width: 767px) { .p-company__business-list { row-gap: 1.6vw; } }
@media screen and (min-width: 768px) { .p-company__business-list { row-gap: min(.46875vw, .375rem); } }
.p-company__business-list li { position: relative; padding-left: 1.8em; counter-increment: biz; }
.p-company__business-list li::before { position: absolute; top: 0; left: 0; content: counter(biz) "."; font-family: Poppins, sans-serif; color: var(--color-blue); }

/* --------------------------------------------------------------------------
   l-contact（お問い合わせ）：白い巨大バルーン＋巨大英字（参考サイト l-contact 踏襲）
   -------------------------------------------------------------------------- */
.l-contact { position: relative; overflow: hidden; background-color: var(--color-gray); }
@media screen and (max-width: 767px) { .l-contact { padding-top: 19.2vw; padding-bottom: 10.6666666667vw; } }
@media screen and (min-width: 768px) { .l-contact { padding-top: min(17.8125vw, 14.25rem); padding-bottom: min(6.25vw, 5rem); } }
.l-contact__bg { position: absolute; top: 0; left: 50%; z-index: 1; color: var(--color-bg-text); white-space: nowrap; mix-blend-mode: overlay; opacity: .6; translate: -50% 0; font-family: Poppins, sans-serif; letter-spacing: .01em; line-height: 1.4; font-weight: 500; pointer-events: none; }
@media screen and (max-width: 767px) { .l-contact__bg { top: 2vw; font-size: 24.8vw; } }
@media screen and (min-width: 768px) { .l-contact__bg { font-size: 25vw; } }
.l-contact__inner { position: relative; z-index: 1; text-align: center; }
@media screen and (max-width: 767px) { .l-contact__inner { padding-inline: 5.3333333333vw; padding-top: 8.5333333333vw; } }
@media screen and (min-width: 768px) { .l-contact__inner { width: min(100vw, 80rem); padding-top: min(3.125vw, 2.5rem); margin: auto; } }
.l-contact__inner-bg { position: absolute; top: 0; left: 50%; z-index: -1; background-color: var(--color-white); border-radius: var(--rounded-full) var(--rounded-full) var(--rounded-full) 0; translate: -50% 0; }
@media screen and (max-width: 767px) { .l-contact__inner-bg { width: 266.6666666667vw; height: 266.6666666667vw; } }
@media screen and (min-width: 768px) { .l-contact__inner-bg { width: 156.25vw; height: 156.25vw; } }
.l-contact__icon { display: inline-block; }
@media screen and (max-width: 767px) { .l-contact__icon { width: 24.5333333333vw; height: 17.0666666667vw; } }
@media screen and (min-width: 768px) { .l-contact__icon { width: min(8.984375vw, 7.1875rem); height: min(6.25vw, 5rem); } }
.l-contact__icon svg { display: block; width: 100%; height: 100%; }
.l-contact__text { letter-spacing: .08em; line-height: 1.8; font-weight: 500; }
@media screen and (max-width: 767px) { .l-contact__text { margin-top: 5.3333333333vw; font-size: 3.4666666667vw; } }
@media screen and (min-width: 768px) { .l-contact__text { margin-top: min(2.1875vw, 1.75rem); font-size: min(1.25vw, 1rem); } }
.l-contact__item { display: flex; flex-direction: column; align-items: center; justify-content: center; margin-inline: auto; aspect-ratio: 1; border-radius: 50%; background-color: var(--color-sky-blue); }
@media screen and (max-width: 767px) { .l-contact__item { width: 89.3333333333vw; padding: 8vw; margin-top: 8.5333333333vw; } }
@media screen and (min-width: 768px) { .l-contact__item { width: min(43.75vw, 35rem); padding: min(3.125vw, 2.5rem); margin-top: min(3.75vw, 3rem); } }
.l-contact__tel { font-family: Poppins, sans-serif; color: var(--color-black); letter-spacing: .08em; line-height: 1.2; font-weight: 700; position: relative; display: inline-block; }
.l-contact__tel::after { position: absolute; left: 0; display: block; width: 100%; content: ""; background-color: var(--color-black); }
@media screen and (max-width: 767px) { .l-contact__tel { margin-top: 6.4vw; font-size: 6.9333333333vw; } .l-contact__tel::after { bottom: 0; height: .2666666667vw; } }
@media screen and (min-width: 768px) { .l-contact__tel { margin-top: min(2.5vw, 2rem); font-size: min(2.5vw, 2rem); } .l-contact__tel::after { bottom: 0; height: min(.15625vw, .125rem); } }
@media screen and (max-width: 767px) { .l-contact__btn { width: 74.6666666667vw; margin-top: 6.4vw; } }
@media screen and (min-width: 768px) { .l-contact__btn { width: min(26.5625vw, 21.25rem); margin-top: min(3.125vw, 2.5rem); } }
@media screen and (max-width: 767px) { .l-contact__btn .c-button { padding-inline: 5.3333333333vw; column-gap: 2.6666666667vw; } .l-contact__btn .c-button__text { font-size: 3.2vw; } }

/* --------------------------------------------------------------------------
   l-footer（参考サイト踏襲：白背景・左情報＋縦線・右ナビ・ボタン・巨大ロゴ）
   -------------------------------------------------------------------------- */
.l-footer { position: relative; z-index: 1; overflow: hidden; background-color: var(--color-white); }
@media screen and (max-width: 767px) { .l-footer { padding-inline: 6.4vw; padding-top: 14.9333333333vw; padding-bottom: 42vw; } }
@media screen and (min-width: 768px) { .l-footer { padding-top: min(9.375vw, 7.5rem); padding-bottom: min(15.625vw, 12.5rem); } }
@media screen and (min-width: 768px) { .l-footer__inner { width: min(100vw, 80rem); padding-inline: min(6.25vw, 5rem); margin: 0 auto; } }
.l-footer__main { display: flex; }
@media screen and (max-width: 767px) { .l-footer__main { flex-direction: column-reverse; } }
@media screen and (min-width: 768px) { .l-footer__main { justify-content: space-between; } }
.l-footer__info { color: var(--color-gray-black); letter-spacing: .08em; line-height: 1.6; font-weight: 500; position: relative; }
@media screen and (max-width: 767px) { .l-footer__info { padding-top: 7.7333333333vw; font-size: 3.2vw; } }
@media screen and (min-width: 768px) { .l-footer__info { flex-shrink: 0; padding-right: min(7.8125vw, 6.25rem); font-size: min(.9375vw, .75rem); } }
.l-footer__info::after { position: absolute; display: block; content: ""; background-color: #afbec7; }
@media screen and (max-width: 767px) { .l-footer__info::after { top: 0; left: 0; width: 100%; height: .2666666667vw; } }
@media screen and (min-width: 768px) { .l-footer__info::after { top: 0; right: 0; width: min(.078125vw, .0625rem); height: min(7.8125vw, 6.25rem); } }
.l-footer__company { color: var(--color-black); font-weight: 700; }
@media screen and (max-width: 767px) { .l-footer__company { font-size: 3.7333333333vw; margin-bottom: 2.1333333333vw; } }
@media screen and (min-width: 768px) { .l-footer__company { font-size: min(1.09375vw, .875rem); margin-bottom: min(.625vw, .5rem); } }
.l-footer__info a { color: inherit; transition: opacity .3s ease; }
.l-footer__info a:hover { opacity: .5; }
.l-footer__info a span { position: relative; }
.l-footer__info a span::before { position: absolute; bottom: 0; left: 0; z-index: 1; display: block; width: 100%; height: .0625rem; content: ""; background-color: var(--color-gray-black); }
@media screen and (max-width: 767px) { .l-footer__tel { margin-top: 2.1333333333vw; } }
@media screen and (min-width: 768px) { .l-footer__tel { margin-top: min(.625vw, .5rem); } }
@media screen and (max-width: 767px) { .l-footer__nav { padding-bottom: 8.5333333333vw; } }
@media screen and (min-width: 768px) { .l-footer__nav { padding-left: min(7.8125vw, 6.25rem); } }
.l-footer__nav-list { display: flex; }
@media screen and (max-width: 767px) { .l-footer__nav-list { flex-flow: row wrap; gap: 5.3333333333vw 8vw; } }
@media screen and (min-width: 768px) { .l-footer__nav-list { gap: min(3.75vw, 3rem); } }
.l-footer__nav-item { color: var(--color-black); letter-spacing: .08em; line-height: 1.6; font-weight: 700; }
@media screen and (max-width: 767px) { .l-footer__nav-item { width: 36vw; font-size: 3.7333333333vw; } }
@media screen and (min-width: 768px) { .l-footer__nav-item { flex-shrink: 0; font-size: min(1.09375vw, .875rem); } }
.l-footer__nav-item a { color: inherit; transition: opacity .2s ease; }
@media screen and (min-width: 768px) { .l-footer__nav-item a:hover { opacity: .5; } }
.l-footer__nav-child { display: flex; flex-direction: column; }
@media screen and (max-width: 767px) { .l-footer__nav-child { gap: 2.6666666667vw; margin-top: 3.2vw; } }
@media screen and (min-width: 768px) { .l-footer__nav-child { gap: min(.9375vw, .75rem); margin-top: min(1.5625vw, 1.25rem); } }
.l-footer__nav-child-item { color: var(--color-gray-black); letter-spacing: .08em; line-height: 1.6; font-weight: 500; }
@media screen and (max-width: 767px) { .l-footer__nav-child-item { font-size: 3.2vw; } }
@media screen and (min-width: 768px) { .l-footer__nav-child-item { font-size: min(.9375vw, .75rem); } }
@media screen and (max-width: 767px) { .l-footer__btn { margin-top: 7.4666666667vw; } }
@media screen and (min-width: 768px) { .l-footer__btn { margin-top: min(5vw, 4rem); } }
.l-footer__btn-list { display: flex; }
@media screen and (max-width: 767px) { .l-footer__btn-list { flex-direction: column; gap: 3.2vw; } }
@media screen and (min-width: 768px) { .l-footer__btn-list { gap: min(1.25vw, 1rem); justify-content: flex-end; } }
@media screen and (max-width: 767px) { .l-footer__btn-item { margin-right: auto; } .l-footer__btn-item .c-button { column-gap: 3.2vw; height: 10.6666666667vw; padding-inline: 5.3333333333vw; } .l-footer__btn-item .c-button__text { font-size: 3.2vw; } .l-footer__btn-item .c-button__icon { width: 5.3333333333vw; height: 5.3333333333vw; } }
@media screen and (min-width: 768px) { .l-footer__btn-item .c-button { column-gap: min(.9375vw, .75rem); height: min(3.203125vw, 2.5625rem); padding-inline: min(1.5625vw, 1.25rem); } .l-footer__btn-item .c-button__text { font-size: min(1.015625vw, .8125rem); } .l-footer__btn-item .c-button__icon { width: min(1.5625vw, 1.25rem); height: min(1.5625vw, 1.25rem); } }
.l-footer__lower { display: flex; color: var(--color-gray-black); letter-spacing: .08em; line-height: 1.48; font-weight: 400; }
@media screen and (max-width: 767px) { .l-footer__lower { column-gap: 6.4vw; margin-top: 7.4666666667vw; font-size: 2.6666666667vw; } }
@media screen and (min-width: 768px) { .l-footer__lower { column-gap: min(1.875vw, 1.5rem); justify-content: flex-end; margin-top: min(4.53125vw, 3.625rem); font-size: min(.859375vw, .6875rem); } }
.l-footer__logo { position: absolute; left: 50%; transform: translateX(-50%); width: 100%; line-height: 1; }
@media screen and (max-width: 767px) { .l-footer__logo { bottom: -2vw; } .l-footer__logo .c-logo-big { font-size: 19.2vw; } }
@media screen and (min-width: 768px) { .l-footer__logo { bottom: min(-1.5625vw, -1.25rem); } .l-footer__logo .c-logo-big { font-size: min(14.84375vw, 11.875rem); } }
