/* ==========================================================================
   総則
   ========================================================================== */
/* 
■ 命名規則
接頭辞_コンポーネント名__要素名 __修飾子名
（例：l_header__navList.__sub）

・コンポーネント名、要素名はキャメルケース

・接頭辞
layout：l_
component：c_
project：p_
utility：なし(tailwindのクラス名を使用)

・修飾子
状態：is_ 
所有：has_ 
JSフック：js_

・その他
要素の指定にwhere句を積極的に使用する

 */

/*
 Noto Sans JP — font-weight 対応表
 100      Thin
 200      ExtraLight（Extra Light）
 300      Light
 400      Regular         ← デフォルト
 500      Medium
 600      SemiBold（Semi Bold）
 700      Bold
 800      ExtraBold（Extra Bold）
 900      Black
  */



/* ==========================================================================
   Reset
   ========================================================================== */
*,
*::before,
*::after {
   box-sizing: border-box;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
li,
figure,
figcaption,
blockquote,
dl,
dd {
   margin: 0;
   padding: 0;
}

ul,
ol {
   list-style: none;
}

img,
picture,
video,
canvas,
svg {
   display: block;
   max-width: 100%;
   height: auto;
   /* object-fit: cover; */
}

input,
textarea,
select {
   font: inherit;
}

button {
   font: inherit;
   margin: 0;
   padding: 0;
   border: none;
   background: none;
   color: inherit;
   cursor: pointer;
   appearance: none;
}

a {
   color: inherit;
   text-decoration: none;
}

table {
   border-collapse: collapse;
   border-spacing: 0;
}

em {
   font-style: normal;
}

address {
   font-style: normal;
}

/* ==========================================================================
   Base
   ========================================================================== */

@property --100vw {
   syntax: "<length>";
   initial-value: 0;
   inherits: false;
}

:root {

   --100vw: 100vw;
   --window-width: tan(atan2(var(--100vw), 1px));
   --fontScale: min(calc(var(--window-width) / 1440), 1);

   --10px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 10 * var(--fontScale)));
   --11px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 11 * var(--fontScale)));
   --12px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 12 * var(--fontScale)));
   --13px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 13 * var(--fontScale)));
   --14px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 14 * var(--fontScale)));
   --16px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 16 * var(--fontScale)));
   --18px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 18 * var(--fontScale)));
   --20px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 20 * var(--fontScale)));
   --21px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 21 * var(--fontScale)));
   --22px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 22 * var(--fontScale)));
   --24px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 24 * var(--fontScale)));
   --25px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 25 * var(--fontScale)));
   --26px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 26 * var(--fontScale)));
   --28px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 28 * var(--fontScale)));
   --30px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 30 * var(--fontScale)));
   --32px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 32 * var(--fontScale)));
   --36px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 36 * var(--fontScale)));
   --38px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 38 * var(--fontScale)));
   --40px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 40 * var(--fontScale)));
   --45px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 45 * var(--fontScale)));
   --50px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 50 * var(--fontScale)));
   --54px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 54 * var(--fontScale)));
   --62px: max(calc(1rem / 16 * 10), calc(1rem / 16 * 62 * var(--fontScale)));

   --colorWhite: #FFFFFF;
   --colorPrimary: #0069C8;
   --colorBgGray: #F0F0F0;
   --colorNavy: #0A396F;
   --colorBgCream: #FFF8E3;
   --colorBorderBlue: #94BFF1;
   --colorBgBluePale: #EAF9FF;
   --colorBorderGray: #696969;

   --Thin: 100;
   --ExtraLight: 200;
   --Light: 300;
   --Regular: 400;
   --Medium: 500;
   --SemiBold: 600;
   --Bold: 700;
   --ExtraBold: 800;
   --Black: 900;

   --headerHeight: calc(100px * var(--fontScale));
   --footerMargin: calc(40px * var(--fontScale));

   --contentsMargin: 6%;
   --contentsWidth: calc(100% - 6% - 6%);

   --px1440: calc(100vw / 1440);
}

@media (max-width: 767px) {
   :root {

      --fontScale: min(calc(var(--window-width) / 750), 1);
      --headerHeight: min(100px, calc(100 * var(--px750)));
      --footerMargin: 0;
      --px750: calc(100vw / 750);
   }

   img {
      width: 100%;
   }
}

html {
   scrollbar-gutter: stable;
   scroll-behavior: smooth;
}

body {
   font-family: 'Noto Sans JP', sans-serif;
   font-size: var(--16px);
   line-height: 1.5;
   letter-spacing: 0;
}



/* ==========================================================================
   layout：l_
   ========================================================================== */

/* l_header */
.l_header {
   z-index: 999;
   position: fixed;
   width: 100%;
   background: var(--colorWhite);
   box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}

.l_header:has(.l_header__menuBtn.is_open) {
   box-shadow: none;
}

.l_header__inner {
   width: min(1440px, 100%);
   margin: 0 auto;

   display: grid;
   grid-template-columns: auto 1fr;
   align-items: center;
   padding-left: calc(50px * var(--fontScale));
   height: var(--headerHeight);
}

@media (max-width: 767px) {
   .l_header__inner {
      padding-left: min(25px, calc(25 * var(--px750)));
   }
}

.l_header__logo {
   justify-self: start;
}

.l_header__logoImage {
   width: calc(332px * var(--fontScale));
}

@media (max-width: 767px) {
   .l_header__logoImage {
      width: min(332px, calc(332 * var(--px750)));
      height: auto;
      aspect-ratio: 332/55;
   }
}

.l_header__nav {
   align-self: center;
   justify-self: end;
   padding-right: calc(50px * var(--fontScale));
}

.l_header__navList {
   display: flex;
   column-gap: calc(30px * var(--fontScale));
   justify-content: end;
}

.l_header__navLink {
   display: block;
   position: relative;
   color: var(--colorPrimary);
   font-size: var(--16px);
   font-size: max(calc(12/16 * 1rem), var(--16px));
   font-weight: var(--Medium);
   --nav-link-underline-offset: 0.1em;
}

.l_header__navLink.is_current {
   color: var(--colorPrimary);
}

.l_header__navLink::after {
   content: "";
   position: absolute;
   left: 0;
   bottom: calc(-1 * var(--nav-link-underline-offset));
   height: 1px;
   width: 100%;
   background: currentColor;
   transform-origin: left;
   transform: scaleX(0);
   transition: transform 0.2s ease-in;
}

.l_header__navLink.is_current::after,
.l_header__navLink:not(.is_current):hover::after {
   transform: scaleX(1);
}


.l_header__menuBtn {
   justify-self: end;
   aspect-ratio: 1/1;
   height: 100%;
   background: var(--colorPrimary);
   color: var(--colorWhite);
   display: none;
   gap: 0;
}

.l_header__menuBtn:focus,
.l_header__menuBtn:focus-visible {
   outline: none;
   box-shadow: none;
}

.l_header__menuBtnBar {
   --barAreaH: 34px;
   --barH: 4px;

   margin-top: 26px;
   margin-inline: auto;
   display: flex;
   flex-direction: column;
   justify-content: space-between;
   width: 50px;
   height: var(--barAreaH);
   cursor: pointer;
}

@media (max-width: 767px) {
   .l_header__menuBtnBar {
      --barAreaH: min(34px, calc(34 * var(--px750)));
      --barH: min(4px, calc(4 * var(--px750)));
      margin-top: min(26px, calc(26 * var(--px750)));
      width: min(50px, calc(50 * var(--px750)));
   }
}

.l_header__menuBtnBar span {
   display: block;
   flex-shrink: 0;
   width: 100%;
   height: var(--barH);
   background-color: #fff;
   border-radius: var(--barH);
   transition: transform 0.5s, opacity 0.5s;
   box-sizing: border-box;
}

.l_header__menuBtn.is_open .l_header__menuBtnBar span:nth-of-type(1) {
   transform: translateY(calc((var(--barAreaH) - var(--barH)) / 2)) rotate(-45deg);
}

.l_header__menuBtn.is_open .l_header__menuBtnBar span:nth-of-type(2) {
   opacity: 0;
}

.l_header__menuBtn.is_open .l_header__menuBtnBar span:nth-of-type(3) {
   transform: translateY(calc((var(--barAreaH) - var(--barH)) / -2)) rotate(45deg);
}

.l_header__menuBtnText {
   display: block;
   text-align: center;
   font-size: 20px;
   line-height: 1;
   transform: translateY(-2px);
}

@media (max-width: 767px) {
   .l_header__menuBtnText {
      font-size: min(20px, calc(20 * var(--px750)));
   }
}

.l_header__menuBtnText.is_open {
   display: none;
}

.l_header__menuBtn.is_open .l_header__menuBtnText.is_close {
   display: none;
}

.l_header__menuBtn.is_open .l_header__menuBtnText.is_open {
   display: block;
}

.l_header__dialog {
   position: fixed;
   inset: calc(var(--headerHeight) - 1px) 0 0 0;
   margin: 0;
   padding-top: min(77px, calc(77 * var(--px750)));
   padding-inline: min(45px, calc(45 * var(--px750)));

   width: 100%;
   height: auto;
   max-width: 100%;
   max-height: none;
   border: none;
   background: var(--colorPrimary);
   color: var(--colorWhite);
   overflow-y: auto;
   z-index: 998;
   opacity: 0;
   transition: opacity 0.3s ease, display 0.3s allow-discrete;
}

.l_header__dialog[open] {
   opacity: 1;
}

@starting-style {
   .l_header__dialog[open] {
      opacity: 0;
   }
}

.l_header__dialog::backdrop {
   display: none;
}

.l_header__mobileNavList {
   display: flex;
   flex-direction: column;
}

.l_header__mobileNavList {
   border-top: 2px solid var(--colorWhite);
}

.l_header__mobileNavItem {
   border-bottom: 2px solid var(--colorWhite);
}

.l_header__mobileNavLink {
   display: flex;
   justify-content: space-between;
   width: 100%;
   height: 100%;
   padding: min(19px, calc(19 * var(--px750)));
   font-size: min(26px, calc(26 * var(--px750)));
   font-weight: var(--Medium);
   line-height: 2;
   color: var(--colorWhite);
}

.l_header__mobileNavLinkText {
   position: relative;
}

.l_header__mobileNavLinkText::after {
   content: "";
   position: absolute;
   left: 0;
   bottom: 0.2em;
   height: 1px;
   width: 100%;
   background: currentColor;
   transform-origin: left;
   transform: scaleX(0);
   transition: transform 0.2s ease-in;
}

.l_header__mobileNavLink:hover .l_header__mobileNavLinkText::after,
.l_header__mobileNavLink:focus .l_header__mobileNavLinkText::after,
.l_header__mobileNavLink:focus-visible .l_header__mobileNavLinkText::after {
   transform: scaleX(1);
}

.l_header__mobileNavLink::after {
   content: "";
   background: url("/assets/image/cmn/icon_triangle_right.svg") no-repeat center center;
   background-size: contain;
   display: block;
   width: min(40px, calc(40 * var(--px750)));
   aspect-ratio: 1/1;
}

@media (max-width: 767px) {
   .l_header__inner {
      align-items: stretch;
   }

   .l_header__logo {
      align-self: center;
   }

   .l_header__nav {
      display: none;
   }

   .l_header__menuBtn {
      display: grid;
      align-self: stretch;
      width: var(--headerHeight);
      height: var(--headerHeight);
      aspect-ratio: unset;
   }
}

/* .l_main */
.l_main {
   padding-top: var(--headerHeight);
}

/* l_lowerMv */
.l_lowerMv {
   display: grid;
   place-items: center;
}

.l_lowerMv_picture {
   grid-area: 1/1;
   width: 100%;
   height: calc(300px * var(--fontScale));
}

@media (max-width: 767px) {
   .l_lowerMv_picture {
      height: calc(300px * var(--px750));
   }
}

.l_lowerMv_image {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.l_lowerMv__heading {
   grid-area: 1/1;
   font-size: var(--36px);
   font-weight: var(--Medium);
   line-height: 1.4;
   text-align: center;
}

@media (max-width: 767px) {
   .l_lowerMv__heading {
      font-size: var(--45px);
   }
}

.l_breadCrumb {
   margin-top: 1em;
   width: min(var(--contentsWidth), 1140px);
   margin: 0 auto;
   font-size: var(--14px);
   line-height: 2.4;
}

@media (max-width: 767px) {
   .l_breadCrumb {
      font-size: var(--22px);
   }
}

.l_breadCrumb_list {
   display: grid;
   grid-auto-flow: column;
   justify-content: start;
   width: fit-content;
}

.l_breadCrumb_listItem {}

.l_breadCrumb_listItem:not(:last-child)::after {
   content: ">";
   margin: 0 0.5em;
}

.l_toc {
   width: min(var(--contentsWidth), 1140px);
   margin: 0 auto;
}

.l_toc__list {
   margin-top: calc(70px * var(--fontScale));
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   justify-content: space-between;
   column-gap: calc(45px * var(--fontScale));
   row-gap: calc(45px * var(--fontScale));
}

@media (max-width: 767px) {
   .l_toc__list {
      grid-template-columns: repeat(2, minmax(0, 1fr));
   }
}

.l_section {
   width: min(var(--contentsWidth), 1140px);
   margin: 0 auto;
}

[data-scroll-reveal] {
   opacity: 0;
}

/* l_cta */
.l_cta {
   --paddingBottom: calc(65px * var(--fontScale));
   margin-top: calc(150px * var(--fontScale));
   padding-top: calc(53px * var(--fontScale));
   padding-bottom: calc(65px * var(--fontScale));
   padding-bottom: calc(var(--paddingBottom) + var(--footerMargin));
   background: var(--colorBgGray);
}

@media (max-width: 767px) {
   .l_cta {
      margin-top: calc(150px * var(--fontScale));
      padding-top: calc(60px * var(--fontScale));
      padding-bottom: calc(75px * var(--fontScale));
   }
}

.l_cta__inner {
   margin: 0 auto;
}

@media (max-width: 767px) {
   .l_cta__inner {
      width: var(--contentsWidth, 100%);
   }
}

.l_cta_lead {
   font-size: var(--18px);
   font-size: max(calc(12/16 * 1rem), var(--18px));
   font-weight: var(--Medium);
   line-height: 2.4;
   text-align: center;
}

@media (max-width: 767px) {
   .l_cta_lead {
      font-size: var(--26px);
   }
}

.l_cta_list {
   margin-top: calc(19px * var(--fontScale));
   display: grid;
   grid-auto-flow: column;
   column-gap: calc(30px * var(--fontScale));
   justify-content: center;
}

@media (max-width: 767px) {
   .l_cta_list {
      width: 100%;
      grid-auto-flow: row;
      grid-template-columns: 1fr;
      row-gap: calc(40px * var(--fontScale));
   }
}

.l_cta_listItem {
   font-size: var(--16px);
   width: calc(400px * var(--fontScale));
   width: calc(400 / 16 * 1em);
   border-radius: calc(10px * var(--fontScale));
   background: var(--colorWhite);
   display: grid;
   grid-template-rows: auto 1fr;
   justify-content: center;
   text-align: center;
}

@media (max-width: 767px) {
   .l_cta_listItem {
      justify-self: center;
      width: min(100%, calc(600 / 16 * 1em));
      border-radius: calc(15px * var(--fontScale));

   }
}

.l_cta_listItemHeading {
   padding-top: calc(22px * var(--fontScale));
   padding-bottom: calc(17px * var(--fontScale));
   font-weight: var(--Medium);
   line-height: 1;
}

@media (max-width: 767px) {
   .l_cta_listItemHeading {
      padding-top: calc(30px * var(--fontScale));
      padding-bottom: calc(25px * var(--fontScale));

      font-size: var(--24px);
   }
}

.l_cta_callLink {
   display: grid;
   grid-auto-flow: column;
   justify-content: center;
   align-items: center;
   column-gap: calc(9px * var(--fontScale));
}

@media (max-width: 767px) {
   .l_cta_callLink {
      column-gap: calc(13px * var(--fontScale));
   }
}

.l_cta_callLinkIcon {
   --transformY: min(4px, calc(4 * var(--px1440)));
   width: min(30px, calc(30 * var(--px1440)));
   transform: translateY(var(--transformY));
}

@media (max-width: 767px) {
   .l_cta_callLinkIcon {
      --transformY: min(4px, calc(4 * var(--px750)));
      width: min(40px, calc(40 * var(--px750)));
      transform: translateY(var(--transformY));
   }
}

.l_cta_callLinkText {
   font-size: var(--36px);
   font-weight: var(--Medium);
   line-height: 1;
}

@media (max-width: 767px) {
   .l_cta_callLinkText {
      font-size: var(--54px);
   }
}

.l_cta_callLinkSubText {
   font-size: var(--14px);
   font-weight: var(--Medium);
   line-height: 1;
   margin-top: calc(12px * var(--fontScale));
   padding-bottom: calc(23px * var(--fontScale));
}

@media (max-width: 767px) {
   .l_cta_callLinkSubText {
      font-size: var(--21px);
      margin-top: calc(20px * var(--fontScale));
      padding-bottom: calc(36px * var(--fontScale));
   }
}

/* .l_footer */
.l_footer {
   margin-top: calc(var(--footerMargin) * -1);
}

.l_footer__main {
   background: var(--colorPrimary);
   color: var(--colorWhite);
   width: 100%;
}

.l_footer__mainInner {
   width: min(var(--contentsWidth, 100%));
   max-width: 1240px;
   margin: 0 auto;
   display: grid;
   grid-template-rows: auto 1fr;
   grid-template-columns: auto auto;
   justify-content: space-between;
}

.l_footer__address {
   grid-row: 1/1;
   grid-column: 1/1;
   width: fit-content;
   margin-top: calc(39px * var(--fontScale));
}

.l_footer__logo {
   width: calc(332px * var(--fontScale));
   height: auto;
   aspect-ratio: 332/55;
}

@media (max-width: 767px) {
   .l_footer__logo {
      width: calc(332px * var(--fontScale));
   }
}

.l_footer__addressText {
   margin-top: calc(20px * var(--fontScale));
   font-size: max(calc(12 / 16 * 1rem), var(--13px));
   line-height: 1.8;
}

@media (max-width: 767px) {
   .l_footer__addressText {
      font-size: var(--24px);
   }
}

.l_footer__iso {
   grid-row: 2/2;
   grid-column: 1/1;
   width: fit-content;
   margin-top: calc(45px * var(--fontScale));
   margin-bottom: calc(50px * var(--fontScale));
   display: grid;
   grid-auto-flow: column;
   column-gap: calc(20px * var(--fontScale));
}

@media (max-width: 767px) {
   .l_footer__iso {
      margin-top: calc(20px * var(--fontScale));
      margin-bottom: calc(33px * var(--fontScale));
      margin-bottom: min(33px, calc(33 * var(--px750)));
   }
}

.l_footer__isoImage {
   width: max(113px, calc(151px * var(--fontScale)));
   height: auto;
   aspect-ratio: 151/55;
   object-fit: cover;
}

@media (max-width: 767px) {
   .l_footer__isoImage {
      width: min(276px, calc(276 * var(--px750)));
      height: auto;
      aspect-ratio: 276/100;
   }
}

.l_footer__isoText {
   font-size: var(--11px);
   font-size: max(calc(11 / 16 * 1rem), var(--11px));

   line-height: 1.6;
}

@media (max-width: 767px) {
   .l_footer__isoText {
      font-size: var(--20px);
   }
}

.l_footer__nav {
   grid-row: 1/-1;
   grid-column: 2/2;
   width: fit-content;
   margin-top: calc(41px * var(--fontScale));
}

@media (max-width: 767px) {
   .l_footer__nav {
      display: none;
   }
}

.l_footer__navList {
   display: grid;
   grid-auto-flow: column;
   grid-template-rows: repeat(5, auto);
   grid-template-columns: repeat(2, auto);
   justify-content: space-between;
   column-gap: calc(80px * var(--fontScale));
   row-gap: calc(10px * var(--fontScale));
}

.l_footer__navItem.__right {
   grid-column: 2;
}

.l_footer__navItem.__download {
   grid-row: 5;
   grid-column: 2;
   margin-top: 10px;
}

.l_footer__navLink {
   font-size: max(calc(12 / 16 * 1rem), var(--16px));
   font-weight: var(--Medium);
   line-height: 2;
}

.l_footer__navLink {
   position: relative;
}

.l_footer__navLink::after {
   content: "";
   position: absolute;
   left: 0;
   bottom: -0.1em;
   height: 1px;
   width: 100%;
   background: currentColor;
   transform-origin: left;
   transform: scaleX(0);
   transition: transform 0.2s ease-in;
}

.l_footer__navLink:hover::after {
   transform: scaleX(1);
}

.l_footer__sub {
   background: var(--colorNavy);
   color: var(--colorWhite);
   font-size: var(--10px);
   line-height: 2.4;
   padding-top: calc(9px * var(--fontScale));
   padding-bottom: calc(10px * var(--fontScale));
}

@media (max-width: 767px) {
   .l_footer__sub {
      font-size: var(--20px);
      line-height: 2.4;
      padding-top: calc(11px * var(--fontScale));
      padding-bottom: calc(11px * var(--fontScale));
   }
}

.l_footer__subInner {
   width: min(var(--contentsWidth, 100%));
   max-width: 1240px;
   margin: 0 auto;
}

/* l_goToTop */
.l_goToTop {
   position: sticky;
   bottom: 0;
   z-index: 997;
}

.l_goToTop__btn {
   position: absolute;
   right: calc(50px * var(--fontScale));
   bottom: calc(50px * var(--fontScale));
   pointer-events: none;
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 4px;
   display: none;
   opacity: 0;
   font-size: var(--12px);
}

@media (max-width: 767px) {
   .l_goToTop__btn {
      right: min(20px, calc(20 * var(--px750)));
      bottom: min(20px, calc(20 * var(--px750)));
      font-size: var(--18px);
   }
}

.l_goToTop__btn.is_visible {
   display: block;
   pointer-events: auto;
}

/* .l_goToTop__btnImage {
   width: calc(83px * var(--fontScale));
   height: auto;
   aspect-ratio: 83/66;
}

@media (max-width: 767px) {
   .l_goToTop__btnImage {
      width: calc(125px * var(--fontScale));
      aspect-ratio: 124/99;
   }
} */

.l_goToTop__btnImage {
   width: calc(83px * var(--fontScale));
   height: auto;
   aspect-ratio: 83/66;
}

@media (max-width: 767px) {
   .l_goToTop__btnImage {
      width: calc(125px * var(--fontScale));
      aspect-ratio: 124/99;
   }
}

.l_goToTop_imageContainer {
   width: min(83px, calc(83 * var(--px1440)));
   height: auto;
   aspect-ratio: 83/66;
   position: relative;
}

@media (max-width: 767px) {
   .l_goToTop_imageContainer {
      width: min(125px, calc(125 * var(--px750)));
      aspect-ratio: 124/99;
   }
}

.l_goToTop_imageContainer.__pink {
   width: min(87px, calc(87 * var(--px1440)));
   aspect-ratio: 87/66;
}

@media (max-width: 767px) {
   .l_goToTop_imageContainer.__pink {
      width: min(125px, calc(125 * var(--px750)));
      aspect-ratio: 124/99;
   }
}

.l_goToTop_imageBody {
   width: min(45px, calc(45 * var(--px1440)));
   position: absolute;
   top: 0;
   left: 50%;
   transform: translateX(-50%);
   z-index: 2;
}

@media (max-width: 767px) {
   .l_goToTop_imageBody {
      width: min(67px, calc(67 * var(--px750)));
   }
}

.l_goToTop_imageLeft {
   width: min(32px, calc(32 * var(--px1440)));
   position: absolute;
   top: 50%;
   left: 0;
   z-index: 1;
}

@media (max-width: 767px) {
   .l_goToTop_imageLeft {
      width: min(48px, calc(48 * var(--px750)));
   }
}

.l_goToTop_imageRight {
   width: min(33px, calc(33 * var(--px1440)));
   position: absolute;
   top: 50%;
   right: 0;
   z-index: 1;
}

@media (max-width: 767px) {
   .l_goToTop_imageRight {
      width: min(49px, calc(49 * var(--px750)));
   }
}

.l_goToTop_imageBody.__pink {
   width: min(53px, calc(53 * var(--px1440)));
}

@media (max-width: 767px) {
   .l_goToTop_imageBody.__pink {
      width: min(75px, calc(75 * var(--px750)));
   }
}

.l_goToTop_imageLeft.__pink {
   width: min(30px, calc(30 * var(--px1440)));
   left: 2%;
}

@media (max-width: 767px) {
   .l_goToTop_imageLeft.__pink {
      width: min(42px, calc(42 * var(--px750)));
      left: 4%;
   }
}

.l_goToTop_imageRight.__pink {
   width: min(39px, calc(39 * var(--px1440)));
}

@media (max-width: 767px) {
   .l_goToTop_imageRight.__pink {
      width: min(54px, calc(54 * var(--px750)));
   }
}

/* ==========================================================================
   component：c_
   ========================================================================== */

.c_heading__l {
   color: var(--colorPrimary);
   font-size: var(--32px);
   font-size: max(calc(16 / 16 * 1rem), var(--32px));
   font-weight: var(--Bold);
   line-height: 1;
   text-align: center;
   padding-top: calc(30px * var(--fontScale));
   width: 100%;
   border-top: calc(6px * var(--fontScale)) solid var(--colorPrimary);
   margin-top: calc(150px * var(--fontScale));
   margin-bottom: calc(60px * var(--fontScale));
   scroll-margin-top: calc(var(--headerHeight) + calc(60px * var(--fontScale)));
}

.c_heading__l.__noNav {
   margin-top: calc(70px * var(--fontScale));
}

.c_heading__m {
   display: grid;
   grid-auto-flow: column;
   column-gap: 1em;
   justify-content: start;
   align-items: center;
   width: fit-content;

   font-size: var(--24px);
   font-size: max(calc(14 / 16 * 1rem), var(--24px));
   font-weight: var(--Medium);
   line-height: calc(29/24);

   margin-top: calc(60px * var(--fontScale));
   margin-bottom: calc(20px * var(--fontScale));
   scroll-margin-top: calc(var(--headerHeight) + calc(60px * var(--fontScale)));

}

@media (max-width: 767px) {
   .c_heading__m {
      font-size: var(--30px);
      margin-bottom: calc(30px * var(--fontScale));

   }
}

.c_heading__m::before {
   content: "";
   background: url("/assets/image/cmn/icon_blue_circle.svg");
   background-size: contain;
   background-repeat: no-repeat;
   background-position: center;
   width: 1em;
   height: 1em;
}

.c_heading__s {
   display: grid;
   grid-auto-flow: column;
   column-gap: .5em;
   justify-content: start;
   align-items: center;
   width: fit-content;

   font-size: var(--20px);
   font-size: max(calc(14 / 16 * 1rem), var(--20px));
   font-weight: var(--Bold);
   line-height: calc(29/20);

   margin-top: calc(30px * var(--fontScale));
   margin-bottom: calc(15px * var(--fontScale));
}

@media (max-width: 767px) {
   .c_heading__s {
      font-size: var(--28px);
   }
}

.c_heading__s::before {
   content: "■";
   font-size: 1em;
}

.c_heading__s02 {
   font-size: var(--20px);
   font-size: max(calc(14 / 16 * 1rem), var(--20px));
   font-weight: var(--Bold);
   line-height: calc(29/20);
   margin-top: calc(30px * var(--fontScale));
   margin-bottom: calc(15px * var(--fontScale));
}

@media (max-width: 767px) {
   .c_heading__s02 {
      font-size: var(--28px);
   }
}

.c_heading__s03 {
   font-size: max(calc(14 / 16 * 1rem), var(--22px));
   font-size: max(calc(12 / 16 * 1rem), var(--20px));
   font-weight: var(--Bold);
   line-height: 1.8;
   margin-top: calc(30px * var(--fontScale));
   margin-bottom: calc(15px * var(--fontScale));
}

@media (max-width: 767px) {
   .c_heading__s03 {
      font-size: var(--32px);
   }
}

.c_text {
   font-size: max(calc(12 / 16 * 1rem), var(--16px));
   line-height: 1.8;
}

@media (max-width: 767px) {
   .c_text {
      font-size: var(--26px);
   }
}

.c_figcaption {
   margin-top: 0.5em;
}

.c_textLink {
   text-decoration: underline;
   text-underline-offset: .3em;
   transition: color 0.3s ease, opacity 0.3s ease;
}

@media (hover: hover) {
   .c_textLink:hover {
      color: var(--colorPrimary);
   }
}

.c_pdfLink {
   display: flow-root;
   width: 100%;
   box-sizing: border-box;
   --c_pdfLink_iconSize: calc(25 / 16 * 1em);
   --c_pdfLink_gap: calc(10px * var(--fontScale));
}

.c_pdfLink:has(> img) {
   padding-left: calc(var(--c_pdfLink_iconSize) + var(--c_pdfLink_gap));
}

.c_pdfLink>img {
   float: left;
   width: var(--c_pdfLink_iconSize);
   height: auto;
   margin-left: calc(-1 * (var(--c_pdfLink_iconSize) + var(--c_pdfLink_gap)));
   margin-right: var(--c_pdfLink_gap);
}

/* c_animation02 */
.c_pdfLink_text {
   display: inline;
   min-width: 0;
   overflow-wrap: break-word;
   -webkit-box-decoration-break: clone;
   box-decoration-break: clone;
   background-image: linear-gradient(currentColor, currentColor);
   background-position: 0 calc(100% - 0.1em);
   background-repeat: no-repeat;
   background-size: 0% 1px;
   transition: background-size 0.2s ease-in, color 0.3s ease;
   padding-bottom: 0.2em;
}

.c_pdfLink:hover .c_pdfLink_text {
   color: var(--colorPrimary);
   background-size: 100% 1px;
}

.c_tocLink {
   background: var(--colorWhite);
   color: var(--colorPrimary);
   border: solid 2px var(--colorPrimary);
   border-radius: calc(33px * var(--fontScale));
   width: 100%;
   height: fit-content;
   padding: calc(16px * var(--fontScale)) calc(12px * var(--fontScale));
   display: grid;
   grid-auto-flow: column;
   justify-content: center;
   align-items: center;
   column-gap: calc(10px * var(--fontScale));
   font-size: var(--18px);
   font-size: max(calc(12/16 * 1rem), var(--18px));
   font-weight: var(--Medium);
   line-height: calc(26/18);
   box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}

@media (max-width: 767px) {
   .c_tocLink {
      font-size: var(--24px);
      padding: calc(21px * var(--fontScale)) calc(45px * var(--fontScale));
      border-radius: calc(80px * var(--fontScale));
   }

   .l_toc__list.__tako .c_tocLink {
      font-size: var(--18px);
      padding: calc(21px * var(--fontScale)) calc(12px * var(--fontScale));
   }
}

.c_tocLink__text {
   display: grid;
   grid-auto-flow: column;
   justify-content: center;
   align-items: center;
   column-gap: calc(10px * var(--fontScale));
}

.c_tocLink__text::before {
   content: "";
   display: block;
   background: url("/assets/image/cmn/icon_arrow_blue.svg");
   background-size: contain;
   background-repeat: no-repeat;
   background-position: center;
   width: calc(21px * var(--fontScale));
   width: calc(21 / 18 * 1em);
   height: calc(15 / 18 * 1em);
}

@media (max-width: 767px) {
   .c_tocLink__text::before {
      width: calc(21 / 24 * 1em);
      height: calc(15 / 24 * 1em);
   }
}

/* c_animation03 */
.c_tocLink {
   position: relative;
   z-index: 0;
   overflow: hidden;
   isolation: isolate;
   transition: color 0.4s 0s, background-color 0.4s 0s, border-color 0.4s 0s;
}

.c_tocLink__text {
   position: relative;
   z-index: 1;
}

.c_tocLink__text::before {
   position: relative;
   z-index: 1;
   flex-shrink: 0;
   background: url("/assets/image/cmn/icon_arrow_blue.svg");
   background-size: contain;
   background-repeat: no-repeat;
   background-position: center;
   transition: filter 0.4s;
}

@media (hover: hover) {
   .c_tocLink:hover {
      color: var(--colorWhite);
      border-color: var(--colorPrimary);
   }

   .c_tocLink:hover .c_tocLink__text::before {
      filter: brightness(0) invert(1);
   }
}

.c_btnLink01 {
   display: flex;
   align-items: center;
   justify-content: center;
   background: var(--colorPrimary);
   color: var(--colorWhite);
   border-radius: calc(60 / 18 * 1em);
   width: calc(300 / 18 * 1em);
   height: calc(60 / 18 * 1em);
   padding: calc(16 / 18 * 1em) calc(12 / 18 * 1em);
   font-size: var(--18px);
   font-size: max(calc(12/16 * 1rem), var(--18px));
   font-weight: var(--Bold);
   line-height: calc(22/18);
   position: relative;
}

@media (max-width: 767px) {
   .c_btnLink01 {
      width: min(600px, calc(600 * var(--px750)));
      height: min(80px, calc(80 * var(--px750)));
      font-size: var(--26px);
      width: calc(600 / 26 * 1em);
      height: calc(80 / 26 * 1em);
      padding-inline: min(23px, calc(23 * var(--px750)));
   }
}

/* c_animation03 */
.c_btnLink01 {
   z-index: 0;
   overflow: hidden;
   isolation: isolate;
   border: solid 2px var(--colorPrimary);
   transition: color 0.4s 0s, background-color 0.4s 0s, border-color 0.4s 0s;
}

.c_btnLink01>span:not(.c_animation03__fill) {
   position: relative;
   z-index: 1;
}

.c_btnLink01::before {
   position: absolute;
   top: 50%;
   right: calc(23 / 16 * 1em);
   transform: translateY(-50%);
   content: "";
   display: block;
   background-color: var(--colorWhite);
   mask-image: url("/assets/image/cmn/icon_arrow_white.svg");
   mask-size: contain;
   mask-repeat: no-repeat;
   mask-position: center;
   -webkit-mask-image: url("/assets/image/cmn/icon_arrow_white.svg");
   -webkit-mask-size: contain;
   -webkit-mask-repeat: no-repeat;
   -webkit-mask-position: center;
   width: calc(20 / 16 * 1em);
   height: calc(17 / 16 * 1em);
   margin-left: calc(10 / 16 * 1em);
   z-index: 1;
   transition: background-color 0.4s;
}

@media (max-width: 767px) {
   .c_btnLink01::before {
      right: min(25px, calc(25 * var(--px750)));
      width: min(30px, calc(30 * var(--px750)));
      height: min(25px, calc(25 * var(--px750)));
   }
}

@media (hover: hover) {
   .c_btnLink01:hover {
      color: var(--colorPrimary);
      border-color: var(--colorPrimary);
   }

   .c_btnLink01:hover::before {
      background-color: var(--colorPrimary);
   }
}

.c_btnLink02 {
   display: flex;
   flex-direction: row;
   justify-content: center;
   align-items: center;
   gap: calc(10px * var(--fontScale));
   gap: calc(8px * var(--fontScale));
   background: var(--colorPrimary);
   color: var(--colorWhite);
   border-radius: calc(60 / 16 * 1em);
   width: calc(300 / 16 * 1em);
   width: calc(320 / 16 * 1em);
   height: calc(54 / 16 * 1em);
   padding-inline: calc(22px * var(--fontScale));
   font-size: var(--16px);
   font-weight: var(--Bold);
   line-height: calc(22/16);
}

@media (max-width: 767px) {
   .c_btnLink02 {
      font-size: var(--24px);
      width: calc(480 / 24 * 1em);
      height: calc(82 / 24 * 1em);
      padding-inline: min(33px, calc(33 * var(--px750)));
      margin-bottom: calc(42 / 24 * 1em);
   }
}

.c_btnLink02__icon {
   position: relative;
   z-index: 1;
   flex-shrink: 0;
   width: calc(23 / 16 * 1em);
   height: calc(18 / 16 * 1em);
   background-color: var(--colorWhite);
   mask-image: url("/assets/image/cmn/icon_mail.svg");
   mask-size: contain;
   mask-repeat: no-repeat;
   mask-position: center;
   -webkit-mask-image: url("/assets/image/cmn/icon_mail.svg");
   -webkit-mask-size: contain;
   -webkit-mask-repeat: no-repeat;
   -webkit-mask-position: center;
   transform: translateZ(0);
   -webkit-backface-visibility: hidden;
   backface-visibility: hidden;
   transition: background-color 0.4s;
}

@media (max-width: 767px) {
   .c_btnLink02__icon {
      width: calc(35 / 24 * 1em);
      height: calc(27 / 24 * 1em);
   }
}

/* c_animation03 */
.c_btnLink02 {
   position: relative;
   z-index: 0;
   overflow: hidden;
   isolation: isolate;
   border: solid 2px var(--colorPrimary);
   transform: translateZ(0);
   -webkit-backface-visibility: hidden;
   backface-visibility: hidden;
   transition: color 0.4s 0s, background-color 0.4s 0s, border-color 0.4s 0s;
}

.c_btnLink02>span:not(.c_animation03__fill) {
   position: relative;
   z-index: 1;
}

@media (hover: hover) {
   .c_btnLink02:hover {
      color: var(--colorPrimary);
      border-color: var(--colorPrimary);
   }

   .c_btnLink02:hover .c_btnLink02__icon {
      background-color: var(--colorPrimary);
   }
}

.c_btnLink {
   background: var(--colorPrimary);
   color: var(--colorWhite);
   border-radius: 200px;
   min-width: 300px;
   height: fit-content;
   padding: 16px 12px;
   font-weight: var(--Bold);
   line-height: calc(22/16);
}

.c_downloadLink {
   display: block;
   color: var(--colorWhite);
   border: solid 2px var(--colorWhite);
   border-radius: calc(60 / 14 * 1em);
   width: calc(166 / 14 * 1em);
   height: calc(40 / 14 * 1em);
   font-size: var(--14px);
   font-weight: var(--Medium);
   line-height: 2;
   text-align: center;
   padding: calc(6px * var(--fontScale)) calc(10px * var(--fontScale));
}

/* c_animation03 */
.c_downloadLink {
   position: relative;
   z-index: 0;
   overflow: hidden;
   isolation: isolate;
   transition: color 0.4s 0s, background-color 0.4s 0s;
}

.c_downloadLinkText {
   --Y: calc(2 / 14 * 1em);
   display: inline-block;
   position: relative;
   z-index: 1;
   transform: translateY(calc(var(--Y) * -1));
}

@media (max-width: 767px) {
   .c_downloadLink {
      transform: translateY(0);
   }
}

.c_downloadLink.__dialog {
   margin-top: min(50px, calc(50 * var(--px750)));
   display: block;
   border: solid 2px var(--colorWhite);
   border-radius: 200px;
   width: fit-content;
   height: auto;
   font-size: min(26px, calc(26 * var(--px750)));
   font-weight: var(--Medium);
   line-height: 2;
   text-align: center;
   padding: min(14px, calc(14 * var(--px750))) min(43px, calc(43 * var(--px750)));
}

.c_list_normal>li {
   position: relative;
   padding-left: 1em;
}

.c_list_normal>li::before {
   position: absolute;
   left: 0;
   content: "・";
}

.c_list_ol {
   counter-reset: list;
   display: flex;
   flex-direction: column;
   gap: 1em;
}

.c_list_ol>li {
   position: relative;
   padding-left: 1.2em;
}

.c_list_ol>li::before {
   counter-increment: list;
   content: counter(list) ". ";
   position: absolute;
   left: 0;
}

.c_list_ol .c_list_normal {
   counter-reset: list;
}

.c_list_pdf {
   display: flex;
   flex-direction: column;
   /* gap: 1em; */
}

.c_grid {
   display: grid;
}

.c_grid.__col2 {
   grid-template-columns: repeat(2, minmax(0, 1fr));
   justify-content: space-between;
   row-gap: calc(40px * var(--fontScale));
   column-gap: calc(40px * var(--fontScale));
}

@media (max-width: 767px) {
   .c_grid.__col2 {
      grid-template-columns: 1fr;
   }
}

.c_grid.__col3 {
   margin-top: calc(45px * var(--fontScale));
   grid-template-columns: repeat(3, minmax(0, 1fr));
   justify-content: space-between;
   row-gap: calc(45px * var(--fontScale));
   column-gap: calc(45px * var(--fontScale));
}

@media (max-width: 767px) {
   .c_grid.__col3 {
      grid-template-columns: 1fr;
   }
}

.c_callOut {
   background: var(--colorBgCream);
   padding: calc(40px * var(--fontScale)) calc(38px * var(--fontScale));
}

@media (max-width: 767px) {
   .c_callOut {
      padding: calc(40px * var(--fontScale)) calc(50px * var(--fontScale));
   }
}

.c_callOut_heading {
   font-size: var(--24px);
   font-weight: var(--Medium);
   line-height: 1;
}

@media (max-width: 767px) {
   .c_callOut_heading {
      font-size: var(--28px);
   }
}

.c_callOut_desc {
   margin-top: calc(20px * var(--fontScale));
}

.c_table {
   width: 100%;
}

@media (max-width: 767px) {
   .c_table {
      display: block;
      width: 100%;
   }

   .c_table tbody {
      display: flex;
      flex-direction: column;
      gap: calc(40px * var(--fontScale));
   }
}

.c_table tr {
   border-top: 1px solid var(--colorBorderBlue);
   border-bottom: 1px solid var(--colorBorderBlue);
}

@media (max-width: 767px) {
   .c_table tr {
      display: block;
      width: 100%;
      border: none;
   }
}

.c_table th {
   width: calc(280/1140 * 100%);
   padding: calc(20px * var(--fontScale)) calc(40px * var(--fontScale));
   font-weight: var(--Medium);
   line-height: 1.8;
   background: var(--colorBgBluePale);
   text-align: left;
   vertical-align: top;
}

@media (max-width: 767px) {
   .c_table th {
      display: block;
      width: 100%;
      border-top: 1px solid var(--colorBorderBlue);
      border-bottom: 1px solid var(--colorBorderBlue);
   }
}

.c_table td {
   width: calc(860/1140 * 100%);
   padding: calc(20px * var(--fontScale)) calc(40px * var(--fontScale));
   font-weight: var(--Medium);
   line-height: 1.8;
   text-align: left;
   vertical-align: top;
}

@media (max-width: 767px) {
   .c_table td {
      display: block;
      width: 100%;
   }
}

.c_descList {
   display: grid;
   grid-auto-flow: column;
   grid-template-columns: auto 1fr;
   column-gap: calc(20px * var(--fontScale));
}

.c_descList dt {
   grid-column: 1/1;
}

.c_descList dd {
   grid-column: 2/2;
}

.c_map {
   margin-top: calc(20px * var(--fontScale));
}

.c_map iframe {
   width: 100%;
   height: auto;
   aspect-ratio: 1140/349;
}

@media (max-width: 767px) {
   .c_map iframe {
      aspect-ratio: 660/400;
      aspect-ratio: 16/9;
   }
}

.c_video {
   margin-top: calc(50px * var(--fontScale));
}

.c_video iframe {
   width: 100%;
   height: auto;
   aspect-ratio: 16/9;
}

.c_videoLead {
   width: 100%;
   margin-inline: auto;
   font-size: var(--20px);
   font-size: max(calc(12/16 * 1rem), var(--20px));
   font-weight: var(--Medium);
   line-height: 2.4;

   margin-top: calc(55px * var(--fontScale));
   text-align: center;
}

@media (max-width: 767px) {
   .c_videoLead {
      font-size: var(--26px);
   }
}

/* @media (max-width: 767px) {
   .c_video iframe {
      aspect-ratio: 660/400;
   }
} */

.c_container {
   width: 100%;
   display: grid;
   grid-auto-flow: column;
   grid-template-columns: 1fr calc(500px * var(--fontScale));
   justify-content: space-between;
   column-gap: calc(90px * var(--fontScale));
}

@media (max-width: 767px) {
   .c_container {
      grid-auto-flow: row;
      grid-template-columns: 1fr;
      row-gap: 2.4em;
      column-gap: 0;
   }
}

.c_card_text {
   margin-top: calc(15px * var(--fontScale));
   line-height: 1.8;
}

.c_card_caption {
   margin-top: calc(15px * var(--fontScale));
   line-height: 1.8;
}

.c_card_captionHeading {
   font-weight: var(--Medium);
}

/* animation */
/* 透明度アニメーション */
.c_animation01 {
   transition: opacity 0.3s ease;
}

@media (hover: hover) {
   .c_animation01:hover {
      opacity: 0.7;
   }
}

/* 下線アニメーション */
.c_animation02 {
   position: relative;
}

.c_animation02::after {
   content: "";
   position: absolute;
   left: 0;
   bottom: -0.1em;
   height: 1px;
   width: 100%;
   background: currentColor;
   transform-origin: left;
   transform: scaleX(0);
   transition: transform 0.2s ease-in;
}

.c_animation02:hover::after {
   transform: scaleX(1);
}

/* 円形アニメーション（子要素 .c_animation03__fill が必須） */
.c_animation03__fill {
   position: absolute;
   top: 50%;
   left: 0;
   right: 0;
   width: 100%;
   height: 0;
   margin: auto;
   padding-top: 100%;
   border-radius: 50%;
   opacity: 0;
   pointer-events: none;
   z-index: 0;
   transform: translateY(-50%) scale(0.1);
   transition: opacity 0.5s, transform 0s;
   transition-delay: 0s, 0.4s;
}

.c_tocLink>.c_animation03__fill {
   background: var(--colorPrimary);
}

.c_btnLink01>.c_animation03__fill,
.c_btnLink02>.c_animation03__fill,
.c_downloadLink>.c_animation03__fill,
.c_animation03>.c_animation03__fill {
   background: var(--colorWhite);
}

.c_animation03 {
   position: relative;
   z-index: 0;
   overflow: hidden;
   isolation: isolate;
   transition: color 0.4s 0s, background-color 0.4s 0s;
}

@media (hover: hover) {
   :is(.c_btnLink01, .c_btnLink02, .c_tocLink, .c_downloadLink, .c_animation03):hover>.c_animation03__fill {
      opacity: 1;
      transform: translateY(-50%) scale(1.25);
      transition: opacity 0.8s, transform 0.6s ease-in-out;
      transition-delay: 0s;
   }

   :is(.c_btnLink01, .c_btnLink02):hover {
      background-color: var(--colorWhite);
      transition: color 0.4s 0s, background-color 0.4s 0.4s, border-color 0.4s 0s;
   }

   :is(.c_downloadLink, .c_animation03):hover {
      background-color: var(--colorWhite);
      transition: color 0.4s 0s, background-color 0.4s 0.4s;
   }

   .c_tocLink:hover {
      background-color: var(--colorPrimary);
      transition: color 0.4s 0s, background-color 0.4s 0.4s, border-color 0.4s 0s;
   }

   .c_animation03:hover {
      color: var(--colorPrimary);
   }

   .c_downloadLink:hover {
      color: var(--colorPrimary);
   }
}

/* ==========================================================================
   project：p_
   ========================================================================== */

/* top */
.p_topMv_picture {
   width: 100%;
   height: auto;
}

.p_topAbout {
   padding-top: calc(80px * var(--fontScale));
   padding-bottom: calc(53px * var(--fontScale));
}

@media (max-width: 767px) {
   .p_topAbout {
      padding-top: calc(91px * var(--fontScale));
      padding-bottom: calc(200px * var(--fontScale));
      padding-bottom: calc(120px * var(--fontScale));
   }
}

.p_topAbout_container {
   width: 100%;
   display: grid;
   grid-auto-flow: column;
   grid-template-columns: calc(643px * var(--fontScale)) calc(385px * var(--fontScale));
   justify-content: space-between;
   column-gap: calc(85px * var(--fontScale));
   padding-left: calc(50px * var(--fontScale));
}

@media (max-width: 767px) {
   .p_topAbout_container {
      grid-auto-flow: row;
      grid-template-columns: 100%;
      row-gap: calc(20px * var(--fontScale));
      padding-left: 0;
   }
}

.p_topAbout_lead {
   font-size: var(--18px);
   font-size: max(calc(12/16 * 1rem), var(--18px));
   font-weight: var(--Medium);
   line-height: 2.4;
}

@media (max-width: 767px) {
   .p_topAbout_lead {
      font-size: var(--25px);
   }
}

.p_topAbout_lead:first-child {
   margin-top: 1em;
}

@media (max-width: 767px) {
   .p_topAbout_lead:first-child {
      margin-top: 0;
   }
}

.p_topAbout_lead+.p_topAbout_lead {
   margin-top: calc(1em * 2.4);
}

@media (max-width: 767px) {
   .p_topAbout_image {
      width: calc(440px * var(--fontScale));
      justify-self: center;
   }
}

.p_top_sectionGrid {
   display: grid;
}

.p_top_sectionGrid>* {
   grid-row: 1/-1;
   grid-column: 1/-1;
}


.p_topJigyo {
   z-index: 1;
   padding-top: calc(80px * var(--fontScale));
   padding-bottom: calc(53px * var(--fontScale));
   overflow: hidden;
   width: 100%;
   max-width: 100%;
   min-height: calc(1249px * var(--fontScale));

   position: relative;
}

.p_topJigyo_bg {
   width: 120%;
   max-width: 120%;
   transform: translateX(-10%);
   aspect-ratio: 1728 / 1202;
   max-height: 1202px;
}

@media (max-width: 767px) {
   .p_topJigyo_bg {
      aspect-ratio: 900 / 2335;
      max-height: 2335px;
   }
}

.p_topJigyo_contentsBg {
   width: min(calc(1606 / 1440 * 100vw), 1606px);
   max-width: 120%;
   position: absolute;
   top: 0;
   left: 53%;
   transform: translateX(-50%);
}

@media (max-width: 767px) {
   .p_topJigyo_contentsBg {
      width: min(calc(1013 / 750 * 100vw), 1013px);
      max-width: 1013px;
      max-height: 2335px;
      top: 2%;
      left: 60%;
   }
}

.p_topJigyo_contents {
   position: absolute;
   top: 0;
   left: 50%;
   transform: translateX(-50%);
   width: min(100%, 1440px);
}

.p_topJigyo_headingGroup {
   position: absolute;
   top: calc(398px * var(--fontScale));
   left: calc(140px * var(--fontScale));
}

@media (max-width: 767px) {
   .p_topJigyo_headingGroup {
      top: calc(320px * var(--fontScale));
      left: calc(180px * var(--fontScale));
   }
}

.p_topJigyo_heading {
   color: var(--colorPrimary);
   font-size: var(--36px);
   font-weight: var(--Medium);
   line-height: 1.4;
}

.p_topJigyo_headingGroupDesc {
   margin-top: calc(30px * var(--fontScale));
   font-size: var(--20px);
   font-weight: var(--Medium);
   line-height: 2.4;
}

@media (max-width: 767px) {
   .p_topJigyo_headingGroupDesc {
      font-size: var(--26px);
   }
}

.p_topJigyo_card {
   position: absolute;
}

.p_topJigyo_card.__01 {
   top: calc(87px * var(--fontScale));
   right: calc(273px * var(--fontScale));
   width: calc(486px * var(--fontScale));
   height: calc(375px * var(--fontScale));
}

@media (max-width: 767px) {
   .p_topJigyo_card.__01 {
      top: calc(670px * var(--fontScale));
      right: calc(50px * var(--fontScale));
      width: calc(729px * var(--fontScale));
      height: calc(562px * var(--fontScale));
   }
}

.p_topJigyo_card.__02 {
   top: calc(398px * var(--fontScale));
   right: calc(150px * var(--fontScale));
   width: calc(750px * var(--fontScale));
   height: calc(543px * var(--fontScale));
}

@media (max-width: 767px) {
   .p_topJigyo_card.__02 {
      --right: calc(50px * var(--fontScale));
      top: calc(1212px * var(--fontScale));
      right: calc(var(--right) * -1);
   }
}

.p_topJigyo_cardInner {
   position: relative;
}

.p_topJigyo_cardTitle {
   position: absolute;
   display: grid;
   width: calc(250px * var(--fontScale));
   height: auto;
   aspect-ratio: 1/1;
   place-items: center;

   background: var(--colorWhite);
   border-radius: 100%;

   font-size: var(--20px);
   font-weight: var(--Medium);
   line-height: 1.4;
   text-align: center;
   z-index: 1;
}

@media (max-width: 767px) {
   .p_topJigyo_cardTitle {
      width: calc(375px * var(--fontScale));
      font-size: var(--30px);
   }
}

.p_topJigyo_cardImage {
   position: absolute;
   width: calc(300px * var(--fontScale));
   height: auto;
   aspect-ratio: 1/1;
   z-index: 2;
}

@media (max-width: 767px) {
   .p_topJigyo_cardImage {
      width: calc(450px * var(--fontScale));
   }
}

.p_topJigyo_card.__01 .p_topJigyo_cardTitle {
   top: 0;
   right: 0;
}

.p_topJigyo_card.__01 .p_topJigyo_cardImage {
   top: calc(75px * var(--fontScale));
   right: calc(186px * var(--fontScale));
}

@media (max-width: 767px) {
   .p_topJigyo_card.__01 .p_topJigyo_cardImage {
      top: calc(112px * var(--fontScale));
      right: calc(279px * var(--fontScale));
   }
}

.p_topJigyo_card.__02 .p_topJigyo_cardTitle {
   top: calc(112px * var(--fontScale));
   right: calc(250px * var(--fontScale));
}

@media (max-width: 767px) {
   .p_topJigyo_card.__02 .p_topJigyo_cardTitle {
      top: calc(168px * var(--fontScale));
      right: calc(375px * var(--fontScale));
   }
}

.p_topJigyo_card.__02 .p_topJigyo_cardImage {
   top: 0;
   right: 0;
}

.p_topHeadingGroup {
   display: grid;
   justify-content: center;
}

.p_topHeadingGroup_heading {
   margin-top: calc(8px * var(--fontScale));
   font-size: var(--36px);
   font-weight: var(--Medium);
   line-height: 1.4;
   text-align: center;
}

@media (max-width: 767px) {
   .p_topHeadingGroup_heading {
      font-size: var(--40px);
   }
}

.p_topHeadingGroup_decoTxt {
   justify-self: center;
   width: fit-content;
   color: var(--colorPrimary);
   font-size: var(--20px);
   font-weight: var(--Medium);
   line-height: 1.4;
   text-align: center;
   text-transform: uppercase;
   display: grid;
   grid-auto-flow: column;
   justify-content: center;
   column-gap: 0.5em;
}

@media (max-width: 767px) {
   .p_topHeadingGroup_decoTxt {
      font-size: var(--26px);
   }
}

.p_topHeadingGroup_decoTxt::before {
   content: "―";
   font-size: 1em;
   font-weight: var(--Medium);
   color: var(--colorPrimary);
}

.p_topHeadingGroup_decoTxt::after {
   content: "―";
   font-size: 1em;
   font-weight: var(--Medium);
   color: var(--colorPrimary);
}


.p_topCardList {
   margin-top: calc(50px * var(--fontScale));

   width: min(var(--contentsWidth), 1140px);
   margin-inline: auto;
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   justify-content: space-between;
   row-gap: calc(24px * var(--fontScale));
   column-gap: calc(24px * var(--fontScale));
}

@media (max-width: 767px) {
   .p_topCardList {
      grid-template-columns: repeat(1, minmax(0, 1fr));
      row-gap: calc(50px * var(--fontScale));
   }
}

.p_topCard_title {
   font-size: var(--20px);
   font-weight: var(--Medium);
   line-height: 1.4;
   margin-top: calc(16px * var(--fontScale));
   text-align: center;
}

@media (max-width: 767px) {
   .p_topCard_title {
      margin-top: calc(20px * var(--fontScale));
      font-size: var(--30px);
   }
}

.p_topCard_image {
   width: 100%;
   height: auto;
}

.p_topDepartments {
   margin-top: calc(817px * var(--fontScale));
   padding-bottom: calc(100px * var(--fontScale));
   z-index: 2;
}

@media (max-width: 767px) {
   .p_topDepartments {
      margin-top: calc(1923px * var(--fontScale));
      padding-bottom: calc(75px * var(--fontScale));
   }
}


.p_topAchievements {
   background: var(--colorBgCream);
   width: 100%;
   height: calc(543px * var(--fontScale));
   overflow: hidden;
   position: relative;
   padding-top: calc(50px * var(--fontScale));
}

@media (max-width: 767px) {
   .p_topAchievements {
      height: calc(1200px * var(--fontScale));
      height: calc(1450px * var(--fontScale));
      padding-top: calc(135px * var(--fontScale));
      /* padding-top: calc(68px * var(--fontScale)); */
   }
}

.p_topAchievements_contentsBg {
   width: min(calc(1843 / 1440 * 100vw), 1843px);
   aspect-ratio: 1843/930;
   max-width: 1843px;
   position: absolute;
   top: -14%;
   left: 50%;
   transform: translateX(-61%);
   z-index: 0;
}

@media (max-width: 767px) {
   .p_topAchievements_contentsBg {
      width: min(calc(1319 / 750 * 100vw), 1319px);
      aspect-ratio: 1319/1091;
      max-width: 1319px;
      top: 4%;
      left: 50%;
      transform: translateX(-58%);
   }
}

.p_topAchievements .p_topHeadingGroup {
   position: relative;
   z-index: 1;
}

.p_topAchievements_list {
   margin-top: calc(84px * var(--fontScale));
   position: relative;
   z-index: 1;
   width: calc(1041px * var(--fontScale));
   width: min(var(--contentsWidth), 1140px);
   margin-inline: auto;
   display: grid;
   grid-template-columns: repeat(5, minmax(0, 1fr));
   justify-content: space-between;
   column-gap: calc(27px * var(--fontScale));
}

@media (max-width: 767px) {
   .p_topAchievements_list {
      width: var(--contentsWidth);
      margin-top: calc(103px * var(--fontScale));
      /* margin-top: calc(51px * var(--fontScale)); */
      grid-template-columns: repeat(2, minmax(0, 1fr));
      row-gap: calc(40px * var(--fontScale));
      column-gap: calc(40px * var(--fontScale));
   }
}

.p_topAchievements_card {
   background: var(--colorWhite);
   border: solid 4px var(--colorPrimary);
   border-radius: 100%;
   aspect-ratio: 1/1;

   position: relative;
   container-type: inline-size;
}

.p_topAchievements_cardHeading {
   /* margin-top: calc(64px * var(--fontScale)); */
   font-size: var(--20px);
   font-size: calc(100cqw * 20 / 240);
   font-weight: var(--Bold);
   color: var(--colorPrimary);
   text-align: center;
   height: fit-content;

   position: absolute;
   top: calc(64px * var(--fontScale));
   top: calc(100% * 59 / 235);
   left: 50%;
   transform: translateX(-50%);
   width: 100%;
}

@media (max-width: 767px) {
   .p_topAchievements_cardHeading {
      /* margin-top: calc(80px * var(--fontScale)); */
      font-size: var(--25px);
   }
}

.p_topAchievements_cardTxt {
   margin-top: calc(8px * var(--fontScale));
   font-size: var(--30px);
   font-size: calc(100cqw * 30 / 240);

   font-weight: var(--Bold);
   line-height: 1.4;
   text-align: center;
   height: fit-content;

   position: absolute;
   top: calc(100px * var(--fontScale));
   top: calc(100% * 85 / 235);
   top: calc(100% * 95 / 235);
   left: 50%;
   transform: translateX(-50%);
   width: 100%;
}

.p_topAchievements_cardHeading.__2row {
   top: calc(100% * 40 / 235);
}

@media (max-width: 767px) {
   .p_topAchievements_cardTxt {
      /* margin-top: calc(10px * var(--fontScale)); */
      font-size: var(--38px);
   }
}

.p_topAchievements_cardTxtNum {
   font-size: var(--50px);
   font-size: calc(100cqw * 50 / 240);
}

@media (max-width: 767px) {
   .p_topAchievements_cardTxtNum {
      font-size: var(--62px);
   }
}

.p_topLead {
   width: min(var(--contentsWidth), 1140px);
   margin-inline: auto;
   font-size: var(--20px);
   font-size: max(calc(12/16 * 1rem), var(--20px));
   font-weight: var(--Medium);
   line-height: 2.4;

   margin-top: calc(55px * var(--fontScale));
   text-align: center;
}

@media (max-width: 767px) {
   .p_topLead {
      font-size: var(--26px);
      text-align-last: left;
   }
}

.p_topSustainability {
   padding-top: calc(72px * var(--fontScale));
}

/* ご挨拶 message */
.p_messeage__container {
   width: 100%;
   display: grid;
   grid-auto-flow: column;
   grid-template-columns: 1fr calc(500px * var(--fontScale));
   justify-content: space-between;
   column-gap: calc(90px * var(--fontScale));
}

@media (max-width: 767px) {
   .p_messeage__container {
      grid-auto-flow: row;
      grid-template-columns: 1fr;
      row-gap: 2.4em;
   }
}

.p_messeage__containerHeading {
   margin-top: 0;
   line-height: 1.8;
   display: flex;
   flex-direction: column;
}

.p_messeage__containerText *+* {
   margin-top: 1.8em;
}

img.p_messeage__containerImage {
   width: 100%;
}

.p_message_callOut {
   --imgWidth: max(calc(260px * var(--fontScale)), 195px);
   --imgWidth: max(calc(300px * var(--fontScale)), 225px);
   margin-top: calc(150px * var(--fontScale));
   background: var(--colorBgCream);
   padding: calc(50px * var(--fontScale)) calc(50px * var(--fontScale));

   width: 100%;
   display: grid;
   grid-auto-flow: column;
   grid-template-columns: var(--imgWidth) 1fr;
   justify-content: space-between;
   column-gap: calc(38px * var(--fontScale));
}

@media (max-width: 767px) {
   .p_message_callOut {
      margin-top: calc(75px * var(--fontScale));
      grid-auto-flow: row;
      grid-template-columns: 1fr;
      row-gap: 2.4em;
      padding: calc(40px * var(--fontScale)) calc(50px * var(--fontScale));

   }
}

@media (max-width: 767px) {
   .p_message_callOutFigure {
      grid-row: 2;
   }
}

.p_message_callOutHeading {
   display: block;
   font-size: var(--24px);
   font-weight: var(--Medium);
   margin-top: 0;
   margin-bottom: calc(20px * var(--fontScale));
}

@media (max-width: 767px) {
   .p_message_callOutHeading {
      font-size: var(--32px);
   }
}

.p_message_callOutDesc *+* {
   margin-top: 1.8em;
}

img.p_message_callOutImage {
   width: 100%;
}

@media (max-width: 767px) {
   img.p_message_callOutImage {
      width: 100%;
   }
}


/* 部門紹介 department */
.p_department_img.__01 {
   width: min(78.9%, 900px);
   /* width: 100%; */
   margin-top: calc(50px * var(--fontScale));
   /* margin-top: calc(100px * var(--fontScale)); */
   margin-inline: auto;
   margin-bottom: calc(100px * var(--fontScale));
}

@media (max-width: 767px) {
   .p_department_img.__01 {
      width: 100%;
      margin-top: calc(50px * var(--fontScale));
      margin-bottom: calc(100px * var(--fontScale));
   }
}

.p_department_img.__02 {
   width: min(78.9%, 900px);
   /* width: 100%; */
   margin-top: calc(50px * var(--fontScale));
   /* margin-top: calc(100px * var(--fontScale)); */
   margin-inline: auto;
}

@media (max-width: 767px) {
   .p_department_img.__02 {
      width: 100%;
      margin-top: calc(50px * var(--fontScale));
   }
}

.p_department_container {
   width: 100%;
   display: grid;
   grid-auto-flow: column;
   grid-template-columns: 1fr calc(500px * var(--fontScale));
   justify-content: space-between;
   column-gap: calc(90px * var(--fontScale));
}

@media (max-width: 767px) {
   .p_department_container {
      grid-auto-flow: row;
      grid-template-columns: 1fr;
      row-gap: 2.4em;
      column-gap: 0;
   }
}

/* .p_department_table */
.p_department_table .col01 {
   width: calc(100/600 * 100%);
}

.p_department_table .col02 {
   width: calc(270/600 * 100%);
}

.p_department_table .col03 {
   width: calc(180/600 * 100%);
}

.p_department_table tr {
   border-top: 1px solid var(--colorBorderBlue);
   border-bottom: 1px solid var(--colorBorderBlue);
}

.p_department_table th {
   padding: calc(20px * var(--fontScale)) calc(40px * var(--fontScale));
   font-weight: var(--Medium);
   line-height: 1.8;
   background: var(--colorBgBluePale);
   text-align: left;
}

th.p_department_tableHeading {
   border-right: 1px solid var(--colorBorderBlue);
   padding-inline: 10px;
   text-align: center;
}

.p_department_table td {
   padding: calc(20px * var(--fontScale)) calc(40px * var(--fontScale));
   font-weight: var(--Medium);
   line-height: 1.8;
   text-align: center;
}

/* ==========================================================================
   utility
   ========================================================================== */

.__mt10 {
   margin-top: calc(10px * var(--fontScale));
}

.__mt20 {
   margin-top: calc(20px * var(--fontScale));
}

.__mt30 {
   margin-top: calc(30px * var(--fontScale));
}

.__mt40 {
   margin-top: calc(40px * var(--fontScale));
}

.__mt50 {
   margin-top: calc(50px * var(--fontScale));
}

.__mt60 {
   margin-top: calc(60px * var(--fontScale));
}

.__mt70 {
   margin-top: calc(70px * var(--fontScale));
}

.__mt80 {
   margin-top: calc(80px * var(--fontScale));
}

.__mt90 {
   margin-top: calc(90px * var(--fontScale));
}

.__mt100 {
   margin-top: calc(100px * var(--fontScale));
}

@media (max-width: 767px) {
   .__sm_mt10 {
      margin-top: min(10px, calc(10 * var(--px750)));
   }

   .__sm_mt20 {
      margin-top: min(20px, calc(20 * var(--px750)));
   }

   .__sm_mt30 {
      margin-top: min(30px, calc(30 * var(--px750)));
   }

   .__sm_mt40 {
      margin-top: min(40px, calc(40 * var(--px750)));
   }

   .__sm_mt50 {
      margin-top: min(50px, calc(50 * var(--px750)));
   }

   .__sm_mt60 {
      margin-top: min(60px, calc(60 * var(--px750)));
   }

   .__sm_mt70 {
      margin-top: min(70px, calc(70 * var(--px750)));
   }

   .__sm_mt80 {
      margin-top: min(80px, calc(80 * var(--px750)));
   }

   .__sm_mt90 {
      margin-top: min(90px, calc(90 * var(--px750)));
   }

   .__sm_mt100 {
      margin-top: min(100px, calc(100 * var(--px750)));
   }
}

.__textCenter {
   text-align: center;
}

.__textRight {
   text-align: right;
}

.__placeCenter {
   margin-inline: auto;
}

.__onlyPc {
   display: block;
}

@media (max-width: 1023px) {
   .__onlyPc {
      display: none;
   }
}

.__onlySp {
   display: none;
}

@media (max-width: 767px) {
   .__onlySp {
      display: block;
   }
}

.__border {
   border: 1px solid var(--colorBorderGray);
}

.visuallyHidden {
   position: absolute;
   width: 1px;
   height: 1px;
   overflow: hidden;
   clip: rect(1px, 1px, 1px, 1px);
}