@font-face {
  font-family: "Google Sans Flex";
  src: url("fonts/GoogleSansFlex-Variable.ttf") format("truetype");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* ============================================
   Value slider (top page section 5 only)
============================================ */
.ga-value-slider,
.ga-value-slider * {
  box-sizing: border-box;
}

.ga-value-slider {
  position: relative;
  z-index: 3;
  width: 100%;
  margin: 0;
  padding: min(6.944444vw, 133.333px) 0;
  background: #fff;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
}

.ga-value-slider__stage {
  position: relative;
  width: min(88.888889vw, 1706.667px);
  aspect-ratio: 16 / 9;
  margin: 0 auto;
  overflow: hidden;
  border-radius: min(1.388889vw, 26.667px);
  background: #101d35;
  isolation: isolate;
}

.ga-value-slider__video,
.ga-value-slider__shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.ga-value-slider__video {
  z-index: 0;
  display: block;
  object-fit: cover;
}

.ga-value-slider__shade {
  z-index: 1;
  background: rgba(16, 29, 53, 0.5);
  pointer-events: none;
}

.ga-value-slider__content {
  position: absolute;
  z-index: 2;
  inset: 0 auto 0 0;
  width: 50%;
  height: 100%;
}

.ga-value-slider__slides,
.ga-value-slider__slide {
  position: absolute;
  inset: 0;
}

.ga-value-slider__slide {
  visibility: hidden;
  opacity: 0;
  transform: translateX(min(1.388889vw, 26.667px));
  transition: opacity 0.45s ease, transform 0.45s ease, visibility 0.45s;
  pointer-events: none;
}

.ga-value-slider__slide.is-active {
  visibility: visible;
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
}

.ga-value-slider__meta {
  position: absolute;
  top: 19.861111%;
  left: 51.015625%;
  width: 22%;
  transform: translateX(-50%);
  text-align: center;
}

.ga-value-slider__eyebrow,
.ga-value-slider__num,
.ga-value-slider__title,
.ga-value-slider__text {
  margin: 0;
  padding: 0;
  color: #fff;
}

.ga-value-slider__eyebrow {
  font-family: "Saira", "Google Sans Flex", sans-serif;
  font-size: clamp(9px, 0.833333vw, 16px);
  font-weight: 400;
  line-height: normal;
}

.ga-value-slider__num {
  margin-top: min(0.069444vw, 1.333px);
  font-family: "Saira", "Google Sans Flex", sans-serif;
  font-size: clamp(48px, 4.791667vw, 92px);
  font-weight: 300;
  line-height: 1;
}

.ga-value-slider__rule {
  display: block;
  width: min(2.777778vw, 53.333px);
  height: 1px;
  margin: min(0.763889vw, 14.667px) auto 0;
  background: #fff;
}

.ga-value-slider__title {
  position: absolute;
  top: 38.888889%;
  left: 51.015625%;
  width: 63.28125%;
  transform: translateX(-50%);
  font-size: clamp(28px, 2.8125vw, 54px);
  font-weight: 400;
  line-height: min(3.75vw, 72px);
  text-align: center;
}

.ga-value-slider__title-line {
  display: block;
  white-space: nowrap;
}

.ga-value-slider__text {
  position: absolute;
  top: 60.833333%;
  left: 51.015625%;
  width: 63.28125%;
  transform: translateX(-50%);
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(11px, 1.111111vw, 21.333px);
  font-weight: 400;
  line-height: min(1.944444vw, 37.333px);
  letter-spacing: min(0.055556vw, 1.067px);
  text-align: left;
}

.ga-value-slider__arrow {
  position: absolute;
  z-index: 3;
  top: 42.616536%;
  display: grid;
  width: min(3.333333vw, 64px);
  min-width: 32px;
  aspect-ratio: 1;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #fff;
  cursor: pointer;
  transform: translateY(-50%);
  transition: transform 0.25s ease;
}

.ga-value-slider__arrow--prev {
  left: 4.506076%;
}

.ga-value-slider__arrow--next {
  right: 1.224826%;
}

.ga-value-slider__arrow svg {
  width: min(1.41125vw, 27.096px);
  height: min(1.41125vw, 27.096px);
  fill: none;
  stroke: currentColor;
  stroke-width: 3.59602;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ga-value-slider__arrow:hover,
.ga-value-slider__arrow:focus-visible {
  background: transparent;
}

.ga-value-slider__arrow--prev:hover,
.ga-value-slider__arrow--prev:focus-visible {
  transform: translate(-12%, -50%);
}

.ga-value-slider__arrow--next:hover,
.ga-value-slider__arrow--next:focus-visible {
  transform: translate(12%, -50%);
}

.ga-value-slider__dot:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

.ga-value-slider__arrow:focus-visible {
  outline: 0;
}

.ga-value-slider__pagination {
  position: absolute;
  z-index: 3;
  bottom: 3.333333%;
  left: 4.375%;
  display: flex;
  flex-direction: column;
  gap: min(0.486111vw, 9.333px);
}

.ga-value-slider__dot {
  width: min(0.208333vw, 4px);
  height: min(1.180556vw, 22.667px);
  padding: 0;
  border: 0;
  background: rgba(255, 255, 255, 0.45);
  cursor: pointer;
  transition: height 0.25s ease, background-color 0.25s ease;
}

.ga-value-slider__dot.is-active {
  height: min(1.875vw, 36px);
  background: #fff;
}

/* Tablet Value slider: keep navigation outside the copy and preserve readable line lengths. */
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .ga-value-slider__content {
    width: 56%;
  }

  .ga-value-slider__title {
    left: 50%;
    width: 76%;
    font-size: clamp(27px, 3.5vw, 34px);
    line-height: 1.32;
    text-wrap: balance;
  }

  .ga-value-slider__text {
    left: 50%;
    width: 78%;
    font-size: clamp(13px, 1.6vw, 15px);
    line-height: 1.65;
    letter-spacing: 0.035em;
  }

  .ga-value-slider__arrow {
    top: 45%;
    width: clamp(44px, 5vw, 52px);
    min-width: 44px;
  }

  .ga-value-slider__arrow--prev {
    left: 0.5%;
  }

  .ga-value-slider__arrow--next {
    right: 0.5%;
  }

  .ga-value-slider__arrow svg {
    width: clamp(22px, 2.5vw, 26px);
    height: clamp(22px, 2.5vw, 26px);
  }
}

@media (max-width: 767px) {
  .ga-value-slider {
    padding: clamp(48px, 14.933333vw, 58.24px) clamp(16px, 4.266667vw, 16.64px);
  }

  .ga-value-slider__stage {
    width: 100%;
    aspect-ratio: 360 / 520;
    border-radius: 10px;
  }

  .ga-value-slider__content {
    width: 100%;
  }

  .ga-value-slider__meta {
    top: 10%;
    width: 28%;
  }

  .ga-value-slider__eyebrow {
    font-size: 9px;
  }

  .ga-value-slider__num {
    margin-top: 3px;
    font-size: clamp(38px, 11.2vw, 43.68px);
  }

  .ga-value-slider__rule {
    width: 32px;
    margin-top: 12px;
  }

  .ga-value-slider__title {
    top: 34%;
    width: 74%;
    font-size: clamp(22px, 6.4vw, 24.96px);
    line-height: 1.5;
  }

  .ga-value-slider__text {
    top: 55%;
    width: 74%;
    font-size: clamp(11px, 3.2vw, 12.48px);
    line-height: 1.85;
    letter-spacing: 0.04em;
  }

  .ga-value-slider__arrow {
    top: 40%;
    width: 36px;
    min-width: 36px;
  }

  .ga-value-slider__arrow--prev {
    left: 1.5%;
  }

  .ga-value-slider__arrow--next {
    right: 1.5%;
  }

  .ga-value-slider__arrow svg {
    width: 18px;
    height: 18px;
  }

  .ga-value-slider__pagination {
    bottom: 4%;
    left: 4%;
    gap: 5px;
  }

  .ga-value-slider__dot {
    height: 14px;
  }

  .ga-value-slider__dot.is-active {
    height: 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ga-value-slider__slide,
  .ga-value-slider__arrow,
  .ga-value-slider__dot {
    transition: none;
  }
}

/* Front page only: remove the theme container gutters before full-width sections. */
.site_content > .container {
  box-sizing: border-box !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

@media screen and (max-width: 820px) {
  .ga-mission {
    box-sizing: border-box !important;
    padding: 0 calc(10 / 375 * 100vw) !important;
    background: #0b1930 !important;
  }

  .ga-mission__grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto !important;
    container-type: inline-size !important;
  }

  .ga-mission__grid > .ga-mission__tile:nth-child(1) { order: 1 !important; }
  .ga-mission__grid > .ga-mission__tile:nth-child(2) { order: 2 !important; }
  .ga-mission__grid > .ga-mission__tile:nth-child(4) { order: 3 !important; }
  .ga-mission__grid > .ga-mission__tile:nth-child(3) { order: 4 !important; }
  .ga-mission__grid > .ga-mission__tile:nth-child(5) { order: 5 !important; }
  .ga-mission__grid > .ga-mission__tile:nth-child(6) { order: 6 !important; }

  .ga-mission__grid > .ga-mission__tile:nth-child(1),
  .ga-mission__grid > .ga-mission__tile:nth-child(4),
  .ga-mission__grid > .ga-mission__tile:nth-child(5) {
    margin-top: calc(20 / 355 * 100cqw) !important;
  }

  .ga-mission__grid > .ga-mission__tile:nth-child(6) {
    margin-bottom: calc(30 / 355 * 100cqw) !important;
  }

  .ga-mission__tile {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
  }

  .ga-mission__media {
    width: 100% !important;
    height: calc(233 / 355 * 100cqw) !important;
    min-height: calc(233 / 355 * 100cqw) !important;
    aspect-ratio: 355 / 233 !important;
    background: #d9d9d9 !important;
  }

  .ga-mission__video {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .ga-mission__card {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: calc(303 / 355 * 100cqw) !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
  }

  .ga-mission__eyebrow,
  .ga-mission__num,
  .ga-mission__rule,
  .ga-mission__title,
  .ga-mission__text {
    position: absolute !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    color: #000 !important;
    text-align: left !important;
  }

  .ga-mission__eyebrow {
    left: calc(20 / 355 * 100cqw) !important;
    top: calc(42 / 355 * 100cqw) !important;
    margin: 0 !important;
    font-family: "Saira", "Google Sans Flex", sans-serif !important;
    font-size: 12px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: normal !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
  }

  .ga-mission__num {
    left: calc(117 / 355 * 100cqw) !important;
    top: calc(30 / 355 * 100cqw) !important;
    margin: 0 !important;
    font-family: "Saira", "Google Sans Flex", sans-serif !important;
    font-size: calc(34.027 / 355 * 100cqw) !important;
    font-style: normal !important;
    font-weight: 300 !important;
    line-height: calc(34.027 / 355 * 100cqw) !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
  }

  .ga-mission__rule {
    left: calc(124.89 / 355 * 100cqw) !important;
    top: calc(69.45 / 355 * 100cqw) !important;
    display: block !important;
    width: calc(19.726 / 355 * 100cqw) !important;
    height: calc(0.493 / 355 * 100cqw) !important;
    margin: 0 !important;
    background: #000 !important;
  }

  .ga-mission__title {
    left: calc(20 / 355 * 100cqw) !important;
    top: calc(96 / 355 * 100cqw) !important;
    width: calc(100% - calc(40 / 355 * 100cqw)) !important;
    margin: 0 !important;
    font-family: "Noto Sans JP", sans-serif !important;
    font-size: calc(25 / 355 * 100cqw) !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: calc(25 / 355 * 100cqw) !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    text-wrap: unset !important;
  }

  .ga-mission__text {
    left: calc(20 / 355 * 100cqw) !important;
    top: calc(137 / 355 * 100cqw) !important;
    width: calc(100% - calc(40 / 355 * 100cqw)) !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-family: "Noto Sans JP", sans-serif !important;
    font-size: max(14px, calc(15 / 355 * 100cqw)) !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: max(26px, calc(27 / 355 * 100cqw)) !important;
    letter-spacing: calc(0.75 / 355 * 100cqw) !important;
  }

  .ga-mission__card.fadeIn_trigger,
  .ga-mission__card.fadeUp_trigger,
  .ga-mission__eyebrow.fadeIn_trigger,
  .ga-mission__eyebrow.fadeUp_trigger,
  .ga-mission__num.fadeIn_trigger,
  .ga-mission__num.fadeUp_trigger,
  .ga-mission__rule.fadeIn_trigger,
  .ga-mission__rule.fadeUp_trigger,
  .ga-mission__title.fadeIn_trigger,
  .ga-mission__title.fadeUp_trigger,
  .ga-mission__text.fadeIn_trigger,
  .ga-mission__text.fadeUp_trigger {
    opacity: 1 !important;
    transform: none !important;
    animation-delay: 0s !important;
    transition-delay: 0s !important;
  }

  .ga-mission__card.fadeDown_trigger,
  .ga-mission__card.fadeLeft_trigger,
  .ga-mission__card.fadeRight_trigger,
  .ga-mission__eyebrow.fadeDown_trigger,
  .ga-mission__eyebrow.fadeLeft_trigger,
  .ga-mission__eyebrow.fadeRight_trigger,
  .ga-mission__num.fadeDown_trigger,
  .ga-mission__num.fadeLeft_trigger,
  .ga-mission__num.fadeRight_trigger,
  .ga-mission__rule.fadeDown_trigger,
  .ga-mission__rule.fadeLeft_trigger,
  .ga-mission__rule.fadeRight_trigger,
  .ga-mission__title.fadeDown_trigger,
  .ga-mission__title.fadeLeft_trigger,
  .ga-mission__title.fadeRight_trigger,
  .ga-mission__text.fadeDown_trigger,
  .ga-mission__text.fadeLeft_trigger,
  .ga-mission__text.fadeRight_trigger {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
    animation-delay: 0s !important;
    transition-delay: 0s !important;
  }

  .ga-mission .fadeIn_trigger,
  .ga-mission .fadeUp_trigger,
  .ga-mission .fadeDown_trigger,
  .ga-mission .fadeLeft_trigger,
  .ga-mission .fadeRight_trigger,
  .ga-mission .fadeIn,
  .ga-mission .fadeUp,
  .ga-mission .fadeDown,
  .ga-mission .fadeLeft,
  .ga-mission .fadeRight {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
    animation-delay: 0s !important;
    transition-delay: 0s !important;
  }
}

@media screen and (max-width: 820px) {
  .ga-news {
    padding: 96px 0 72px !important;
    background: #F4F4F4 !important;
  }

  .ga-news__inner {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    row-gap: 30px !important;
    width: 100% !important;
    max-width: 420px !important;
    margin: 0 auto !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
  }

  .ga-news__side {
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-rows: auto auto !important;
    column-gap: 11px !important;
    align-items: start !important;
    padding: 0 !important;
  }

  .ga-news__label {
    grid-column: 1 / -1 !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    margin: 0 !important;
    color: #313131 !important;
    font-family: "Google Sans Flex", "Noto Sans JP", sans-serif !important;
    font-size: 14px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 14px !important;
    letter-spacing: 0.7px !important;
  }

  .ga-news__mark {
    width: 24px !important;
    height: 24px !important;
    flex: 0 0 24px !important;
  }

  .ga-news__title {
    grid-column: 1 !important;
    grid-row: 2 !important;
    display: block !important;
    margin: 14px 0 0 !important;
    color: #313131 !important;
    font-family: "Google Sans Flex", "Noto Sans JP", sans-serif !important;
    font-size: 50px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 52px !important;
    letter-spacing: 0 !important;
  }

  .ga-news__title::after {
    display: none !important;
  }

  .ga-news__cats {
    display: none !important;
  }

  .ga-news__more {
    grid-column: 2 !important;
    grid-row: 2 !important;
    align-self: center !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 11px !important;
    margin: 17px 0 0 !important;
    color: #313131 !important;
    font-family: "Google Sans Flex", "Noto Sans JP", sans-serif !important;
    font-size: 16px !important;
    font-style: normal !important;
    font-weight: 600 !important;
    line-height: 16px !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
  }

  .ga-news__more-icon {
    width: 40px !important;
    height: 40px !important;
    flex: 0 0 40px !important;
    border: 0 !important;
    border-radius: 5px !important;
    background: #15b9f5 !important;
  }

  .ga-news__list {
    width: 100% !important;
  }

  .ga-news__item {
    grid-template-columns: 98.6px minmax(0, 1fr) !important;
    column-gap: 16.4px !important;
    min-height: 0 !important;
    padding: 24px 0 18px !important;
  }

  .ga-news__thumb {
    width: 98.6px !important;
    height: 70px !important;
    border-radius: 10px !important;
  }

  .ga-news__body {
    min-width: 0 !important;
    max-width: 240px !important;
  }

  .ga-news__meta {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    width: 100% !important;
    margin: 0 0 12px !important;
  }

  .ga-news__badge {
    /* 「施工事例」4文字でも1行で収まるよう、固定幅ではなく内容に応じて広がる設計に変更
       Figma仕様の W:68px は「お知らせ」3文字想定の最小幅と解釈 */
    width: auto !important;
    min-width: 68px !important;
    height: 22px !important;
    padding: 0 10px 0 12px !important;
    border-radius: 203px !important;
    background: #f1eeee !important;
    font-family: "Noto Sans JP", sans-serif !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    line-height: 12px !important;
    letter-spacing: 0.55px !important;
    white-space: nowrap !important;
  }

  .ga-news__date {
    color: #737373 !important;
    font-family: "Outfit", "Google Sans Flex", sans-serif !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 14px !important;
    letter-spacing: 0.65px !important;
    white-space: nowrap !important;
  }

  .ga-news__text {
    display: -webkit-box !important;
    width: 100% !important;
    max-height: 46px !important;
    overflow: hidden !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2 !important;
    font-family: "Noto Sans JP", sans-serif !important;
    font-size: 14px !important;
    font-style: normal !important;
    font-weight: 500 !important;
    line-height: 23px !important;
    letter-spacing: 0.7px !important;
  }
}

@font-face {
  font-family: "ZenKakuGothicNew-R";
  src: url("fonts/ZenKakuGothicNew-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "ZenKakuGothicNew-M";
  src: url("fonts/ZenKakuGothicNew-Medium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "ZenKakuGothicNew-B";
  src: url("fonts/ZenKakuGothicNew-Bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Outfit";
  src: url("fonts/Outfit-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Outfit";
  src: url("fonts/Outfit-Medium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Saira";
  src: url("fonts/Saira-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Saira";
  src: url("fonts/Saira-Light.ttf") format("truetype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

/* ============================================
   繝医ャ繝励・繝ｼ繧ｸ蟆ら畑CSS・・ssets/css/front.css・・   窶ｻ譌｢蟄倥ユ繝ｼ繝槭↓貅匁侠・壹ヶ繝ｬ繝ｼ繧ｯ繝昴う繝ｳ繝・20px / 1rem=10px・・tml font-size:62.5%・・   ============================================ */

/* ===== 繝偵・繝ｭ繝ｼ繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ ===== */
.ga-hero {
  position: relative;
  /* 隕ｪ隕∫ｴ・・main_content / .container 1100px・峨・蟷・宛髯舌ｒ遯√″遐ｴ縺｣縺ｦ蜈ｨ蟷・↓縺吶ｋ */
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  height: 100vh;
  min-height: calc(854 / var(--design-pc) * 100cqw); /* 854px @ 1440 */
  overflow: hidden;
  background-color: #fff;
}

/* 閭梧勹蜍慕判・壼・髱｢繧ｫ繝舌・繝ｻ繝ｫ繝ｼ繝・*/
.ga-hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

/* 證怜ｹ包ｼ夐ｻ偵・荳埼乗・蠎ｦ40%・医ョ繧ｶ繧､繝ｳ貅匁侠・・*/
.ga-hero__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.2);
  z-index: 2;
}

.ga-hero.is-ga-hero-fv .ga-hero__media,
.ga-hero.is-ga-hero-fv .ga-hero__overlay {
  will-change: clip-path;
}

/* FV white circle orbit disabled. Restore by removing this comment block.
.ga-hero__orbit {
  --ga-hero-orbit-size: clamp(24rem, 25.13889vw, 36.2rem);
  --ga-hero-dot-size: clamp(1rem, 0.95vw, 1.4rem);
  position: absolute;
  left: 50%;
  top: 53%;
  z-index: 4;
  width: var(--ga-hero-orbit-size);
  aspect-ratio: 1 / 1;
  border: 1px solid rgba(255, 255, 255, 0.88);
  border-radius: 50%;
  pointer-events: none;
  transform: translate(-50%, -50%);
  transform-origin: center center;
}

.ga-hero__orbit-dot {
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--ga-hero-dot-size);
  height: var(--ga-hero-dot-size);
  margin: calc(var(--ga-hero-dot-size) * -0.5) 0 0 calc(var(--ga-hero-dot-size) * -0.5);
  border-radius: 50%;
  background: #fff;
  transform: rotate(-42deg) translateX(calc(var(--ga-hero-orbit-size) * 0.5));
  transform-origin: center center;
  animation: ga-hero-orbit-dot 9s linear infinite;
}

@keyframes ga-hero-orbit-dot {
  from { transform: rotate(-42deg) translateX(calc(var(--ga-hero-orbit-size) * 0.5)); }
  to { transform: rotate(318deg) translateX(calc(var(--ga-hero-orbit-size) * 0.5)); }
}

@media (prefers-reduced-motion: reduce) {
  .ga-hero__orbit-dot {
    animation: none;
  }
}

*/

/* FV scroll mask target: same center/size as the loading atom mark, hidden visually. */
.ga-hero__orbit {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 4;
  width: 76px;
  height: 76px;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%);
  transform-origin: center center;
  visibility: hidden;
}

.ga-hero__orbit-dot {
  display: none;
}

/* 繧ｭ繝｣繝・メ繧ｳ繝斐・・壼承荳九・54.5px繝ｻ螟ｪ蟄励・逋ｽ */
.ga-hero__catch {
  position: absolute;
  right: calc(max((100vw - 1440px) / 2, 0px) + calc(21 / var(--design-pc) * 100cqw)); /* 1440px max-width、21px内余白 */
  bottom: calc(47 / var(--design-pc) * 100cqw); /* 47px */
  z-index: 3;
  margin: 0;
  font-size: calc(54.5 / var(--design-pc) * 100cqw); /* 54.5px */
  font-weight: 700;
  line-height: calc(70 / var(--design-pc) * 100cqw); /* 70px */
  color: #fff;
  text-align: right;
  letter-spacing: 0.02em;
}

/* ===== 繧ｹ繝槭・繝ｻ繧ｿ繝悶Ξ繝・ヨ・・20px莉･荳九・譌｢蟄倥ユ繝ｼ繝槭→邨ｱ荳・・===== */
@media screen and (max-width: 820px){
  .ga-hero {
    width: 100vw;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    height: 70vh;
    min-height: calc(672 / var(--design-sp) * 100cqw); /* 42rem (=672px) @ 375 */
  }
  .ga-hero__catch {
    right: calc(38.4 / var(--design-sp) * 100cqw); /* 2.4rem (=38.4px) @ 375 */
    bottom: calc(128 / var(--design-sp) * 100cqw); /* 8rem (=128px) @ 375 */
    font-size: calc(48 / var(--design-sp) * 100cqw); /* 3rem (=48px) @ 375 */
    line-height: 1.4;
  }
  /* FV white circle orbit disabled. Restore by removing this comment block.
  .ga-hero__orbit {
    --ga-hero-orbit-size: clamp(25rem, 58vw, 43rem);
    --ga-hero-dot-size: clamp(0.8rem, 1.8vw, 1.2rem);
    display: block;
    top: 43%;
    z-index: 3;
    border-color: rgba(255, 255, 255, 0.62);
    opacity: 0.76;
  }

  .ga-hero__orbit-dot {
    background: rgba(255, 255, 255, 0.96);
    animation-duration: 11s;
  }
  */
  .ga-hero__orbit {
    top: 50%;
    z-index: 3;
  }
}

/* ============================================
   Services・井ｺ区･ｭ鬆伜沺・峨そ繧ｯ繧ｷ繝ｧ繝ｳ ・・繝帙ヰ繝ｼ騾｣蜍輔い繝九Γ
   Figma node 3043-160・医ョ繝輔か繝ｫ繝茨ｼ・ 3043-164・医ヰ繝ｪ繧｢繝ｳ繝・・晄ｳ穂ｺｺ繝帙ヰ繝ｼ・峨ｈ繧雁ｮ滓焚蛟､
   - 繝・ヵ繧ｩ繝ｫ繝茨ｼ壼倶ｺｺ繝代ロ繝ｫ 67% / 豕穂ｺｺ繝代ロ繝ｫ 31%・亥倶ｺｺ縺ｫ繧ｫ繝ｼ繝・1繝ｻ02縲∵ｳ穂ｺｺ縺ｫ03・・   - 豕穂ｺｺ繝帙ヰ繝ｼ・壼倶ｺｺ 31% / 豕穂ｺｺ 67% 縺ｫ蜈･繧梧崛縺茨ｼ亥倶ｺｺ縺ｯ01縺ｮ縺ｿ縲∵ｳ穂ｺｺ縺ｫ03繝ｻ04縺悟・迴ｾ・・   - 諡｡螟ｧ蛛ｴ縺ｯ閭梧勹繧貞ｰ代＠繧ｺ繝ｼ繝繧､繝ｳ縲∫ｸｮ蟆丞・縺ｯ邵ｮ蟆・   ============================================ */

/* 繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ螟匁棧・壹ヲ繝ｼ繝ｭ繝ｼ縺ｨ蜷後§蜈ｨ蟷・喧繝・け繝九ャ繧ｯ縺ｧ .container(1100px) 繧堤ｪ√″遐ｴ繧翫・   蜀・・ .ga-services__inner 繧呈怙螟ｧ1440px(Figma繧ｭ繝｣繝ｳ繝舌せ)縺ｧ荳ｭ螟ｮ蟇・○縲ょｷｦ蜿ｳ80px菴咏區縲・*/
.ga-services {
  position: relative;
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  padding: min(13.81944vw, 199px) 0 min(16vw, 230px);
  background-color: #fff;
  color: #000;
}
.ga-services__inner {
  width: min(100%, 1440px);
  max-width: none;
  margin: 0 auto;
  /* Figma蝓ｺ貅厄ｼ・440px蟷・・荳ｭ縺ｧ蟾ｦ蜿ｳ80px・昜ｸｭ霄ｫ1280px縲・     SP縺ｯ2.4rem縲・21px莉･荳翫・80px蝗ｺ螳壹↓縺励※縲∫判髱｢縺悟ｺ・￥縺ｦ繧ゆｸｭ霄ｫ縺悟ｸｸ縺ｫ1280px縺ｧ螳牙ｮ壹☆繧九・     ・域立 clamp(...,5.5vw,...) 縺ｯ1920px蟷・〒105.6px縺ｫ縺ｪ繧贋ｸｭ霄ｫ縺檎強縺丞ｷｦ蜿ｳ菴咏區繧ょｴｩ繧後※縺・◆・・*/
  padding: 0;
  box-sizing: border-box;
  container-type: inline-size;
}
@media screen and (min-width: 821px) {
  .ga-services__inner { padding: 0; }
}

/* ----- 繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ隕句・縺暦ｼ亥ｷｦ・壻ｺ区･ｭ/Services縲∝承・夊ｪｬ譏取枚・・----- */
.ga-services__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 4rem;
  margin-bottom: clamp(3rem, 4vw, 6rem);
}
.ga-services__headleft { flex: 0 0 auto; }

.ga-services__label {
  display: flex;
  align-items: center;
  gap: 3.25px;
  margin: 0 0 0.4rem;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.4rem;
  letter-spacing: 0.07em;
  color: #000;
}
.ga-services__mark {
  display: inline-block;
  width: 1.7rem;
  height: 1.7rem;
  flex: 0 0 auto;
  line-height: 0;
  /* 繧｢繧､繧ｳ繝ｳ・・igma node 3112:757縲御ｺ区･ｭ縲阪・髫｣・会ｼ・縺､縺ｮ讌募・縺御ｺ､蟾ｮ縺励◆繧｢繝医Β蝙九・邱夂判縲・     繝ｦ繝ｼ繧ｶ繝ｼ謠蝉ｾ帙・豁｣遒ｺ縺ｪSVG繧辰SS閭梧勹・医ョ繝ｼ繧ｿURI・峨〒謠冗判縲・TML譛ｬ譁・・譌ｧ繧､繝ｳ繝ｩ繧､繝ｳSVG縺ｯ
     荳九〒 display:none 縺ｫ縺励※髫縺吶・縺ｧ縲∝ｷｮ縺玲崛縺医・ front.css 縺ｮ蜀阪い繝・・縺縺代〒螳檎ｵ舌☆繧九・*/
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 17 17' fill='none'%3E%3Cpath d='M15.0002 15.0002C15.9645 14.0359 13.7792 10.2872 10.1191 6.62712C6.45909 2.96708 2.71032 0.781744 1.74602 1.74604C0.78172 2.71035 2.96705 6.45912 6.6271 10.1192C10.2871 13.7792 14.0359 15.9645 15.0002 15.0002Z' stroke='%2315B9F5' stroke-miterlimit='10'/%3E%3Cpath d='M1.746 15.0002C0.781704 14.0359 2.96704 10.2872 6.62708 6.62712C10.2871 2.96708 14.0359 0.781744 15.0002 1.74604C15.9645 2.71035 13.7792 6.45912 10.1191 10.1192C6.45908 13.7792 2.7103 15.9645 1.746 15.0002Z' stroke='%2315B9F5' stroke-miterlimit='10'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.ga-services__mark svg { display: none; }

/* 隕句・縺・Services・・0px / Outfit SemiBold 逶ｸ蠖・/ 鮟・*/
.ga-services__title {
  margin: 0;
  font-family: "Google Sans Flex", -apple-system, "Helvetica Neue", Arial, sans-serif;
  font-style: normal;
  font-weight: 600;
  /* Figma螳滓焚蛟､・・0px / 陦碁ｫ・52px縲・     窶ｻ縺薙・繝・・繝槭・ html 縺ｯ font-size:16px・・rem=16px・峨・2.5%縺ｧ縺ｯ縺ｪ縺・・縺ｧ縲・       rem 縺縺ｨ繧ｺ繝ｬ繧具ｼ・rem=144px 縺ｫ縺ｪ縺｣縺ｦ縺・◆・峨Ｑx 縺ｧ逶ｴ謗･謖・ｮ壹☆繧九・*/
  font-size: 60px;
  line-height: 1.05;
  letter-spacing: 0;
  color: #000;
}
/* [2026-06-20] @media (min-width:821px) の cqw 指定は OKI 方式 vw パッチで上書き済み(末尾)のため削除 */

/* 隱ｬ譏取枚・亥承・会ｼ・1px / Noto Sans JP Bold / 陦碁ｫ・1px / 鮟・*/
.ga-services__lead {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  /* Figma螳滓焚蛟､・・1px / 陦碁ｫ・1px縲Ｑx逶ｴ謗･謖・ｮ夲ｼ・em荳榊庄縲ら炊逕ｱ縺ｯ荳願ｨ・itle蜿ら・・・*/
  font-size: 20px;
  line-height: 1.7;
  color: #000;
}
/* [2026-06-20] .ga-services__lead の cqw 指定は OKI 方式 vw パッチで上書き済みのため削除 */

/* =========================================================
   繧ｫ繝ｼ繝会ｼ・繝代ロ繝ｫ繝ｻ繝帙ヰ繝ｼ騾｣蜍包ｼ・   ========================================================= */
.ga-services__cards {
  display: flex;
  gap: 1.953125%;
  width: 100%;
  aspect-ratio: 1280 / 672;   /* PC縺ｮ繝代ロ繝ｫ鬮倥＆繧貞ｹ・°繧芽・蜍慕ｮ怜・ */
}

/* [2026-06-20] .ga-services__cards の cqw 指定は OKI 方式 vw パッチで上書き済みのため削除 */

.ga-services__panel {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  min-width: 0;               /* flex蟄占ｦ∫ｴ縺ｮ邵ｮ蟆上ｒ險ｱ蜿ｯ */
  /* 蟷・flex-grow)縺ｮ螟牙喧繧偵↑繧√ｉ縺九↓縲ょ・菴薙〒邨ｱ荳縺励◆繧､繝ｼ繧ｸ繝ｳ繧ｰ */
  transition: flex-grow 0.55s cubic-bezier(0.22, 0.61, 0.36, 1);
  flex-basis: 0;
}

/* 繝・ヵ繧ｩ繝ｫ繝医・蟷・ｯ皮紫・壼倶ｺｺ67 / 豕穂ｺｺ31 */
.ga-services__panel--personal  { flex-grow: 67; }
.ga-services__panel--corporate { flex-grow: 31; }

/* 笘・・繝舌・騾｣蜍包ｼ壹き繝ｼ繝臥ｾ､縺ｫ hover 縺九▽豕穂ｺｺ繝代ロ繝ｫ縺ｫ hover 縺ｧ蜈･繧梧崛縺・   ・亥倶ｺｺ31 / 豕穂ｺｺ67・峨・hover 縺ｯ蟄絶・隕ｪ縺ｫ莨晄眺縺吶ｋ縺ｮ縺ｧ豕穂ｺｺhover縺ｧ蜈ｨ菴薙′蜿榊ｿ・*/
.ga-services__cards:has(.ga-services__panel--corporate:hover) .ga-services__panel--personal,
.ga-services__cards:has(.ga-services__panel--corporate:focus-within) .ga-services__panel--personal { flex-grow: 31; }
.ga-services__cards:has(.ga-services__panel--corporate:hover) .ga-services__panel--corporate,
.ga-services__cards:has(.ga-services__panel--corporate:focus-within) .ga-services__panel--corporate { flex-grow: 67; }

/* 閭梧勹蜀咏悄・・img>縺ｧ繧ｫ繝舌・・会ｼ晄僑螟ｧ/邵ｮ蟆上・繧ｺ繝ｼ繝蟇ｾ雎｡ */
@media screen and (min-width: 821px) {
  .ga-services__cards {
    position: relative;
    display: block;
  }

  .ga-services__cards::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 67.04%;
    z-index: 5;
    width: 1.953125%;
    background: #fff;
    transition: left 0.55s cubic-bezier(0.22, 0.61, 0.36, 1);
    pointer-events: none;
  }

  .ga-services__panel {
    position: absolute;
    top: 0;
    bottom: 0;
    flex: none;
    border-radius: 20px;
    overflow: hidden;
    clip-path: inset(0 0 0 0 round 20px);
    -webkit-clip-path: inset(0 0 0 0 round 20px);
    transition:
      width 0.55s cubic-bezier(0.22, 0.61, 0.36, 1),
      clip-path 0.55s cubic-bezier(0.22, 0.61, 0.36, 1),
      -webkit-clip-path 0.55s cubic-bezier(0.22, 0.61, 0.36, 1);
  }

  .ga-services__panel--personal {
    left: 0;
    width: 67.04%;
    z-index: 1;
  }

  .ga-services__panel--corporate {
    right: 0;
    width: 31.01%;
    z-index: 4;
  }

  .ga-services__cards:has(.ga-services__panel--corporate:hover) .ga-services__panel--personal,
  .ga-services__cards:has(.ga-services__panel--corporate:focus-within) .ga-services__panel--personal {
    width: 67.04%;
    clip-path: inset(0 53.74% 0 0 round 20px);
    -webkit-clip-path: inset(0 53.74% 0 0 round 20px);
  }

  .ga-services__cards:has(.ga-services__panel--corporate:hover)::after,
  .ga-services__cards:has(.ga-services__panel--corporate:focus-within)::after {
    left: 31.01%;
  }

  .ga-services__cards:has(.ga-services__panel--corporate:hover) .ga-services__panel--corporate,
  .ga-services__cards:has(.ga-services__panel--corporate:focus-within) .ga-services__panel--corporate {
    width: 67.04%;
  }
}

.ga-services__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
  transition: transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1);
  transform: scale(1);
  border-radius: inherit;
}
/* 繝・ヵ繧ｩ繝ｫ繝医〒縺ｯ蛟倶ｺｺ縺御ｸｻ蠖ｹ竊堤ｭ牙阪∵ｳ穂ｺｺ縺ｯ謗ｧ縺医ａ縺ｫ蟆代＠邵ｮ蟆・*/
.ga-services__panel--corporate .ga-services__bg { transform: scale(1.04); }
/* 繝帙ヰ繝ｼ譎ゑｼ壽ｳ穂ｺｺ縺御ｸｻ蠖ｹ竊堤ｭ牙阪↓髢九￥・・繧ｺ繝ｼ繝繧､繝ｳ諢滂ｼ峨∝倶ｺｺ縺ｯ蟆代＠邵ｮ蟆・*/
.ga-services__cards:has(.ga-services__panel--corporate:hover) .ga-services__panel--corporate .ga-services__bg,
.ga-services__cards:has(.ga-services__panel--corporate:focus-within) .ga-services__panel--corporate .ga-services__bg { transform: scale(1); }
.ga-services__cards:has(.ga-services__panel--corporate:hover) .ga-services__panel--personal .ga-services__bg,
.ga-services__cards:has(.ga-services__panel--corporate:focus-within) .ga-services__panel--personal .ga-services__bg { transform: scale(1.04); }

/* 荳矩Κ縺ｮ證苓ｻ｢繧ｰ繝ｩ繝・ｼ・igma縲軍ectangle 440縲搾ｼ・60px / border-radius 0 0 20px 20px /
   linear-gradient(180deg, rgba(147,147,147,0) 竊・#2D2D2D) / mix-blend-mode: multiply・峨・   荵礼ｮ励ヶ繝ｬ繝ｳ繝峨〒逕ｻ蜒丈ｸ矩Κ繧定・辟ｶ縺ｫ證励￥縺励∫區繝・く繧ｹ繝医ｒ隱ｭ縺ｿ繧・☆縺上☆繧九ょ倶ｺｺ繝ｻ豕穂ｺｺ縺ｨ繧ょ・騾壹・*/
.ga-services__panel::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 38.69%;
  background: linear-gradient(180deg, rgba(147, 147, 147, 0) 0%, #2D2D2D 100%);
  mix-blend-mode: multiply;
  border-radius: 0 0 20px 20px;
  z-index: 2;
  pointer-events: none;
}

/* 繝舌ャ繧ｸ・・igma螳滓焚蛟､・・83ﾃ・4px / 隗剃ｸｸ20px / 蜊企乗・逋ｽ / 荳・4px繝ｻ蟾ｦ30px・・   蛟倶ｺｺ・晞ｻ呈枚蟄・/ 豕穂ｺｺ・晉區譁・ｭ・*/
.ga-services__badge {
  position: absolute;
  top: 24px;
  left: 30px;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 183px;
  height: 64px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.5);
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 20px;
  line-height: 16px;
  color: #000;
  white-space: nowrap;
}
.ga-services__badge--corporate { color: #fff; }

/* [2026-06-20] .ga-services__badge の cqw 指定は OKI 方式 vw パッチで上書き済みのため削除 */

/* 繧ｫ繝ｼ繝峨・荳ｦ縺ｳ・医ヱ繝阪Ν蜀・↓荳句ｯ・○縺ｧ讓ｪ荳ｦ縺ｳ・・*/
.ga-services__cardrow {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: flex-end;
  /* 蜈ｨ繧ｫ繝ｼ繝峨・繝・く繧ｹ繝井ｸ狗ｫｯ繧呈純縺医ｋ・・igma・夂泙蜊ｰ荳狗ｫｯ縺ｯ荳九°繧臥ｴ・.76%・・72pxﾃ・.0476竕・2px・峨・     笘・ｿ・★蝗ｺ螳嗔x縲・ 縺ｫ縺吶ｋ縺ｨ padding 縺ｯ縲悟ｹ・榊渕貅悶〒險育ｮ励＆繧後ｋ縺溘ａ縲・       蛟倶ｺｺ繝代ロ繝ｫ(蠎・縺ｨ豕穂ｺｺ繝代ロ繝ｫ(迢ｭ)縺ｧ荳倶ｽ咏區縺悟､峨ｏ繧企ｫ倥＆縺後ぜ繝ｬ繧九・       縺輔ｉ縺ｫ繝帙ヰ繝ｼ縺ｧ蟷・′蜈･繧梧崛繧上ｋ縺ｨ荳倶ｽ咏區繧ょ､峨ｏ繧翫√ユ繧ｭ繧ｹ繝磯ｫ倥＆縺悟虚縺擾ｼ医◎縺ｮ逵溷屏・峨・*/
  padding-bottom: 32px;
}

/* 蜷・き繝ｼ繝会ｼ医Μ繝ｳ繧ｯ・峨らｸｦ邱夲ｼ狗分蜿ｷ・九ち繧､繝医Ν・狗泙蜊ｰ */
.ga-services__card {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  display: block;
  text-decoration: none;
  color: inherit;
  /* 蜃ｺ迴ｾ/豸域ｻ・ｒ縺ｪ繧√ｉ縺九↓ */
  transition: opacity 0.45s ease, flex-grow 0.55s cubic-bezier(0.22,0.61,0.36,1);
}

/* 繧ｫ繝ｼ繝牙・繝・く繧ｹ繝医ヶ繝ｭ繝・け・亥ｷｦ縺ｫ邵ｦ邱壹い繧ｯ繧ｻ繝ｳ繝茨ｼ・   笘・ｷｦ蝓ｺ貅悶・縲後き繝ｼ繝牙ｷｦ遶ｯ縺九ｉ縺ｮ蝗ｺ螳嗔x縲阪ゅき繝ｼ繝牙ｹ・縺ｫ縺吶ｋ縺ｨ縲√・繝舌・縺ｧ
     繝代ロ繝ｫ蟷・′67%竊・1%縺ｫ螟峨ｏ縺｣縺滄圀縺ｫ邵ｦ邱壹・繝・く繧ｹ繝井ｽ咲ｽｮ縺後ぜ繝ｬ繧九◆繧√・   繝ｻ邵ｦ邱・    ・・繧ｫ繝ｼ繝牙ｷｦ遶ｯ縺九ｉ 40px・・igma inset 3.13% ・・1280ﾃ・.0313・・   繝ｻ繝・く繧ｹ繝・・・繧ｫ繝ｼ繝牙ｷｦ遶ｯ縺九ｉ 69px・・igma inset 5.39% ・・1280ﾃ・.0539縲∫ｸｦ邱壹°繧・29px・・*/
.ga-services__cardc {
  /* 笘・isplay:block 蠢・医・span>縺ｮ縺ｾ縺ｾ縺縺ｨ繧､繝ｳ繝ｩ繧､繝ｳ隕∫ｴ縺ｫ縺ｪ繧翫・     padding-left・・9px・峨′荳ｭ縺ｮ逡ｪ蜿ｷ繝ｻ繧ｿ繧､繝医Ν・・lock隕∫ｴ・峨↓蜉ｹ縺九★縲・     譁・ｭ励′繧ｫ繝ｼ繝牙ｷｦ遶ｯ縺ｫ蠑ｵ繧贋ｻ倥＞縺ｦ隕句・繧後ｋ・井ｽ咲ｽｮ繧ｺ繝ｬ縺ｮ逵溷屏・・*/
  display: block;
  position: relative;
  margin: 0 6% 0 0;
  padding-left: 69px;
}
.ga-services__cardc::before {
  content: "";
  position: absolute;
  left: 40px;
  top: 0;
  bottom: 0.5rem;
  width: 1px;
  background: rgba(255, 255, 255, 0.9);
}
/* 邱壹・蜈育ｫｯ縺ｮ蟆上＆縺ｪ繧ｭ繝｣繝・・・・igma node 1033:616・・pxﾃ・0px縺ｮ逋ｽ縺・洸蠖｢・峨・   邵ｦ邱壹・荳顔ｫｯ縺縺大ｰ代＠螟ｪ縺上☆繧九ョ繧ｶ繧､繝ｳ繧｢繧ｯ繧ｻ繝ｳ繝茨ｼ亥・遶ｯ縺ｮ蝗幄ｧ抵ｼ・*/
.ga-services__cardc::after {
  content: "";
  position: absolute;
  left: 40px;
  top: 0;
  width: 3px;
  height: 20px;
  background: #fff;
}

/* 逡ｪ蜿ｷ 01-04・・6px / Outfit Medium / 逋ｽ */
.ga-services__num {
  display: block;
  font-family: "Google Sans Flex", -apple-system, Arial, sans-serif;
  font-style: normal;
  font-weight: 500;
  font-size: clamp(1.3rem, 1.25vw, 1.6rem);
  line-height: 1.25;
  letter-spacing: 0.05em;
  color: #fff;
}

/* 繧ｿ繧､繝医Ν・・8px / Noto Sans JP Bold / 逋ｽ / 陦碁ｫ・0px */
.ga-services__cardtitle {
  display: block;
  margin-top: 0.6rem;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: clamp(1.7rem, 2.18vw, 2.8rem);
  line-height: 30px;
  color: #fff;
  white-space: nowrap;
}

/* [2026-06-20] cardrow/cardc/num/cardtitle/arrow の cqw 指定は OKI 方式 vw パッチで上書き済みのため削除 */

/* 遏｢蜊ｰ繝懊ち繝ｳ・夂區隗剃ｸｸ5px / Figma 31ﾃ・1px / 繧ｿ繧､繝医Ν縺九ｉ邏・1px荳・*/
.ga-services__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: clamp(2.4rem, 3.2vw, 4.1rem);
  width: 31px;
  height: 31px;
  background: #fff;
  border-radius: 5px;
  transition: transform 0.3s ease;
}
.ga-services__arrow svg { display: block; width: 42%; height: auto; }

/* ----- 蜃ｺ迴ｾ/豸域ｻ・☆繧九き繝ｼ繝・-----
   蛟倶ｺｺ縺ｮ02・医Μ繝輔か繝ｼ繝・会ｼ壹ョ繝輔か繝ｫ繝郁｡ｨ遉ｺ 竊・豕穂ｺｺ繝帙ヰ繝ｼ譎ゅｂ谿九＠縲∽ｸ翫°繧臥判蜒城擇繧帝㍾縺ｭ繧・   豕穂ｺｺ縺ｮ04・遺留笳ｯ・・      ・壹ョ繝輔か繝ｫ繝磯國繧後ｋ 竊・豕穂ｺｺ繝帙ヰ繝ｼ譎ゅ↓蜃ｺ迴ｾ
   蟷・flex-grow)縺ｨ荳埼乗・蠎ｦ繧帝｣蜍輔＆縺帙∵ｻ代ｉ縺九↓髢矩哩縺吶ｋ */
.ga-services__card--toggle-hide {
  /* 02・壽怙蛻昴・隕九∴繧・*/
  flex-grow: 1;
  opacity: 1;
  overflow: hidden;
}
.ga-services__cards:has(.ga-services__panel--corporate:hover) .ga-services__card--toggle-hide,
.ga-services__cards:has(.ga-services__panel--corporate:focus-within) .ga-services__card--toggle-hide {
  /* 豕穂ｺｺ繝帙ヰ繝ｼ譎ゑｼ・2縺ｯ谿九＠縲∽ｸ翫°繧臥判蜒城擇繧帝㍾縺ｭ繧・*/
  flex-grow: 1;
  opacity: 1;
  pointer-events: auto;
}
.ga-services__card--toggle-show {
  /* 04・壽怙蛻昴・髢峨§縺ｦ隕九∴縺ｪ縺・*/
  flex-grow: 0.0001;
  opacity: 0;
  pointer-events: none;
}

.ga-services__cards:has(.ga-services__panel--corporate:hover) .ga-services__card--toggle-show,
.ga-services__cards:has(.ga-services__panel--corporate:focus-within) .ga-services__card--toggle-show {
  /* 豕穂ｺｺ繝帙ヰ繝ｼ譎ゑｼ・4縺碁幕縺・※蜃ｺ迴ｾ */
  flex-grow: 1;
  opacity: 1;
  pointer-events: auto;
}

/* 繧ｿ繝・メ遶ｯ譛ｫ縺ｯ繝帙ヰ繝ｼ縺ｧ縺阪↑縺・・縺ｧ縲・幕髢峨き繝ｼ繝峨ｒ蟶ｸ譎り｡ｨ遉ｺ縺ｫ縺励※遐ｴ邯ｻ繧帝亟縺・*/
@media screen and (min-width: 821px) {
  .ga-services__panel--personal .ga-services__card {
    transition: opacity 0.24s ease;
  }

  .ga-services__panel--personal .ga-services__card--toggle-hide {
    transition:
      flex-grow 0.48s cubic-bezier(0.22, 0.61, 0.36, 1),
      opacity 0.24s ease 0.18s;
  }

  .ga-services__cards:has(.ga-services__panel--corporate:hover) .ga-services__card--toggle-hide,
  .ga-services__cards:has(.ga-services__panel--corporate:focus-within) .ga-services__card--toggle-hide {
    transition:
      opacity 0.18s ease,
      flex-grow 0.48s cubic-bezier(0.22, 0.61, 0.36, 1) 0.16s;
  }

  .ga-services__card--toggle-show {
    transition:
      opacity 0.18s ease,
      flex-grow 0.48s cubic-bezier(0.22, 0.61, 0.36, 1) 0.16s;
  }

  .ga-services__cards:has(.ga-services__panel--corporate:hover) .ga-services__card--toggle-show,
  .ga-services__cards:has(.ga-services__panel--corporate:focus-within) .ga-services__card--toggle-show {
    transition:
      flex-grow 0.48s cubic-bezier(0.22, 0.61, 0.36, 1),
      opacity 0.24s ease 0.18s;
  }

  .ga-services__panel--personal .ga-services__cardc,
  .ga-services__panel--personal .ga-services__num,
  .ga-services__panel--personal .ga-services__cardtitle {
    transform: none;
    transition: none;
  }

  .pc .ga-services__panel--personal .ga-services__card:hover,
  .pc .ga-services__panel--personal .ga-services__card:focus-visible {
    opacity: 1;
  }
}

@media (hover: none) {
  .ga-services__card--toggle-hide,
  .ga-services__card--toggle-show {
    flex-grow: 1;
    opacity: 1;
    pointer-events: auto;
  }
}

/* ----- 繝ｬ繧ｹ繝昴Φ繧ｷ繝厄ｼ・20px莉･荳具ｼ・----- */
@media screen and (max-width: 820px){
  .ga-services { padding: 6rem 0; }
  .ga-services__inner { padding: 0 2.4rem; }

  .ga-services__head {
    flex-direction: column;
    gap: 1.6rem;
    margin-bottom: 3rem;
  }
  .ga-services__title { font-size: 6rem; }
  .ga-services__lead  { font-size: 2rem; line-height: 1.7; }

  /* SP縺ｯ繝代ロ繝ｫ縺檎強縺・・縺ｧ繝舌ャ繧ｸ繧貞ｰ代＠蟆上＆縺擾ｼ・C縺ｯFigma蝗ｺ螳・83ﾃ・4・・*/
  .ga-services__badge {
    top: 1.6rem;
    left: 1.6rem;
    width: auto;
    min-width: 14rem;
    height: 4.8rem;
    font-size: 1.7rem;
  }

  /* SP縺ｯ繝帙ヰ繝ｼ荳榊庄・昴ヱ繝阪Ν邵ｦ遨阪∩繝ｻ蜈ｨ繧ｫ繝ｼ繝芽｡ｨ遉ｺ縺ｧ蝗ｺ螳夲ｼ医い繝九Γ辟｡蜉ｹ・・*/
  .ga-services__cards {
    flex-direction: column;
    gap: 2rem;
    aspect-ratio: auto;
  }
  .ga-services__panel { flex: none !important; width: 100%; }
  .ga-services__panel--personal  { aspect-ratio: 858 / 560; }
  .ga-services__panel--corporate { aspect-ratio: 858 / 560; }
  .ga-services__bg { transform: none !important; }

  .ga-services__cardc { margin: 0 5% 6% 0; }
  .ga-services__num { font-size: 1.4rem; }
  .ga-services__cardtitle { font-size: 2rem; white-space: normal; }
  .ga-services__arrow { width: 3.2rem; height: 3.2rem; margin-top: 1.4rem; }

  /* SP縺ｧ縺ｯ髢矩哩繧ｫ繝ｼ繝峨ｂ縺吶∋縺ｦ陦ｨ遉ｺ */
  .ga-services__card--toggle-hide,
  .ga-services__card--toggle-show {
    flex-grow: 1 !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}

/* ============================================================
   謨ｰ蟄励〒隕九ｋGA / In Numbers 繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ
   讒矩・・ga-numbers・育ｸｦ髟ｷ・牙・縺ｮ .ga-numbers__stage 繧谷S縺ｧ fixed 蝗ｺ螳壹・   縺昴・荳翫ｒ隕句・縺励・謨ｰ蟄励′繧ｹ繧ｯ繝ｭ繝ｼ繝ｫ縲りレ譎ｯ縺ｯ驛ｽ蟶ょ､懈勹蜍慕判・九げ繝ｬ繝ｼ荵礼ｮ励・   窶ｻ髱咏噪谿ｵ髫趣ｼ夊レ譎ｯ縺ｯ蜈ｨ髱｢陦ｨ遉ｺ・亥・繝槭せ繧ｯ縺ｯ繧｢繝九Γ谿ｵ髫弱〒JS縺悟宛蠕｡・・   ============================================================ */
.ga-numbers {
  position: relative;
  /* 繝偵・繝ｭ繝ｼ/Services縺ｨ蜷後§蜈ｨ蟷・喧・夊ｦｪ(.container遲・縺ｮ蟷・宛髯舌ｒ遯√″遐ｴ縺｣縺ｦ逕ｻ髱｢蜈ｨ蟷・↓縺吶ｋ縲・     縺薙ｌ縺檎┌縺・→繝・・繝槭・迢ｭ縺・ｮｱ(邏・100px)縺ｫ謚ｼ縺苓ｾｼ縺ｾ繧後※蟠ｩ繧後ｋ・・C蟠ｩ繧後・荳ｻ蝗・・*/
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  /* 邵ｦ髟ｷ縺ｫ縺励※sticky蛹ｺ髢薙ｒ菴懊ｋ縲ょｾ・ｩ溪・蜀・°繧牙虚逕ｻ繝ｪ繝薙・繝ｫ竊帝撕豁｢(髟ｷ繧・竊呈焚蟄励・4谿ｵ髫弱・縺溘ａ500vh */
  min-height: 100vh;
  height: auto;
  background: #fff;            /* 逋ｽ縺・憾諷具ｼ医ヲ繝ｼ繝ｭ繝ｼ縺九ｉ邯壹￥逋ｽ・・*/
}

@media screen and (min-width: 821px) {
  .ga-numbers {
    height: 255vh;
    background: #fff;
  }
}

.ga-numbers.is-ga-ready {
  height: 255vh;
  background: #0b1930;
}

.ga-news,
.ga-entry-links {
  position: relative;
  z-index: 3;
}

.ga-numbers__stage {
  position: relative;
  height: 100vh;
  min-height: 100svh;
  width: 100%;
  overflow: hidden;
  background: #fff;
  pointer-events: none;
}

.ga-numbers.is-ga-pinned .ga-numbers__stage {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  width: auto;
  height: 100vh;
  min-height: 100svh;
  z-index: 1002;
}

.ga-numbers.is-ga-pinned.is-ga-overlap .ga-numbers__stage {
  z-index: 1;
}

.ga-numbers.is-ga-past .ga-numbers__stage {
  position: absolute !important;
  top: var(--ga-numbers-release-top, calc(100% - 100vh));
  bottom: auto;
  left: 0;
  width: 100%;
  height: 100vh;
  min-height: 100svh;
}

/* 閭梧勹蜍慕判・磯撕逧・ｮｵ髫弱・蜈ｨ髱｢陦ｨ遉ｺ縲ゅい繝九Γ谿ｵ髫弱〒 clip-path 蜀・ｒJS縺御ｻ倥￠繧具ｼ・*/
.ga-numbers__bg {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: #0b1930;
}
.ga-numbers__bg video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}

.ga-numbers.is-ga-fixed-bg-active .ga-numbers__stage {
  background: transparent;
}

.ga-numbers.is-ga-fixed-bg-active .ga-numbers__bg,
.ga-numbers.is-ga-fixed-bg-active .ga-numbers__overlay {
  opacity: 0 !important;
}
/* 蜍慕判縺檎┌縺・凾縺ｮ莉｣譖ｿ・磯・蟶ょ､懈勹縺｣縺ｽ縺・ム繝ｼ繧ｯ・・*/
.ga-numbers__bg::before {
  content: "";
  position: absolute; inset: 0;
  background: #0b1930;
  z-index: -1;
}
/* 邏ｺ繧ｪ繝ｼ繝舌・繝ｬ繧､ */
.ga-numbers__overlay {
  position: absolute; inset: 0;
  background: rgba(11, 25, 48, 0.90);
  mix-blend-mode: normal;
  z-index: 2;
}

.ga-numbers-fixed-bg {
  position: fixed;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
  background: #0b1930;
  opacity: 0;
  visibility: hidden;
  transition: none;
}

.ga-numbers-fixed-bg.is-active {
  opacity: 1;
  visibility: visible;
  transition: none;
}

.ga-numbers-fixed-bg video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ga-numbers-fixed-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(4, 16, 36, 0.62);
  pointer-events: none;
}

/* 蜀・ｼ句捉蝗樒せ・医い繝九Γ逕ｨ縲る撕逧・ｮｵ髫弱・髱櫁｡ｨ遉ｺ縺ｫ縺励※縺翫￥・・*/
.ga-numbers__circle {
  position: absolute; left: 50%; top: 50%;
  width: 76px; height: 76px;
  transform: translate(-50%, -50%);
  z-index: 4;
  pointer-events: none;
  opacity: 0;                 /* 髱咏噪谿ｵ髫弱・髫縺吶ゅい繝九Γ谿ｵ髫弱〒JS縺瑚｡ｨ遉ｺ */
}
.ga-numbers__arm {
  position: absolute; top: 50%; left: 50%;
  width: 0; height: 0;
  transform-origin: 0 0;
  animation: ga-numbers-orbit 6s linear infinite;
}
.ga-numbers__dot {
  position: absolute; top: -181px; left: 0;
  width: 16px; height: 16px; margin: -8px;
  background: #2d2d2d; border-radius: 50%;
}
@keyframes ga-numbers-orbit {
  from { transform: rotate(0); }
  to   { transform: rotate(360deg); }
}

.ga-numbers__circle {
  overflow: visible;
}
.ga-numbers__atom-orbit {
  position: absolute;
  left: 50%;
  top: 50%;
  box-sizing: border-box;
  border: 1px solid #afb2b7;
  border-radius: 50%;
  transform: translate(-50%, -50%) rotate(var(--tilt, 0deg));
  transform-origin: center;
  opacity: 1;
}
.ga-numbers__atom-orbit i {
  position: absolute;
  left: 0;
  top: 0;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #101d35;
  transform: translate(0, 0);
  will-change: transform;
}
.ga-numbers__atom-orbit--circle {
  width: 76px;
  height: 76px;
}
.ga-numbers__atom-orbit--inner {
  width: 48px;
  height: 48px;
}
.ga-numbers__atom-orbit--a {
  width: 33.5px;
  height: 91.51px;
  --tilt: -30deg;
}
.ga-numbers__atom-orbit--b {
  width: 12.17px;
  height: 91.51px;
  --tilt: 30deg;
}
.ga-numbers__arm,
.ga-numbers__dot {
  display: none;
}

/* 荳ｭ霄ｫ・郁ｦ句・縺暦ｼ区焚蟄励げ繝ｪ繝・ラ・峨ｒ逕ｻ髱｢蜀・↓驟咲ｽｮ */
.ga-numbers__inner {
  position: relative;
  z-index: 3;
  height: 100%;
  width: min(100%, 1440px);
  max-width: 1440px;
  box-sizing: border-box;
  margin: 0 auto;
  padding: 0;
  display: flex;
  align-items: stretch;
  gap: 0;
  color: #fff;
  container-type: inline-size;
}

/* 隕句・縺暦ｼ亥ｷｦ・・*/
.ga-numbers__head {
  flex: 0 0 44.44444cqw;
  max-width: 44.44444cqw;
  padding-left: 5.55556cqw;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.ga-numbers__label {
  display: inline-flex; align-items: center; gap: 6px;
  color: #FFF;
  font-family: "Google Sans Flex", sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: 14px;
  letter-spacing: 0.7px;
  margin-bottom: 20px;
  opacity: 0;
  transform: translateX(-42px);
  clip-path: inset(0 100% 0 0);
  transition: opacity 0.45s ease, transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1), clip-path 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.ga-numbers__mark {
  width: 14px; height: 14px; flex: 0 0 auto;
  /* Services縺ｨ蜷後§繧｢繝医Β蝙九い繧､繧ｳ繝ｳ */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 17 17' fill='none'%3E%3Cpath d='M15.0002 15.0002C15.9645 14.0359 13.7792 10.2872 10.1191 6.62712C6.45909 2.96708 2.71032 0.781744 1.74602 1.74604C0.78172 2.71035 2.96705 6.45912 6.6271 10.1192C10.2871 13.7792 14.0359 15.9645 15.0002 15.0002Z' stroke='%2315B9F5' stroke-miterlimit='10'/%3E%3Cpath d='M1.746 15.0002C0.781704 14.0359 2.96704 10.2872 6.62708 6.62712C10.2871 2.96708 14.0359 0.781744 15.0002 1.74604C15.9645 2.71035 13.7792 6.45912 10.1191 10.1192C6.45908 13.7792 2.7103 15.9645 1.746 15.0002Z' stroke='%2315B9F5' stroke-miterlimit='10'/%3E%3C/svg%3E");
  background-size: contain; background-repeat: no-repeat; background-position: center;
}
.ga-numbers__title {
  color: #FFF;
  font-family: "Google Sans Flex", sans-serif;
  font-size: 90px;
  font-style: normal;
  font-weight: 600;
  line-height: 90px;
  letter-spacing: 0;
  white-space: nowrap;
  opacity: 0;
  transform: translateX(-64px);
  clip-path: inset(0 100% 0 0);
  transition: opacity 0.5s ease 0.1s, transform 0.82s cubic-bezier(0.22, 0.61, 0.36, 1) 0.1s, clip-path 0.82s cubic-bezier(0.22, 0.61, 0.36, 1) 0.1s;
}
.ga-numbers.is-ga-label-in .ga-numbers__label,
.ga-numbers.is-ga-head-in .ga-numbers__title {
  opacity: 1;
  transform: translateX(0);
  clip-path: inset(0 0 0 0);
}

/* 謨ｰ蟄励げ繝ｪ繝・ラ・亥承・峨・igma・・蛻励・鄂ｫ邱壹げ繝ｪ繝・ラ縲ょ推繧ｻ繝ｫ縺ｯ繧ｭ繝｣繝励す繝ｧ繝ｳ・井ｸ奇ｼ会ｼ区焚蟄暦ｼ井ｸ狗ｫｯ・峨・   px謖・ｮ夲ｼ医％縺ｮ繝・・繝槭・1rem=16px縺ｪ縺ｮ縺ｧrem縺ｯ菴ｿ繧上↑縺・ｼ・*/
.ga-numbers__grid {
  flex: 1;
  align-self: stretch;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-template-rows: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(255,255,255,0);
  border-left: 1px solid rgba(255,255,255,0);
  transition: border-color 0.36s ease;
}
.ga-numbers.is-ga-lines-in .ga-numbers__grid {
  border-top-color: rgba(255,255,255,0.4);
  border-left-color: rgba(255,255,255,0.4);
}
.ga-numbers__cell {
  --line-delay: 0s;
  --line-duration: 0.44s;
  --row-delay: 0s;
  border-bottom: 1px solid rgba(255,255,255,0);
  border-right: 1px solid rgba(255,255,255,0);
  padding: 24px 24px 11px;
  min-height: 0;
  display: flex;
  flex-direction: column;
  transition: border-color var(--line-duration) ease var(--line-delay);
}
.ga-numbers__cell:nth-child(1) { grid-column: 1 / 4; grid-row: 1; --line-delay: 0.04s; --line-duration: 0.42s; --row-delay: 0s; }
.ga-numbers__cell:nth-child(2) { grid-column: 4 / 7; grid-row: 1; --line-delay: 0.18s; --line-duration: 0.36s; --row-delay: 0s; }
.ga-numbers__cell:nth-child(3) { grid-column: 1 / 4; grid-row: 2; --line-delay: 0.09s; --line-duration: 0.48s; --row-delay: 0.18s; }
.ga-numbers__cell:nth-child(4) { grid-column: 4 / 7; grid-row: 2; --line-delay: 0.30s; --line-duration: 0.40s; --row-delay: 0.18s; }
.ga-numbers__cell:nth-child(5) { grid-column: 1 / 3; grid-row: 3; --line-delay: 0.24s; --line-duration: 0.44s; --row-delay: 0.34s; }
.ga-numbers__cell:nth-child(6) { grid-column: 3 / 5; grid-row: 3; --line-delay: 0.14s; --line-duration: 0.38s; --row-delay: 0.34s; }
.ga-numbers__cell:nth-child(7) { grid-column: 5 / 7; grid-row: 3; --line-delay: 0.36s; --line-duration: 0.46s; --row-delay: 0.34s; }
.ga-numbers.is-ga-lines-in .ga-numbers__cell {
  border-bottom-color: rgba(255,255,255,0.4);
  border-right-color: rgba(255,255,255,0.4);
}
.ga-numbers__cap {
  color: #FFF;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 24px;
  font-style: normal;
  font-weight: 700;
  line-height: 30.067px;
  margin: 0;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.42s ease var(--row-delay), transform 0.58s cubic-bezier(0.22, 0.61, 0.36, 1) var(--row-delay);
}
.ga-numbers__sub {
  color: #FFF;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  line-height: 12px;
  margin: 7px 0 0; min-height: 14px;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.38s ease calc(var(--row-delay) + 0.07s), transform 0.52s cubic-bezier(0.22, 0.61, 0.36, 1) calc(var(--row-delay) + 0.07s);
}
.ga-numbers__avg {
  color: #FFF;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 22px;
  font-style: normal;
  font-weight: 500;
  line-height: 30.067px;
  margin-top: auto;
  margin-bottom: -4px;
  position: relative;
  top: 34px;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.42s ease var(--row-delay), transform 0.58s cubic-bezier(0.22, 0.61, 0.36, 1) var(--row-delay);
}
.ga-numbers__val {
  margin-top: auto;
  position: relative;
  top: 38px;
  display: flex; align-items: baseline; gap: 4px;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.44s ease calc(var(--row-delay) + 0.16s), transform 0.62s cubic-bezier(0.22, 0.61, 0.36, 1) calc(var(--row-delay) + 0.16s);
}
.ga-numbers.is-ga-values-in .ga-numbers__cap,
.ga-numbers.is-ga-values-in .ga-numbers__sub,
.ga-numbers.is-ga-values-in .ga-numbers__avg,
.ga-numbers.is-ga-values-in .ga-numbers__val {
  opacity: 1;
  transform: translateY(0);
}
.ga-numbers__cell--has-average .ga-numbers__val {
  margin-top: 0;
}
.ga-numbers__count {
  color: #FFF;
  font-family: "Google Sans Flex", sans-serif;
  font-size: 80px;
  font-style: normal;
  font-weight: 500;
  line-height: 90.47px;
  font-variant-numeric: normal;
  display: inline-flex;
  align-items: baseline;
  overflow: visible;
}
.ga-numbers__digit {
  display: inline-block;
  opacity: 0;
  transform: translateY(-0.28em);
  transition: opacity 0.18s ease var(--digit-delay, 0ms), transform 0.34s ease var(--digit-delay, 0ms);
  will-change: opacity, transform;
}
.ga-numbers__digit--slot {
  position: relative;
  height: 1em;
  line-height: 1;
  overflow: visible;
  clip-path: inset(0 -0.42em 0 -0.42em);
  transform: translateY(0);
}
.ga-numbers__digit-final {
  display: block;
  height: 1em;
  line-height: 1;
  visibility: hidden;
}
.ga-numbers__reel {
  position: absolute;
  left: 50%;
  top: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0.62em;
  transform: translate(-50%, 0);
  will-change: transform;
}
.ga-numbers__reel-num {
  display: block;
  width: 100%;
  height: 1em;
  line-height: 1;
  text-align: center;
}
.ga-numbers__count.is-ga-count-in .ga-numbers__digit {
  opacity: 1;
  transform: translateY(0);
}
.ga-numbers__count.is-ga-count-in .ga-numbers__digit--slot .ga-numbers__reel {
  animation: ga-numbers-slot-roll var(--slot-duration, 900ms) cubic-bezier(0.16, 1, 0.3, 1) var(--digit-delay, 0ms) both;
}
@keyframes ga-numbers-slot-roll {
  0% { transform: translate(-50%, var(--slot-distance)); }
  100% { transform: translate(-50%, 0); }
}
.ga-numbers__unit {
  color: #FFF;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 22px;
  font-style: normal;
  font-weight: 500;
  line-height: 30.067px;
}

@media screen and (min-width: 821px) {
  .ga-numbers__label {
    font-size: 14px;
    line-height: 14px;
    letter-spacing: 0.04861cqw;
    margin-bottom: 1.38889cqw;
    transform: translateX(-2.91667cqw);
  }
  .ga-numbers__mark {
    width: 0.97222cqw;
    height: 0.97222cqw;
  }
  .ga-numbers__title {
    font-size: 6.25cqw;
    line-height: 6.25cqw;
    transform: translateX(-4.44444cqw);
  }
  .ga-numbers__cell {
    padding: 1.66667cqw 1.66667cqw 0.76389cqw;
  }
  .ga-numbers__cap {
    font-size: 1.66667cqw;
    line-height: 2.08799cqw;
  }
  .ga-numbers__sub {
    font-size: 12px;
    line-height: 12px;
    margin-top: 0.48611cqw;
    min-height: 0.97222cqw;
  }
  .ga-numbers__avg {
    font-size: 1.52778cqw;
    line-height: 2.08799cqw;
    margin-bottom: -0.27778cqw;
    top: 2.36111cqw;
  }
  .ga-numbers__val {
    top: 2.63889cqw;
    gap: 0.27778cqw;
  }
  .ga-numbers__count {
    font-size: 5.55556cqw;
    line-height: 6.28264cqw;
  }
  .ga-numbers__unit {
    font-size: 1.52778cqw;
    line-height: 2.08799cqw;
  }
}

@media screen and (min-width: 821px) and (max-height: 820px) {
  .ga-numbers__label {
    font-size: min(0.86cqw, 12px);
    line-height: 1;
    letter-spacing: min(0.043cqw, 0.6px);
    margin-bottom: min(1.05cqw, 14px);
  }
  .ga-numbers__mark {
    width: min(0.86cqw, 12px);
    height: min(0.86cqw, 12px);
  }
  .ga-numbers__title {
    font-size: min(5.28cqw, 76px);
    line-height: 1.08;
  }
  .ga-numbers__cell {
    padding: min(1.12cqw, 16px) 1.35cqw min(1.12cqw, 16px);
  }
  .ga-numbers__cap {
    font-size: min(1.46cqw, 21px);
    line-height: 1.28;
  }
  .ga-numbers__sub {
    font-size: min(0.76cqw, 11px);
    line-height: 1.25;
    margin-top: min(0.35cqw, 5px);
    min-height: min(0.9cqw, 13px);
  }
  .ga-numbers__avg {
    font-size: min(1.25cqw, 18px);
    line-height: 1.35;
    margin-bottom: 0;
    top: min(2.2cqw, 32px);
  }
  .ga-numbers__val {
    top: min(2.65cqw, 38px);
    gap: min(0.25cqw, 4px);
  }
  .ga-numbers__count {
    font-size: min(4.72cqw, 68px);
    line-height: 1;
  }
  .ga-numbers__unit {
    font-size: min(1.25cqw, 18px);
    line-height: 1.35;
  }
}

/* 繝ｬ繧ｹ繝昴Φ繧ｷ繝厄ｼ・20px莉･荳具ｼ・*/
@media screen and (max-width: 820px) {
  .ga-numbers,
  .ga-numbers.is-ga-ready {
    height: 225vh;
    background: #fff;
  }
  .ga-numbers__stage {
    position: relative;
    height: 100vh;
    min-height: 100svh;
    background: #fff;
  }
  .ga-numbers__circle { display: block; }
  .ga-numbers__inner {
    flex-direction: column; align-items: stretch;
    padding: 64px 5%;
  }
  .ga-numbers__head {
    flex: none;
    max-width: none;
    display: block;
    margin-bottom: 40px;
  }
  .ga-numbers__title {
    font-size: 36px;
    line-height: 1.1;
    white-space: normal;
  }
  .ga-numbers__grid {
    align-self: auto;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto;
  }
  .ga-numbers__grid > .ga-numbers__cell {
    grid-column: auto;
    grid-row: auto;
    min-height: 170px;
  }
  .ga-numbers__count { font-size: 40px; }
  .ga-numbers__unit {
    font-size: 14px;
    line-height: 1.5;
  }
  .ga-numbers__avg,
  .ga-numbers__val { top: 0; }
  .ga-numbers__grid,
  .ga-numbers__cell {
    border-color: rgba(255,255,255,0);
  }
}
@media screen and (max-width: 575px) {
  .ga-numbers__grid { grid-template-columns: 1fr 1fr; }
  .ga-numbers__cap { font-size: 13px; }
  .ga-numbers__count { font-size: 34px; }
}

/* ============================================
   WHAT IS Great Attaractor
   Figma node 3112:717 / 3112:715 縺ｮ讌募・繝ｪ繝ｳ繧ｰ
   ============================================ */
.ga-about,
.ga-whatis {
  position: relative;
  isolation: isolate;
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  overflow: hidden;
  background: #0b1930;
  color: #fff;
}

.ga-about::before,
.ga-about::after,
.ga-whatis::before,
.ga-whatis::after {
  content: "";
  position: absolute;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg preserveAspectRatio='none' width='100%25' height='100%25' overflow='visible' viewBox='0 0 305.653 1076.25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M152.826 1061.25C228.946 1061.25 290.653 827.04 290.653 538.126C290.653 249.211 228.946 15 152.826 15C76.707 15 15 249.211 15 538.126C15 827.04 76.707 1061.25 152.826 1061.25Z' stroke='white' stroke-opacity='0.05' stroke-width='30' stroke-miterlimit='10'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
}

.ga-about::before,
.ga-whatis::before {
  width: clamp(300px, 32vw, 520px);
  height: clamp(900px, 112vw, 1550px);
  left: 33%;
  top: -20%;
  transform: rotate(-42deg);
}

.ga-about::after,
.ga-whatis::after {
  width: clamp(320px, 34vw, 560px);
  height: clamp(960px, 118vw, 1620px);
  right: 2%;
  top: -45%;
  transform: rotate(42deg);
}

.ga-whatis::before,
.ga-whatis::after {
  background-image: url("data:image/svg+xml,%3Csvg preserveAspectRatio='none' width='100%25' height='100%25' overflow='visible' viewBox='0 0 305.653 1076.25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M152.826 1061.25C228.946 1061.25 290.653 827.04 290.653 538.126C290.653 249.211 228.946 15 152.826 15C76.707 15 15 249.211 15 538.126C15 827.04 76.707 1061.25 152.826 1061.25Z' stroke='white' stroke-opacity='0.05' stroke-width='30' stroke-miterlimit='10'/%3E%3C/svg%3E");
  background-size: 100% 100%;
  width: 275.653px;
  height: 1046.251px;
  transform-origin: 0 0;
}

.ga-whatis::before {
  left: calc(50% - 720px + 234px);
  top: 356.044px;
  transform: matrix(0.70710677, -0.70710677, 0.70710677, 0.70710677, 0, 0);
}

.ga-whatis::after {
  left: calc(50% - 720px + 1470px);
  right: auto;
  top: 131px;
  transform: matrix(-0.70710677, -0.70710677, -0.70710677, 0.70710677, 0, 0);
}

.ga-about > *,
.ga-whatis > * {
  position: relative;
  z-index: 1;
}

.ga-whatis {
  --ga-whatis-bg-alpha: 0.90;
  z-index: 2;
  padding: clamp(150px, 8.85vw, 170px) 0 clamp(88px, 9vw, 150px);
  min-height: clamp(780px, 62vw, 1050px);
  background: transparent;
}

.ga-whatis__inner {
  width: min(100%, 1440px);
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 0;
  container-type: inline-size;
}

.ga-whatis__label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  margin: 0 0 1.52778cqw 2.91667cqw;
}

.ga-whatis__mark {
  width: 12px;
  height: 12px;
  flex: 0 0 auto;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 17 17' fill='none'%3E%3Cpath d='M15.0002 15.0002C15.9645 14.0359 13.7792 10.2872 10.1191 6.62712C6.45909 2.96708 2.71032 0.781744 1.74602 1.74604C0.78172 2.71035 2.96705 6.45912 6.6271 10.1192C10.2871 13.7792 14.0359 15.9645 15.0002 15.0002Z' stroke='%2315B9F5' stroke-miterlimit='10'/%3E%3Cpath d='M1.746 15.0002C0.781704 14.0359 2.96704 10.2872 6.62708 6.62712C10.2871 2.96708 14.0359 0.781744 15.0002 1.74604C15.9645 2.71035 13.7792 6.45912 10.1191 10.1192C6.45908 13.7792 2.7103 15.9645 1.746 15.0002Z' stroke='%2315B9F5' stroke-miterlimit='10'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.ga-whatis__title {
  color: #fff;
  font-family: "Google Sans Flex", sans-serif;
  font-size: 6.25cqw;
  font-style: normal;
  font-weight: 600;
  line-height: 6.25cqw;
  letter-spacing: 0;
  margin: 0 0 0 2.91667cqw;
  white-space: nowrap;
}

.ga-whatis__message {
  margin-top: 23.19444cqw;
  margin-left: 5.41667cqw;
  width: 32.77778cqw;
}

.ga-whatis__photo {
  display: block;
  width: 100%;
  aspect-ratio: 472 / 360;
  object-fit: cover;
  border-radius: 10px;
  background: rgba(255,255,255,0.92);
}

.ga-whatis__message-title {
  margin: 2.08333cqw 0 0;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.38889cqw;
  font-weight: 700;
  line-height: 24px;
}

.ga-whatis__message-en {
  margin: 0 0 0.90278cqw;
  color: #fff;
  font-family: "Google Sans Flex", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 24px;
}

.ga-whatis__message-text {
  margin: 0;
  color: #fff;
  font-family: "Google Sans Flex", sans-serif;
  font-size: 1.11111cqw;
  font-weight: 600;
  line-height: 1.94444cqw;
}

.ga-whatis__more {
  display: inline-flex;
  align-items: center;
  gap: 1.25cqw;
  margin-top: 1.31944cqw;
  color: #fff;
  font-family: "Google Sans Flex", sans-serif;
  font-size: 1.11111cqw;
  font-weight: 600;
  line-height: 1.11111cqw;
  text-decoration: none;
  float: right;
}

.ga-whatis__more-icon,
.ga-whatis__link-arrow {
  display: inline-grid;
  place-items: center;
  width: 2.77778cqw;
  height: 2.77778cqw;
  border-radius: 0.34722cqw;
  background:
    linear-gradient(#15b9f5 0 0) left / 0 100% no-repeat,
    #fff;
  color: #0b1930;
  font-size: 1.04167cqw;
  line-height: 1;
  transition: background-size 0.28s ease, color 0.25s ease;
}

.ga-whatis__more:hover .ga-whatis__more-icon,
.ga-whatis__more:focus-visible .ga-whatis__more-icon {
  background-size: 100% 100%, auto;
  color: #fff;
}

.ga-whatis__right {
  position: relative;
  z-index: 3;
  align-self: start;
  padding-top: 15.83333cqw;
}

.ga-whatis__lead {
  width: 44.16667cqw;
  color: #fff;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: 2.43056cqw;
  font-weight: 700;
  line-height: 3.95833cqw;
  margin: 0 0 5cqw;
}

.ga-whatis__links {
  position: relative;
  z-index: 4;
  display: grid;
  width: 44.44444cqw;
  border-top: 1px solid #5f5f5f;
}

.ga-whatis__link {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 12.63889cqw;
  min-height: 12.63889cqw;
  padding: 0;
  border-bottom: 1px solid #5f5f5f;
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.001);
  color: #fff;
  text-decoration: none;
  overflow: hidden;
  isolation: isolate;
}

.ga-whatis__link > span:first-child,
.ga-whatis__link-arrow {
  position: relative;
  z-index: 2;
}

.ga-whatis__link-image {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 13.05556cqw;
  z-index: 1;
  width: calc(100% - 13.05556cqw);
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: translateX(2.77778cqw);
  transition: opacity 0.34s ease, transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
  pointer-events: auto;
  will-change: opacity, transform;
}

.ga-whatis__link:hover .ga-whatis__link-image,
.ga-whatis__link:focus-visible .ga-whatis__link-image {
  opacity: 1;
  transform: translateX(0);
}

.ga-whatis__link-title {
  display: block;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.38889cqw;
  font-weight: 700;
  line-height: 24px;
}

.ga-whatis__link-en {
  display: block;
  margin-top: 0;
  color: #fff;
  font-family: "Google Sans Flex", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 24px;
}

.ga-whatis__link-arrow {
  width: 2.77778cqw;
  height: 2.77778cqw;
  background: transparent;
  color: #fff;
  font-size: 1.25cqw;
}

@media screen and (max-width: 820px) {
  .ga-about::before,
  .ga-whatis::before {
    width: 260px;
    height: 920px;
    left: 12%;
    top: -10%;
  }

  .ga-about::after,
  .ga-whatis::after {
    width: 280px;
    height: 980px;
    right: -34%;
    top: -24%;
  }

  .ga-whatis::before {
    width: 178px;
    height: 676px;
    left: -18px;
    top: 146px;
    transform: matrix(0.70710677, -0.70710677, 0.70710677, 0.70710677, 0, 0);
  }

  .ga-whatis::after {
    width: 178px;
    height: 676px;
    left: calc(100% + 54px);
    right: auto;
    top: 24px;
    transform: matrix(-0.70710677, -0.70710677, -0.70710677, 0.70710677, 0, 0);
  }

  .ga-whatis {
    --ga-whatis-overlap: 70px;
    padding-bottom: 86px;
    background: rgba(11, 25, 48, var(--ga-whatis-bg-alpha));
  }

  .ga-whatis__inner {
    width: min(100% - 40px, 640px);
    grid-template-columns: 1fr;
    row-gap: 48px;
  }

  .ga-whatis__title {
    margin-left: 0;
    font-size: 10cqw;
    line-height: 1.08;
  }

  .ga-whatis__label {
    margin-left: 0;
  }

  .ga-whatis__message {
    margin-top: 48px;
    margin-left: 0;
    width: min(100%, 472px);
  }

  .ga-whatis__message-title {
    margin-top: 22px;
    font-size: 16px;
    line-height: 1.5;
  }

  .ga-whatis__message-en {
    margin-bottom: 12px;
    font-size: 10px;
    line-height: 1.6;
  }

  .ga-whatis__message-text {
    font-size: 12px;
    line-height: 1.8;
  }

  .ga-whatis__more {
    gap: 12px;
    margin-top: 18px;
    font-size: 12px;
    line-height: 1;
  }

  .ga-whatis__more-icon,
  .ga-whatis__link-arrow {
    width: 26px;
    height: 26px;
    border-radius: 3px;
    font-size: 15px;
  }

  .ga-whatis__right {
    padding-top: 0;
  }

  .ga-whatis__lead {
    width: 100%;
    font-size: clamp(20px, 5.2vw, 28px);
    line-height: 1.7;
  }

  .ga-whatis__links {
    width: 100%;
  }

  .ga-whatis__link {
    min-height: 88px;
  }
}

/* ============================================
   Business Mission
   ============================================ */
.ga-mission {
  position: relative;
  z-index: 2;
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  padding: 5px 10px 5px 5px;
  background: #0b1930;
}

.ga-mission__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
  max-width: 1425px;
  margin: 0 auto;
}

.ga-mission__tile {
  position: relative;
  height: clamp(460px, 45.13889vw, 650px);
  overflow: hidden;
}

.ga-mission__media {
  background: #000;
}

.ga-mission__video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ga-mission__media--01 .ga-mission__video {
  filter: grayscale(1) contrast(1.08);
}

.ga-mission__card {
  background: #fff;
  color: #000;
}

.ga-mission__eyebrow {
  position: absolute;
  left: 50%;
  top: 189px;
  transform: translateX(-50%);
  margin: 0;
  color: #000;
  font-family: "Saira", "Google Sans Flex", sans-serif;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  letter-spacing: 0;
  white-space: nowrap;
}

.ga-mission__num {
  position: absolute;
  left: 50%;
  top: 209px;
  transform: translateX(-50%);
  margin: 0;
  color: #000;
  font-family: "Saira", "Google Sans Flex", sans-serif;
  font-size: 69px;
  font-style: normal;
  font-weight: 300;
  line-height: 69px;
  letter-spacing: 0;
  white-space: nowrap;
}

.ga-mission__rule {
  position: absolute;
  left: 50%;
  top: 289px;
  display: block;
  width: 40px;
  height: 1px;
  transform: translateX(-50%);
  background: #000;
}

.ga-mission__title {
  position: absolute;
  left: 50%;
  top: 326px;
  transform: translateX(-50%);
  margin: 0;
  color: #000;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 42.5px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  letter-spacing: 0;
  white-space: nowrap;
}

.ga-mission__text {
  position: absolute;
  left: 23px;
  right: 22px;
  bottom: 28px;
  margin: 0;
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 28px;
  letter-spacing: 0.8px;
}

@media screen and (max-width: 820px) {
  .ga-mission {
    padding: 4px;
  }

  .ga-mission__grid {
    grid-template-columns: 1fr;
    gap: 4px;
    max-width: 720px;
  }

  .ga-mission__tile {
    height: auto;
    min-height: 420px;
  }

  .ga-mission__media {
    aspect-ratio: 710 / 650;
    min-height: 0;
  }

  .ga-mission__card {
    min-height: 520px;
  }

  .ga-mission__eyebrow {
    top: 118px;
    font-size: 11px;
  }

  .ga-mission__num {
    top: 136px;
    font-size: 56px;
    line-height: 56px;
  }

  .ga-mission__rule {
    top: 202px;
  }

  .ga-mission__title {
    top: 238px;
    width: calc(100% - 40px);
    font-size: clamp(28px, 8.5vw, 38px);
    white-space: normal;
  }

  .ga-mission__text {
    left: 22px;
    right: 22px;
    bottom: 30px;
    font-size: 14px;
    line-height: 2;
    letter-spacing: 0.05em;
  }
}

/* ===== News ===== */
.ga-news {
  position: relative;
  left: 50%;
  width: 100vw;
  min-height: auto;
  margin-left: -50vw;
  margin-right: -50vw;
  padding: 145px 0 112px;
  background: #F4F4F4;
  color: #000;
}

.ga-news__inner {
  display: grid;
  grid-template-columns: minmax(220px, 296px) minmax(0, 814px);
  column-gap: clamp(48px, 7.361vw, 106px);
  width: min(calc(100% - 224px), 1216px);
  margin: 0 auto;
}

.ga-news__side {
  padding-left: 16px;
}

.ga-news__label {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  color: #000;
  font-family: "ZenKakuGothicNew-R", "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 14px;
  letter-spacing: 0.7px;
}

.ga-news__mark {
  position: relative;
  display: inline-block;
  width: 16.75px;
  height: 16.75px;
  flex: 0 0 16.75px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 15 15' fill='none'%3E%3Cpath d='M0.727327 13.9818C-0.236973 13.0175 1.94836 9.26873 5.6084 5.60869C9.26845 1.94864 13.0172 -0.236689 13.9815 0.727612C14.9458 1.69191 12.7605 5.44068 9.10044 9.10073C5.4404 12.7608 1.69163 14.9461 0.727327 13.9818Z' stroke='%2315B9F5' stroke-miterlimit='10'/%3E%3Cpath d='M13.9817 13.9818C14.946 13.0175 12.7606 9.26873 9.10058 5.60869C5.44054 1.94864 1.69177 -0.236689 0.727466 0.727612C-0.236835 1.69191 1.9485 5.44068 5.60854 9.10073C9.26858 12.7608 13.0174 14.9461 13.9817 13.9818Z' stroke='%2315B9F5' stroke-miterlimit='10'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

.ga-news__mark::before,
.ga-news__mark::after {
  display: none;
}

.ga-news__mark::before {
  transform: none;
}

.ga-news__mark::after {
  transform: none;
}

.ga-news__title {
  display: flex;
  align-items: center;
  gap: 22px;
  margin: 28px 0 0;
  color: #000;
  font-family: "Google Sans Flex", "Outfit", sans-serif;
  font-size: 66px;
  font-weight: 400;
  line-height: 40px;
  letter-spacing: 0;
}

.ga-news__title::after {
  display: block;
  width: 0;
  height: 0;
  content: "";
  border-top: 5.5px solid transparent;
  border-bottom: 5.5px solid transparent;
  border-left: 9px solid #fff;
}

.ga-news__cats {
  position: relative;
  --ga-news-indicator-x: 9px;
  --ga-news-indicator-y: 9px;
  display: grid;
  gap: 25px;
  margin: 68px 0 0;
  padding: 0;
  list-style: none;
}

.ga-news__cats::before,
.ga-news__cats::after {
  content: "";
  position: absolute;
  left: var(--ga-news-indicator-x);
  top: var(--ga-news-indicator-y);
  z-index: 2;
  pointer-events: none;
  transform: translate(-50%, -50%);
  transition: left 0.32s cubic-bezier(0.22, 0.61, 0.36, 1), top 0.32s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.ga-news__cats::before {
  width: 18px;
  height: 18px;
  box-sizing: border-box;
  border: 1px solid #15b9f5;
  border-radius: 50%;
}

.ga-news__cats::after {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #15b9f5;
}

.ga-news__cat {
  position: relative;
  display: flex;
  align-items: center;
  gap: 13px;
  color: #000;
  font-family: "ZenKakuGothicNew-R", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 14px;
  letter-spacing: 0.8px;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.2s ease;
}

.ga-news__cat::before {
  display: block;
  width: 18px;
  height: 18px;
  box-sizing: border-box;
  content: "";
  border: 1px solid #e8e8e8;
  border-radius: 50%;
  background: #fff;
}

.ga-news__cat-link {
  position: relative;
  z-index: 3;
  color: inherit;
  text-decoration: none;
}

.ga-news__cat.is-ga-current {
  color: #15b9f5;
}

.ga-news__cat.is-active::before {
  border-color: #e8e8e8;
  background: #fff;
}

/* GA NEWS category radio alignment fix */
.ga-news__cats::before,
.ga-news__cats::after {
  display: none !important;
}

.ga-news__cat.is-ga-current::before,
.ga-news__cat.is-active::before {
  border-color: #15b9f5 !important;
  background: radial-gradient(circle, #15b9f5 0 4px, #fff 4.5px) !important;
}

.ga-news__more {
  display: inline-flex;
  align-items: center;
  gap: 17px;
  margin-top: 71px;
  color: #000;
  font-family: "Google Sans Flex", "Outfit", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0;
  text-decoration: none;
}

.ga-news__more-icon {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border: 1px solid #d8d8d8;
  border-radius: 4px;
  background:
    linear-gradient(#15b9f5 0 0) left / 0 100% no-repeat,
    #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 17px;
  line-height: 1;
  transition: background-size 0.28s ease, border-color 0.25s ease, color 0.25s ease;
}

.ga-news__more:hover .ga-news__more-icon,
.ga-news__more:focus-visible .ga-news__more-icon {
  border-color: #15b9f5;
  background-size: 100% 100%, auto;
  color: #fff;
}

.ga-news__list {
  width: 100%;
}

.ga-news__panel {
  display: none;
  width: 100%;
}

.ga-news__panel.is-ga-news-panel-active {
  display: block;
}

.ga-news__item {
  position: relative;
  display: grid;
  grid-template-columns: 169px minmax(0, 1fr);
  column-gap: 45px;
  height: 190px;
  min-height: 190px;
  padding: 30px 0;
}

.ga-news__item::before,
.ga-news__item::after {
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  content: "";
  background: #e6e6e6;
}

.ga-news__item::before {
  top: 0;
}

.ga-news__item::after {
  bottom: 0;
  background:
    linear-gradient(#000 0 0) left / 0 100% no-repeat,
    #e6e6e6;
  transition: background-size 0.72s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.ga-news__item + .ga-news__item::before {
  display: none;
}

.ga-news__item:hover::after,
.ga-news__item:focus-within::after {
  background-size: 100% 100%, auto;
}

.ga-news__thumb {
  display: block;
  width: 169px;
  height: 120px;
  overflow: hidden;
  border-radius: 8px;
  background: #e7e7e7;
  opacity: 1 !important;
  transform: scale(1);
  transform-origin: center center;
  transition: transform 0.35s ease;
}

.ga-news__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  transform-origin: center center;
  transition: transform 0.35s ease;
}

.ga-news__item:hover .ga-news__thumb {
  transform: scale(0.94);
}

.ga-news__item:hover .ga-news__thumb img {
  transform: scale(1.12);
}

.ga-news__body {
  display: block;
  min-width: 0;
  padding-top: 0;
  color: #000;
  opacity: 1 !important;
  text-decoration: none;
}

.ga-news__meta {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 26px;
}

.ga-news__badge {
  display: inline-grid;
  min-width: 78px;
  height: 22px;
  place-items: center;
  padding: 0 14px;
  box-sizing: border-box;
  border-radius: 999px;
  background: #f1eeee;
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 12px;
  letter-spacing: 0.6px;
}

.ga-news__date {
  color: #737373;
  font-family: "Outfit", "Google Sans Flex", sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 14px;
  letter-spacing: 0.65px;
}

.ga-news__text {
  display: block;
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 28px;
  letter-spacing: 0.8px;
}

@media screen and (max-width: 1199px) {
  .ga-news__inner {
    width: min(calc(100% - 80px), 1216px);
  }
}

@media screen and (max-width: 820px) {
  .ga-news {
    min-height: 0;
    padding: 78px 0 88px;
  }

  .ga-news__inner {
    grid-template-columns: 1fr;
    row-gap: 52px;
    width: min(calc(100% - 40px), 720px);
  }

  .ga-news__side {
    padding-left: 0;
  }

  .ga-news__title {
    font-size: 48px;
    line-height: 1;
  }

  .ga-news__cats {
    grid-template-columns: repeat(2, minmax(0, max-content));
    gap: 18px 28px;
    margin-top: 36px;
  }

  .ga-news__more {
    margin-top: 38px;
  }

  .ga-news__item {
    grid-template-columns: 128px minmax(0, 1fr);
    column-gap: 22px;
    height: auto;
    min-height: 0;
    padding: 24px 0;
  }

  .ga-news__thumb {
    width: 128px;
    height: 91px;
  }

  .ga-news__meta {
    flex-wrap: wrap;
    gap: 8px 12px;
    margin-bottom: 12px;
  }

  .ga-news__text {
    font-size: 14px;
    line-height: 1.8;
    letter-spacing: 0.05em;
  }
}

@media screen and (max-width: 575px) {
  .ga-news {
    padding: 64px 0 72px;
  }

  .ga-news__inner {
    width: min(calc(100% - 32px), 420px);
  }

  .ga-news__cats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 18px;
    width: min(100%, 292px);
    margin-top: 34px;
  }

  .ga-news__cat {
    min-height: 28px;
    gap: 10px;
    font-size: 14px;
    line-height: 1.35;
    letter-spacing: 0.04em;
  }

  .ga-news__cat::before {
    flex: 0 0 18px;
  }

  .ga-news__item {
    grid-template-columns: 1fr;
    row-gap: 18px;
  }

  .ga-news__thumb {
    width: 100%;
    height: auto;
    aspect-ratio: 169 / 120;
  }
}

/* =========================================================
   SP responsive refinements
   ========================================================= */
@media screen and (max-width: 820px) {
  .ga-hero {
    height: 100svh;
    min-height: calc(560 / var(--design-sp) * 100cqw);
    max-height: calc(820 / var(--design-sp) * 100cqw);
  }

  .ga-hero__media {
    object-position: center center;
  }

  .ga-hero__catch {
    right: calc(20 / var(--design-sp) * 100cqw);
    bottom: calc(88 / var(--design-sp) * 100vw + env(safe-area-inset-bottom));
    max-width: calc(100% - calc(40 / var(--design-sp) * 100cqw));
    font-size: clamp(calc(28 / var(--design-sp) * 100cqw), 7.6vw, calc(44 / var(--design-sp) * 100cqw));
    line-height: 1.34;
  }

  .ga-services__title,
  .ga-whatis__title,
  .ga-news__title,
  .ga-entry-links__title {
    overflow-wrap: anywhere;
  }

  .ga-numbers__stage {
    position: relative;
    min-height: 0;
    background: #fff;
    overflow: hidden;
  }

  .ga-numbers__inner {
    width: min(calc(100% - 40px), 720px);
    padding: 72px 0;
  }

  .ga-numbers__head {
    padding-left: 0;
  }

  .ga-numbers__cell {
    padding: 20px 18px 18px;
  }

  .ga-numbers__avg {
    margin-top: 18px;
    margin-bottom: 0;
  }

  .ga-numbers__val {
    margin-top: 18px;
    flex-wrap: wrap;
    row-gap: 2px;
  }

  .ga-whatis {
    padding-top: 84px;
  }
}

@media screen and (max-width: 820px) {
  .ga-services__inner,
  .ga-numbers__inner,
  .ga-whatis__inner,
  .ga-news__inner,
  .ga-entry-links__inner {
    width: 100%;
    max-width: 720px;
    padding-right: 16px;
    padding-left: 16px;
    box-sizing: border-box;
  }

  .ga-services__head,
  .ga-services__cards {
    width: 100%;
  }

  .ga-numbers__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .ga-whatis__inner,
  .ga-mission__grid,
  .ga-news__inner,
  .ga-entry-links__inner {
    grid-template-columns: minmax(0, 1fr);
  }

  .ga-mission {
    padding-right: 16px;
    padding-left: 16px;
  }

  .ga-mission__grid {
    width: 100%;
    max-width: 720px;
  }

  .ga-mission__tile {
    min-height: 380px;
  }

  .ga-mission__card {
    min-height: 500px;
  }

  .ga-news__cats {
    grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
    gap: 10px 12px;
  }
}

@media screen and (max-width: 575px) {
  .ga-hero {
    min-height: calc(560 / var(--design-sp) * 100cqw);
    max-height: none;
  }


  /* FV white circle orbit disabled. Restore by removing this comment block.
  .ga-hero__orbit {
    --ga-hero-orbit-size: clamp(260px, 76vw, 330px);
    --ga-hero-dot-size: clamp(9px, 2.7vw, 12px);
    top: 41%;
    border-color: rgba(255, 255, 255, 0.58);
    opacity: 0.72;
  }
  */

  .ga-services {
    padding: 54px 0 70px;
  }

  .ga-services__inner {
    padding: 0 10px;
  }

  .ga-services__head {
    gap: 22px;
    margin-bottom: 52px;
  }

  .ga-services__label {
    gap: 3.25px;
    margin: 0 0 14px;
    font-family: "Google Sans Flex", "Noto Sans JP", sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 14px;
    letter-spacing: 0.7px;
  }

  .ga-services__title {
    font-size: 50px;
    font-weight: 600;
    line-height: 60px;
  }

  .ga-services__lead {
    font-size: 19px;
    line-height: 28px;
  }

  .ga-services__cards {
    gap: 19px;
  }

  .ga-services__panel,
  .ga-services__panel--personal,
  .ga-services__panel--corporate {
    aspect-ratio: 355 / 278;
    min-height: 0;
    border-radius: 14px;
  }

  .ga-services__panel::after {
    height: calc(100% * 205 / 278);
    border-radius: 0 0 10px 10px;
  }

  .ga-services__badge {
    top: 10px;
    left: 11px;
    width: 112px;
    min-width: 0;
    height: 34px;
    padding: 0 10px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.78);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    backdrop-filter: blur(2px);
    color: #000;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 15px;
    font-style: normal;
    font-weight: 700;
    line-height: 16px;
  }

  .ga-services__badge--corporate {
    background: rgba(95, 95, 95, 0.78);
    color: #fff;
  }

  .ga-services__cardrow {
    top: auto;
    right: 0;
    bottom: 32px;
    left: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
    padding: 0;
  }

  .ga-services__card {
    flex: none;
  }

  .ga-services__cardc {
    min-height: 0;
    margin: 0;
    padding: 0 78px 0 34px;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }

  .ga-services__cardc::before {
    display: block;
    left: 20px;
    top: 0;
    width: 1px;
    height: 49px;
    background: rgba(255, 255, 255, 0.9);
  }

  .ga-services__cardc::after {
    display: block;
    left: 20px;
    top: 0;
    width: 3px;
    height: 20px;
    background: #fff;
  }

  .ga-services__num {
    color: #fff;
    font-family: "Google Sans Flex", -apple-system, "Helvetica Neue", Arial, sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 20px;
    letter-spacing: 0.7px;
  }

  .ga-services__cardtitle {
    margin-top: 4px;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 30px;
    text-shadow: none;
  }

  .ga-services__panel--personal .ga-services__card:first-child .ga-services__cardc {
    min-height: 0;
  }

  .ga-services__panel--personal .ga-services__card:first-child .ga-services__cardtitle {
    font-size: 18px;
    line-height: 30px;
  }

  .ga-services__panel--personal .ga-services__card:first-child .ga-services__cardtitle::before {
    content: none;
    display: none;
  }

  .ga-services__arrow {
    position: absolute;
    top: 50%;
    right: 20px;
    width: 31px;
    height: 31px;
    margin-top: 0;
    transform: translateY(-50%);
  }

  .ga-numbers__inner {
    max-width: 420px;
    height: 100%;
    min-height: 0;
    padding-top: 8px;
    padding-bottom: 0;
  }

  .ga-numbers__head {
    margin-bottom: 4px;
  }

  .ga-numbers__label {
    margin-bottom: 8px;
    color: #fff;
    font-family: "Google Sans Flex", sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 14px;
    letter-spacing: 0.7px;
  }

  .ga-numbers__title {
    color: #fff;
    font-family: "Google Sans Flex", sans-serif;
    font-size: 60px;
    font-style: normal;
    font-weight: 600;
    line-height: 60px;
  }

  .ga-numbers__grid {
    position: relative;
    flex: 0 0 528px;
    height: 528px;
    min-height: 528px;
    max-height: 528px;
    margin-bottom: 0;
    box-sizing: border-box;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(4, 132px);
    grid-auto-rows: 132px;
    align-items: stretch;
    gap: 0;
    border-top: 1px solid rgba(255, 255, 255, 0);
    border-left: 1px solid rgba(255, 255, 255, 0);
    overflow: visible;
  }

  .ga-numbers__grid::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 5;
    height: 2px;
    background: #fff;
    opacity: 0;
    pointer-events: none;
  }

  .ga-numbers__grid > .ga-numbers__cell {
    grid-column: auto;
    grid-row: auto;
    min-height: 0;
  }

  .ga-numbers__grid > .ga-numbers__cell:nth-child(1) { grid-column: 1; grid-row: 1; }
  .ga-numbers__grid > .ga-numbers__cell:nth-child(2) { grid-column: 2; grid-row: 1; }
  .ga-numbers__grid > .ga-numbers__cell:nth-child(3) { grid-column: 1; grid-row: 2; }
  .ga-numbers__grid > .ga-numbers__cell:nth-child(4) { grid-column: 2; grid-row: 2; }
  .ga-numbers__grid > .ga-numbers__cell:nth-child(5) { grid-column: 1; grid-row: 3; }
  .ga-numbers__grid > .ga-numbers__cell:nth-child(6) { grid-column: 2; grid-row: 3; }

  .ga-numbers__grid > .ga-numbers__cell:last-child {
    grid-column: 1 / -1;
    grid-row: 4;
    min-height: 0;
  }

  .ga-numbers__cell {
    align-self: stretch;
    display: grid;
    grid-template-rows: auto auto 1fr 45px;
    row-gap: 0;
    height: auto;
    min-height: 0;
    padding: 15px 10px 8px;
    border: 1px solid rgba(255, 255, 255, 0);
    border-top: 0;
    border-left: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    align-content: start;
  }

  .ga-numbers__grid > .ga-numbers__cell:nth-child(3) {
    grid-template-columns: auto auto minmax(0, 1fr);
    column-gap: 2px;
    padding-right: 10px;
    padding-left: 10px;
  }

  .ga-numbers__grid > .ga-numbers__cell:nth-child(3) .ga-numbers__cap,
  .ga-numbers__grid > .ga-numbers__cell:nth-child(3) .ga-numbers__sub {
    grid-column: 1 / -1;
  }

  .ga-numbers__grid > .ga-numbers__cell:nth-child(3) .ga-numbers__avg {
    grid-column: 1;
    grid-row: 4;
    align-self: end;
    margin-bottom: 13px !important;
  }

  .ga-numbers__grid > .ga-numbers__cell:nth-child(3) .ga-numbers__val {
    grid-column: 2;
    grid-row: 4;
  }

  .ga-numbers__grid > .ga-numbers__cell:nth-child(4) {
    padding-top: 15px;
    padding-right: 10px;
    padding-left: 10px;
  }

  .ga-numbers.is-ga-lines-in .ga-numbers__grid {
    border-color: rgba(255, 255, 255, 0.35);
  }

  .ga-numbers.is-ga-lines-in .ga-numbers__grid::after {
    opacity: 1;
    background: rgba(255, 255, 255, 0.35);
  }

  .ga-numbers.is-ga-lines-in .ga-numbers__cell {
    border-color: rgba(255, 255, 255, 0.30);
  }

  .ga-numbers__sub {
    grid-row: 2;
    min-height: 0;
    margin: 6px 0 0 !important;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: 12px;
  }

  .ga-numbers__grid > .ga-numbers__cell:nth-child(4) .ga-numbers__sub,
  .ga-numbers__grid > .ga-numbers__cell:nth-child(5) .ga-numbers__sub,
  .ga-numbers__grid > .ga-numbers__cell:nth-child(7) .ga-numbers__sub {
    margin-top: 5px !important;
  }

  .ga-numbers__grid > .ga-numbers__cell:nth-child(6) .ga-numbers__sub {
    margin-top: 27px !important;
  }

  .ga-numbers__cap {
    grid-row: 1;
    margin: 0 !important;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 16px;
    white-space: nowrap;
  }

  .ga-numbers__grid > .ga-numbers__cell--subsidy-rate .ga-numbers__cap-break {
    display: block !important;
    margin-top: 15px !important;
  }

  .ga-numbers__avg {
    grid-row: 3;
    align-self: end;
    margin: 0 !important;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 14px;
  }

  .ga-numbers__val {
    grid-row: 4;
    align-items: baseline;
    margin: 0 !important;
    gap: 0;
  }

  .ga-numbers__cell--has-average .ga-numbers__val {
    margin: 0 !important;
  }

  .ga-numbers__count {
    color: #fff;
    font-family: "Google Sans Flex", sans-serif;
    font-size: 45px;
    font-style: normal;
    font-weight: 500;
    line-height: 45px;
    min-width: max-content;
  }

  .ga-numbers__digit--slot {
    overflow: hidden;
    clip-path: inset(0 -0.5em 0 -0.5em);
    -webkit-clip-path: inset(0 -0.5em 0 -0.5em);
  }

  .ga-numbers__unit {
    color: #fff;
    text-align: right;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 20px;
    font-style: normal;
    font-weight: 500;
    line-height: 20px;
    padding-bottom: 0;
  }

  .ga-numbers__bg video {
    filter: saturate(0.58) contrast(1.03) brightness(0.58);
    object-position: center center;
  }

  .ga-numbers__overlay {
    background: #5e5e5e;
    mix-blend-mode: multiply;
  }

  .ga-numbers,
  .ga-numbers.is-ga-ready {
    height: 185vh;
    min-height: 185vh;
    background: #fff;
  }

  .ga-numbers__stage {
    height: 100svh;
    min-height: 100svh;
    background: #fff;
  }

  .ga-numbers.is-ga-pinned .ga-numbers__stage,
  .ga-numbers.is-ga-past .ga-numbers__stage {
    height: 100svh;
    min-height: 100svh;
    background: #fff;
  }

  .ga-numbers.is-ga-overlap .ga-numbers__stage,
  .ga-numbers.is-ga-past .ga-numbers__stage {
    background: #fff;
  }

  .ga-numbers:not(.is-ga-overlap):not(.is-ga-past) .ga-numbers__bg,
  .ga-numbers:not(.is-ga-overlap):not(.is-ga-past) .ga-numbers__overlay {
    opacity: 0;
  }

  .ga-numbers.is-ga-overlap .ga-numbers__bg,
  .ga-numbers.is-ga-past .ga-numbers__bg,
  .ga-numbers.is-ga-overlap .ga-numbers__overlay,
  .ga-numbers.is-ga-past .ga-numbers__overlay {
    opacity: 1;
  }

  @supports (height: 100dvh) {
    .ga-numbers__stage,
    .ga-numbers.is-ga-pinned .ga-numbers__stage,
    .ga-numbers.is-ga-past .ga-numbers__stage {
      height: 100dvh;
      min-height: 100dvh;
    }
  }

  .ga-whatis {
    --ga-whatis-overlap: 70px;
    padding-top: 84px;
    padding-bottom: 72px;
    min-height: 0;
  }

  .ga-whatis::before,
  .ga-whatis::after {
    width: 88px;
    height: 334px;
    opacity: 0.42;
  }

  .ga-whatis::before {
    left: 44px;
    top: 126px;
  }

  .ga-whatis::after {
    left: calc(100% + 24px);
    top: 18px;
    right: auto;
  }

  .ga-whatis__inner {
    max-width: 420px;
    row-gap: 40px;
  }

  .ga-whatis__title {
    font-size: clamp(40px, 13.6vw, 54px);
  }

  .ga-whatis__message {
    margin-top: 36px;
  }

  .ga-whatis__message-text {
    font-size: 13px;
    line-height: 1.85;
  }

  .ga-whatis__more {
    gap: 10px;
    margin-top: 22px;
    font-size: 13px;
  }

  .ga-whatis__lead {
    margin-bottom: 34px;
    font-size: clamp(19px, 5.2vw, 21px);
    line-height: 1.75;
  }

  .ga-whatis__link {
    min-height: 72px;
    padding: 0 6px 0 0;
  }

  .ga-whatis__link-title {
    font-size: 13px;
    line-height: 1.45;
  }

  .ga-whatis__link-en {
    margin-top: 3px;
    font-size: 9px;
    line-height: 1.2;
    letter-spacing: 0.02em;
  }

  .ga-mission {
    padding: 42px 15px 48px;
  }

  .ga-mission__grid {
    max-width: 420px;
    gap: 0;
  }

  .ga-mission__grid > .ga-mission__tile:nth-child(1) { order: 1; }
  .ga-mission__grid > .ga-mission__tile:nth-child(2) { order: 2; }
  .ga-mission__grid > .ga-mission__tile:nth-child(3) { order: 4; }
  .ga-mission__grid > .ga-mission__tile:nth-child(4) { order: 3; }
  .ga-mission__grid > .ga-mission__tile:nth-child(5) { order: 5; }
  .ga-mission__grid > .ga-mission__tile:nth-child(6) { order: 6; }

  .ga-mission__tile {
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .ga-mission__media {
    height: clamp(190px, 55vw, 224px);
    min-height: 0;
    margin: 0;
    overflow: hidden;
    aspect-ratio: auto;
  }

  .ga-mission__media .ga-mission__video {
    height: 100%;
  }

  .ga-mission__card {
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 14px;
    width: calc(100% - 28px);
    min-height: 0;
    margin: -24px auto 36px;
    padding: 24px 22px 28px;
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.16);
  }

  .ga-mission__grid > .ga-mission__tile:nth-child(6) {
    margin-bottom: 0;
  }

  .ga-mission__eyebrow,
  .ga-mission__num,
  .ga-mission__rule,
  .ga-mission__title,
  .ga-mission__text {
    position: static;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    transform: none;
  }

  .ga-mission__eyebrow {
    grid-column: 1;
    grid-row: 1;
    align-self: end;
    font-size: 11px;
    line-height: 1.2;
  }

  .ga-mission__num {
    grid-column: 2;
    grid-row: 1;
    align-self: end;
    font-size: 28px;
    line-height: 1;
  }

  .ga-mission__rule {
    grid-column: 1 / -1;
    width: 34px;
    margin: 10px 0 18px;
    background: rgba(0, 0, 0, 0.34);
  }

  .ga-mission__title {
    grid-column: 1 / -1;
    width: auto;
    margin: 0;
    text-align: left;
    font-size: clamp(24px, 6.8vw, 29px);
    line-height: 1.42;
    white-space: normal;
    text-wrap: balance;
  }

  .ga-mission__text {
    grid-column: 1 / -1;
    margin-top: 22px;
    font-size: 14px;
    line-height: 1.9;
    letter-spacing: 0.04em;
  }

  .ga-news__more,
  .ga-entry-links__arrow {
    touch-action: manipulation;
  }

}

@media screen and (max-width: 390px) {
  .ga-services__panel,
  .ga-services__panel--personal,
  .ga-services__panel--corporate {
    aspect-ratio: 355 / 278;
    min-height: 0;
  }

  .ga-numbers__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ga-numbers__grid > .ga-numbers__cell {
    min-height: 0;
  }

  .ga-numbers__grid > .ga-numbers__cell:last-child {
    min-height: 0;
  }

  .ga-news__inner,
  .ga-entry-links__inner {
    max-width: none;
    padding-right: 14px;
    padding-left: 14px;
  }

}

/* ===== FV Catch Copy ===== */
.ga-hero {
  height: 100svh;
  min-height: min(calc(854 / var(--design-pc) * 100cqw), 100svh);
}

.ga-hero__catch {
  --fv-catch-width: min(calc(449 / var(--design-pc) * 100cqw), 449px);
  --fv-band-height: min(calc(187 / var(--design-pc) * 100cqw), 187px);
  --fv-band-radius: min(calc(15 / var(--design-pc) * 100cqw), 15px);
  --fv-catch-font: min(calc(51.5 / var(--design-pc) * 100cqw), 51.5px);
  --fv-catch-line: min(calc(69 / var(--design-pc) * 100cqw), 69px);
  --fv-catch-pad-top: min(calc(40 / var(--design-pc) * 100cqw), 40px);
  --fv-catch-pad-right: min(calc(7 / var(--design-pc) * 100cqw), 7px);
  --fv-catch-pad-bottom: min(calc(40 / var(--design-pc) * 100cqw), 40px);
  --fv-catch-pad-left: min(calc(31 / var(--design-pc) * 100cqw), 31px);
  --fv-text-bottom-gap: calc(41 / var(--design-pc) * 100cqw);
  --fv-band-bottom-gap: min(calc(68 / var(--design-pc) * 100cqw), 68px);
  --fv-catch-reveal-x: calc(-28 / var(--design-pc) * 100cqw);
  right: auto;
  left: 0;
  bottom: calc(var(--fv-band-bottom-gap) + env(safe-area-inset-bottom));
  display: block;
  width: var(--fv-catch-width);
  height: var(--fv-band-height);
  min-height: var(--fv-band-height);
  box-sizing: border-box;
  padding: var(--fv-catch-pad-top) var(--fv-catch-pad-right) var(--fv-catch-pad-bottom) var(--fv-catch-pad-left);
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  text-align: left;
  font-size: var(--fv-catch-font);
  font-weight: 700;
  line-height: var(--fv-catch-line);
  letter-spacing: 0;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
  leading-trim: both;
  text-edge: cap;
  background: none;
  isolation: isolate;
  overflow: visible;
  white-space: nowrap;
  transition: color 900ms cubic-bezier(0.4, 0, 0.2, 1);
}

.ga-hero__catch::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: -1;
  width: var(--fv-catch-width);
  height: var(--fv-band-height);
  border-radius: 0 var(--fv-band-radius) var(--fv-band-radius) 0;
  background: #15b9f5;
  transform: scaleX(1);
  transform-origin: left center;
  will-change: transform;
}

@media screen and (max-width: 820px) {
  .ga-hero__catch {
    --fv-catch-width: calc(271.966 / var(--design-sp) * 100cqw);
    --fv-band-height: calc(50.921 / var(--design-sp) * 100cqw);
    --fv-band-radius: calc(11.573 / var(--design-sp) * 100cqw);
    --fv-catch-font: calc(38.589 / var(--design-sp) * 100cqw);
    --fv-catch-line: calc(49.564 / var(--design-sp) * 100cqw);
    --fv-catch-pad-left: calc(11 / var(--design-sp) * 100cqw);
    --fv-catch-lift: calc(5 / var(--design-sp) * 100cqw);
    --fv-catch-reveal-x: calc(-28 / var(--design-sp) * 100cqw);
    right: 0;
    left: auto;
    bottom: calc(66 / var(--design-sp) * 100vw + env(safe-area-inset-bottom));
    font-family: "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 700;
    letter-spacing: 0.02em;
    width: var(--fv-catch-width);
    height: auto;
    min-height: calc(var(--fv-catch-line) + var(--fv-catch-line) + var(--fv-catch-lift));
    max-width: 100vw;
    padding: 0 0 0 var(--fv-catch-pad-left);
  }

  .ga-hero__catch::after {
    width: var(--fv-catch-width);
    height: var(--fv-band-height);
    border-radius: var(--fv-band-radius) 0 0 var(--fv-band-radius);
  }
}

@media screen and (max-width: 767px) {
  .ga-hero__catch::after {
    bottom: calc(16 / var(--design-sp) * 100cqw);
  }
}

@media screen and (min-width: 821px) {
  .ga-hero__catch {
    bottom: calc(var(--fv-band-bottom-gap) + env(safe-area-inset-bottom)) !important;
  }
}

html.is-ga-loading-active .ga-hero__catch,
body.is-ga-loading-active .ga-hero__catch {
  /* Keep the parent visible so its blue band can animate first. */
  opacity: 1;
  transform: none;
  color: rgba(255, 255, 255, 0);
}

html.is-ga-loading-active .ga-hero__catch::after,
body.is-ga-loading-active .ga-hero__catch::after {
  transform: scaleX(0);
}

html.is-ga-loading-done .ga-hero__catch,
body.is-ga-loading-done .ga-hero__catch {
  animation: ga-hero-catch-text-in 1200ms cubic-bezier(0.4, 0, 0.2, 1) 300ms both;
}

html.is-ga-loading-done .ga-hero__catch::after,
body.is-ga-loading-done .ga-hero__catch::after {
  animation: ga-hero-catch-band-in 720ms cubic-bezier(0.16, 1, 0.3, 1) 80ms both;
}

@keyframes ga-hero-catch-text-in {
  from {
    opacity: 1;
    transform: none;
    color: rgba(255, 255, 255, 0);
  }
  to {
    opacity: 1;
    transform: none;
    color: #fff;
  }
}

@keyframes ga-hero-catch-band-in {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

@media (prefers-reduced-motion: reduce) {
  html.is-ga-loading-done .ga-hero__catch,
  body.is-ga-loading-done .ga-hero__catch,
  html.is-ga-loading-done .ga-hero__catch::after,
  body.is-ga-loading-done .ga-hero__catch::after {
    animation: none;
  }

  html.is-ga-loading-done .ga-hero__catch,
  body.is-ga-loading-done .ga-hero__catch {
    opacity: 1;
    transform: none;
  }

  html.is-ga-loading-done .ga-hero__catch::after,
  body.is-ga-loading-done .ga-hero__catch::after {
    transform: none;
  }
}

/* ===== FV Loading ===== */
html.is-ga-loading-active,
body.is-ga-loading-active {
  overflow: hidden;
}

.ga-loading {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: transparent;
}

.ga-loading.is-hidden {
  display: none;
}

.ga-loading__cover {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.ga-loading__cover-fill {
  fill: #fff;
}

.ga-loading__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(100% - 40px, 640px);
  text-align: center;
  transition: opacity 360ms ease, transform 360ms ease;
}

.ga-loading.is-finishing .ga-loading__content {
  opacity: 0;
  transform: translateY(-8px);
}

.ga-loading__title,
.ga-loading__lead,
.ga-loading__note {
  margin: 0;
  color: #000;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.02em;
}

.ga-loading__mark {
  position: relative;
  width: 76px;
  height: 76px;
  margin: 0;
  overflow: visible;
}

.ga-loading__orbit {
  position: absolute;
  left: 50%;
  top: 50%;
  box-sizing: border-box;
  border: 1px solid #afb2b7;
  border-radius: 50%;
  transform: translate(-50%, -50%) rotate(var(--tilt, 0deg));
  transform-origin: center;
  opacity: 1;
}

.ga-loading__orbit i {
  position: absolute;
  left: 0;
  top: 0;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #101d35;
  transform: translate(0, 0);
  will-change: transform;
}

.ga-loading__orbit--circle {
  width: 76px;
  height: 76px;
}

.ga-loading__orbit--inner {
  width: 48px;
  height: 48px;
}

.ga-loading__orbit--a {
  width: 33.5px;
  height: 91.51px;
  --tilt: -30deg;
}

.ga-loading__orbit--b {
  width: 12.17px;
  height: 91.51px;
  --tilt: 30deg;
}

@media (prefers-reduced-motion: reduce) {
  .ga-loading__content {
    transition: none;
  }
}

/* SP reliability guard: keep the Numbers grid readable even if scroll classes flicker. */
@media screen and (max-width: 820px) {
  .ga-numbers,
  .ga-numbers.is-ga-ready {
    background: #fff !important;
  }

  .ga-numbers__stage {
    background: #fff !important;
  }

  .ga-numbers.is-ga-pinned .ga-numbers__stage {
    position: sticky !important;
    opacity: 1 !important;
    visibility: visible !important;
    top: 0 !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: 100% !important;
    height: 100svh !important;
    min-height: 100svh !important;
    z-index: 2 !important;
    background: #fff !important;
  }

  .ga-numbers.is-ga-past .ga-numbers__stage {
    position: absolute !important;
    opacity: 1 !important;
    visibility: visible !important;
    top: calc(100% - 100svh) !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    width: 100% !important;
    background: #fff !important;
  }

  @supports (height: 100dvh) {
    .ga-numbers.is-ga-pinned .ga-numbers__stage {
      height: 100dvh !important;
      min-height: 100dvh !important;
    }

    .ga-numbers.is-ga-past .ga-numbers__stage {
      top: calc(100% - 100dvh) !important;
    }
  }

  .ga-numbers.is-ga-overlap .ga-numbers__stage,
  .ga-numbers.is-ga-past .ga-numbers__stage {
    background: #fff !important;
  }

  .ga-numbers:not(.is-ga-overlap):not(.is-ga-past) .ga-numbers__bg,
  .ga-numbers:not(.is-ga-overlap):not(.is-ga-past) .ga-numbers__overlay {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  .ga-numbers.is-ga-overlap .ga-numbers__bg,
  .ga-numbers.is-ga-past .ga-numbers__bg,
  .ga-numbers.is-ga-overlap .ga-numbers__bg::before,
  .ga-numbers.is-ga-past .ga-numbers__bg::before {
    background: #fff !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  .ga-numbers.is-ga-overlap .ga-numbers__bg video,
  .ga-numbers.is-ga-past .ga-numbers__bg video {
    opacity: 0.92 !important;
    filter: saturate(0.58) contrast(1.03) brightness(0.58) !important;
  }

  .ga-numbers.is-ga-overlap .ga-numbers__overlay,
  .ga-numbers.is-ga-past .ga-numbers__overlay {
    opacity: 1 !important;
    visibility: visible !important;
    background: #5e5e5e !important;
  }

  .ga-numbers:not(.is-ga-sp-content-in):not(.is-ga-past) .ga-numbers__inner {
    opacity: 0 !important;
    transform: translateY(12px) !important;
    transition: opacity 0.28s ease, transform 0.28s ease !important;
  }

  .ga-numbers.is-ga-sp-content-in .ga-numbers__inner,
  .ga-numbers.is-ga-past .ga-numbers__inner {
    opacity: var(--ga-numbers-content-opacity, 1) !important;
    transform: translateY(0) !important;
    transition: opacity 0.28s ease, transform 0.28s ease !important;
  }

  .ga-numbers.is-ga-values-in .ga-numbers__cap,
  .ga-numbers.is-ga-values-in .ga-numbers__sub,
  .ga-numbers.is-ga-values-in .ga-numbers__avg,
  .ga-numbers.is-ga-values-in .ga-numbers__val,
  .ga-numbers.is-ga-past .ga-numbers__cap,
  .ga-numbers.is-ga-past .ga-numbers__sub,
  .ga-numbers.is-ga-past .ga-numbers__avg,
  .ga-numbers.is-ga-past .ga-numbers__val {
    opacity: 1 !important;
    transform: translateY(0) !important;
    transition: none !important;
  }

  .ga-numbers .ga-numbers__digit--slot {
    overflow: hidden !important;
    clip-path: inset(0 -0.18em 0 -0.18em) !important;
    -webkit-clip-path: inset(0 -0.18em 0 -0.18em) !important;
  }

  .ga-numbers .ga-numbers__count.is-ga-count-in .ga-numbers__digit--slot .ga-numbers__reel {
    animation: ga-numbers-slot-roll var(--slot-duration, 900ms) cubic-bezier(0.16, 1, 0.3, 1) var(--digit-delay, 0ms) both !important;
  }

  .ga-numbers .ga-numbers__grid {
    border-top-color: rgba(255, 255, 255, 0.30) !important;
    border-left-color: rgba(255, 255, 255, 0.30) !important;
    background-image: none !important;
    box-shadow: none !important;
    height: clamp(430px, calc(100svh - 238px), 528px) !important;
    min-height: clamp(430px, calc(100svh - 238px), 528px) !important;
    max-height: 528px !important;
    grid-template-rows: repeat(4, minmax(0, 1fr)) !important;
    grid-auto-rows: minmax(0, 1fr) !important;
    transition: none !important;
  }

  .ga-numbers .ga-numbers__grid::after {
    opacity: 1 !important;
    bottom: 0 !important;
    z-index: 20 !important;
    height: 1px !important;
    background: rgba(255, 255, 255, 0.35) !important;
  }

  .ga-numbers .ga-numbers__cell {
    border-right-color: rgba(255, 255, 255, 0.30) !important;
    border-bottom-color: rgba(255, 255, 255, 0.30) !important;
    transition: none !important;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(4) .ga-numbers__cap {
    max-width: 7.5em !important;
    white-space: normal !important;
    line-height: 1.42 !important;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:last-child {
    border-bottom-color: rgba(255, 255, 255, 0.30) !important;
    border-bottom-width: 1px !important;
  }

}

@media screen and (max-width: 820px) {
  .ga-numbers,
  .ga-numbers.is-ga-ready {
    height: auto !important;
    min-height: 0 !important;
    margin-bottom: 0 !important;
    overflow: visible !important;
  }

  .ga-numbers__stage,
  .ga-numbers.is-ga-pinned .ga-numbers__stage,
  .ga-numbers.is-ga-past .ga-numbers__stage {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 100svh !important;
    z-index: 2 !important;
  }

  .ga-numbers__inner {
    height: auto !important;
    min-height: 100svh !important;
    padding-bottom: 28px !important;
  }

  @supports (height: 100dvh) {
    .ga-numbers__stage,
    .ga-numbers.is-ga-pinned .ga-numbers__stage,
    .ga-numbers.is-ga-past .ga-numbers__stage,
    .ga-numbers__inner {
      min-height: 100dvh !important;
    }
  }

  .ga-numbers-fixed-bg video {
    opacity: 0.92;
    filter: saturate(0.58) contrast(1.03) brightness(0.58);
  }

  .ga-numbers-fixed-bg::after {
    background: #5e5e5e;
  }

  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__stage {
    background: transparent !important;
  }

  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__bg,
  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__bg::before,
  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__overlay {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  .ga-numbers.is-ga-pinned.is-ga-fixed-bg-active .ga-numbers__stage {
    z-index: 2 !important;
  }

  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__inner {
    opacity: var(--ga-numbers-content-opacity, 1) !important;
    visibility: visible !important;
    transform: translateY(0) !important;
    transition: opacity 0.28s ease, transform 0.28s ease !important;
  }

  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__circle {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  .ga-whatis {
    --ga-whatis-overlap: 32px;
    z-index: 3;
    margin-top: calc(var(--ga-whatis-overlap) * -1) !important;
    padding-top: 76px !important;
    background: transparent !important;
  }

  .ga-whatis__inner {
    width: min(calc(100% - 40px), 355px) !important;
    max-width: 355px !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    row-gap: 44px !important;
  }

  .ga-whatis__left,
  .ga-whatis__right {
    width: 100% !important;
    min-width: 0 !important;
  }

  .ga-whatis__label {
    gap: 6px !important;
    margin: 0 0 10px !important;
    color: #fff !important;
    font-family: "Google Sans Flex", sans-serif !important;
    font-size: 14px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 14px !important;
    letter-spacing: 0.7px !important;
  }

  .ga-whatis__mark {
    width: 24px !important;
    height: 24px !important;
  }

  .ga-whatis__title {
    margin: 0 0 17px !important;
    color: #fff !important;
    font-family: "Google Sans Flex", sans-serif !important;
    font-size: 50px !important;
    font-style: normal !important;
    font-weight: 600 !important;
    line-height: 52px !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
  }

  .ga-whatis__lead {
    width: 100% !important;
    margin: 0 0 40px !important;
    color: #fff !important;
    font-family: "Inter", "Noto Sans JP", sans-serif !important;
    font-size: 19px !important;
    font-style: normal !important;
    font-weight: 700 !important;
    line-height: 28px !important;
    letter-spacing: 0 !important;
  }

  .ga-whatis__message {
    width: 100% !important;
    max-width: 355px !important;
    margin: 44px 0 0 !important;
  }

  .ga-whatis__message-title {
    margin: 10px 0 0 !important;
    color: #fff !important;
    font-family: "Noto Sans JP", sans-serif !important;
    font-size: 20px !important;
    font-style: normal !important;
    font-weight: 700 !important;
    line-height: 24px !important;
    letter-spacing: 0 !important;
  }

  .ga-whatis__photo,
  .ga-whatis__message-title {
    display: none !important;
  }

  .ga-whatis__message-en {
    margin: 0 0 13px !important;
    color: #fff !important;
    font-family: "Google Sans Flex", sans-serif !important;
    font-size: 12px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 24px !important;
    letter-spacing: 0 !important;
  }

  .ga-whatis__more {
    display: none !important;
  }

  .ga-whatis__photo {
    width: 100% !important;
    border-radius: 10px !important;
  }

  .ga-whatis__links {
    width: 100% !important;
    border-top: 1px solid #5f5f5f !important;
  }

  .ga-whatis__link {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 114px !important;
    min-height: 114px !important;
    padding: 30px 44px 30px 0 !important;
    border-bottom: 1px solid #5f5f5f !important;
    box-sizing: border-box !important;
  }

  .ga-whatis__link > span:first-child {
    display: block !important;
    width: 100% !important;
  }

  .ga-whatis__link-image,
  .ga-whatis__link:hover .ga-whatis__link-image,
  .ga-whatis__link:focus-visible .ga-whatis__link-image {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transform: none !important;
  }

  .ga-whatis__link-title {
    display: block !important;
    margin: 0 !important;
    color: #fff !important;
    font-family: "Noto Sans JP", sans-serif !important;
    font-size: 20px !important;
    font-style: normal !important;
    font-weight: 700 !important;
    line-height: 24px !important;
    letter-spacing: 0 !important;
  }

  .ga-whatis__link-en {
    display: block !important;
    margin: 6px 0 0 !important;
    color: #fff !important;
    font-family: "Google Sans Flex", sans-serif !important;
    font-size: 12px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 24px !important;
    letter-spacing: 0 !important;
  }

  .ga-whatis__link-arrow {
    position: absolute !important;
    top: 50% !important;
    right: 10px !important;
    z-index: 3 !important;
    width: 31px !important;
    height: 31px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    transform: translateY(-50%) !important;
    overflow: visible !important;
  }

  .ga-whatis__link-arrow::before {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    right: 3px !important;
    width: 12px !important;
    height: 1px !important;
    border-radius: 999px !important;
    background: #fff !important;
    transform: translateY(-50%) !important;
  }

  .ga-whatis__link-arrow::after {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    right: 3px !important;
    left: auto !important;
    display: block !important;
    width: 7.115px !important;
    height: 7.115px !important;
    border-top: 1px solid #fff !important;
    border-right: 1px solid #fff !important;
    background: none !important;
    transform: translateY(-50%) rotate(45deg) !important;
    animation: none !important;
  }

  .ga-whatis__link:hover .ga-whatis__link-arrow::after,
  .ga-whatis__link:focus-visible .ga-whatis__link-arrow::after {
    animation: none !important;
  }

  .ga-whatis__inner {
    display: flex !important;
    flex-direction: column !important;
    row-gap: 0 !important;
  }

  .ga-whatis__left,
  .ga-whatis__right,
  .ga-whatis__message {
    display: contents !important;
  }

  .ga-whatis__label {
    order: 1 !important;
  }

  .ga-whatis__title {
    order: 2 !important;
  }

  .ga-whatis__lead {
    order: 3 !important;
    margin: 0 0 28px !important;
  }

  .ga-whatis__photo {
    order: 4 !important;
    display: block !important;
    width: 100% !important;
    aspect-ratio: 472 / 360 !important;
    object-fit: cover !important;
    border-radius: 10px !important;
  }

  .ga-whatis__message-title {
    order: 5 !important;
    display: block !important;
    margin: 20px 0 0 !important;
  }

  .ga-whatis__message-en {
    order: 6 !important;
  }

  .ga-whatis__message-text {
    order: 7 !important;
  }

  .ga-whatis__links {
    order: 8 !important;
    margin-top: 44px !important;
  }

  .ga-whatis__more {
    order: 9 !important;
    display: inline-flex !important;
    align-items: center !important;
    align-self: flex-end !important;
    gap: 16px !important;
    margin: 16px 0 0 auto !important;
    color: #fff !important;
    text-align: center !important;
    font-family: "Google Sans Flex", sans-serif !important;
    font-size: 16px !important;
    font-style: normal !important;
    font-weight: 600 !important;
    line-height: 16px !important;
    letter-spacing: 0 !important;
    text-decoration: none !important;
    float: none !important;
  }

  .ga-whatis__more-icon,
  .ga-whatis__more:hover .ga-whatis__more-icon,
  .ga-whatis__more:focus-visible .ga-whatis__more-icon {
    position: relative !important;
    width: 40px !important;
    height: 40px !important;
    border: 1px solid #d8d8d8 !important;
    border-radius: 4px !important;
    background: #fff !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    transition: none !important;
  }

  .ga-whatis__more-icon::after,
  .ga-whatis__more:hover .ga-whatis__more-icon::after,
  .ga-whatis__more:focus-visible .ga-whatis__more-icon::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40' fill='none'%3E%3Cpath d='M14 20.0107H26' stroke='%23313131' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M20.9894 15.0001L26.0206 20.0312L20.9894 25.0624' stroke='%23313131' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 40px 40px no-repeat !important;
    transform: none !important;
    animation: none !important;
  }
}

/* ===== SP final contact/banner spacing ===== */
@media screen and (max-width: 575px) {
  .ga-whatis__message-title {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    order: 5 !important;
    margin: 20px 0 0 !important;
  }

}

/* ===== SP final fixes: numbers and WHAT IS message ===== */
@media screen and (max-width: 575px) {
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell--subsidy-rate .ga-numbers__cap,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(4) .ga-numbers__cap {
    max-width: none !important;
    color: #fff !important;
    font-family: "Noto Sans JP", sans-serif !important;
    font-size: 16px !important;
    font-style: normal !important;
    font-weight: 700 !important;
    line-height: 17px !important;
    white-space: nowrap !important;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell--subsidy-rate .ga-numbers__cap-line,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell--subsidy-rate .ga-numbers__cap-break {
    display: block !important;
    line-height: 17px !important;
    white-space: nowrap !important;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell--subsidy-rate .ga-numbers__cap-break {
    margin-top: 3px !important;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(6) .ga-numbers__sub {
    margin-top: 18px !important;
  }

  .ga-whatis__message-title,
  .ga-whatis__message-en,
  .ga-whatis__message-text {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}

/* ===== GA arrow authority: front.css ===== */
.ga-services__arrow,
.ga-whatis__more-icon,
.ga-whatis__link-arrow,
.ga-news__more-icon {
  position: relative !important;
  overflow: hidden !important;
  color: transparent !important;
}

.ga-services__arrow,
.ga-whatis__more-icon,
.ga-news__more-icon {
  display: grid !important;
  place-items: center !important;
  border-radius: 5px !important;
}

.ga-services__arrow {
  --ga-front-arrow-color: #fff;
  width: 31px !important;
  height: 31px !important;
  border-radius: 5px !important;
  background: #15b9f5 !important;
  border-color: #15b9f5 !important;
}

.ga-whatis__more-icon,
.ga-news__more-icon {
  --ga-front-arrow-color: #fff;
  background: #15b9f5 !important;
  border-color: #15b9f5 !important;
}

.ga-whatis__link-arrow {
  --ga-front-arrow-color: #fff;
}

.ga-whatis__more:hover .ga-whatis__more-icon,
.ga-whatis__more:focus-visible .ga-whatis__more-icon,
.ga-news__more:hover .ga-news__more-icon,
.ga-news__more:focus-visible .ga-news__more-icon {
  --ga-front-arrow-color: #fff;
  background-size: 100% 100%, auto !important;
}

.ga-services__arrow svg,
.ga-services__arrow > svg,
.ga-whatis__more-icon svg,
.ga-whatis__link-arrow svg,
.ga-news__more-icon svg {
  display: none !important;
}

.ga-services__arrow::before,
.ga-services__arrow::after,
.ga-whatis__more-icon::before,
.ga-whatis__more-icon::after,
.ga-whatis__link-arrow::before,
.ga-whatis__link-arrow::after,
.ga-news__more-icon::before,
.ga-news__more-icon::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  border: 0 !important;
  background: var(--ga-front-arrow-color) !important;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='41' height='41' viewBox='0 0 41 41' fill='none'%3E%3Cpath d='M14.1909 20.2837H26.3545' stroke='black' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M21.2756 15.2049L26.3754 20.3047L21.2756 25.4045' stroke='black' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat !important;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='41' height='41' viewBox='0 0 41 41' fill='none'%3E%3Cpath d='M14.1909 20.2837H26.3545' stroke='black' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M21.2756 15.2049L26.3754 20.3047L21.2756 25.4045' stroke='black' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat !important;
  pointer-events: none;
  transition: none;
  animation: none;
  will-change: transform;
  backface-visibility: hidden;
}

.ga-services__arrow::before,
.ga-whatis__more-icon::before,
.ga-whatis__link-arrow::before,
.ga-news__more-icon::before {
  z-index: 3;
  transform: translateX(0);
}

.ga-services__arrow::after,
.ga-whatis__more-icon::after,
.ga-whatis__link-arrow::after,
.ga-news__more-icon::after {
  z-index: 2;
  transform: translateX(-100%);
}

/* GA services arrow hover motion: contact-style paired slide */
@media screen and (min-width: 576px) {
  .ga-services__card:hover .ga-services__arrow::after,
  .ga-services__card:focus-within .ga-services__arrow::after,
  .ga-services__card:active .ga-services__arrow::after {
    animation: ga-front-arrow-in 0.6s cubic-bezier(0.45, 0, 0.55, 1) 0.2s 1 normal both;
  }

  .ga-services__card:hover .ga-services__arrow::before,
  .ga-services__card:focus-within .ga-services__arrow::before,
  .ga-services__card:active .ga-services__arrow::before {
    animation: ga-front-arrow-out 0.6s cubic-bezier(0.45, 0, 0.55, 1) 0s 1 normal both;
  }
}

/* GA WHAT IS arrow hover motion: contact-style paired slide */
@media screen and (min-width: 576px) {
  .ga-whatis__more:hover .ga-whatis__more-icon::after,
  .ga-whatis__more:focus-visible .ga-whatis__more-icon::after,
  .ga-whatis__more:active .ga-whatis__more-icon::after,
  .ga-whatis__link:hover .ga-whatis__link-arrow::after,
  .ga-whatis__link:focus-visible .ga-whatis__link-arrow::after,
  .ga-whatis__link:active .ga-whatis__link-arrow::after {
    animation: ga-front-arrow-in 0.6s cubic-bezier(0.45, 0, 0.55, 1) 0.2s 1 normal both;
  }

  .ga-whatis__more:hover .ga-whatis__more-icon::before,
  .ga-whatis__more:focus-visible .ga-whatis__more-icon::before,
  .ga-whatis__more:active .ga-whatis__more-icon::before,
  .ga-whatis__link:hover .ga-whatis__link-arrow::before,
  .ga-whatis__link:focus-visible .ga-whatis__link-arrow::before,
  .ga-whatis__link:active .ga-whatis__link-arrow::before {
    animation: ga-front-arrow-out 0.6s cubic-bezier(0.45, 0, 0.55, 1) 0s 1 normal both;
  }
}

/* GA NEWS arrow hover motion: contact-style paired slide */
@media screen and (min-width: 576px) {
  .ga-news__more:hover .ga-news__more-icon::after,
  .ga-news__more:focus-visible .ga-news__more-icon::after,
  .ga-news__more:active .ga-news__more-icon::after {
    animation: ga-front-arrow-in 0.6s cubic-bezier(0.45, 0, 0.55, 1) 0.2s 1 normal both;
  }

  .ga-news__more:hover .ga-news__more-icon::before,
  .ga-news__more:focus-visible .ga-news__more-icon::before,
  .ga-news__more:active .ga-news__more-icon::before {
    animation: ga-front-arrow-out 0.6s cubic-bezier(0.45, 0, 0.55, 1) 0s 1 normal both;
  }
}

@keyframes ga-front-arrow-in {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(0); }
}

@keyframes ga-front-arrow-out {
  0% { transform: translateX(0); }
  100% { transform: translateX(100%); }
}

@media screen and (max-width: 575px) {
  /* GA front-owned SP service card arrow position restore */
  .ga-services__arrow {
    position: absolute !important;
    top: 50% !important;
    right: 20px !important;
    width: 31px !important;
    height: 31px !important;
    margin-top: 0 !important;
    transform: translateY(-50%) !important;
  }

  /* GA front-owned SP whatis link arrow restore */
  .ga-whatis__link-arrow {
    position: absolute !important;
    top: 50% !important;
    right: 10px !important;
    z-index: 3 !important;
    width: 31px !important;
    height: 31px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    transform: translateY(-50%) !important;
    overflow: visible !important;
  }

  .ga-whatis__link-arrow::before {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    right: 3px !important;
    width: 12px !important;
    height: 1px !important;
    border-radius: 999px !important;
    background: #fff !important;
    transform: translateY(-50%) !important;
  }

  .ga-whatis__link-arrow::after {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    right: 3px !important;
    left: auto !important;
    display: block !important;
    width: 7.115px !important;
    height: 7.115px !important;
    border-top: 1px solid #fff !important;
    border-right: 1px solid #fff !important;
    background: none !important;
    -webkit-mask: none !important;
    mask: none !important;
    transform: translateY(-50%) rotate(45deg) !important;
    animation: none !important;
  }
}
@media screen and (max-width: 575px) {
  /* GA front-owned SP whatis touch-state arrow fix */
  .ga-whatis__more-icon,
  .ga-whatis__more:hover .ga-whatis__more-icon,
  .ga-whatis__more:focus-visible .ga-whatis__more-icon,
  .ga-whatis__more:active .ga-whatis__more-icon {
    position: relative !important;
    display: grid !important;
    place-items: center !important;
    width: 40px !important;
    height: 40px !important;
    border: 1px solid #15b9f5 !important;
    border-radius: 4px !important;
    background: #15b9f5 !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    overflow: hidden !important;
    transition: none !important;
  }

  .ga-whatis__more-icon::after,
  .ga-whatis__more:hover .ga-whatis__more-icon::after,
  .ga-whatis__more:focus-visible .ga-whatis__more-icon::after,
  .ga-whatis__more:active .ga-whatis__more-icon::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    border: 0 !important;
    background: #fff !important;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='9' viewBox='0 0 11 9' fill='none'%3E%3Cpath d='M0.5 4.39917H9.8' stroke='black' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M5.90082 0.499997L9.8 4.39917L5.90082 8.29834' stroke='black' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 11px 9px no-repeat !important;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='9' viewBox='0 0 11 9' fill='none'%3E%3Cpath d='M0.5 4.39917H9.8' stroke='black' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M5.90082 0.499997L9.8 4.39917L5.90082 8.29834' stroke='black' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 11px 9px no-repeat !important;
    transform: none !important;
    animation: none !important;
  }

  .ga-whatis__link:hover .ga-whatis__link-arrow,
  .ga-whatis__link:focus-visible .ga-whatis__link-arrow,
  .ga-whatis__link:active .ga-whatis__link-arrow {
    border: 0 !important;
    background: transparent !important;
    overflow: visible !important;
  }

  .ga-whatis__link:hover .ga-whatis__link-arrow::before,
  .ga-whatis__link:focus-visible .ga-whatis__link-arrow::before,
  .ga-whatis__link:active .ga-whatis__link-arrow::before {
    background: #fff !important;
    transform: translateY(-50%) !important;
    animation: none !important;
  }

  .ga-whatis__link:hover .ga-whatis__link-arrow::after,
  .ga-whatis__link:focus-visible .ga-whatis__link-arrow::after,
  .ga-whatis__link:active .ga-whatis__link-arrow::after {
    border-top: 1px solid #fff !important;
    border-right: 1px solid #fff !important;
    background: none !important;
    -webkit-mask: none !important;
    mask: none !important;
    transform: translateY(-50%) rotate(45deg) !important;
    animation: none !important;
  }
}
@media screen and (max-width: 575px) {
  /* GA front-owned SP arrow animation off */
  .ga-services__arrow,
  .ga-services__arrow::after,
  .ga-whatis__more-icon,
  .ga-whatis__more-icon::after,
  .ga-whatis__link-arrow,
  .ga-whatis__link-arrow::before,
  .ga-whatis__link-arrow::after,
  .ga-news__more-icon,
  .ga-news__more-icon::after,
  .ga-services__card:hover .ga-services__arrow::after,
  .ga-services__card:focus-within .ga-services__arrow::after,
  .ga-services__card:active .ga-services__arrow::after,
  .ga-whatis__more:hover .ga-whatis__more-icon,
  .ga-whatis__more:focus-visible .ga-whatis__more-icon,
  .ga-whatis__more:active .ga-whatis__more-icon,
  .ga-whatis__more:hover .ga-whatis__more-icon::after,
  .ga-whatis__more:focus-visible .ga-whatis__more-icon::after,
  .ga-whatis__more:active .ga-whatis__more-icon::after,
  .ga-whatis__link:hover .ga-whatis__link-arrow::before,
  .ga-whatis__link:focus-visible .ga-whatis__link-arrow::before,
  .ga-whatis__link:active .ga-whatis__link-arrow::before,
  .ga-whatis__link:hover .ga-whatis__link-arrow::after,
  .ga-whatis__link:focus-visible .ga-whatis__link-arrow::after,
  .ga-whatis__link:active .ga-whatis__link-arrow::after,
  .ga-news__more:hover .ga-news__more-icon,
  .ga-news__more:focus-visible .ga-news__more-icon,
  .ga-news__more:active .ga-news__more-icon,
  .ga-news__more:hover .ga-news__more-icon::after,
  .ga-news__more:focus-visible .ga-news__more-icon::after,
  .ga-news__more:active .ga-news__more-icon::after {
    animation: none !important;
    transition: none !important;
  }
}

/* ===== GA Numbers: 動画を見せつつ黒で統一 ===== */
/* 地色は黒で固定（動画クリップで消えてもグレーにならない） */
.ga-numbers,
.ga-numbers.is-ga-ready { background: #000 !important; }
.ga-numbers__bg { background: #000 !important; }
.ga-numbers__bg::before { background: #000 !important; }
/* 動画は表示。円形クリップ演出は元のまま残す */
.ga-numbers__bg video { opacity: 1 !important; }
/* オーバーレイはFigma指定のグレー＋乗算（clip-pathはJS制御に任せて触らない） */
.ga-numbers__overlay {
  background: #5e5e5e !important;
  mix-blend-mode: multiply !important;
}
/* 固定背景も同じ仕様で統一 */
.ga-numbers-fixed-bg { background: #000 !important; }
.ga-numbers-fixed-bg video { opacity: 1 !important; }
.ga-numbers-fixed-bg::after {
  background: #5e5e5e !important;
  mix-blend-mode: multiply !important;
}
/* ピン解除時の微カクつき軽減：ステージをGPU合成レイヤーに乗せる */
.ga-numbers__stage {
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* ===== ローディング画面：上下スペース対策 =====
   background: transparent のままだと html/body が透けて
   ブラウザUIの黒帯が見えてしまうため、白で完全に覆う。
   ================================================= */
.ga-loading {
  background: #fff !important;
}

html.is-ga-loading-active,
body.is-ga-loading-active {
  background: #fff !important;
}

/* ===== SP: ga-numbers 上部の黒い余白対策 =====
   .ga-numbers の background が #0b1930（濃紺）のため、
   .ga-numbers__stage（白）の上がスクロール直後に見えてしまう。
   SP では stage が `position: sticky` で画面を覆う前の一瞬が
   濃紺で見えるため、ga-numbers の背景を白に保つ。
   ================================================= */
@media screen and (max-width: 820px) {
  .ga-numbers,
  .ga-numbers.is-ga-ready {
    background: #fff !important;
  }
}

/* ===== FV: 動画ロード中・ループ繋ぎ目の黒フレーム対策 =====
   poster="" が空のため動画バッファリング時に背景が露出する。
   hero の背景を動画に近い暗色にして繋ぎ目を目立たなくする。
   根本対処: poster に動画の最初のフレーム画像を設定すること。
   ================================================= */
.ga-hero {
  background-color: #1a1a1a !important;
}

.ga-hero.is-ga-hero-fv {
  background-color: #fff !important;
}

/* Keep the FV video hidden until the loader sequence reveals it. */
html:not(.is-ga-loading-done) .ga-hero__media,
html:not(.is-ga-loading-done) .ga-hero__overlay {
  clip-path: inset(0 100% 0 0) !important;
  -webkit-clip-path: inset(0 100% 0 0) !important;
}

/* FV SP video black-bar crop.
   Mobile playback can show encoded black bands around buffering or loop points.
   Oversize only the FV media so the hero mask clips those bands away. */
@media screen and (max-width: 820px) {
  .ga-hero.is-ga-hero-fv .ga-hero__media,
  video.ga-hero__media {
    transform: scale(1.06);
    transform-origin: center center;
    will-change: transform, clip-path;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }
}

/* Zoom gutter fix: avoid 100vw/-50vw drift after removing front-page container gutters. */
.site_content > .container,
.site_content > .container > main,
.site_content > .container > main > .main_content {
  width: 100% !important;
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  overflow-x: clip;
}

.ga-hero,
.ga-services,
.ga-numbers,
.ga-whatis,
.ga-mission {
  width: 100% !important;
  max-width: none !important;
  left: auto !important;
  right: auto !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}


/* ==============================================================
   [2026-06-20] Services セクション OKI方式 完全追従パッチ
   対象: 821px 以上 (PC版)
   方針: 全要素を vw 換算で 1440px ベースから完全比例追従
        ・font-size, padding, margin, gap, border-radius, line-height
          すべて calc(N / var(--design-pc) * 100cqw) で記述
        ・1440px超のディスプレイでも比例拡大
        ・ブラウザ拡大125〜175%にも自動追従
   例外: 「事業」ラベルは14px固定(視認性のため、13px超ギリギリだが固定維持)
   巻き戻し方法: 本ブロック全体をコメントアウトすれば即座に現状復帰
   関連メモ: --design-pc: 1440 は :root に既存定義(FVで使用中)
============================================================== */
@media screen and (min-width: 821px) {

  /* セクション全体: padding 上限撤去 */
  .ga-services {
    padding: calc(199 / var(--design-pc) * 100cqw) 0 calc(230 / var(--design-pc) * 100cqw);
  }

  /* インナー: max-width 1440px を撤去 → 完全追従 */
  .ga-services__inner {
    width: 100%;
    max-width: none;
    padding: 0;
    container-type: normal; /* cqw 依存を切る */
  }

  /* 見出し部 横並びコンテナ */
  .ga-services__head {
    width: calc(1280 / var(--design-pc) * 100cqw);
    margin-left: calc(80 / var(--design-pc) * 100cqw);
    margin-right: calc(80 / var(--design-pc) * 100cqw);
    margin-bottom: calc(81 / var(--design-pc) * 100cqw);
    gap: calc(308 / var(--design-pc) * 100cqw);
  }

  /* ラベル「事業」: Figma実測値で完全固定(画面サイズによらず常に同じ大きさ) */
  .ga-services__label {
    margin-left: calc(4 / var(--design-pc) * 100cqw);
    margin-bottom: calc(4 / var(--design-pc) * 100cqw);
    gap: 8px;
    font-family: "Google Sans Flex", "Noto Sans JP", sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 14px;
    letter-spacing: 0.7px;
    color: #000;
  }

  /* ラベル横の装飾マーク: 17px固定(ラベル文字とセットで固定追従) */
  .ga-services__mark {
    width: 17px;
    height: 17px;
    flex-shrink: 0;
  }

  /* h2 Services: Figma 90px / line-height 152px */
  .ga-services__title {
    font-size: calc(90 / var(--design-pc) * 100cqw);
    line-height: calc(152 / var(--design-pc) * 100cqw);
  }

  /* 右カラム説明文: Figma 41px / line-height 61px */
  .ga-services__lead {
    width: auto;
    font-size: calc(41 / var(--design-pc) * 100cqw);
    line-height: calc(61 / var(--design-pc) * 100cqw);
    white-space: nowrap;
  }

  /* カード行コンテナ */
  .ga-services__cards {
    width: calc(1280 / var(--design-pc) * 100cqw);
    margin-left: calc(80 / var(--design-pc) * 100cqw);
    margin-right: calc(80 / var(--design-pc) * 100cqw);
  }

  /* カードパネル: border-radius vw化 */
  .ga-services__panel {
    border-radius: calc(20 / var(--design-pc) * 100cqw);
  }

  /* バッジ「個人のお客様」「法人のお客様」: Figma 183×64 */
  .ga-services__badge {
    top: calc(26 / var(--design-pc) * 100cqw);
    left: calc(30 / var(--design-pc) * 100cqw);
    width: calc(183 / var(--design-pc) * 100cqw);
    height: calc(64 / var(--design-pc) * 100cqw);
    border-radius: calc(20 / var(--design-pc) * 100cqw);
    font-size: calc(20 / var(--design-pc) * 100cqw);
    line-height: calc(16 / var(--design-pc) * 100cqw);
  }

  /* カード下部のテキスト行 */
  .ga-services__cardrow {
    padding-bottom: calc(32 / var(--design-pc) * 100cqw);
  }

  /* カードのテキストコンテナ */
  .ga-services__cardc {
    padding-left: calc(69 / var(--design-pc) * 100cqw);
    margin: 0 calc(86 / var(--design-pc) * 100cqw) 0 0;
  }

  /* カード左の縦線(細) */
  .ga-services__cardc::before {
    left: calc(40 / var(--design-pc) * 100cqw);
    width: calc(1 / var(--design-pc) * 100cqw);
    bottom: calc(8 / var(--design-pc) * 100cqw);
  }

  /* カード左の縦線上部(太) */
  .ga-services__cardc::after {
    left: calc(40 / var(--design-pc) * 100cqw);
    width: calc(3 / var(--design-pc) * 100cqw);
    height: calc(20 / var(--design-pc) * 100cqw);
  }

  /* ナンバリング 01/02/03: Figma 16px */
  .ga-services__num {
    font-size: calc(16 / var(--design-pc) * 100cqw);
    line-height: calc(20 / var(--design-pc) * 100cqw);
    letter-spacing: calc(0.8 / var(--design-pc) * 100cqw);
  }

  /* カードタイトル: Figma 28px / line-height 30px */
  .ga-services__cardtitle {
    margin-top: calc(6 / var(--design-pc) * 100cqw);
    font-size: calc(28 / var(--design-pc) * 100cqw);
    line-height: calc(30 / var(--design-pc) * 100cqw);
  }

  /* 矢印ボタン: Figma 31×31, radius 5px, margin-top 41px */
  /* 既存 !important 上書きルール (front.css idx 264) を無効化するため
     こちらも !important で書く必要あり */
  .ga-services__arrow {
    width: calc(31 / var(--design-pc) * 100cqw) !important;
    height: calc(31 / var(--design-pc) * 100cqw) !important;
    border-radius: calc(5 / var(--design-pc) * 100cqw) !important;
    margin-top: calc(41 / var(--design-pc) * 100cqw);
  }

}
/* ============ Services OKI方式 完全追従パッチ END ============ */


/* ==============================================================
   [2026-06-20] Services セクション SP版 OKI方式 完全追従パッチ
   対象: 820px 以下 (SP版)
   方針: 全要素を vw 換算で 375px ベースから完全比例追従
        ・パネル高さ 278px (aspect 355/278, Figmaレイヤー実寸)
        ・カードはパネル内に絶対配置
        ・タイトル whitespace: nowrap で1行強制
   仕様確定値:
        ・縦線の左余白(パネル左端から) = 20px
        ・「リフォーム事業」下余白(文字下端→パネル下端) = 23px
        ・01カード top = 132px, 02カード top = 205px
   巻き戻し方法: 本ブロック全体を削除すれば即座に現状復帰
   関連メモ: --design-sp: 375 は style.css :root に既存定義
============================================================== */
@media screen and (max-width: 820px) {

  /* セクション全体: 上下 padding */
  .ga-services {
    padding: calc(54 / var(--design-sp) * 100cqw) 0 calc(70 / var(--design-sp) * 100cqw);
  }

  /* インナー: 左右 10px */
  .ga-services__inner {
    padding: 0 calc(10 / var(--design-sp) * 100cqw);
  }

  /* 見出し部 */
  .ga-services__head {
    gap: calc(22 / var(--design-sp) * 100cqw);
    margin-bottom: calc(52 / var(--design-sp) * 100cqw);
  }

  /* ラベル「事業」: 14px固定 */
  .ga-services__label {
    margin: 0 0 calc(14 / var(--design-sp) * 100cqw);
    gap: calc(4 / var(--design-sp) * 100cqw);
    font-family: "Google Sans Flex", "Noto Sans JP", sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 14px;
    letter-spacing: 0.7px;
    color: #000;
  }

  .ga-services__mark {
    width: calc(16.746 / var(--design-sp) * 100cqw);
    height: calc(16.746 / var(--design-sp) * 100cqw);
    flex-shrink: 0;
  }

  /* h2 Services */
  .ga-services__title {
    font-size: calc(50 / var(--design-sp) * 100cqw);
    line-height: calc(60 / var(--design-sp) * 100cqw);
    font-weight: 600;
  }

  /* リード説明文 */
  .ga-services__lead {
    font-size: calc(19 / var(--design-sp) * 100cqw);
    line-height: calc(28 / var(--design-sp) * 100cqw);
  }

  /* カードコンテナ: パネル縦並び */
  .ga-services__cards {
    display: flex;
    flex-direction: column;
    gap: calc(19 / var(--design-sp) * 100cqw);
    width: 100%;
    aspect-ratio: auto;
  }

  /* パネル: Figma 355×297 */
  .ga-services__panel,
  .ga-services__panel--personal,
  .ga-services__panel--corporate {
    position: relative;
    flex: none !important;
    width: 100%;
    aspect-ratio: 355 / 278;
    min-height: 0;
    border-radius: calc(14 / var(--design-sp) * 100cqw);
    clip-path: none;
    -webkit-clip-path: none;
    transition: none;
  }

  /* パネル下部グラデ */
  .ga-services__panel::after {
    height: calc(100% * 205 / 278);
    border-radius: 0 0 calc(14 / var(--design-sp) * 100cqw) calc(14 / var(--design-sp) * 100cqw);
  }

  /* 背景画像: hover transform 無効化 */
  .ga-services__bg {
    transform: none !important;
  }

  /* バッジ「個人/法人のお客様」 */
  .ga-services__badge {
    top: calc(10 / var(--design-sp) * 100cqw);
    left: calc(11 / var(--design-sp) * 100cqw);
    width: calc(133 / var(--design-sp) * 100cqw);
    height: calc(34 / var(--design-sp) * 100cqw);
    min-width: 0;
    padding: 0;
    border-radius: calc(10 / var(--design-sp) * 100cqw);
    background: rgba(255, 255, 255, 0.5);
    font-family: "Noto Sans JP", sans-serif;
    font-size: calc(15 / var(--design-sp) * 100cqw);
    font-weight: 700;
    line-height: calc(16 / var(--design-sp) * 100cqw);
    color: #000;
  }

  .ga-services__badge--corporate {
    color: #fff;
  }

  /* カード行コンテナ: パネル全体に絶対配置 */
  .ga-services__cardrow {
    position: absolute;
    inset: 0;
    display: block;
    padding: 0;
    gap: 0;
  }

  /* 各カード(リンク): パネル内に絶対配置 */
  /* 仕様確定値(パネル h=278, 下余白23 から逆算):
     02カード: top 205 (278 - 23 - 30 - 20 = 205)
     01カード: top 132 (02 から Figma 元間隔 73 を維持: 205 - 73 = 132)
  */
  .ga-services__card {
    position: absolute;
    left: 0;
    right: 0;
    flex: none;
    opacity: 1 !important;
    pointer-events: auto !important;
    height: calc(50 / var(--design-sp) * 100cqw); /* 番号20 + タイトル30 */
  }

  .ga-services__panel .ga-services__card:nth-child(1) {
    top: calc(132 / var(--design-sp) * 100cqw);
  }
  .ga-services__panel .ga-services__card:nth-child(2) {
    top: calc(205 / var(--design-sp) * 100cqw);
  }

  /* カード内テキストコンテナ */
  /* 仕様確定値: 縦線(::before)はパネル左端から 20px = cardc左端から 20px */
  .ga-services__cardc {
    display: block;
    position: relative;
    min-height: 0;
    margin: 0;
    padding-left: calc(34 / var(--design-sp) * 100cqw); /* 縦線20 + 余白14 */
    padding-right: calc(80 / var(--design-sp) * 100cqw); /* 矢印分 */
    padding-top: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }

  /* 縦線(細・白): cardc(=パネル)左端から 20px, w1px, h49px */
  .ga-services__cardc::before {
    display: block;
    position: absolute;
    left: calc(20 / var(--design-sp) * 100cqw);
    top: 0;
    bottom: auto;
    width: calc(1 / var(--design-sp) * 100cqw);
    height: calc(49 / var(--design-sp) * 100cqw);
    background: rgba(255, 255, 255, 0.9);
  }

  /* 縦線アクセント(太・白): 細線と同じ left に重ねる, w3px×h20px */
  /* Figma: 太線と細線の左端は揃う(left 20px, パネル左端から) */
  .ga-services__cardc::after {
    content: "";
    display: block;
    position: absolute;
    left: calc(20 / var(--design-sp) * 100cqw);
    top: 0;
    width: calc(3 / var(--design-sp) * 100cqw);
    height: calc(20 / var(--design-sp) * 100cqw);
    background: #fff;
  }

  /* ナンバリング 01〜04 */
  .ga-services__num {
    display: block;
    font-family: "Google Sans Flex", -apple-system, "Helvetica Neue", Arial, sans-serif;
    font-weight: 500;
    font-size: calc(14 / var(--design-sp) * 100cqw);
    line-height: calc(20 / var(--design-sp) * 100cqw);
    letter-spacing: calc(0.7 / var(--design-sp) * 100cqw);
    color: #fff;
    margin: 0;
  }

  /* カードタイトル: 1行強制 */
  .ga-services__cardtitle {
    display: block;
    margin: 0;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 700;
    font-size: calc(18 / var(--design-sp) * 100cqw);
    line-height: calc(30 / var(--design-sp) * 100cqw);
    color: #fff;
    text-shadow: none;
    white-space: nowrap;
    overflow: visible;
  }

  /* 個人パネル1枚目の特例リセット */
  .ga-services__panel--personal .ga-services__card:first-child .ga-services__cardc {
    min-height: 0;
    padding-left: calc(34 / var(--design-sp) * 100cqw);
    padding-right: calc(80 / var(--design-sp) * 100cqw);
  }
  .ga-services__panel--personal .ga-services__card:first-child .ga-services__cardtitle {
    font-size: calc(18 / var(--design-sp) * 100cqw);
    line-height: calc(30 / var(--design-sp) * 100cqw);
    white-space: nowrap;
  }
  .ga-services__panel--personal .ga-services__card:first-child .ga-services__cardtitle::before {
    content: none;
    display: none;
  }

  /* 矢印ボタン: 各カードの上方 10px(縦中央寄り) */
  .ga-services__arrow {
    position: absolute;
    top: calc(10 / var(--design-sp) * 100cqw);
    right: calc(20 / var(--design-sp) * 100cqw);
    width: calc(31 / var(--design-sp) * 100cqw) !important;
    height: calc(31 / var(--design-sp) * 100cqw) !important;
    border-radius: calc(5 / var(--design-sp) * 100cqw) !important;
    margin-top: 0;
    transform: none;
  }

  /* toggle-hide / toggle-show: SP では4枚すべて常時表示 */
  .ga-services__card--toggle-hide,
  .ga-services__card--toggle-show {
    flex-grow: 1;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

}
/* ============ Services SP版 OKI方式 完全追従パッチ END ============ */
/* ===== GA Numbers: keep number content visible; overlap only the video background ===== */
.ga-numbers.is-ga-pinned:not(.is-ga-past) .ga-numbers__stage,
.ga-numbers.is-ga-fixed-bg-active:not(.is-ga-past) .ga-numbers__stage {
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 1002 !important;
}

@media screen and (min-width: 821px) {
  .ga-numbers.is-ga-pinned .ga-numbers__inner,
  .ga-numbers.is-ga-overlap .ga-numbers__inner,
  .ga-numbers.is-ga-past .ga-numbers__inner,
  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__inner {
    opacity: var(--ga-numbers-content-opacity, 1) !important;
    visibility: visible !important;
    transform: translateY(0) !important;
  }
}

@media screen and (max-width: 820px) {
  .ga-numbers.is-ga-sp-content-in .ga-numbers__inner,
  .ga-numbers.is-ga-overlap .ga-numbers__inner,
  .ga-numbers.is-ga-past .ga-numbers__inner,
  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__inner {
    opacity: var(--ga-numbers-content-opacity, 1) !important;
    visibility: visible !important;
    transform: translateY(0) !important;
  }
}

.ga-numbers.is-ga-values-in .ga-numbers__cap,
.ga-numbers.is-ga-values-in .ga-numbers__sub,
.ga-numbers.is-ga-values-in .ga-numbers__avg,
.ga-numbers.is-ga-values-in .ga-numbers__val,
.ga-numbers.is-ga-past .ga-numbers__label,
.ga-numbers.is-ga-past .ga-numbers__title,
.ga-numbers.is-ga-past .ga-numbers__cap,
.ga-numbers.is-ga-past .ga-numbers__sub,
.ga-numbers.is-ga-past .ga-numbers__avg,
.ga-numbers.is-ga-past .ga-numbers__val {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translate(0, 0) !important;
  clip-path: inset(0 0 0 0) !important;
  -webkit-clip-path: inset(0 0 0 0) !important;
}

.ga-numbers .ga-numbers__count.is-ga-count-in .ga-numbers__digit,
.ga-numbers.is-ga-past .ga-numbers__count .ga-numbers__digit {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
}

.ga-numbers.is-ga-fixed-bg-active .ga-numbers__bg,
.ga-numbers.is-ga-fixed-bg-active .ga-numbers__bg::before,
.ga-numbers.is-ga-fixed-bg-active .ga-numbers__overlay {
  opacity: 0 !important;
  visibility: hidden !important;
}

/* ===== GA Numbers to What is: let the fixed video show through the handoff gap ===== */
.ga-numbers.is-ga-fixed-bg-active,
.ga-numbers.is-ga-past {
  background: transparent !important;
}

.ga-numbers.is-ga-fixed-bg-active .ga-numbers__stage,
.ga-numbers.is-ga-past .ga-numbers__stage {
  background: transparent !important;
}

/* ===== GA Numbers: keep foreground sections above the fixed video ===== */
.ga-numbers-fixed-bg {
  z-index: 1 !important;
}

.ga-numbers.is-ga-pinned.is-ga-overlap .ga-numbers__stage,
.ga-numbers.is-ga-fixed-bg-active .ga-numbers__stage,
.ga-numbers.is-ga-past .ga-numbers__stage {
  z-index: 2 !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.ga-numbers.is-ga-fixed-bg-active .ga-numbers__inner,
.ga-numbers.is-ga-past .ga-numbers__inner {
  position: relative !important;
  z-index: 3 !important;
  opacity: var(--ga-numbers-content-opacity, 1) !important;
  visibility: visible !important;
}

.ga-whatis,
.ga-mission {
  position: relative !important;
  z-index: 3 !important;
}

/* ===== GA Numbers: reveal animations restored; keep final content visible after first reveal ===== */


/* ==============================================================
   [2026-06-20] Numbers セクション PC版 OKI方式 vw化パッチ(見出しエリア)
   - 左大エリア(.ga-numbers__head)を 1440px 基準 cqw 化
   - 「数字で見るGA」ラベル + 装飾マーク + 「Great Attractor In Numbers」見出し
   - 現状混在(cqw)を統一、固定px(ラベル14px類・letter-spacing)は視認性のため維持
   - opacity/transform/transition のアニメ制御部は触らない
============================================================== */
@media screen and (min-width: 821px) {

  /* [2026-06-20] PC版 section 地色を透明化
     原因: 既存CSS(line 5004-5005)で
       .ga-numbers, .ga-numbers.is-ga-ready { background: #0b1930 !important }
     が設定されており(以前 supervisor が「動画クリップで消えてもグレーにならない」
     目的で入れた fallback)、stage cover が一瞬抜けるタイミングで navy が
     見えてしまう症状(「ちらっと紺背景が出る」現象)の原因になっていた。
     特に:
       - pin解放(progress 0.80)直後、stage が absolute に切り替わる瞬間
       - fixed-bg active 化の瞬間に stage 透明化と fixed-bg 表示の間の隙間
     section を transparent にすれば、抜けても html の白(stage 初期色と同じ)
     が見えるだけで navy のチラつきは出なくなる。
     既存ルールが !important なので、こちらも is-ga-ready を含めた高詳細度で
     上書き。SP版は別レイアウトのため触らない(@media min-width:821px 内)。 */
  .ga-numbers,
  .ga-numbers.is-ga-ready {
    background: transparent !important;
  }

  /* 左大エリアコンテナ:flex比率と左余白を cqw 化
     親(.ga-numbers__inner) は container-type: inline-size 指定済み
     inner 幅 = 1440px 基準 → 1cqw = 1% of container */
  .ga-numbers__head {
    flex: 0 0 calc(640 / 1440 * 100cqw);
    max-width: calc(640 / 1440 * 100cqw);
    padding-left: calc(80 / 1440 * 100cqw);
  }

  /* ① 数字で見るGA(ラベル)
     font-size/line-height/letter-spacing は補助テキストとして固定px維持
     gap も両端要素(マーク・ラベル)が固定のため整合性で固定px
     transform 初期位置(アニメ前)も cqw 化 */
  .ga-numbers__label {
    gap: 4px;
    margin-bottom: calc(22 / 1440 * 100cqw);
    transform: translateX(calc(-42 / 1440 * 100cqw));
  }

  /* 装飾マーク(×印) Figma設計値 17×17 固定
     ラベル本体が固定pxのため、視認性バランスを揃えてマークも固定 */
  .ga-numbers__mark {
    width: 17px;
    height: 17px;
  }

  /* ② Great Attractor In Numbers(見出し) fs90 / lh90 を cqw 化
     transform 初期位置も cqw 化 */
  .ga-numbers__title {
    font-size: calc(90 / 1440 * 100cqw);
    line-height: calc(90 / 1440 * 100cqw);
    transform: translateX(calc(-64 / 1440 * 100cqw));
  }

  /* ③ セルラベル(月間工事件数 等) fs24 / lh30.067 を cqw 化
     transform 初期位置も cqw 化 */
  .ga-numbers__cap {
    font-size: calc(24 / 1440 * 100cqw);
    line-height: calc(30.067 / 1440 * 100cqw);
    transform: translateY(calc(18 / 1440 * 100cqw));
  }

  /* ④ 年度キャプション(2025年度実績 等)
     ご指示により font-size / line-height / margin-top はすべて固定px維持
     transform 初期位置は cqw 化 */
  .ga-numbers__sub {
    font-size: 12px;
    line-height: 12px;
    margin-top: 7px;
    transform: translateY(calc(14 / 1440 * 100cqw));
  }

  /* ⑤ 数値(60、19、1.1 等) fs80 / lh90.47 を cqw 化
     スロット演出の digit/reel は em ベースのため、count の font-size に追従 */
  .ga-numbers__count {
    font-size: calc(80 / 1440 * 100cqw);
    line-height: calc(90.47 / 1440 * 100cqw);
  }

  /* ⑥ 単位(件、社、か月、% 等) fs22 / lh30.067 を cqw 化 */
  .ga-numbers__unit {
    font-size: calc(22 / 1440 * 100cqw);
    line-height: calc(30.067 / 1440 * 100cqw);
  }

  /* ⑦ 「平均」キャプション(中段左セル限定)
     font-size / line-height / position系 / transform すべて cqw 化 */
  .ga-numbers__avg {
    font-size: calc(22 / 1440 * 100cqw);
    line-height: calc(30.067 / 1440 * 100cqw);
    top: calc(34 / 1440 * 100cqw);
    margin-bottom: calc(-4 / 1440 * 100cqw);
    transform: translateY(calc(18 / 1440 * 100cqw));
  }

  /* ⑧ 罫線(LINE)を Figma 通り #FFF 不透明に変更
     現状: rgba(255,255,255,0.4) → Figma設計: opacity 1
     太さは 1px のまま維持
     - .ga-numbers__grid: セクション上端 + 左の縦罫線(head と grid の境)
     - .ga-numbers__cell: 各マスの内側罫線(下と右) */
  .ga-numbers.is-ga-lines-in .ga-numbers__grid {
    border-top-color: rgba(255, 255, 255, 1);
    border-left-color: rgba(255, 255, 255, 1);
  }
  .ga-numbers.is-ga-lines-in .ga-numbers__cell {
    border-bottom-color: rgba(255, 255, 255, 1);
    border-right-color: rgba(255, 255, 255, 1);
  }

  /* ⑨ セル padding を Figma 設計通り段ごとに調整
     現状の .ga-numbers__cell { padding: 24px 24px 11px; } を nth-child で上書き
     padding-bottom 11px は現状維持(数値の位置調整は次ターン)
     上段(1,2): top 20 / left 21
     中段(3,4): top 42 / left 21(設計意図で広め)
     下段-左(5): top 23 / left 21
     下段-中右(6,7): top 23 / left 19 */
  .ga-numbers__grid > .ga-numbers__cell:nth-child(1),
  .ga-numbers__grid > .ga-numbers__cell:nth-child(2) {
    padding-top: calc(20 / 1440 * 100cqw);
    padding-left: calc(21 / 1440 * 100cqw);
    padding-right: calc(21 / 1440 * 100cqw);
  }
  .ga-numbers__grid > .ga-numbers__cell:nth-child(3),
  .ga-numbers__grid > .ga-numbers__cell:nth-child(4) {
    padding-top: calc(42 / 1440 * 100cqw);
    padding-left: calc(21 / 1440 * 100cqw);
    padding-right: calc(21 / 1440 * 100cqw);
  }
  .ga-numbers__grid > .ga-numbers__cell:nth-child(5) {
    padding-top: calc(23 / 1440 * 100cqw);
    padding-left: calc(21 / 1440 * 100cqw);
    padding-right: calc(21 / 1440 * 100cqw);
  }
  .ga-numbers__grid > .ga-numbers__cell:nth-child(6),
  .ga-numbers__grid > .ga-numbers__cell:nth-child(7) {
    padding-top: calc(23 / 1440 * 100cqw);
    padding-left: calc(19 / 1440 * 100cqw);
    padding-right: calc(19 / 1440 * 100cqw);
  }

  /* ⑩ 数値ブロック(.ga-numbers__val)の位置オフセット + transform を cqw 化
     現状 top: 38px(固定)→ コンテナ追従に切替
     transform 初期位置(translateY)も cqw 化
     gap 4px は小さい値のため固定維持(cqw化すると ~0.27px で視認不能) */
  .ga-numbers__val {
    top: calc(38 / 1440 * 100cqw);
    transform: translateY(calc(24 / 1440 * 100cqw));
  }

  /* ⑪ 左大エリア(head)に上下罫線+左端罫線を追加
     Figma 設計に追加: セクションを四角で囲う見た目にするため左端にも縦線
     - border-top / border-bottom: セクション上下端(Figma Line 134/135、全幅対応)
     - border-left: セクション左端(Figma にはないが視覚的な囲み感のため追加)
     アニメは grid と同じ is-ga-lines-in に同期、太さは 1px 固定 */
  .ga-numbers__head {
    border-top: 1px solid rgba(255, 255, 255, 0);
    border-bottom: 1px solid rgba(255, 255, 255, 0);
    border-left: 1px solid rgba(255, 255, 255, 0);
    transition: border-color 0.44s ease;
  }
  .ga-numbers.is-ga-lines-in .ga-numbers__head {
    border-top-color: rgba(255, 255, 255, 1);
    border-bottom-color: rgba(255, 255, 255, 1);
    border-left-color: rgba(255, 255, 255, 1);
  }

}
/* ============ Numbers PC版 OKI方式 vw化パッチ(見出しエリア)END ============ */


/* ==============================================================
   [2026-06-20] Numbers セクション SP版 OKI方式 vw化パッチ(見出しエリア)
   - 基準幅 375px、画面幅で比例追従
   - min(vw, 設計値px) で上限を設ける(広いSP/タブレット縦で拡大しすぎ防止)
   - 固定px は視認性ライン(14px以下の補助テキスト)を維持
   - 既存 SP版実装の !important と競合するため、こちらも !important で上書き
   - opacity/transform/transition のアニメ制御部は触らない
============================================================== */
@media screen and (max-width: 820px) {

  /* ① 数字で見るGA(ラベル)
     font-size/line-height/letter-spacing は補助テキストとして固定px維持
     gap も両端要素(マーク・ラベル)固定のため整合性で固定px
     margin-bottom のみ vw + 上限
     margin-top: セクション上端からの余白 81px(Figma実測)を vw + 上限 */
  .ga-numbers .ga-numbers__label {
    font-size: 14px !important;
    line-height: 14px !important;
    letter-spacing: 0.7px !important;
    gap: 4px !important;
    margin-top: min(calc(81 / 375 * 100vw), 81px) !important;
    margin-bottom: min(calc(14 / 375 * 100vw), 14px) !important;
  }

  /* 装飾マーク(×印) Figma設計値 17×17 固定
     ラベル本体が固定pxのため、視認性バランスを揃えて固定 */
  .ga-numbers .ga-numbers__mark {
    width: 17px !important;
    height: 17px !important;
  }

  /* ② Great Attractor In Numbers(見出し)
     fs60 / lh60 を vw 化、上限 60px */
  .ga-numbers .ga-numbers__title {
    font-size: min(calc(60 / 375 * 100vw), 60px) !important;
    line-height: min(calc(60 / 375 * 100vw), 60px) !important;
  }

  /* ②-b inner の左右余白 10px(Figma実測)
     画面左右端からラベル/タイトル/グリッドまでの共通インデント
     ※ 1回目は左のみだったが Figma 実測で左右とも 10 のため両側に修正 */
  .ga-numbers .ga-numbers__inner {
    padding-left: min(calc(10 / 375 * 100vw), 10px) !important;
    padding-right: min(calc(10 / 375 * 100vw), 10px) !important;
  }

  /* ②-c head の下マージン 42px(title 下端 → grid 上端、Figma実測)
     既存 575px media の margin-bottom:4px を上書き */
  .ga-numbers .ga-numbers__head {
    margin-bottom: min(calc(42 / 375 * 100vw), 42px) !important;
  }

  /* ③ numbers の動画背景とネイビーを画面固定化(SP版)
     -----------------------------------------------------------------
     方針:
     - .ga-numbers__bg(動画背景)と .ga-numbers__overlay(ネイビー)を画面固定(position:fixed)
     - 画面いっぱい(100vw × 100svh)に広げる
     - whatis セクションの bg は元々透明なので、固定された numbers の動画が透けて見える
     - スクロールで whatis セクションが自然に上に被さってくる(既存 margin-top で実現)
     - JS の clip-path 演出(at 50% 50%)は画面中央 = ローディング円の位置と一致する
     - 既存の SP版実装(`!important` 多用)に対抗するため、こちらも `!important` */

  /* stage の overflow を解除しておく(念のため) */
  .ga-numbers__stage {
    overflow: visible !important;
  }

  /* 動画背景を画面固定に */
  .ga-numbers:not(.is-ga-overlap):not(.is-ga-past) .ga-numbers__bg,
  .ga-numbers.is-ga-overlap .ga-numbers__bg,
  .ga-numbers.is-ga-past .ga-numbers__bg,
  .ga-numbers .ga-numbers__bg {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100svh !important;
    z-index: 0 !important;
  }

  /* ネイビーオーバーレイも画面固定に */
  .ga-numbers:not(.is-ga-overlap):not(.is-ga-past) .ga-numbers__overlay,
  .ga-numbers.is-ga-overlap .ga-numbers__overlay,
  .ga-numbers.is-ga-past .ga-numbers__overlay,
  .ga-numbers .ga-numbers__overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100svh !important;
    z-index: 1 !important;
  }

  /* SP final: use the fixed clone during the WHAT IS handoff. */
  .ga-numbers .ga-numbers__bg,
  .ga-numbers .ga-numbers__overlay {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    pointer-events: none !important;
  }

  .ga-numbers .ga-numbers__bg {
    z-index: 0 !important;
  }

  .ga-numbers .ga-numbers__overlay {
    z-index: 1 !important;
  }

  .ga-numbers .ga-numbers__bg video {
    opacity: 1 !important;
    filter: saturate(0.58) contrast(1.03) brightness(0.58) !important;
  }

  .ga-numbers .ga-numbers__overlay {
    opacity: 1 !important;
    visibility: visible !important;
    background: rgba(11, 25, 48, 0.45) !important;
    mix-blend-mode: normal !important;
  }

  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__bg,
  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__bg::before,
  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__overlay {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .ga-numbers-fixed-bg {
    display: block !important;
    opacity: 0 !important;
    visibility: hidden !important;
    z-index: 1 !important;
    background: #0b1930 !important;
    pointer-events: none !important;
  }

  .ga-numbers-fixed-bg video {
    opacity: 1 !important;
    visibility: visible !important;
    filter: saturate(0.58) contrast(1.03) brightness(0.58) !important;
  }

  .ga-numbers-fixed-bg::after {
    background: #0b1930 !important;
    opacity: var(--ga-numbers-fixed-overlay-opacity, 0.30) !important;
  }

  .ga-whatis {
    --ga-whatis-overlap: 0px !important;
    position: relative !important;
    z-index: 3 !important;
    margin-top: calc(var(--ga-whatis-overlap) * -1) !important;
    padding-top: clamp(56px, 16svh, 84px) !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
  }

  .ga-whatis::before,
  .ga-whatis::after {
    content: none !important;
    display: none !important;
    background: none !important;
  }

  .ga-whatis__bg,
  .ga-whatis__overlay,
  .ga-whatis__video {
    display: none !important;
  }

  .ga-whatis.is-ga-whatis-slide-ready .ga-whatis__inner {
    opacity: 0 !important;
    transform: translateY(48px) !important;
    transition: opacity 0.45s ease, transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) !important;
    will-change: opacity, transform;
  }

  .ga-whatis.is-ga-whatis-slide-in .ga-whatis__inner {
    opacity: 1 !important;
    transform: translateY(0) !important;
  }

  /* whatis セクションは画面固定の動画より前面に出す
     既存指定で z:3 isolation:isolate なので変更不要 */

}
/* ============ Numbers SP版 OKI方式 vw化パッチ(見出しエリア)END ============ */


/* ==============================================================
   [2026-06-20] Numbers セクション SP版 OKI方式 vw化パッチ(セル/グリッド)
   - 基準幅 375px、画面幅で比例追従(min(vw, 設計値px) で上限固定)
   - 固定px は視認性ライン(12px以下の補助テキスト)を維持
   - cap(16) / count(45) / unit(20) / avg(14) を vw 化
   - grid 全体高さ・row 高さ・cell padding を vw 化
   - sub(12px) は視認性のため固定維持
   - 既存 SP版実装(@media max-width:575px内、!important多用)に対抗するため
     こちらも !important で上書き
   - cap の「複数行22」は補助金率セルの cap-break margin-top(15→vw)でカバー。
     font-size 切替が必要なら別途指定追加。
============================================================== */
@media screen and (max-width: 820px) {

  /* グリッド全体の高さと行高さを vw 化
     Figma実測: 560h(=140h × 4 rows)*/
  .ga-numbers .ga-numbers__grid {
    flex: 0 0 min(calc(560 / 375 * 100vw), 560px) !important;
    height: min(calc(560 / 375 * 100vw), 560px) !important;
    min-height: min(calc(560 / 375 * 100vw), 560px) !important;
    max-height: min(calc(560 / 375 * 100vw), 560px) !important;
    grid-template-rows: repeat(4, min(calc(140 / 375 * 100vw), 140px)) !important;
    grid-auto-rows: min(calc(140 / 375 * 100vw), 140px) !important;
  }

  /* セルのpadding(Figma実測 セル別、val 行固定高 45 を vw化)
     - Cell 1, 2(1行目): 15/7/8/15
     - Cell 3(契約から/平均1.1): 17/20/7/20
     - Cell 4(補助金/100%): 15/20/7/20
     - Cell 5, 6, 7: 15/20/8/20 */
  .ga-numbers .ga-numbers__cell {
    padding-top: min(calc(15 / 375 * 100vw), 15px) !important;
    padding-right: min(calc(7 / 375 * 100vw), 7px) !important;
    padding-bottom: min(calc(8 / 375 * 100vw), 8px) !important;
    padding-left: min(calc(15 / 375 * 100vw), 15px) !important;
    grid-template-rows: auto auto 1fr min(calc(45 / 375 * 100vw), 45px) !important;
  }

  /* Cell 3 (契約から工事まで / 平均 1.1か月): 17/20/7/20 */
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(3) {
    padding-top: min(calc(17 / 375 * 100vw), 17px) !important;
    padding-right: min(calc(20 / 375 * 100vw), 20px) !important;
    padding-bottom: min(calc(7 / 375 * 100vw), 7px) !important;
    padding-left: min(calc(20 / 375 * 100vw), 20px) !important;
  }

  /* Cell 4 (補助金申請後の 受託率 / 100%): 15/20/7/20 */
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(4) {
    padding-top: min(calc(15 / 375 * 100vw), 15px) !important;
    padding-right: min(calc(20 / 375 * 100vw), 20px) !important;
    padding-bottom: min(calc(7 / 375 * 100vw), 7px) !important;
    padding-left: min(calc(20 / 375 * 100vw), 20px) !important;
  }

  /* Cells 5, 6, 7: 15/20/8/20 */
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(5),
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(6),
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(7) {
    padding-top: min(calc(15 / 375 * 100vw), 15px) !important;
    padding-right: min(calc(20 / 375 * 100vw), 20px) !important;
    padding-bottom: min(calc(8 / 375 * 100vw), 8px) !important;
    padding-left: min(calc(20 / 375 * 100vw), 20px) !important;
  }

  /* val 内 60(count)と 件(unit)の間隔 2px(Figma実測) */
  .ga-numbers .ga-numbers__val {
    gap: min(calc(2 / 375 * 100vw), 2px) !important;
  }

  /* nth-child(3) 補助金率セルの avg margin-bottom
     既存 575px media は 13px だが、これは row 4 bottom 基準で
     padding-bottom(7) と合算して Line 128 から 20px 上になっていた。
     Figma は Line 128 から 13px 上なので
       padding-bottom(7) + margin-bottom(6) = 13
     となるよう margin-bottom: 6 に修正 */
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(3) .ga-numbers__avg {
    margin-bottom: min(calc(6 / 375 * 100vw), 6px) !important;
  }

  /* ① cap(セルラベル)16 Bold */
  .ga-numbers .ga-numbers__cap {
    font-size: min(calc(16 / 375 * 100vw), 16px) !important;
    line-height: min(calc(16 / 375 * 100vw), 16px) !important;
  }

  /* ①-b 複数行になるセル(4/5/6/7)の cap は line-height 22(Figma実測)
     - cell 4「補助金申請後の 受託率」: 2行
     - cell 5「1件当たりの 平均工事日数」: 2行
     - cell 6「トラブル解決率」: 1行だが lh22 で揃え
     - cell 7「不具合後の 現場訪問時間」: 2行 */
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(4) .ga-numbers__cap,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(5) .ga-numbers__cap,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(6) .ga-numbers__cap,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(7) .ga-numbers__cap {
    line-height: min(calc(22 / 375 * 100vw), 22px) !important;
    white-space: normal !important;
  }

  /* ①-c cap-line / cap-break の内側 lh を 22 で揃える
     既存 @media (max-width: 575px) line 4524–4544 で
     lh:17 / cap-break margin-top:3px が指定されていて
     合計 17+3+17 = 37px となり Figma の 2行 44px(=22×2) より詰まって見える。
     ここで lh:22 / margin-top:0 に上書きして 22+0+22 = 44 に揃える。
     cells 4, 5, 7 に対して適用(cap-line / cap-break を含むセル) */
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(4) .ga-numbers__cap-line,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(4) .ga-numbers__cap-break,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(5) .ga-numbers__cap-line,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(5) .ga-numbers__cap-break,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(7) .ga-numbers__cap-line,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(7) .ga-numbers__cap-break,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell--subsidy-rate .ga-numbers__cap-line,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell--subsidy-rate .ga-numbers__cap-break {
    font-size: min(calc(16 / 375 * 100vw), 16px) !important;
    line-height: min(calc(22 / 375 * 100vw), 22px) !important;
    white-space: nowrap !important;
  }

  /* cap-break の margin-top を 0 に
     (既存 575px media の margin-top:3px / margin-top:15px を打ち消し
      Figma 設計どおり lh:22 だけで 2行間スペースを作る) */
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(4) .ga-numbers__cap-break,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(5) .ga-numbers__cap-break,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(7) .ga-numbers__cap-break,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell--subsidy-rate .ga-numbers__cap-break {
    margin-top: 0 !important;
  }

  /* ② sub(年度実績)12px 固定 — 視認性のためそのまま */
  /*   変更なし(既存 @media 575px 内 font-size:12px / line-height:12px を維持) */

  /* sub の margin-top 微調整値(5px / 27px)も vw 化 */
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(4) .ga-numbers__sub,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(5) .ga-numbers__sub,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(7) .ga-numbers__sub {
    margin-top: min(calc(5 / 375 * 100vw), 5px) !important;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(6) .ga-numbers__sub {
    margin-top: min(calc(27 / 375 * 100vw), 27px) !important;
  }

  /* sub 本体の margin-top(既存 6px)も vw 化 */
  .ga-numbers .ga-numbers__sub {
    margin-top: min(calc(6 / 375 * 100vw), 6px) !important;
  }

  /* ③ avg(平均)14 Medium */
  .ga-numbers .ga-numbers__avg {
    font-size: min(calc(14 / 375 * 100vw), 14px) !important;
    line-height: min(calc(14 / 375 * 100vw), 14px) !important;
  }

  /* ④ count(数値)45 Medium */
  .ga-numbers .ga-numbers__count {
    font-size: min(calc(45 / 375 * 100vw), 45px) !important;
    line-height: min(calc(45 / 375 * 100vw), 45px) !important;
  }

  /* ⑤ unit(単位)20 Medium */
  .ga-numbers .ga-numbers__unit {
    font-size: min(calc(20 / 375 * 100vw), 20px) !important;
    line-height: min(calc(20 / 375 * 100vw), 20px) !important;
  }

  /* ⑥ 罫線色 100% 白(Figma実測 stroke: #fff opacity: 1)
     既存 575px media:
       grid 外枠 / ::after  rgba(255,255,255,0.35)
       cell 内側罫線        rgba(255,255,255,0.30)
     を不透明白に上書き */
  .ga-numbers.is-ga-lines-in .ga-numbers__grid {
    border-color: rgba(255, 255, 255, 1) !important;
  }

  .ga-numbers.is-ga-lines-in .ga-numbers__grid::after {
    background: rgba(255, 255, 255, 1) !important;
  }

  .ga-numbers.is-ga-lines-in .ga-numbers__cell {
    border-color: rgba(255, 255, 255, 1) !important;
  }

}
/* ============ Numbers SP版 OKI方式 vw化パッチ(セル/グリッド)END ============ */

/* ===== GA Numbers final responsive guard: PC width + height fit =====
   Keep this block at the end. Earlier PC rules size the section from width only,
   which is too large on laptop screens with limited height. */
@media screen and (min-width: 821px) {
  .ga-numbers__stage,
  .ga-numbers.is-ga-pinned .ga-numbers__stage {
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
  }

  .ga-numbers.is-ga-past .ga-numbers__stage {
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    top: var(--ga-numbers-release-top, calc(100% - 100dvh)) !important;
  }

  .ga-numbers__inner {
    height: 100% !important;
    min-height: 0 !important;
  }

  .ga-numbers__label {
    font-size: clamp(12px, min(calc(14 / 1440 * 100cqw), calc(14 / 854 * 100dvh)), 14px) !important;
    line-height: 1.1 !important;
    margin-bottom: min(calc(22 / 1440 * 100cqw), calc(22 / 854 * 100dvh)) !important;
    gap: min(4px, calc(4 / 854 * 100dvh)) !important;
  }

  .ga-numbers__mark {
    width: clamp(12px, min(calc(17 / 1440 * 100cqw), calc(17 / 854 * 100dvh)), 17px) !important;
    height: clamp(12px, min(calc(17 / 1440 * 100cqw), calc(17 / 854 * 100dvh)), 17px) !important;
  }

  .ga-numbers__title {
    font-size: min(calc(90 / 1440 * 100cqw), calc(90 / 854 * 100dvh)) !important;
    line-height: min(calc(90 / 1440 * 100cqw), calc(90 / 854 * 100dvh)) !important;
  }

  .ga-numbers__cap {
    font-size: min(calc(24 / 1440 * 100cqw), calc(24 / 854 * 100dvh)) !important;
    line-height: min(calc(30.067 / 1440 * 100cqw), calc(30.067 / 854 * 100dvh)) !important;
  }

  .ga-numbers__sub {
    font-size: clamp(10px, min(calc(12 / 1440 * 100cqw), calc(12 / 854 * 100dvh)), 12px) !important;
    line-height: 1.15 !important;
    margin-top: min(7px, calc(7 / 854 * 100dvh)) !important;
    min-height: 0 !important;
  }

  .ga-numbers__avg {
    font-size: min(calc(22 / 1440 * 100cqw), calc(22 / 854 * 100dvh)) !important;
    line-height: min(calc(30.067 / 1440 * 100cqw), calc(30.067 / 854 * 100dvh)) !important;
    top: min(calc(34 / 1440 * 100cqw), calc(34 / 854 * 100dvh)) !important;
    margin-bottom: min(0px, calc(-4 / 854 * 100dvh)) !important;
  }

  .ga-numbers__val {
    top: min(calc(38 / 1440 * 100cqw), calc(38 / 854 * 100dvh)) !important;
    gap: min(4px, calc(4 / 854 * 100dvh)) !important;
  }

  .ga-numbers__count {
    font-size: min(calc(80 / 1440 * 100cqw), calc(80 / 854 * 100dvh)) !important;
    line-height: min(calc(90.47 / 1440 * 100cqw), calc(90.47 / 854 * 100dvh)) !important;
  }

  .ga-numbers__unit {
    font-size: min(calc(22 / 1440 * 100cqw), calc(22 / 854 * 100dvh)) !important;
    line-height: min(calc(30.067 / 1440 * 100cqw), calc(30.067 / 854 * 100dvh)) !important;
  }

  .ga-numbers__cell {
    padding-right: min(calc(21 / 1440 * 100cqw), calc(21 / 854 * 100dvh)) !important;
    padding-bottom: min(11px, calc(11 / 854 * 100dvh)) !important;
    padding-left: min(calc(21 / 1440 * 100cqw), calc(21 / 854 * 100dvh)) !important;
  }

  .ga-numbers__grid > .ga-numbers__cell:nth-child(1),
  .ga-numbers__grid > .ga-numbers__cell:nth-child(2) {
    padding-top: min(calc(20 / 1440 * 100cqw), calc(20 / 854 * 100dvh)) !important;
  }

  .ga-numbers__grid > .ga-numbers__cell:nth-child(3),
  .ga-numbers__grid > .ga-numbers__cell:nth-child(4) {
    padding-top: min(calc(42 / 1440 * 100cqw), calc(42 / 854 * 100dvh)) !important;
  }

  .ga-numbers__grid > .ga-numbers__cell:nth-child(5) {
    padding-top: min(calc(23 / 1440 * 100cqw), calc(23 / 854 * 100dvh)) !important;
  }

  .ga-numbers__grid > .ga-numbers__cell:nth-child(6),
  .ga-numbers__grid > .ga-numbers__cell:nth-child(7) {
    padding-top: min(calc(23 / 1440 * 100cqw), calc(23 / 854 * 100dvh)) !important;
    padding-right: min(calc(19 / 1440 * 100cqw), calc(19 / 854 * 100dvh)) !important;
    padding-left: min(calc(19 / 1440 * 100cqw), calc(19 / 854 * 100dvh)) !important;
  }
}

@media screen and (min-width: 821px) and (max-height: 700px) {
  .ga-numbers__grid > .ga-numbers__cell:nth-child(1),
  .ga-numbers__grid > .ga-numbers__cell:nth-child(2) {
    padding-top: min(calc(20 / 1440 * 100cqw), calc(20 / 854 * 100dvh)) !important;
  }

  .ga-numbers__avg,
  .ga-numbers__val {
    top: min(22px, calc(28 / 854 * 100dvh)) !important;
  }
}

/* ===== GA Numbers final value baseline guard: height-based bottom ratio =====
   Place numeric values from the cell bottom, not by width-based padding. */
@media screen and (min-width: 821px) {
  .ga-numbers__cell {
    position: relative !important;
    --ga-numbers-value-x: min(calc(21 / 1440 * 100cqw), calc(21 / 854 * 100dvh));
    --ga-numbers-value-bottom: clamp(16px, 7.2%, 34px);
    --ga-numbers-value-line: min(calc(80 / 1440 * 100cqw), calc(80 / 854 * 100dvh));
  }

  .ga-numbers__grid > .ga-numbers__cell:nth-child(6),
  .ga-numbers__grid > .ga-numbers__cell:nth-child(7) {
    --ga-numbers-value-x: min(calc(19 / 1440 * 100cqw), calc(19 / 854 * 100dvh));
  }

  .ga-numbers__val {
    position: absolute !important;
    left: var(--ga-numbers-value-x) !important;
    right: var(--ga-numbers-value-x) !important;
    bottom: var(--ga-numbers-value-bottom) !important;
    top: auto !important;
    margin: 0 !important;
    align-items: baseline !important;
  }

  .ga-numbers__cell--has-average .ga-numbers__avg {
    position: absolute !important;
    left: var(--ga-numbers-value-x) !important;
    bottom: calc(var(--ga-numbers-value-bottom) + var(--ga-numbers-value-line) + min(calc(4 / 1440 * 100cqw), calc(4 / 854 * 100dvh))) !important;
    top: auto !important;
    margin: 0 !important;
  }

  .ga-numbers__count {
    line-height: 1 !important;
  }

  .ga-numbers__unit {
    line-height: 1.15 !important;
  }
}

@media screen and (min-width: 821px) and (max-height: 700px) {
  .ga-numbers__cell {
    --ga-numbers-value-bottom: clamp(14px, 6.4%, 26px);
  }
}

/* ===== Visual sections final responsive guard: width + height scaling =====
   Apply only to fixed visual sections. Text-list sections should remain natural. */
@media screen and (min-width: 821px) {
  .ga-services {
    padding-top: min(calc(199 / 1440 * 100cqw), calc(199 / 854 * 100dvh)) !important;
    padding-bottom: min(calc(230 / 1440 * 100cqw), calc(230 / 854 * 100dvh)) !important;
  }

  .ga-services__head,
  .ga-services__cards {
    width: min(calc(1280 / 1440 * 100cqw), calc(1280 / 854 * 100dvh)) !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .ga-services__head {
    margin-bottom: min(calc(81 / 1440 * 100cqw), calc(81 / 854 * 100dvh)) !important;
    gap: min(calc(308 / 1440 * 100cqw), calc(308 / 854 * 100dvh)) !important;
  }

  .ga-services__label {
    margin-left: min(calc(4 / 1440 * 100cqw), calc(4 / 854 * 100dvh)) !important;
    margin-bottom: min(calc(4 / 1440 * 100cqw), calc(4 / 854 * 100dvh)) !important;
  }

  .ga-services__title {
    font-size: min(calc(90 / 1440 * 100cqw), calc(90 / 854 * 100dvh)) !important;
    line-height: min(calc(152 / 1440 * 100cqw), calc(152 / 854 * 100dvh)) !important;
  }

  .ga-services__lead {
    font-size: min(calc(41 / 1440 * 100cqw), calc(41 / 854 * 100dvh)) !important;
    line-height: min(calc(61 / 1440 * 100cqw), calc(61 / 854 * 100dvh)) !important;
  }

  .ga-services__panel {
    border-radius: min(calc(20 / 1440 * 100cqw), calc(20 / 854 * 100dvh)) !important;
  }

  .ga-services__badge {
    top: min(calc(26 / 1440 * 100cqw), calc(26 / 854 * 100dvh)) !important;
    left: min(calc(30 / 1440 * 100cqw), calc(30 / 854 * 100dvh)) !important;
    width: min(calc(183 / 1440 * 100cqw), calc(183 / 854 * 100dvh)) !important;
    height: min(calc(64 / 1440 * 100cqw), calc(64 / 854 * 100dvh)) !important;
    border-radius: min(calc(20 / 1440 * 100cqw), calc(20 / 854 * 100dvh)) !important;
    font-size: min(calc(20 / 1440 * 100cqw), calc(20 / 854 * 100dvh)) !important;
    line-height: min(calc(16 / 1440 * 100cqw), calc(16 / 854 * 100dvh)) !important;
  }

  .ga-services__cardrow {
    padding-bottom: min(calc(32 / 1440 * 100cqw), calc(32 / 854 * 100dvh)) !important;
  }

  .ga-services__cardc {
    padding-left: min(calc(69 / 1440 * 100cqw), calc(69 / 854 * 100dvh)) !important;
    margin-right: min(calc(86 / 1440 * 100cqw), calc(86 / 854 * 100dvh)) !important;
  }

  .ga-services__cardc::before {
    left: min(calc(40 / 1440 * 100cqw), calc(40 / 854 * 100dvh)) !important;
    width: max(1px, min(calc(1 / 1440 * 100cqw), calc(1 / 854 * 100dvh))) !important;
    bottom: min(calc(8 / 1440 * 100cqw), calc(8 / 854 * 100dvh)) !important;
  }

  .ga-services__cardc::after {
    left: min(calc(40 / 1440 * 100cqw), calc(40 / 854 * 100dvh)) !important;
    width: max(2px, min(calc(3 / 1440 * 100cqw), calc(3 / 854 * 100dvh))) !important;
    height: min(calc(20 / 1440 * 100cqw), calc(20 / 854 * 100dvh)) !important;
  }

  .ga-services__num {
    font-size: max(14px, min(calc(16 / 1440 * 100cqw), calc(16 / 854 * 100dvh))) !important;
    line-height: max(17.5px, min(calc(20 / 1440 * 100cqw), calc(20 / 854 * 100dvh))) !important;
    letter-spacing: min(calc(0.8 / 1440 * 100cqw), calc(0.8 / 854 * 100dvh)) !important;
  }

  .ga-services__cardtitle {
    margin-top: min(calc(6 / 1440 * 100cqw), calc(6 / 854 * 100dvh)) !important;
    font-size: min(calc(28 / 1440 * 100cqw), calc(28 / 854 * 100dvh)) !important;
    line-height: min(calc(30 / 1440 * 100cqw), calc(30 / 854 * 100dvh)) !important;
  }

  .ga-services__arrow {
    width: min(calc(31 / 1440 * 100cqw), calc(31 / 854 * 100dvh)) !important;
    height: min(calc(31 / 1440 * 100cqw), calc(31 / 854 * 100dvh)) !important;
    border-radius: min(calc(5 / 1440 * 100cqw), calc(5 / 854 * 100dvh)) !important;
    margin-top: min(calc(41 / 1440 * 100cqw), calc(41 / 854 * 100dvh)) !important;
  }

  .ga-mission__tile {
    height: clamp(420px, min(calc(650 / 1440 * 100cqw), calc(650 / 854 * 100dvh)), 650px) !important;
  }

  .ga-mission__eyebrow {
    top: min(calc(189 / 1440 * 100cqw), calc(189 / 854 * 100dvh)) !important;
    font-size: 12px !important;
    line-height: 12px !important;
  }

  .ga-mission__num {
    top: min(calc(209 / 1440 * 100cqw), calc(209 / 854 * 100dvh)) !important;
    font-size: min(calc(69 / 1440 * 100cqw), calc(69 / 854 * 100dvh)) !important;
    line-height: min(calc(69 / 1440 * 100cqw), calc(69 / 854 * 100dvh)) !important;
  }

  .ga-mission__rule {
    top: min(calc(289 / 1440 * 100cqw), calc(289 / 854 * 100dvh)) !important;
    width: min(calc(40 / 1440 * 100cqw), calc(40 / 854 * 100dvh)) !important;
  }

  .ga-mission__title {
    top: min(calc(326 / 1440 * 100cqw), calc(326 / 854 * 100dvh)) !important;
    font-size: min(calc(42.5 / 1440 * 100cqw), calc(42.5 / 854 * 100dvh)) !important;
    line-height: 1.18 !important;
  }

  .ga-mission__text {
    right: min(calc(22 / 1440 * 100cqw), calc(22 / 854 * 100dvh)) !important;
    bottom: min(calc(28 / 1440 * 100cqw), calc(28 / 854 * 100dvh)) !important;
    left: min(calc(23 / 1440 * 100cqw), calc(23 / 854 * 100dvh)) !important;
    font-size: max(14px, min(calc(16 / 1440 * 100cqw), calc(16 / 854 * 100dvh))) !important;
    line-height: min(calc(28 / 1440 * 100cqw), calc(28 / 854 * 100dvh)) !important;
    letter-spacing: min(calc(0.8 / 1440 * 100cqw), calc(0.8 / 854 * 100dvh)) !important;
  }
}

@media screen and (min-width: 821px) and (max-height: 700px) {
  .ga-services {
    padding-top: clamp(90px, 14svh, 150px) !important;
    padding-bottom: clamp(100px, 16svh, 170px) !important;
  }

  .ga-mission__tile {
    height: clamp(390px, 76svh, 560px) !important;
  }
}

/* ===== GA Numbers final zoom frame guard: match Services scaling =====
   Browser zoom changes the CSS viewport. Keep the Numbers foreground frame
   proportional to the viewport instead of stopping at the old 1440px cap. */
@media screen and (min-width: 821px) {
  .ga-numbers__stage,
  .ga-numbers.is-ga-pinned .ga-numbers__stage,
  .ga-numbers.is-ga-past .ga-numbers__stage {
    display: grid !important;
    place-items: center !important;
  }

  .ga-numbers__inner {
    width: min(100vw, calc(1440 / 854 * 100vh)) !important;
    width: min(100vw, calc(1440 / 854 * 100dvh)) !important;
    max-width: none !important;
    height: min(100vh, calc(854 / 1440 * 100vw)) !important;
    height: min(100dvh, calc(854 / 1440 * 100vw)) !important;
    min-height: 0 !important;
    max-height: 100vh !important;
    max-height: 100dvh !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }
}

/* ===== GA Numbers final top padding ratio guard ===== */
@media screen and (min-width: 821px) {
  .ga-numbers__grid > .ga-numbers__cell:nth-child(3),
  .ga-numbers__grid > .ga-numbers__cell:nth-child(4) {
    padding-top: min(calc(42 / 1440 * 100cqw), calc(42 / 854 * 100dvh)) !important;
  }

  .ga-numbers__grid > .ga-numbers__cell:nth-child(5),
  .ga-numbers__grid > .ga-numbers__cell:nth-child(6),
  .ga-numbers__grid > .ga-numbers__cell:nth-child(7) {
    padding-top: min(calc(23 / 1440 * 100cqw), calc(23 / 854 * 100dvh)) !important;
  }
}

/* ===== GA Numbers final top-row value bottom ratio guard ===== */
@media screen and (min-width: 821px) {
  .ga-numbers__grid > .ga-numbers__cell:nth-child(1),
  .ga-numbers__grid > .ga-numbers__cell:nth-child(2) {
    --ga-numbers-value-bottom: max(calc(-3 / 1440 * 100cqw), calc(-3 / 854 * 100dvh));
  }
}

/* ===== GA Numbers final lower value visual bottom ratio guard ===== */
@media screen and (min-width: 821px) {
  .ga-numbers__grid > .ga-numbers__cell:nth-child(3),
  .ga-numbers__grid > .ga-numbers__cell:nth-child(4),
  .ga-numbers__grid > .ga-numbers__cell:nth-child(5),
  .ga-numbers__grid > .ga-numbers__cell:nth-child(6),
  .ga-numbers__grid > .ga-numbers__cell:nth-child(7) {
    --ga-numbers-value-bottom: min(calc(6 / 1440 * 100cqw), calc(6 / 854 * 100dvh));
  }
}

/* ===== SP GA Numbers fixed video handoff guard =====
   SP uses the same fixed-clone handoff as PC, with only one video visible. */
@media screen and (max-width: 820px) {
  .ga-numbers-fixed-bg {
    --ga-sp-fixed-bg-height: 812px;
    display: block !important;
    top: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    width: 100vw !important;
    height: var(--ga-sp-fixed-bg-height) !important;
    min-height: var(--ga-sp-fixed-bg-height) !important;
    z-index: 1 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    overflow: hidden !important;
    background: #0b1930 !important;
    pointer-events: none !important;
    transform: translateZ(0) !important;
    backface-visibility: hidden !important;
    -webkit-backface-visibility: hidden !important;
  }

  .ga-numbers-fixed-bg.is-active {
    opacity: 1 !important;
    visibility: visible !important;
  }

  .ga-numbers-fixed-bg video {
    opacity: 1 !important;
    visibility: visible !important;
    width: 100vw !important;
    height: var(--ga-sp-fixed-bg-height) !important;
    min-height: var(--ga-sp-fixed-bg-height) !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: none !important;
    filter: saturate(0.58) contrast(1.03) brightness(0.58) !important;
  }

  .ga-numbers-fixed-bg::after {
    background: #0b1930 !important;
    opacity: var(--ga-numbers-fixed-overlay-opacity, 0.30) !important;
  }

  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__stage {
    background: transparent !important;
  }

  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__bg,
  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__bg::before,
  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__overlay {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__bg video {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__inner,
  .ga-whatis {
    position: relative !important;
  }

  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__inner {
    z-index: 2 !important;
  }

  .ga-numbers.is-ga-bg-only-overlap .ga-numbers__inner,
  .ga-numbers.is-ga-bg-only-overlap .ga-numbers__circle {
    opacity: var(--ga-numbers-content-opacity, 1) !important;
    visibility: visible !important;
    pointer-events: none !important;
  }

  .ga-whatis {
    z-index: 3 !important;
    background: #0b1930 !important;
  }

  /* Keep the video visible only while its navy overlay completes the handoff. */
  .ga-numbers.is-ga-fixed-bg-active ~ .ga-whatis {
    background: transparent !important;
  }
}

@media screen and (max-width: 820px) and (min-width: 390px) {
  .ga-numbers-fixed-bg {
    --ga-sp-fixed-bg-height: 852px;
  }
}

@media screen and (max-width: 820px) and (min-width: 414px) {
  .ga-numbers-fixed-bg {
    --ga-sp-fixed-bg-height: 896px;
  }
}

@media screen and (max-width: 820px) and (min-width: 430px) {
  .ga-numbers-fixed-bg {
    --ga-sp-fixed-bg-height: 932px;
  }
}

/* ===== PC GA Numbers to What is foreground handoff guard =====
   Browser zoom can leave the Numbers grid over What is. Keep only the shared
   video background once What is enters the viewport. */
@media screen and (min-width: 821px) {
  .ga-numbers.is-ga-bg-only-overlap .ga-numbers__inner,
  .ga-numbers.is-ga-bg-only-overlap .ga-numbers__circle {
    opacity: var(--ga-numbers-content-opacity, 1) !important;
    visibility: visible !important;
    pointer-events: none !important;
  }

  .ga-numbers.is-ga-bg-only-overlap .ga-numbers__stage {
    background: transparent !important;
  }

  .ga-numbers.is-ga-bg-only-overlap .ga-numbers__bg,
  .ga-numbers.is-ga-bg-only-overlap .ga-numbers__bg::before,
  .ga-numbers.is-ga-bg-only-overlap .ga-numbers__overlay {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .ga-whatis {
    position: relative !important;
    z-index: 3 !important;
  }
}

/* ===== PC What is proportional foreground guard =====
   Keep the fixed layer limited to the Numbers video background. */
@media screen and (min-width: 821px) {
  .ga-whatis {
    --ga-whatis-ellipse-lift: min(calc(120 / 1440 * 100vw), calc(120 / 854 * 100dvh));
    --ga-whatis-ellipse-drop: min(calc(40 / 1440 * 100vw), calc(40 / 854 * 100dvh));
  }

  .ga-whatis::before,
  .ga-whatis::after {
    width: min(19.1426vw, 32.2788dvh) !important;
    height: min(72.6563vw, 122.5129977dvh) !important;
    transform-origin: 0 0 !important;
  }

  .ga-whatis::before {
    left: calc(50% - min(33.75vw, 56.9087dvh)) !important;
    top: calc(min(24.7253vw, 41.6913dvh) - var(--ga-whatis-ellipse-lift) + var(--ga-whatis-ellipse-drop)) !important;
  }

  .ga-whatis::after {
    left: calc(50% + min(52.0833vw, 87.8220dvh)) !important;
    right: auto !important;
    top: calc(min(9.0972vw, 15.3396dvh) - var(--ga-whatis-ellipse-lift) + var(--ga-whatis-ellipse-drop)) !important;
  }
}

/* ===== PC GA Numbers scroll space trim =====
   Keep enough scroll distance for the center reveal and staged values. */
@media screen and (min-width: 821px) {
  .ga-numbers,
  .ga-numbers.is-ga-ready {
    height: 255vh !important;
    min-height: 255vh !important;
  }
}

/* ===== PC GA Numbers bottom gutter trim =====
   Fill the viewport with the foreground grid so the last line sits near the section bottom.
   Number digit animations stay inside each cell and are not retimed here. */
@media screen and (min-width: 821px) {
  .ga-numbers__stage,
  .ga-numbers.is-ga-pinned .ga-numbers__stage,
  .ga-numbers.is-ga-past .ga-numbers__stage {
    display: grid !important;
    place-items: stretch center !important;
  }

  .ga-numbers__inner {
    height: 100vh !important;
    height: 100dvh !important;
    max-height: none !important;
  }

  .ga-numbers__grid {
    height: 100% !important;
    min-height: 0 !important;
    align-self: stretch !important;
  }
}

/* ===== PC Numbers / WHAT IS shared 1440x854 frame =====
   Keep the 1440px comp proportions on laptops, but do not enlarge past the comp
   on wide displays. Both sections use the same query-container width. */
@media screen and (min-width: 821px) {
  :root {
    --ga-pc-design-frame-w: min(100vw, calc(1440 / 854 * 100vh), 1440px);
    --ga-pc-design-frame-h: min(100vh, calc(854 / 1440 * 100vw), 854px);
  }

  @supports (height: 100dvh) {
    :root {
      --ga-pc-design-frame-w: min(100vw, calc(1440 / 854 * 100dvh), 1440px);
      --ga-pc-design-frame-h: min(100dvh, calc(854 / 1440 * 100vw), 854px);
    }
  }

  .ga-numbers__stage,
  .ga-numbers.is-ga-pinned .ga-numbers__stage,
  .ga-numbers.is-ga-past .ga-numbers__stage {
    display: grid !important;
    place-items: center !important;
  }

  .ga-numbers__inner {
    width: var(--ga-pc-design-frame-w) !important;
    max-width: var(--ga-pc-design-frame-w) !important;
    height: var(--ga-pc-design-frame-h) !important;
    min-height: 0 !important;
    max-height: var(--ga-pc-design-frame-h) !important;
    margin-right: auto !important;
    margin-left: auto !important;
    box-sizing: border-box !important;
    container-type: inline-size;
  }

  .ga-whatis__inner {
    width: var(--ga-pc-design-frame-w) !important;
    max-width: var(--ga-pc-design-frame-w) !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    box-sizing: border-box !important;
    container-type: inline-size;
  }

  .ga-numbers__head {
    padding-left: calc(80 / 1440 * 100cqw) !important;
  }

  .ga-whatis__label,
  .ga-whatis__title {
    margin-left: calc(42 / 1440 * 100cqw) !important;
  }

  .ga-whatis__label {
    gap: 6px !important;
    font-family: "Noto Sans JP", sans-serif !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 12px !important;
    letter-spacing: 0 !important;
  }

  .ga-whatis__mark {
    width: 12px !important;
    height: 12px !important;
    flex-basis: 12px !important;
  }
}

/* ===== PC GA Numbers center reveal smoothing =====
   The section stays compact, so soften skipped scroll frames by animating the JS
   clip-path updates instead of letting the background jump to full screen. */
@media screen and (min-width: 821px) {
  #front > header {
    transition: opacity 0.28s ease, visibility 0s linear 0s;
  }

  body.is-ga-numbers-header-hidden #front > header {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.28s ease, visibility 0s linear 0.28s;
  }

  .ga-numbers:not(.is-ga-fixed-bg-active):not(.is-ga-past) .ga-numbers__bg,
  .ga-numbers:not(.is-ga-fixed-bg-active):not(.is-ga-past) .ga-numbers__overlay {
    transition:
      clip-path 0.9s cubic-bezier(0.16, 1, 0.3, 1),
      -webkit-clip-path 0.9s cubic-bezier(0.16, 1, 0.3, 1) !important;
    will-change: clip-path;
  }

  .ga-numbers:not(.is-ga-fixed-bg-active):not(.is-ga-past) .ga-numbers__circle {
    transition: opacity 0.45s ease !important;
  }
}

/* ===== PC WHAT IS link card vertical rhythm =====
   Match the comp's 61px top inset as a 1440px-frame ratio. */
@media screen and (min-width: 821px) {
  .ga-whatis__link {
    align-items: flex-start !important;
    padding-top: calc(61 / 1440 * 100cqw) !important;
  }

  .ga-whatis__link-title {
    font-size: calc(20 / 1440 * 100cqw) !important;
    line-height: calc(24 / 1440 * 100cqw) !important;
  }
}

/* ===== SP WHAT IS typography ratio =====
   Text over 14px follows the SP 375px ratio with fixed upper bounds.
   Text at 14px or smaller stays fixed for readability. */
@media screen and (max-width: 820px) {
  .ga-whatis__label {
    font-size: 14px !important;
    line-height: 14px !important;
    letter-spacing: 0.7px !important;
  }

  .ga-whatis__title {
    font-size: min(calc(50 / 375 * 100vw), 50px) !important;
    line-height: min(calc(52 / 375 * 100vw), 52px) !important;
  }

  .ga-whatis__lead {
    font-size: min(calc(19 / 375 * 100vw), 19px) !important;
    line-height: min(calc(28 / 375 * 100vw), 28px) !important;
  }

  .ga-whatis__message-title {
    font-size: min(calc(20 / 375 * 100vw), 20px) !important;
    line-height: min(calc(24 / 375 * 100vw), 24px) !important;
  }

  .ga-whatis__message-en {
    font-size: 12px !important;
    line-height: 24px !important;
  }

  .ga-whatis__message-text {
    color: #fff !important;
    font-family: "Google Sans Flex", sans-serif !important;
    font-size: min(calc(16 / 375 * 100vw), 16px) !important;
    font-style: normal !important;
    font-weight: 600 !important;
    line-height: min(calc(28 / 375 * 100vw), 28px) !important;
    letter-spacing: 0 !important;
  }

  .ga-whatis__more {
    font-size: min(calc(16 / 375 * 100vw), 16px) !important;
    line-height: min(calc(16 / 375 * 100vw), 16px) !important;
  }

  .ga-whatis__link-title {
    font-size: min(calc(20 / 375 * 100vw), 20px) !important;
    line-height: min(calc(24 / 375 * 100vw), 24px) !important;
  }

  .ga-whatis__link-en {
    font-size: 12px !important;
    line-height: 24px !important;
  }
}

/* ===== SP WHAT IS card rhythm ratio =====
   Match the 114px card and 30/6/30 vertical rhythm on a 375px SP basis. */
@media screen and (max-width: 820px) {
  .ga-whatis__link {
    height: min(calc(114 / 375 * 100vw), 114px) !important;
    min-height: min(calc(114 / 375 * 100vw), 114px) !important;
    padding-top: min(calc(30 / 375 * 100vw), 30px) !important;
    padding-right: min(calc(44 / 375 * 100vw), 44px) !important;
    padding-bottom: min(calc(30 / 375 * 100vw), 30px) !important;
    padding-left: 0 !important;
  }

  .ga-whatis__link-en {
    margin-top: min(calc(6 / 375 * 100vw), 6px) !important;
  }

  .ga-whatis__links {
    margin-top: min(calc(44 / 375 * 100vw), 44px) !important;
  }
}

/* ===== PC WHAT IS decoration clipping guard =====
   Keep the background ellipses inside WHAT IS after browser zoom changes. */
@media screen and (min-width: 821px) {
  .ga-whatis {
    --ga-whatis-overlap: 0px !important;
    margin-top: 0 !important;
    overflow: hidden !important;
    clip-path: inset(0) !important;
    contain: paint !important;
  }

  .ga-numbers:not(.is-ga-bg-only-overlap):not(.is-ga-past) ~ .ga-whatis .ga-whatis__inner,
  .ga-numbers:not(.is-ga-bg-only-overlap):not(.is-ga-past) ~ .ga-whatis::before,
  .ga-numbers:not(.is-ga-bg-only-overlap):not(.is-ga-past) ~ .ga-whatis::after {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

/* ===== PC GA Numbers readable hold =====
   Add a short reading pause after the values appear without making the section too long. */
@media screen and (min-width: 821px) {
  .ga-numbers,
  .ga-numbers.is-ga-ready {
    height: 285vh !important;
    min-height: 285vh !important;
  }
}

/* ===== PC News ratio patch =====
   Scale the News section from the 1440px PC comp.
   Small text at 14px or below stays fixed for readability. */
@media screen and (min-width: 821px) {
  .ga-news {
    min-height: 0 !important;
    padding-top: calc(145 / var(--design-pc) * 100cqw) !important;
    padding-bottom: calc(112 / var(--design-pc) * 100cqw) !important;
    container-type: inline-size;
  }

  .ga-news__inner {
    grid-template-columns: minmax(calc(220 / var(--design-pc) * 100cqw), calc(296 / var(--design-pc) * 100cqw)) minmax(0, calc(814 / var(--design-pc) * 100cqw)) !important;
    column-gap: calc(106 / var(--design-pc) * 100cqw) !important;
    width: calc(1216 / var(--design-pc) * 100cqw) !important;
    max-width: none !important;
  }

  .ga-news__side {
    padding-left: calc(16 / var(--design-pc) * 100cqw) !important;
  }

  .ga-news__label {
    gap: calc(4 / var(--design-pc) * 100cqw) !important;
  }

  .ga-news__title {
    gap: calc(22 / var(--design-pc) * 100cqw) !important;
    margin-top: calc(28 / var(--design-pc) * 100cqw) !important;
    font-size: calc(66 / var(--design-pc) * 100cqw) !important;
    line-height: calc(40 / var(--design-pc) * 100cqw) !important;
  }

  .ga-news__title::after {
    border-top-width: calc(5.5 / var(--design-pc) * 100cqw) !important;
    border-bottom-width: calc(5.5 / var(--design-pc) * 100cqw) !important;
    border-left-width: calc(9 / var(--design-pc) * 100cqw) !important;
  }

  .ga-news__cats {
    --ga-news-indicator-x: calc(9 / var(--design-pc) * 100cqw);
    --ga-news-indicator-y: calc(9 / var(--design-pc) * 100cqw);
    gap: calc(25 / var(--design-pc) * 100cqw) !important;
    margin-top: calc(68 / var(--design-pc) * 100cqw) !important;
  }

  .ga-news__cats::before,
  .ga-news__cat::before {
    width: calc(18 / var(--design-pc) * 100cqw) !important;
    height: calc(18 / var(--design-pc) * 100cqw) !important;
  }

  .ga-news__cats::after {
    width: calc(8 / var(--design-pc) * 100cqw) !important;
    height: calc(8 / var(--design-pc) * 100cqw) !important;
  }

  .ga-news__cat {
    gap: calc(13 / var(--design-pc) * 100cqw) !important;
    font-size: max(14px, calc(16 / var(--design-pc) * 100cqw)) !important;
    line-height: 14px !important;
    letter-spacing: calc(0.8 / var(--design-pc) * 100cqw) !important;
  }

  .ga-news__more {
    gap: calc(17 / var(--design-pc) * 100cqw) !important;
    margin-top: calc(71 / var(--design-pc) * 100cqw) !important;
    font-size: max(14px, calc(16 / var(--design-pc) * 100cqw)) !important;
    line-height: max(14px, calc(16 / var(--design-pc) * 100cqw)) !important;
  }

  .ga-news__more-icon {
    width: calc(40 / var(--design-pc) * 100cqw) !important;
    height: calc(40 / var(--design-pc) * 100cqw) !important;
    border-radius: calc(4 / var(--design-pc) * 100cqw) !important;
    font-size: max(14px, calc(17 / var(--design-pc) * 100cqw)) !important;
  }

  .ga-news__item {
    grid-template-columns: calc(169 / var(--design-pc) * 100cqw) minmax(0, 1fr) !important;
    column-gap: calc(45 / var(--design-pc) * 100cqw) !important;
    height: calc(190 / var(--design-pc) * 100cqw) !important;
    min-height: calc(190 / var(--design-pc) * 100cqw) !important;
    padding-top: calc(30 / var(--design-pc) * 100cqw) !important;
    padding-bottom: calc(30 / var(--design-pc) * 100cqw) !important;
  }

  .ga-news__thumb {
    width: calc(169 / var(--design-pc) * 100cqw) !important;
    height: calc(120 / var(--design-pc) * 100cqw) !important;
    border-radius: calc(8 / var(--design-pc) * 100cqw) !important;
  }

  .ga-news__meta {
    gap: calc(13 / var(--design-pc) * 100cqw) !important;
    margin-bottom: calc(26 / var(--design-pc) * 100cqw) !important;
  }

  .ga-news__badge {
    min-width: 78px !important;
    height: 22px !important;
    padding: 0 14px !important;
    border-radius: 999px !important;
    font-size: 12px !important;
    line-height: 12px !important;
    letter-spacing: 0.6px !important;
  }

  .ga-news__date {
    font-size: 13px !important;
    line-height: 14px !important;
    letter-spacing: 0.65px !important;
  }

  .ga-news__text {
    font-size: max(14px, calc(16 / var(--design-pc) * 100cqw)) !important;
    line-height: max(22px, calc(28 / var(--design-pc) * 100cqw)) !important;
    letter-spacing: calc(0.8 / var(--design-pc) * 100cqw) !important;
  }
}

/* ===== SP News ratio patch =====
   Scale News SP spacing from the 375px comp.
   Badge/date and text at 14px or below remain fixed. */
@media screen and (max-width: 820px) {
  .ga-news {
    padding:
      calc(96 / var(--design-sp) * 100vw)
      calc(10 / var(--design-sp) * 100vw)
      calc(72 / var(--design-sp) * 100vw) !important;
    box-sizing: border-box !important;
  }

  .ga-news__inner {
    row-gap: calc(30 / var(--design-sp) * 100vw) !important;
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    container-type: inline-size !important;
  }

  .ga-news__side {
    column-gap: calc(11 / var(--design-sp) * 100vw) !important;
  }

  .ga-news__label {
    gap: calc(6 / var(--design-sp) * 100vw) !important;
    font-size: 14px !important;
    line-height: 14px !important;
    letter-spacing: 0.7px !important;
  }

  .ga-news__mark {
    width: calc(24 / var(--design-sp) * 100vw) !important;
    height: calc(24 / var(--design-sp) * 100vw) !important;
    flex-basis: calc(24 / var(--design-sp) * 100vw) !important;
  }

  .ga-news__title {
    margin-top: calc(14 / var(--design-sp) * 100vw) !important;
    font-size: calc(50 / var(--design-sp) * 100vw) !important;
    line-height: calc(52 / var(--design-sp) * 100vw) !important;
  }

  .ga-news__more {
    gap: calc(11 / var(--design-sp) * 100vw) !important;
    margin-top: calc(17 / var(--design-sp) * 100vw) !important;
    font-size: max(14px, calc(16 / var(--design-sp) * 100vw)) !important;
    line-height: max(14px, calc(16 / var(--design-sp) * 100vw)) !important;
  }

  .ga-news__more-icon {
    width: 40px !important;
    height: 40px !important;
    flex-basis: 40px !important;
    border-radius: 5px !important;
  }

  .ga-news__item {
    grid-template-columns: calc(98.6 / var(--design-sp) * 100vw) minmax(0, 1fr) !important;
    column-gap: calc(12.8 / var(--design-sp) * 100vw) !important;
    padding-top: calc(24 / var(--design-sp) * 100vw) !important;
    padding-bottom: calc(18 / var(--design-sp) * 100vw) !important;
  }

  .ga-news__thumb {
    width: calc(98.6 / var(--design-sp) * 100vw) !important;
    height: calc(70 / var(--design-sp) * 100vw) !important;
    border-radius: calc(10 / var(--design-sp) * 100vw) !important;
  }

  .ga-news__body {
    max-width: none !important;
  }

  .ga-news__meta {
    gap: calc(12 / var(--design-sp) * 100vw) !important;
    margin-bottom: calc(10 / var(--design-sp) * 100vw) !important;
  }

  .ga-news__badge {
    min-width: 68px !important;
    height: 22px !important;
    padding: 0 10px 0 12px !important;
    border-radius: 203px !important;
    font-size: 11px !important;
    line-height: 12px !important;
    letter-spacing: 0.55px !important;
  }

  .ga-news__date {
    font-size: 13px !important;
    line-height: 14px !important;
    letter-spacing: 0.65px !important;
  }

  .ga-news__text {
    font-size: 14px !important;
    line-height: 23px !important;
    letter-spacing: 0.7px !important;
  }
}

/* ===== SP GA Mission text visibility guard ===== */
@media screen and (max-width: 820px) {
  .ga-mission .fadeIn_trigger,
  .ga-mission .fadeUp_trigger,
  .ga-mission .fadeDown_trigger,
  .ga-mission .fadeLeft_trigger,
  .ga-mission .fadeRight_trigger,
  .ga-mission .fadeIn,
  .ga-mission .fadeUp,
  .ga-mission .fadeDown,
  .ga-mission .fadeLeft,
  .ga-mission .fadeRight,
  .ga-mission__card,
  .ga-mission__eyebrow,
  .ga-mission__num,
  .ga-mission__rule,
  .ga-mission__title,
  .ga-mission__text {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
    animation-delay: 0s !important;
    transition-delay: 0s !important;
  }
}

/* ===== PC GA Numbers: preserve the black handoff during fixed-bg overlap ===== */
@media screen and (min-width: 821px) {
  .ga-numbers.is-ga-fixed-bg-active,
  .ga-numbers.is-ga-past {
    background: transparent !important;
  }

  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__stage,
  .ga-numbers.is-ga-past .ga-numbers__stage,
  .ga-numbers.is-ga-bg-only-overlap .ga-numbers__stage {
    background: transparent !important;
  }

  .ga-numbers-fixed-bg.is-active {
    opacity: 1 !important;
    visibility: visible !important;
  }

  .ga-numbers-fixed-bg::after {
    background: #5e5e5e !important;
    opacity: var(--ga-numbers-fixed-overlay-opacity, 0.82) !important;
  }

  .ga-numbers__bg video,
  .ga-numbers-fixed-bg video {
    filter: saturate(0.58) contrast(1.03) brightness(0.80) !important;
  }

  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__bg,
  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__bg::before,
  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__overlay {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__bg video {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  .ga-numbers.is-ga-fixed-bg-active .ga-numbers__inner,
  .ga-numbers.is-ga-overlap .ga-numbers__inner,
  .ga-numbers.is-ga-past .ga-numbers__inner,
  .ga-numbers.is-ga-bg-only-overlap .ga-numbers__inner {
    opacity: var(--ga-numbers-content-opacity, 1) !important;
    visibility: visible !important;
    transform: translateY(0) !important;
  }
}

/* Numbers の黒い固定背景を、次の WHAT IS セクションへ持ち込まない。 */
@media screen and (min-width: 821px) {
  .ga-whatis {
    background: #0b1930 !important;
  }
}

/* GA Numbers: center the PC canvas inside the 76px circle anchor. */
@media screen and (min-width: 821px) {
  .ga-numbers__canvas {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
  }
}

/* GA Numbers: keep the SP canvas centered on the reveal-circle anchor. */
@media screen and (max-width: 820px) {
  .ga-numbers__canvas {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
  }

  .ga-numbers:not(.is-ga-sp-content-in):not(.is-ga-past) .ga-numbers__inner {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(12px) !important;
  }
}

/* SP FV catch text adjustment */
@media screen and (max-width: 820px) {
  .ga-hero__catch {
    --fv-catch-width: calc(320 / var(--design-sp) * 100cqw);
    --fv-catch-font: calc(36 / var(--design-sp) * 100cqw);
  }
}

/* SP / tablet Value cards: content-driven layout */
@media screen and (max-width: 820px) {
  .ga-mission__card {
    display: grid !important;
    grid-template-columns:
      max-content
      max-content
      minmax(0, 1fr) !important;
    column-gap: 16px !important;
    align-content: start !important;

    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 30px 20px 28px !important;
    box-sizing: border-box !important;
  }

  .ga-mission__eyebrow,
  .ga-mission__num,
  .ga-mission__rule,
  .ga-mission__title,
  .ga-mission__text {
    position: static !important;
    inset: auto !important;
    transform: none !important;
  }

  .ga-mission__eyebrow {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: end !important;
    margin: 0 !important;
  }

  .ga-mission__num {
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: end !important;
    margin: 0 !important;
    font-size: 28px !important;
    line-height: 1 !important;
  }

  .ga-mission__rule {
    grid-column: 1 / -1 !important;
    width: 34px !important;
    height: 1px !important;
    margin: 10px 0 18px !important;
  }

  .ga-mission__title {
    grid-column: 1 / -1 !important;
    width: auto !important;
    margin: 0 !important;
    font-size: clamp(24px, 6.8vw, 29px) !important;
    line-height: 1.42 !important;
    text-align: left !important;
    white-space: normal !important;
  }

  .ga-mission__text {
    grid-column: 1 / -1 !important;
    width: auto !important;
    max-width: none !important;
    margin: 22px 0 0 !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    letter-spacing: 0.04em !important;
  }
}

/* SP Value label: improve readability without affecting tablet and PC. */
@media screen and (max-width: 767px) {
  .ga-mission__eyebrow {
    font-size: 15px !important;
  }
}

/* ============================================================== 
   Responsive stability patch
   - Keep the 375px SP scale from growing without a limit.
   - Bridge the existing 820px / 821px layout switch.
   - Allow text to wrap before it reaches the viewport edge.
============================================================== */
@media screen and (min-width: 391px) and (max-width: 820px) {
  .ga-hero__catch {
    --fv-catch-width: clamp(320px, 43vw, 353px);
    --fv-catch-font: clamp(36px, 4.75vw, 39px);
    --fv-catch-line: clamp(48px, 6vw, 50px);
  }

  .ga-services__head {
    gap: clamp(22px, 3vw, 25px);
    margin-bottom: clamp(52px, 7vw, 56px);
  }

  .ga-services__title {
    font-size: clamp(47px, 6.2vw, 51px);
    line-height: 1.2;
  }

  .ga-services__lead {
    min-width: 0;
    max-width: 100%;
    font-size: clamp(18px, 2.3vw, 20px);
    line-height: 1.55;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .ga-services__cardtitle {
    min-width: 0;
    font-size: clamp(18px, 2.4vw, 20px);
    line-height: 1.5;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .ga-services__arrow {
    width: clamp(31px, 4vw, 34px) !important;
    height: clamp(31px, 4vw, 34px) !important;
  }

  .ga-news {
    padding-top: clamp(96px, 12vw, 100px) !important;
    padding-right: clamp(16px, 3vw, 24px) !important;
    padding-bottom: clamp(72px, 10vw, 82px) !important;
    padding-left: clamp(16px, 3vw, 24px) !important;
  }

  .ga-news__inner {
    row-gap: clamp(30px, 4vw, 34px) !important;
  }

  .ga-news__title {
    margin-top: 14px !important;
    font-size: clamp(50px, 6.5vw, 53px) !important;
    line-height: 1.08 !important;
  }

  .ga-news__item {
    grid-template-columns: clamp(99px, 16vw, 128px) minmax(0, 1fr) !important;
    column-gap: clamp(13px, 2.4vw, 18px) !important;
    padding-top: 24px !important;
    padding-bottom: 20px !important;
  }

  .ga-news__thumb {
    width: clamp(99px, 16vw, 128px) !important;
    height: clamp(70px, 11.4vw, 91px) !important;
    border-radius: 10px !important;
  }

  .ga-news__body,
  .ga-news__text {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }
}

@media screen and (min-width: 768px) and (max-width: 820px) {
  /* Match child pages: show SIMULATION and RECRUIT side by side on tablets. */
  .ga-entry-links__inner {
    width: calc(100% - 40px);
    max-width: none;
    padding-right: 0;
    padding-left: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ga-whatis__inner {
    width: min(calc(100% - 64px), 720px) !important;
    max-width: 720px !important;
  }

  .ga-whatis__left,
  .ga-whatis__right {
    width: 100% !important;
    max-width: 640px;
    margin-right: auto;
    margin-left: auto;
  }

  .ga-whatis__message {
    max-width: 472px !important;
  }
}

@media screen and (min-width: 821px) and (max-width: 1279px) {
  .ga-hero__catch {
    --fv-catch-width: clamp(319px, calc(449 / var(--design-pc) * 100cqw), 399px);
    --fv-band-height: clamp(133px, calc(187 / var(--design-pc) * 100cqw), 166px);
    --fv-band-radius: clamp(11px, calc(15 / var(--design-pc) * 100cqw), 13px);
    --fv-catch-font: clamp(36.5px, calc(51.5 / var(--design-pc) * 100cqw), 45.8px);
    --fv-catch-line: clamp(49px, calc(69 / var(--design-pc) * 100cqw), 61.3px);
    --fv-catch-pad-top: clamp(28px, calc(40 / var(--design-pc) * 100cqw), 35.6px);
    --fv-catch-pad-right: clamp(5px, calc(7 / var(--design-pc) * 100cqw), 6.2px);
    --fv-catch-pad-bottom: clamp(28px, calc(40 / var(--design-pc) * 100cqw), 35.6px);
    --fv-catch-pad-left: clamp(22px, calc(31 / var(--design-pc) * 100cqw), 27.6px);
  }

  .ga-services__head {
    display: flex;
    gap: clamp(32px, 4vw, 52px) !important;
  }

  .ga-services__headleft,
  .ga-services__lead {
    min-width: 0;
  }

  .ga-services__lead {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .ga-news {
    padding-top: clamp(96px, calc(145 / var(--design-pc) * 100cqw), 128px) !important;
    padding-bottom: clamp(82px, calc(112 / var(--design-pc) * 100cqw), 100px) !important;
  }

  .ga-news__title {
    font-size: clamp(50px, calc(66 / var(--design-pc) * 100cqw), 59px) !important;
    line-height: 1.08 !important;
  }
}

/* Compact PC Services guard: prevent the lead from crossing the viewport edge. */
@media screen and (min-width: 1280px) and (max-width: 1439px) {
  .ga-services__head {
    display: flex;
    gap: clamp(48px, 4vw, 58px) !important;
  }

  .ga-services__headleft,
  .ga-services__lead {
    min-width: 0;
  }

  .ga-services__lead {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }
}

/* Value 01-03 title typography: Figma PC spec */
@media screen and (min-width: 821px) {
  .ga-mission__title {
    font-family: "Noto Sans JP", sans-serif !important;
    font-size: min(
      calc(40.5 / 1440 * 100cqw),
      calc(40.5 / 854 * 100dvh)
    ) !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: min(
      calc(57 / 1440 * 100cqw),
      calc(57 / 854 * 100dvh)
    ) !important;
    letter-spacing: 0 !important;
  }

  /* Value 01：上から326px */
  .ga-mission__grid > .ga-mission__card:nth-child(2) .ga-mission__title {
    top: min(
      calc(326 / 1440 * 100cqw),
      calc(326 / 854 * 100dvh)
    ) !important;
  }

  /* Value 02：上から316px */
  .ga-mission__grid > .ga-mission__card:nth-child(3) .ga-mission__title {
    top: min(
      calc(316 / 1440 * 100cqw),
      calc(316 / 854 * 100dvh)
    ) !important;
  }

  /* Value 03：上から333px */
  .ga-mission__grid > .ga-mission__card:nth-child(6) .ga-mission__title {
    top: min(
      calc(333 / 1440 * 100cqw),
      calc(333 / 854 * 100dvh)
    ) !important;
  }

  /* Value 02：Value・数字・横線の位置 */
  .ga-mission__grid > .ga-mission__card:nth-child(3) .ga-mission__eyebrow {
    top: min(
      calc(180 / 1440 * 100cqw),
      calc(180 / 854 * 100dvh)
    ) !important;
  }

  .ga-mission__grid > .ga-mission__card:nth-child(3) .ga-mission__num {
    top: min(
      calc(199 / 1440 * 100cqw),
      calc(199 / 854 * 100dvh)
    ) !important;
  }

  .ga-mission__grid > .ga-mission__card:nth-child(3) .ga-mission__rule {
    top: min(
      calc(279 / 1440 * 100cqw),
      calc(279 / 854 * 100dvh)
    ) !important;
  }

  /* Value 03：Value・数字・横線の位置 */
  .ga-mission__grid > .ga-mission__card:nth-child(6) .ga-mission__eyebrow {
    top: min(
      calc(200 / 1440 * 100cqw),
      calc(200 / 854 * 100dvh)
    ) !important;
  }

  .ga-mission__grid > .ga-mission__card:nth-child(6) .ga-mission__num {
    top: min(
      calc(216 / 1440 * 100cqw),
      calc(216 / 854 * 100dvh)
    ) !important;
  }

  .ga-mission__grid > .ga-mission__card:nth-child(6) .ga-mission__rule {
    top: min(
      calc(296 / 1440 * 100cqw),
      calc(296 / 854 * 100dvh)
    ) !important;
  }
}

/* Tablet Value title guard: keep the 820px / 821px switch continuous. */
@media screen and (min-width: 821px) and (max-width: 1279px) {
  .ga-mission__title {
    font-size: clamp(
      29px,
      min(calc(40.5 / 1440 * 100cqw), calc(40.5 / 854 * 100dvh)),
      36px
    ) !important;
    line-height: clamp(
      41px,
      min(calc(57 / 1440 * 100cqw), calc(57 / 854 * 100dvh)),
      51px
    ) !important;
    white-space: normal !important;
  }
}

/* PC Value frame: scale the complete design together and stop at 1920px. */
@media screen and (min-width: 1280px) {
  .ga-mission {
    padding:
      min(calc(5 / 1440 * 100vw), 6.667px)
      min(calc(10 / 1440 * 100vw), 13.333px)
      min(calc(5 / 1440 * 100vw), 6.667px)
      min(calc(5 / 1440 * 100vw), 6.667px) !important;
  }

  .ga-mission__grid {
    width: 100%;
    max-width: 1900px;
    gap: min(calc(5 / 1440 * 100vw), 6.667px);
  }

  .ga-mission__tile {
    height: clamp(
      420px,
      min(calc(650 / 1440 * 100vw), calc(650 / 854 * 100dvh)),
      866.667px
    ) !important;
  }

  .ga-mission__eyebrow {
    top: min(
      calc(189 / 1440 * 100vw),
      calc(189 / 854 * 100dvh),
      252px
    ) !important;
    font-size: clamp(
      12px,
      min(calc(12 / 1440 * 100vw), calc(12 / 854 * 100dvh)),
      16px
    ) !important;
    line-height: clamp(
      12px,
      min(calc(12 / 1440 * 100vw), calc(12 / 854 * 100dvh)),
      16px
    ) !important;
  }

  .ga-mission__num {
    top: min(
      calc(209 / 1440 * 100vw),
      calc(209 / 854 * 100dvh),
      278.667px
    ) !important;
    font-size: min(
      calc(69 / 1440 * 100vw),
      calc(69 / 854 * 100dvh),
      92px
    ) !important;
    line-height: min(
      calc(69 / 1440 * 100vw),
      calc(69 / 854 * 100dvh),
      92px
    ) !important;
  }

  .ga-mission__rule {
    top: min(
      calc(289 / 1440 * 100vw),
      calc(289 / 854 * 100dvh),
      385.333px
    ) !important;
    width: min(
      calc(40 / 1440 * 100vw),
      calc(40 / 854 * 100dvh),
      53.333px
    ) !important;
    height: min(calc(1 / 1440 * 100vw), 1.333px) !important;
  }

  .ga-mission__title {
    top: min(
      calc(326 / 1440 * 100vw),
      calc(326 / 854 * 100dvh),
      434.667px
    ) !important;
    font-size: min(
      calc(40.5 / 1440 * 100vw),
      calc(40.5 / 854 * 100dvh),
      54px
    ) !important;
    line-height: min(
      calc(57 / 1440 * 100vw),
      calc(57 / 854 * 100dvh),
      76px
    ) !important;
  }

  .ga-mission__text {
    right: min(
      calc(22 / 1440 * 100vw),
      calc(22 / 854 * 100dvh),
      29.333px
    ) !important;
    bottom: min(
      calc(28 / 1440 * 100vw),
      calc(28 / 854 * 100dvh),
      37.333px
    ) !important;
    left: min(
      calc(23 / 1440 * 100vw),
      calc(23 / 854 * 100dvh),
      30.667px
    ) !important;
    font-size: max(
      14px,
      min(
        calc(16 / 1440 * 100vw),
        calc(16 / 854 * 100dvh),
        21.333px
      )
    ) !important;
    line-height: max(
      22px,
      min(
        calc(28 / 1440 * 100vw),
        calc(28 / 854 * 100dvh),
        37.333px
      )
    ) !important;
    letter-spacing: min(
      calc(0.8 / 1440 * 100vw),
      calc(0.8 / 854 * 100dvh),
      1.067px
    ) !important;
  }

  .ga-mission__grid > .ga-mission__card:nth-child(2) .ga-mission__title {
    top: min(
      calc(326 / 1440 * 100vw),
      calc(326 / 854 * 100dvh),
      434.667px
    ) !important;
  }

  .ga-mission__grid > .ga-mission__card:nth-child(3) .ga-mission__title {
    top: min(
      calc(316 / 1440 * 100vw),
      calc(316 / 854 * 100dvh),
      421.333px
    ) !important;
  }

  .ga-mission__grid > .ga-mission__card:nth-child(6) .ga-mission__title {
    top: min(
      calc(333 / 1440 * 100vw),
      calc(333 / 854 * 100dvh),
      444px
    ) !important;
  }

  .ga-mission__grid > .ga-mission__card:nth-child(3) .ga-mission__eyebrow {
    top: min(
      calc(180 / 1440 * 100vw),
      calc(180 / 854 * 100dvh),
      240px
    ) !important;
  }

  .ga-mission__grid > .ga-mission__card:nth-child(3) .ga-mission__num {
    top: min(
      calc(199 / 1440 * 100vw),
      calc(199 / 854 * 100dvh),
      265.333px
    ) !important;
  }

  .ga-mission__grid > .ga-mission__card:nth-child(3) .ga-mission__rule {
    top: min(
      calc(279 / 1440 * 100vw),
      calc(279 / 854 * 100dvh),
      372px
    ) !important;
  }

  .ga-mission__grid > .ga-mission__card:nth-child(6) .ga-mission__eyebrow {
    top: min(
      calc(200 / 1440 * 100vw),
      calc(200 / 854 * 100dvh),
      266.667px
    ) !important;
  }

  .ga-mission__grid > .ga-mission__card:nth-child(6) .ga-mission__num {
    top: min(
      calc(216 / 1440 * 100vw),
      calc(216 / 854 * 100dvh),
      288px
    ) !important;
  }

  .ga-mission__grid > .ga-mission__card:nth-child(6) .ga-mission__rule {
    top: min(
      calc(296 / 1440 * 100vw),
      calc(296 / 854 * 100dvh),
      394.667px
    ) !important;
  }
}

/* PC supporting text: keep the approved fixed sizes. */
@media screen and (min-width: 1280px) {
  .ga-numbers__sub,
  .ga-mission__eyebrow,
  .ga-news__badge {
    font-size: 12px !important;
  }

  .ga-news__date {
    font-size: 13px !important;
  }
}

/* ===== Services v2 section ===== */
.ga-services-v2 {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  overflow: hidden;
  color: #000;
  background: #fff;
}

.ga-services-v2,
.ga-services-v2 * {
  box-sizing: border-box;
}

.ga-services-v2__head {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  width: min(100%, 1920px);
  max-width: 1920px;
  min-height: min(35.694444vw, 685.333px);
  margin-inline: auto;
}

.ga-services-v2__head-left {
  padding-left: min(5.555556vw, 106.667px);
}

.ga-services-v2__label {
  display: flex;
  align-items: center;
  gap: min(0.225694vw, 4.333px);
  margin: 0 0 min(0.277778vw, 5.333px);
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.07em;
}

.ga-services-v2__mark {
  display: inline-block;
  width: min(1.180556vw, 22.667px);
  aspect-ratio: 1;
  flex: 0 0 auto;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 17 17' fill='none'%3E%3Cpath d='M15.0002 15.0002C15.9645 14.0359 13.7792 10.2872 10.1191 6.62712C6.45909 2.96708 2.71032 0.781744 1.74602 1.74604C0.78172 2.71035 2.96705 6.45912 6.6271 10.1192C10.2871 13.7792 14.0359 15.9645 15.0002 15.0002Z' stroke='%2315B9F5' stroke-miterlimit='10'/%3E%3Cpath d='M1.746 15.0002C0.781704 14.0359 2.96704 10.2872 6.62708 6.62712C10.2871 2.96708 14.0359 0.781744 15.0002 1.74604C15.9645 2.71035 13.7792 6.45912 10.1191 10.1192C6.45908 13.7792 2.7103 15.9645 1.746 15.0002Z' stroke='%2315B9F5' stroke-miterlimit='10'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.ga-services-v2__title {
  margin: 0;
  color: #000;
  font-family: "Google Sans Flex", -apple-system, "Helvetica Neue", Arial, sans-serif;
  font-size: clamp(48px, 6.25vw, 120px);
  font-style: normal;
  font-weight: 600;
  line-height: 1.688889;
  letter-spacing: 0;
}

.ga-services-v2__lead {
  margin: 0;
  padding-left: min(4.027778vw, 77.333px);
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(20px, 2.222222vw, 42.667px);
  font-weight: 700;
  line-height: 1.90625;
}

.ga-services-v2__body {
  display: flex;
  width: min(100%, 1920px);
  max-width: 1920px;
  margin-inline: auto;
}

.ga-services-v2__life {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  width: 50%;
  aspect-ratio: 720 / 622;
  padding-left: min(5.763889vw, 110.667px);
  background: #18bad2;
}

.ga-services-v2__life-title {
  margin: 0;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(14px, 4.621875vw, 88.74px);
  font-style: normal;
  font-weight: 700;
  line-height: 1.19163;
}

.ga-services-v2__life-title span {
  display: block;
}

.ga-services-v2__business {
  position: relative;
  display: flex;
  align-items: center;
  width: min(100%, 1920px);
  max-width: 1920px;
  aspect-ratio: 1440 / 622;
  margin-inline: auto;
  padding-left: min(5.763889vw, 110.667px);
  background: #101d35;
}

.ga-services-v2__business-title {
  margin: 0;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(14px, 4.621875vw, 88.74px);
  font-style: normal;
  font-weight: 700;
  line-height: 1.19163;
}

.ga-services-v2__business-title span {
  display: block;
}

.ga-services-v2__business-flow {
  position: absolute;
  top: min(4.375vw, 84px);
  right: min(8.194444vw, 157.333px);
  display: block;
  width: min(33.819444vw, 649.333px);
  max-width: none;
  height: auto;
}

.ga-services-v2__links {
  display: grid;
  grid-template-rows: repeat(2, 1fr);
  width: 50%;
}

.ga-services-v2__link {
  position: relative;
  display: flex;
  align-items: center;
  min-width: 0;
  overflow: hidden;
  color: #fff;
  text-decoration: none;
}

.ga-services-v2__link-image,
.ga-services-v2__link-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.ga-services-v2__link-image {
  object-fit: cover;
}

.ga-services-v2__link-shade {
  background: rgba(0, 0, 0, 0.25);
  transition:
    inset 0.35s ease,
    background 0.35s ease,
    -webkit-backdrop-filter 0.35s ease,
    backdrop-filter 0.35s ease;
}

.ga-services-v2__link-title,
.ga-services-v2__link-arrow,
.ga-services-v2__link-line,
.ga-services-v2__link-copy,
.ga-services-v2__link-corner {
  position: relative;
  z-index: 1;
}

.ga-services-v2__link-line,
.ga-services-v2__link-copy,
.ga-services-v2__link-corner {
  position: absolute;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0s linear 0.3s;
}

.ga-services-v2__link-copy {
  margin: 0;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 500;
}

.ga-services-v2__link-title {
  margin: 0;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 700;
}

.ga-services-v2__link--solar {
  padding-left: min(2.5vw, 48px);
}

.ga-services-v2__link--solar .ga-services-v2__link-title {
  font-size: clamp(14px, 2.222222vw, 42.667px);
  line-height: 1.5;
}

.ga-services-v2__link--reform {
  padding-left: min(3.472222vw, 66.667px);
}

.ga-services-v2__link--reform .ga-services-v2__link-title {
  font-size: clamp(14px, 2.083333vw, 40px);
  line-height: 1.5;
}

.ga-services-v2__link-arrow {
  --ga-services-v2-arrow-color: #4d4d4d;
  position: absolute;
  top: 50%;
  right: min(2.152778vw, 41.333px);
  display: grid;
  width: min(2.777778vw, 53.333px);
  aspect-ratio: 1;
  place-items: center;
  overflow: hidden;
  border-radius: min(0.277778vw, 5.333px);
  color: transparent;
  background: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: min(1.25vw, 24px);
  font-weight: 400;
  line-height: 1;
  transform: translateY(-50%);
  transition:
    top 0.35s ease,
    right 0.35s ease,
    background 0.35s ease,
    transform 0.35s ease;
}

.ga-services-v2__link-arrow::before,
.ga-services-v2__link-arrow::after {
  content: "";
  position: absolute;
  inset: 0;
  display: block;
  background: var(--ga-services-v2-arrow-color);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='41' height='41' viewBox='0 0 41 41' fill='none'%3E%3Cpath d='M14.1909 20.2837H26.3545' stroke='black' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M21.2756 15.2049L26.3754 20.3047L21.2756 25.4045' stroke='black' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='41' height='41' viewBox='0 0 41 41' fill='none'%3E%3Cpath d='M14.1909 20.2837H26.3545' stroke='black' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M21.2756 15.2049L26.3754 20.3047L21.2756 25.4045' stroke='black' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  pointer-events: none;
  animation: none;
  will-change: transform;
  backface-visibility: hidden;
}

.ga-services-v2__link-arrow::before {
  z-index: 2;
  transform: translateX(0);
}

.ga-services-v2__link-arrow::after {
  z-index: 1;
  transform: translateX(-100%);
}

@media (hover: hover) and (pointer: fine) and (min-width: 1280px) {
  .ga-services-v2__link {
    isolation: isolate;
  }

  .ga-services-v2__link-image {
    z-index: 0;
  }

  /* Filter 1: 680 x 271 at a 1440px viewport. */
  .ga-services-v2__link-shade {
    inset: min(1.388889vw, 26.667px);
    width: auto;
    height: auto;
    z-index: 1;
    background: rgba(0, 0, 0, 0.46);
    -webkit-backdrop-filter: blur(min(0.361111vw, 6.933px));
    backdrop-filter: blur(min(0.361111vw, 6.933px));
    opacity: 0;
    transition: opacity 0.65s cubic-bezier(0.4, 0, 0.2, 1);
  }

  /* Filter 2: full 720 x 311 card at a 1440px viewport. */
  .ga-services-v2__link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    background: rgba(0, 0, 0, 0.15);
    pointer-events: none;
  }

  .ga-services-v2__link-title,
  .ga-services-v2__link-arrow,
  .ga-services-v2__link-line,
  .ga-services-v2__link-copy,
  .ga-services-v2__link-corner {
    z-index: 3;
  }

  /* Keep hidden hover contents at their final geometry so mouse-out cannot reflow them. */
  .ga-services-v2__link-line {
    top: min(3.645833vw, 70px);
    left: min(3.472222vw, 66.667px);
    width: min(2.256944vw, 43.333px);
    height: min(0.347222vw, 6.667px);
    background: #18bad2;
  }

  .ga-services-v2__link-copy {
    top: min(11.944444vw, 229.333px);
    left: min(3.472222vw, 66.667px);
    width: min(38.194444vw, 733.333px);
    font-size: min(1.111111vw, 21.333px);
    line-height: min(2.222222vw, 42.667px);
  }

  .ga-services-v2__link-corner {
    right: 0;
    bottom: 0;
    width: min(3.472222vw, 66.667px);
    height: min(3.472222vw, 66.667px);
    border-right: min(0.694444vw, 13.333px) solid #18bad2;
    border-bottom: min(0.694444vw, 13.333px) solid #18bad2;
  }

  .ga-services-v2__link-arrow::before,
  .ga-services-v2__link-arrow::after {
    animation: none;
    transition: transform 0.45s cubic-bezier(0.45, 0, 0.55, 1);
  }

  .ga-services-v2__link:hover .ga-services-v2__link-shade,
  .ga-services-v2__link:focus-visible .ga-services-v2__link-shade {
    opacity: 1;
  }

  .ga-services-v2__link:hover .ga-services-v2__link-line,
  .ga-services-v2__link:focus-visible .ga-services-v2__link-line {
    visibility: visible;
    opacity: 1;
    transition-delay: 0s;
  }

  .ga-services-v2__link:hover .ga-services-v2__link-copy,
  .ga-services-v2__link:focus-visible .ga-services-v2__link-copy {
    visibility: visible;
    opacity: 1;
  }

  .ga-services-v2__link:hover .ga-services-v2__link-arrow,
  .ga-services-v2__link:focus-visible .ga-services-v2__link-arrow {
    --ga-services-v2-arrow-color: #fff;
    right: min(3.125vw, 60px);
    background: #15b9f5;
  }

  .ga-services-v2__link:hover .ga-services-v2__link-arrow::after,
  .ga-services-v2__link:focus-visible .ga-services-v2__link-arrow::after {
    animation: none;
    transform: translateX(0);
  }

  .ga-services-v2__link:hover .ga-services-v2__link-arrow::before,
  .ga-services-v2__link:focus-visible .ga-services-v2__link-arrow::before {
    animation: none;
    transform: translateX(100%);
  }

  .ga-services-v2__link:hover .ga-services-v2__link-corner,
  .ga-services-v2__link:focus-visible .ga-services-v2__link-corner {
    visibility: visible;
    opacity: 1;
    transition-delay: 0s;
  }

  /* Keep the two title positions separate so the text can crossfade softly. */
  .ga-services-v2__link-title {
    transition: opacity 0.45s cubic-bezier(0.45, 0, 0.55, 1);
  }

  .ga-services-v2__link::before {
    position: absolute;
    top: min(4.791667vw, 92px);
    left: min(3.472222vw, 66.667px);
    z-index: 3;
    visibility: hidden;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-size: min(2.083333vw, 40px);
    font-style: normal;
    font-weight: 700;
    line-height: min(4.097222vw, 78.667px);
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition:
      opacity 0.45s cubic-bezier(0.45, 0, 0.55, 1),
      visibility 0s linear 0.45s;
  }

  .ga-services-v2__link--solar::before {
    content: "住宅エネルギー設備";
  }

  .ga-services-v2__link--reform::before {
    content: "点検・リフォーム";
  }

  .ga-services-v2__link:hover .ga-services-v2__link-title,
  .ga-services-v2__link:focus-visible .ga-services-v2__link-title {
    opacity: 0;
  }

  .ga-services-v2__link:hover::before,
  .ga-services-v2__link:focus-visible::before {
    visibility: visible;
    opacity: 1;
    transition:
      opacity 0.45s cubic-bezier(0.45, 0, 0.55, 1),
      visibility 0s linear 0s;
  }

  .ga-services-v2__link-copy {
    transition:
      opacity 0.45s cubic-bezier(0.45, 0, 0.55, 1),
      visibility 0s linear 0.45s;
  }

  .ga-services-v2__link:hover .ga-services-v2__link-copy,
  .ga-services-v2__link:focus-visible .ga-services-v2__link-copy {
    transition:
      opacity 0.45s cubic-bezier(0.45, 0, 0.55, 1),
      visibility 0s linear 0s;
  }
}

@media screen and (min-width: 1921px) {
  .ga-services-v2__head,
  .ga-services-v2__body,
  .ga-services-v2__business {
    width: 100%;
    max-width: none;
  }
}

@media screen and (max-width: 767px) {
  .ga-services-v2__head {
    display: grid;
    grid-template-columns: 1fr;
    gap: min(calc(22 / var(--design-sp) * 100vw), 22px);
    min-height: 0;
    padding:
      min(calc(54 / var(--design-sp) * 100vw), 54px)
      min(calc(10 / var(--design-sp) * 100vw), 10px)
      min(calc(22 / var(--design-sp) * 100vw), 22px);
  }

  .ga-services-v2__head-left,
  .ga-services-v2__lead {
    padding-left: 0;
  }

  .ga-services-v2__label {
    gap: min(calc(3.254 / var(--design-sp) * 100vw), 3.254px);
    margin:
      0
      0
      min(calc(14 / var(--design-sp) * 100vw), 14px)
      min(calc(4 / var(--design-sp) * 100vw), 4px);
    font-family: "Google Sans Flex", "Noto Sans JP", sans-serif;
    font-size: 14px;
    line-height: 14px;
    letter-spacing: 0.7px;
  }

  .ga-services-v2__mark {
    width: min(calc(16.746 / var(--design-sp) * 100vw), 16.746px);
  }

  .ga-services-v2__title {
    font-size: min(calc(50 / var(--design-sp) * 100vw), 50px);
    line-height: min(calc(60 / var(--design-sp) * 100vw), 60px);
  }

  .ga-services-v2__lead {
    font-size: min(calc(19 / var(--design-sp) * 100vw), 19px);
    line-height: min(calc(28 / var(--design-sp) * 100vw), 28px);
  }

  .ga-services-v2__body {
    display: block;
  }

  .ga-services-v2__life {
    align-items: flex-start;
    width: 100%;
    height: min(calc(213 / var(--design-sp) * 100vw), 213px);
    min-height: 0;
    aspect-ratio: auto;
    padding:
      min(calc(22 / var(--design-sp) * 100vw), 22px)
      0
      0
      min(calc(22 / var(--design-sp) * 100vw), 22px);
  }

  .ga-services-v2__life-title {
    font-size: min(calc(48.555 / var(--design-sp) * 100vw), 48.555px);
    line-height: min(calc(54.309 / var(--design-sp) * 100vw), 54.309px);
  }

  .ga-services-v2__business {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    aspect-ratio: auto;
    padding: 0;
  }

  .ga-services-v2__business-title {
    width: 100%;
    height: min(calc(213 / var(--design-sp) * 100vw), 213px);
    padding:
      min(calc(22 / var(--design-sp) * 100vw), 22px)
      0
      0
      min(calc(22 / var(--design-sp) * 100vw), 22px);
    font-size: min(calc(48.555 / var(--design-sp) * 100vw), 48.555px);
    line-height: min(calc(54.309 / var(--design-sp) * 100vw), 54.309px);
  }

  .ga-services-v2__business-flow {
    position: static;
    justify-self: center;
    width: min(calc(325 / var(--design-sp) * 100vw), 325px);
    max-width: calc(100% - min(calc(50 / var(--design-sp) * 100vw), 50px));
    margin-top: min(calc(24 / var(--design-sp) * 100vw), 24px);
    margin-bottom: min(calc(51.453 / var(--design-sp) * 100vw), 51.453px);
  }

  .ga-services-v2__links {
    width: 100%;
  }

  .ga-services-v2__link {
    aspect-ratio: 720 / 311;
  }

  .ga-services-v2__link--solar {
    padding-left: clamp(17px, 5vw, 19.5px);
  }

  .ga-services-v2__link--reform {
    padding-left: clamp(23px, 6.944444vw, 27.083px);
  }

  .ga-services-v2__link--solar .ga-services-v2__link-title {
    font-size: clamp(16px, 4.444444vw, 17.333px);
  }

  .ga-services-v2__link--reform .ga-services-v2__link-title {
    font-size: clamp(16px, 4.166667vw, 16.25px);
  }

  .ga-services-v2__link-arrow {
    --ga-services-v2-arrow-color: #fff;
    right: min(calc(20 / var(--design-sp) * 100vw), 20px);
    width: min(calc(40 / var(--design-sp) * 100vw), 40px);
    border-radius: min(calc(5 / var(--design-sp) * 100vw), 5px);
    background: #15b9f5;
    font-size: 14px;
  }
}

/* ========================================================================
   TABLET FV CATCH (768px - 1279px)
   768pxからPC直前まで、青い枠・文字・行間・余白を同じ比率で拡大する。
   767px以下のSPと1280px以上のPCには影響させない。
   DevTools search keyword: TABLET FV CATCH
   ======================================================================== */
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .ga-hero__catch {
    --fv-catch-width: clamp(330px, calc(226.30px + 13.50vw), 399px);
    --fv-band-height: clamp(137.5px, calc(94.58px + 5.59vw), 166px);
    --fv-band-radius: clamp(11px, calc(8.03px + 0.39vw), 13px);
    --fv-catch-font: clamp(37.85px, calc(25.90px + 1.56vw), 45.8px);
    --fv-catch-line: clamp(50.7px, calc(34.79px + 2.07vw), 61.3px);
    --fv-catch-pad-left: clamp(22.8px, calc(15.56px + 0.94vw), 27.6px);
    right: 0;
    left: auto;
    bottom: clamp(60px, calc(135.09px - 5.87vw), 90px);
    display: flex;
    align-items: center;
    width: var(--fv-catch-width);
    height: var(--fv-band-height);
    min-height: var(--fv-band-height);
    padding: 0 0 0 var(--fv-catch-pad-left);
    font-size: var(--fv-catch-font);
    line-height: var(--fv-catch-line);
    letter-spacing: 0.02em;
  }

  .ga-hero__catch::after {
    right: 0;
    bottom: 0;
    width: var(--fv-catch-width);
    height: var(--fv-band-height);
    border-radius: var(--fv-band-radius) 0 0 var(--fv-band-radius);
    transform-origin: left center;
  }

  html.is-ga-loading-done .ga-hero__catch::after,
  body.is-ga-loading-done .ga-hero__catch::after {
    animation: ga-hero-catch-band-in 800ms cubic-bezier(0.16, 1, 0.3, 1) 80ms both;
  }
}

@media screen and (min-width: 768px) and (max-width: 1279px) and (prefers-reduced-motion: reduce) {
  html.is-ga-loading-done .ga-hero__catch::after,
  body.is-ga-loading-done .ga-hero__catch::after {
    animation: none;
    transform: scaleX(1);
  }
}

/* ========================================================================
   TABLET SERVICES BALANCE (768px - 1279px)
   説明文の孤立改行を防ぎ、リンク文字と矢印枠の比率を揃える。
   767px以下のSPと1280px以上のPCには影響させない。
   DevTools search keyword: TABLET SERVICES BALANCE
   ======================================================================== */
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .ga-services-v2__head {
    grid-template-columns: minmax(0, 46%) minmax(0, 54%);
  }

  .ga-services-v2__lead {
    padding-right: clamp(16px, 2.5vw, 32px);
    padding-left: clamp(20px, 2.6vw, 33px);
    line-height: 1.75;
  }

  .ga-services-v2__life-title,
  .ga-services-v2__business-title {
    font-size: clamp(42px, 4.621875vw, 59px);
    line-height: 1.18;
  }

  .ga-services-v2__link--solar,
  .ga-services-v2__link--reform {
    padding-left: clamp(20px, 2.7vw, 34px);
  }

  .ga-services-v2__link--solar .ga-services-v2__link-title,
  .ga-services-v2__link--reform .ga-services-v2__link-title {
    font-size: clamp(18px, 2vw, 25.5px);
    line-height: 1.5;
  }

  .ga-services-v2__link-arrow {
    --ga-services-v2-arrow-color: #fff;
    right: clamp(16px, 2vw, 24px);
    width: clamp(38px, 4vw, 44px);
    border-radius: clamp(5px, 0.55vw, 7px);
    background: #15b9f5;
  }
}

/* ========================================================================
   TABLET NUMBERS 2-2-3 GRID + STAGED REVEAL (768px - 820px)
   821px以上はPCの2・2・3配置を使うため、SP用4段組が残る幅だけを補正する。
   表示順は 見出し → 罫線 → セル文字・数字。
   DevTools search keyword: TABLET NUMBERS 2-2-3
   ======================================================================== */
@media screen and (min-width: 768px) and (max-width: 820px) {
  .ga-numbers .ga-numbers__grid {
    --ga-tablet-numbers-grid-height: clamp(510px, 67vw, 550px);
    flex: 0 0 var(--ga-tablet-numbers-grid-height) !important;
    height: var(--ga-tablet-numbers-grid-height) !important;
    min-height: var(--ga-tablet-numbers-grid-height) !important;
    max-height: var(--ga-tablet-numbers-grid-height) !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(3, minmax(0, 1fr)) !important;
    grid-auto-rows: minmax(0, 1fr) !important;
    gap: 0 !important;
    border-top-color: transparent !important;
    border-left-color: transparent !important;
    transition: border-color 0.42s ease 0.04s !important;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell {
    grid-column: auto;
    grid-row: auto;
    height: auto;
    min-height: 0;
    padding: clamp(16px, 2.2vw, 18px) clamp(14px, 2vw, 18px) clamp(12px, 1.7vw, 14px) !important;
    border-right-color: transparent !important;
    border-bottom-color: transparent !important;
    transition: border-color var(--line-duration) ease var(--line-delay) !important;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(1) {
    grid-column: 1 / 4 !important;
    grid-row: 1 !important;
    --line-delay: 0s;
    --line-duration: 0.42s;
    --tablet-value-delay: 0.62s;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(2) {
    grid-column: 4 / 7 !important;
    grid-row: 1 !important;
    --line-delay: 0s;
    --line-duration: 0.42s;
    --tablet-value-delay: 0.62s;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(3) {
    grid-column: 1 / 4 !important;
    grid-row: 2 !important;
    --line-delay: 0.08s;
    --line-duration: 0.42s;
    --tablet-value-delay: 0.74s;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(4) {
    grid-column: 4 / 7 !important;
    grid-row: 2 !important;
    --line-delay: 0.08s;
    --line-duration: 0.42s;
    --tablet-value-delay: 0.74s;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(5) {
    grid-column: 1 / 3 !important;
    grid-row: 3 !important;
    --line-delay: 0.16s;
    --line-duration: 0.42s;
    --tablet-value-delay: 0.86s;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(6) {
    grid-column: 3 / 5 !important;
    grid-row: 3 !important;
    --line-delay: 0.16s;
    --line-duration: 0.42s;
    --tablet-value-delay: 0.86s;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(7),
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:last-child {
    grid-column: 5 / 7 !important;
    grid-row: 3 !important;
    --line-delay: 0.16s;
    --line-duration: 0.42s;
    --tablet-value-delay: 0.86s;
  }

  .ga-numbers .ga-numbers__grid::after {
    height: 1px !important;
    background: transparent !important;
    opacity: 0 !important;
    transition: background-color 0.42s ease 0.16s, opacity 0.42s ease 0.16s !important;
  }

  .ga-numbers.is-ga-lines-in .ga-numbers__grid {
    border-top-color: #fff !important;
    border-left-color: #fff !important;
  }

  .ga-numbers.is-ga-lines-in .ga-numbers__grid::after {
    background: #fff !important;
    opacity: 1 !important;
  }

  .ga-numbers.is-ga-lines-in .ga-numbers__grid > .ga-numbers__cell {
    border-right-color: #fff !important;
    border-bottom-color: #fff !important;
  }

  .ga-numbers .ga-numbers__cap {
    margin: 0 !important;
    font-size: clamp(16px, 2.15vw, 17.5px) !important;
    line-height: 1.35 !important;
  }

  .ga-numbers .ga-numbers__cap-line,
  .ga-numbers .ga-numbers__cap-break {
    font-size: inherit !important;
    line-height: inherit !important;
  }

  .ga-numbers .ga-numbers__cap-break {
    margin-top: 0 !important;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(1) .ga-numbers__sub,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(2) .ga-numbers__sub,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(3) .ga-numbers__sub,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(4) .ga-numbers__sub,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(5) .ga-numbers__sub,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(6) .ga-numbers__sub,
  .ga-numbers .ga-numbers__grid > .ga-numbers__cell:nth-child(7) .ga-numbers__sub {
    min-height: 16px !important;
    margin: 5px 0 0 !important;
    font-size: 12px !important;
    line-height: 16px !important;
  }

  .ga-numbers .ga-numbers__avg {
    top: auto !important;
    margin-top: auto !important;
    margin-bottom: 5px !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
  }

  .ga-numbers .ga-numbers__val {
    top: auto !important;
    margin-top: auto !important;
    gap: 3px !important;
    flex-wrap: nowrap !important;
  }

  .ga-numbers .ga-numbers__cell--has-average .ga-numbers__val {
    margin-top: 0 !important;
  }

  .ga-numbers .ga-numbers__count {
    font-size: clamp(46px, 6.25vw, 52px) !important;
    line-height: 1 !important;
  }

  .ga-numbers .ga-numbers__unit {
    font-size: clamp(17px, 2.3vw, 19px) !important;
    line-height: 1.15 !important;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell {
    position: relative !important;
  }

  .ga-numbers .ga-numbers__grid > .ga-numbers__cell .ga-numbers__val {
    position: absolute !important;
    top: auto !important;
    right: clamp(14px, 2vw, 18px) !important;
    bottom: clamp(12px, 1.7vw, 14px) !important;
    left: auto !important;
    width: auto !important;
    margin: 0 !important;
    justify-content: flex-end !important;
    text-align: right !important;
  }

  .ga-numbers .ga-numbers__cell--has-average .ga-numbers__avg {
    position: absolute !important;
    top: auto !important;
    right: calc(clamp(14px, 2vw, 18px) + clamp(115px, 15vw, 123px) + 8px) !important;
    bottom: clamp(12px, 1.7vw, 14px) !important;
    left: auto !important;
    margin: 0 !important;
    white-space: nowrap !important;
  }

  .ga-numbers:not(.is-ga-values-in):not(.is-ga-past) .ga-numbers__cap,
  .ga-numbers:not(.is-ga-values-in):not(.is-ga-past) .ga-numbers__sub,
  .ga-numbers:not(.is-ga-values-in):not(.is-ga-past) .ga-numbers__avg,
  .ga-numbers:not(.is-ga-values-in):not(.is-ga-past) .ga-numbers__val {
    opacity: 0 !important;
    transform: translateY(14px) !important;
  }

  .ga-numbers.is-ga-values-in .ga-numbers__cap,
  .ga-numbers.is-ga-values-in .ga-numbers__avg {
    opacity: 1 !important;
    transform: translateY(0) !important;
    transition: opacity 0.36s ease var(--tablet-value-delay), transform 0.48s cubic-bezier(0.22, 0.61, 0.36, 1) var(--tablet-value-delay) !important;
  }

  .ga-numbers.is-ga-values-in .ga-numbers__sub {
    opacity: 1 !important;
    transform: translateY(0) !important;
    transition: opacity 0.34s ease calc(var(--tablet-value-delay) + 0.05s), transform 0.46s cubic-bezier(0.22, 0.61, 0.36, 1) calc(var(--tablet-value-delay) + 0.05s) !important;
  }

  .ga-numbers.is-ga-values-in .ga-numbers__val {
    opacity: 1 !important;
    transform: translateY(0) !important;
    transition: opacity 0.38s ease calc(var(--tablet-value-delay) + 0.12s), transform 0.52s cubic-bezier(0.22, 0.61, 0.36, 1) calc(var(--tablet-value-delay) + 0.12s) !important;
  }
}

/* ========================================================================
   TABLET WHAT IS PC-LIKE BALANCE (768px - 820px)
   SP用の一列・display:contentsを解除し、PCと同じ左右2カラムに戻す。
   写真を左カラム幅へ抑え、リンク右端には矢印専用の余白を確保する。
   DevTools search keyword: TABLET WHAT IS PC-LIKE
   ======================================================================== */
@media screen and (min-width: 768px) and (max-width: 820px) {
  .ga-whatis {
    padding-top: clamp(88px, 11.5vw, 96px) !important;
    padding-bottom: clamp(96px, 13vw, 112px) !important;
  }

  .ga-whatis__inner {
    display: grid !important;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr) !important;
    column-gap: clamp(30px, 4.2vw, 36px) !important;
    row-gap: 0 !important;
    align-items: start !important;
    width: min(calc(100% - 64px), 756px) !important;
    max-width: 756px !important;
  }

  .ga-whatis__left,
  .ga-whatis__right,
  .ga-whatis__message {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  .ga-whatis__left,
  .ga-whatis__right {
    align-self: start !important;
  }

  .ga-whatis__label,
  .ga-whatis__title,
  .ga-whatis__lead,
  .ga-whatis__photo,
  .ga-whatis__message-title,
  .ga-whatis__message-en,
  .ga-whatis__message-text,
  .ga-whatis__links,
  .ga-whatis__more {
    order: initial !important;
  }

  .ga-whatis__label {
    margin: 0 0 12px !important;
  }

  .ga-whatis__title {
    margin: 0 !important;
    font-size: clamp(48px, 6.5vw, 53px) !important;
    line-height: 1.04 !important;
    white-space: normal !important;
  }

  .ga-whatis__message {
    margin-top: clamp(42px, 6vw, 50px) !important;
  }

  .ga-whatis__photo {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    aspect-ratio: 472 / 360 !important;
    object-fit: cover !important;
    object-position: center top !important;
    border-radius: 10px !important;
  }

  .ga-whatis__message-title {
    display: block !important;
    margin: 18px 0 0 !important;
    font-size: 18px !important;
    line-height: 1.45 !important;
  }

  .ga-whatis__message-en {
    margin: 1px 0 12px !important;
    font-size: 11px !important;
    line-height: 1.6 !important;
  }

  .ga-whatis__message-text {
    font-size: 13px !important;
    line-height: 1.85 !important;
  }

  .ga-whatis__right {
    padding-top: clamp(98px, 13.5vw, 112px) !important;
  }

  .ga-whatis__lead {
    width: 100% !important;
    margin: 0 0 clamp(36px, 5vw, 42px) !important;
    font-size: clamp(17px, 2.35vw, 19px) !important;
    line-height: 1.7 !important;
  }

  .ga-whatis__links {
    display: grid !important;
    width: 100% !important;
    margin-top: 0 !important;
  }

  .ga-whatis__link {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    height: clamp(102px, 14vw, 114px) !important;
    min-height: clamp(102px, 14vw, 114px) !important;
    padding: 0 54px 0 0 !important;
    overflow: hidden !important;
  }

  .ga-whatis__link > span:first-child {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .ga-whatis__link-title {
    font-size: clamp(18px, 2.45vw, 20px) !important;
    line-height: 1.35 !important;
  }

  .ga-whatis__link-en {
    margin-top: 5px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
  }

  .ga-whatis__link-arrow {
    position: absolute !important;
    top: 50% !important;
    right: 10px !important;
    bottom: auto !important;
    left: auto !important;
    width: 32px !important;
    height: 32px !important;
    flex: 0 0 32px !important;
    transform: translateY(-50%) !important;
  }

  .ga-whatis__more {
    display: inline-flex !important;
    align-items: center !important;
    align-self: auto !important;
    float: right !important;
    gap: 12px !important;
    margin: 18px 0 0 !important;
    font-size: 14px !important;
    line-height: 1 !important;
  }

  .ga-whatis__more-icon,
  .ga-whatis__more:hover .ga-whatis__more-icon,
  .ga-whatis__more:focus-visible .ga-whatis__more-icon {
    width: 36px !important;
    height: 36px !important;
    flex: 0 0 36px !important;
  }
}
