@charset "UTF-8";
/* prettier-ignore */
/* -------------------------
   User stylesheet (SCSS)
   Converted from user.css — grouped by feature with short comments.
   Override variables above (user-variables / theme variables) if needed.
---------------------------*/
/* Override theme .fs-8 (project-level) */
@media (min-width: 992px) {
  .fs-8, .fs-lg-8 {
    font-size: 1.11rem !important;
  }
  .fs-7, .fs-lg-7 {
    font-size: 1.777rem !important;
  }
  .fs-6, .fs-lg-6 {
    font-size: 2.5rem !important;
  }
}
/*
@media (max-width: 900px) {
  .fs-8 {
    font-size: 2.1rem !important;
  }
}
 */
h1, h2, h3, h4, h5, h6, p {
  font-family: "Noto Serif JP", serif, sans-serif;
  font-weight: 700;
  color: #19393b;
  letter-spacing: 0.02em;
}

p, a, li, address, .badge, .button-round, td, th {
  font-family: "Noto Serif JP", serif, sans-serif;
  font-weight: 500;
}

.h-bg {
  background: linear-gradient(25deg, #294d59 0%, #294d59 18%, #307b94 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.h-bg-medium {
  background: linear-gradient(25deg, #294d59 0%, #294d59 18%, #3b7e94 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.bg-green {
  background: linear-gradient(35deg, #e2f0ef 0%, #E6F5F5 100%) !important;
}

.bg-white {
  background: linear-gradient(35deg, #ecf5f4 0%, #f7fafa 100%) !important;
}

.bg-green-flat {
  background: #e4f0f0;
}

.bg-light {
  background: #f8fcff !important;
}

.bg-gold {
  background: #ECE2C6 !important;
}

.bg-t {
  overflow: hidden;
}

.btn {
  font-family: "Noto Serif JP", serif, sans-serif;
}

.button-round a {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: distribute;
  justify-content: space-around;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  margin: 0 auto;
  max-width: 230px;
  padding: 10px 0px 10px 20px;
  font-family: "Noto Serif JP", serif, sans-serif;
  line-height: 1.7;
  text-decoration: none;
  color: #19393b;
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
  font-weight: 600;
  border: solid 1px #19393b;
  border-radius: 4rem;
}
.button-round a.w-300 {
  max-width: 300px;
}
.button-round a.w-400 {
  max-width: 400px;
}
.button-round a.bg-black {
  background: #19393b !important;
  color: #EEE;
}
.button-round a.bg-black:hover {
  background: #070f10;
}
.button-round a:before, .button-round a:after {
  content: "";
  position: absolute;
  display: block;
  top: 50%;
}
.button-round a:before {
  width: 0.5rem;
  height: 0.5rem;
  left: 1.6rem;
  border-top: solid 1px #19393b;
  border-right: solid 1px #19393b;
  z-index: 2;
  -webkit-transform: translateY(-50%) rotate(45deg);
  -ms-transform: translateY(-50%) rotate(45deg);
  transform: translateY(-50%) rotate(45deg);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.button-round a.bg-black:before {
  border-top: solid 1px #EEE;
  border-right: solid 1px #EEE;
}
.button-round a:after {
  left: 0;
  background: none;
  z-index: 1;
  width: 3rem;
  height: 3rem;
  border-radius: 4rem;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}
.button-round a span {
  position: relative;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  z-index: 3;
}
.button-round a:hover span {
  color: #eee;
}
.button-round a:hover:before {
  left: 2.2rem;
  border-top: solid 2px #eee;
  border-right: solid 2px #eee;
}
.button-round a:hover:after {
  right: 0;
  width: 100%;
  background: #19393b;
}

.parentheses {
  position: relative;
  padding: 1rem;
  font-weight: bold;
  text-align: center;
  width: 92%;
  margin-left: auto;
  margin-right: auto;
}

.parentheses::before,
.parentheses::after {
  position: absolute;
  width: 60px;
  height: 60px;
  content: "";
}

.parentheses::before {
  border-left: solid 1px #19393b;
  border-top: solid 1px #19393b;
  top: 0;
  left: 0;
}

.parentheses::after {
  border-right: solid 1px #19393b;
  border-bottom: solid 1px #19393b;
  bottom: 0;
  right: 0;
}

/* マーカーのスタイル */
.marker {
  background-image: -webkit-gradient(linear, left top, right top, from(#b1e2d2), to(#b1e2d2));
  background-image: linear-gradient(90deg, #b1e2d2, #b1e2d2); /* 線の色 */
  background-position: left bottom; /* 線の起点を左・下に設定 */
  background-repeat: no-repeat;
  background-size: 0 0.22em; /* 線の横幅を0、縦幅を0.5emに */
  padding-bottom: 2px; /* 下線を下にズラす */
  padding-left: 0.12em;
  padding-right: 0.12em;
  -webkit-transition: background-size 0.8s ease-in-out 1.2s;
  transition: background-size 0.8s ease-in-out 1.2s; /* 線を伸ばすアニメーション実行時間を指定 */
}
.marker.active {
  background-size: 100% 0.5em; /* 線の横幅を100%にする */
  text-shadow: none;
}

/* Reset / base */
html, body {
  margin: 0;
  height: 100%;
  font-family: "Noto Serif JP", serif, sans-serif;
  font-weight: 500;
  color: #19393b;
  background: #f8fcff;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

body.menu-open {
  overflow: hidden;
}

/* Opening / logo */
.opening {
  position: fixed;
  inset: 0;
  background: #f8fcff;
  z-index: 9000;
  opacity: 1;
  -webkit-transition: opacity 400ms ease;
  transition: opacity 400ms ease;
  /* SVG draw states */
  /* other svg-elem-* fills handled inline in original SVG via classes */
}
.opening svg .svg-elem-1 {
  stroke-dashoffset: 184.4367523193px;
  stroke-dasharray: 184.4367523193px;
  fill: transparent;
  -webkit-transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0.8s;
  transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0.8s;
}
.opening svg.active .svg-elem-1 {
  stroke-dashoffset: 0;
  fill: rgb(0, 146, 58);
}
.opening svg .svg-elem-2 {
  stroke-dashoffset: 183.3790893555px;
  stroke-dasharray: 183.3790893555px;
  fill: transparent;
  -webkit-transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0.12s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0.9s;
  transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0.12s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0.9s;
}
.opening svg.active .svg-elem-2 {
  stroke-dashoffset: 0;
  fill: rgb(143, 195, 31);
}
.opening svg .svg-elem-3 {
  stroke-dashoffset: 162.2409210205px;
  stroke-dasharray: 162.2409210205px;
  fill: transparent;
  -webkit-transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0.24s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1s;
  transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0.24s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1s;
}
.opening svg.active .svg-elem-3 {
  stroke-dashoffset: 0;
  fill: rgb(90, 88, 88);
}
.opening svg .svg-elem-4 {
  stroke-dashoffset: 85.9845733643px;
  stroke-dasharray: 85.9845733643px;
  fill: transparent;
  -webkit-transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0.36s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.1s;
  transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0.36s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.1s;
}
.opening svg.active .svg-elem-4 {
  stroke-dashoffset: 0;
  fill: rgb(90, 88, 88);
}
.opening svg .svg-elem-5 {
  stroke-dashoffset: 131.9557800293px;
  stroke-dasharray: 131.9557800293px;
  fill: transparent;
  -webkit-transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0.48s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.2s;
  transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0.48s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.2s;
}
.opening svg.active .svg-elem-5 {
  stroke-dashoffset: 0;
  fill: rgb(90, 88, 88);
}
.opening svg .svg-elem-6 {
  stroke-dashoffset: 136.4938049316px;
  stroke-dasharray: 136.4938049316px;
  fill: transparent;
  -webkit-transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0.6s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.3s;
  transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0.6s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.3s;
}
.opening svg.active .svg-elem-6 {
  stroke-dashoffset: 0;
  fill: rgb(90, 88, 88);
}
.opening svg .svg-elem-7 {
  stroke-dashoffset: 85.9846801758px;
  stroke-dasharray: 85.9846801758px;
  fill: transparent;
  -webkit-transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0.72s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.4s;
  transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0.72s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.4s;
}
.opening svg.active .svg-elem-7 {
  stroke-dashoffset: 0;
  fill: rgb(90, 88, 88);
}
.opening svg .svg-elem-8 {
  stroke-dashoffset: 133.9528198242px;
  stroke-dasharray: 133.9528198242px;
  fill: transparent;
  -webkit-transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0.84s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.5s;
  transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0.84s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.5s;
}
.opening svg.active .svg-elem-8 {
  stroke-dashoffset: 0;
  fill: rgb(90, 88, 88);
}
.opening svg .svg-elem-9 {
  stroke-dashoffset: 112.5504837036px;
  stroke-dasharray: 112.5504837036px;
  fill: transparent;
  -webkit-transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0.96s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.6s;
  transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0.96s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.6s;
}
.opening svg.active .svg-elem-9 {
  stroke-dashoffset: 0;
  fill: rgb(90, 88, 88);
}
.opening svg .svg-elem-10 {
  stroke-dashoffset: 85.9846191406px;
  stroke-dasharray: 85.9846191406px;
  fill: transparent;
  -webkit-transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 1.08s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.7s;
  transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 1.08s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.7s;
}
.opening svg.active .svg-elem-10 {
  stroke-dashoffset: 0;
  fill: rgb(90, 88, 88);
}
.opening svg .svg-elem-11 {
  stroke-dashoffset: 187.7217559814px;
  stroke-dasharray: 187.7217559814px;
  fill: transparent;
  -webkit-transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 1.2s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.8s;
  transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 1.2s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.8s;
}
.opening svg.active .svg-elem-11 {
  stroke-dashoffset: 0;
  fill: rgb(90, 88, 88);
}
.opening svg .svg-elem-12 {
  stroke-dashoffset: 137.8960266113px;
  stroke-dasharray: 137.8960266113px;
  fill: transparent;
  -webkit-transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 1.32s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.9s;
  transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 1.32s, fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 1.9s;
}
.opening svg.active .svg-elem-12 {
  stroke-dashoffset: 0;
  fill: rgb(90, 88, 88);
}
.opening.fade-out {
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 400ms ease, visibility 0s linear 400ms;
  transition: opacity 400ms ease, visibility 0s linear 400ms;
}
.opening .logo_dspln {
  width: 450px !important;
  max-width: 90vw;
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  z-index: 9010;
}
.opening svg.active .svg-elem-1 {
  stroke-dashoffset: 0;
  fill: rgb(0, 146, 58);
}
.opening svg.active .svg-elem-2 {
  stroke-dashoffset: 0;
  fill: rgb(143, 195, 31);
}

/* Header / navigation */
header, .gnav {
  position: fixed;
  top: 20px;
  left: 20px;
  right: 36px;
  z-index: 1020;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  padding: 10px 24px;
  background: rgba(249, 250, 250, 0.96);
  border-radius: 10px;
  -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
  opacity: 0;
  -webkit-transition: opacity 2s ease;
  transition: opacity 2s ease;
}
page header, page .gnav {
  opacity: 1;
}
header img.logo, .gnav img.logo {
  height: 28px;
}
header ul, .gnav ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
header a, .gnav a {
  text-decoration: none;
  color: #19393b;
  font-weight: 500;
  font-size: 0.98rem;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  padding: 10px 0;
}
header a:hover, .gnav a:hover {
  color: #025848;
  opacity: 0.85;
}
header.active, .gnav.active {
  opacity: 1;
}

/* Desktop-only submenu: two-row panel under 'サービス' on hover */
@media (min-width: 992px) {
  .gnav nav ul {
    position: relative;
  }
  .gnav nav ul li.has-submenu {
    position: relative;
  }
  .submenu-toggle {
    border: none;
    padding: 0.2rem 0 0 0.3rem;
    background: none;
    margin: 0;
    vertical-align: top;
  }
  .submenu-toggle .fa-angle-down {
    color: #19393b;
  }
  /* visually hide checkbox but keep it accessible */
  .submenu-checkbox {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
  }
  .gnav nav ul li .sub-menu {
    display: block; /* keep in DOM but hidden visually */
    position: absolute;
    left: 0;
    top: calc(100% + 8px);
    width: 205px; /* fixed panel width */
    background: rgba(249, 250, 250, 0.98);
    border-radius: 8px;
    -webkit-box-shadow: 0 8px 28px rgba(0, 0, 0, 0.12);
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.12);
    padding: 1rem 1.2rem;
    opacity: 0;
    -webkit-transform: translateY(-6px);
    -ms-transform: translateY(-6px);
    transform: translateY(-6px);
    -webkit-transition: opacity 260ms ease, -webkit-transform 260ms ease;
    transition: opacity 260ms ease, -webkit-transform 260ms ease;
    transition: opacity 260ms ease, transform 260ms ease;
    transition: opacity 260ms ease, transform 260ms ease, -webkit-transform 260ms ease;
    display: none;
    pointer-events: none;
  }
  /* make submenu items flow in two columns (2 rows visual when items wrap) */
  .gnav nav ul li .sub-menu {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
  }
  .gnav nav ul li .sub-menu li {
    list-style: none;
  }
  /* Submenu item divider (thin subtle line) */
  .gnav nav ul li .sub-menu li + li {
    border-top: 1px solid rgba(25, 57, 59, 0.06);
    padding-top: 0.6rem;
    margin-top: 0.6rem;
  }
  /* Only show submenu on desktop when keyboard-focused (focus-within) or hovered directly by link/label if using CSS-only label+checkbox approach */
  .gnav nav ul li.has-submenu:focus-within > .sub-menu {
    height: auto;
    display: grid;
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
  /* Also show when hovering the visible link or the label (arrow) */
  .gnav nav ul li.has-submenu:hover > .sub-menu,
  .gnav nav ul li.has-submenu > .submenu-toggle:hover + .sub-menu,
  .gnav nav ul li.has-submenu > a:hover + .submenu-toggle + .sub-menu {
    display: grid;
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
    pointer-events: auto;
  }
}
.gnav__toggle {
  display: none;
  background: transparent;
  border: none;
}

/* contact button */
.btn-contact a {
  background: #025824;
  color: #fff;
  padding: 0.5rem 25px;
  border-radius: 50px;
}
.btn-contact a:hover {
  color: #fff;
  background: #025848;
}

@media (max-width: 991.98px) {
  header,
  .gnav {
    top: 0;
    left: 0;
    right: 0;
    padding: 0 16px;
    border-radius: 14px;
    background: rgba(249, 250, 250, 0.94);
    -webkit-box-shadow: 0 8px 12px rgba(12, 34, 58, 0.08);
    box-shadow: 0 8px 12px rgba(12, 34, 58, 0.08);
  }
  .gnav {
    --gnav-height: 60px;
    min-height: var(--gnav-height);
    gap: 0.75rem;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    border-radius: 0px;
  }
  .gnav nav {
    position: fixed;
    top: calc(12px + var(--gnav-height) + 8px);
    left: 12px;
    right: 12px;
    background: rgba(249, 250, 250, 0.94);
    border-radius: 16px;
    padding: 1.1rem clamp(1rem, 4vw, 1.5rem);
    -webkit-box-shadow: 0 22px 48px rgba(9, 30, 66, 0.18);
    box-shadow: 0 22px 48px rgba(9, 30, 66, 0.18);
    -webkit-transform: translateY(-10px);
    -ms-transform: translateY(-10px);
    transform: translateY(-10px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    -webkit-transition: opacity 0.28s ease, visibility 0s linear 0.28s, -webkit-transform 0.28s ease;
    transition: opacity 0.28s ease, visibility 0s linear 0.28s, -webkit-transform 0.28s ease;
    transition: opacity 0.28s ease, transform 0.28s ease, visibility 0s linear 0.28s;
    transition: opacity 0.28s ease, transform 0.28s ease, visibility 0s linear 0.28s, -webkit-transform 0.28s ease;
    display: block;
    z-index: 1022;
    /* Mobile: layout for items with submenu
       - Submenu should appear as a block between this item and the next
       - Arrow placed immediately to the right of the `a` link (absolute)
    */
    /* Make room for the absolute arrow */
    /* Submenu toggle button (right side arrow) - absolutely positioned */
    /* Submenu panel for mobile (collapsed by default) -- controlled by hidden checkbox */
    /* When the checkbox is checked (CSS-only), show submenu */
    /* Submenu list items styling */
    /* === Mobile: force submenu always visible, hide checkbox and arrow === */
  }
  .gnav nav ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    gap: 0.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .gnav nav li {
    width: 100%;
  }
  .gnav nav li.has-submenu {
    display: block;
    position: relative;
  }
  .gnav nav li.has-submenu > a {
    display: block;
    padding-right: 44px; /* space for the toggle button at right */
    padding: 0.85rem 0.25rem;
  }
  .gnav nav .submenu-toggle {
    position: absolute;
    right: 8px;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    background: transparent;
    border: none;
    width: 36px;
    height: 36px;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    color: #19393b;
    cursor: pointer;
    -webkit-transition: color 180ms ease, -webkit-transform 220ms ease;
    transition: color 180ms ease, -webkit-transform 220ms ease;
    transition: transform 220ms ease, color 180ms ease;
    transition: transform 220ms ease, color 180ms ease, -webkit-transform 220ms ease;
    padding: 0;
    z-index: 2;
  }
  .gnav nav .submenu-toggle[aria-expanded=true] {
    -webkit-transform: translateY(-50%) rotate(180deg);
    -ms-transform: translateY(-50%) rotate(180deg);
    transform: translateY(-50%) rotate(180deg);
  }
  .gnav nav .sub-menu {
    display: block;
    width: 100%;
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    -webkit-transform: translateY(-6px);
    -ms-transform: translateY(-6px);
    transform: translateY(-6px);
    -webkit-transition: max-height 320ms ease, opacity 320ms ease, -webkit-transform 320ms ease;
    transition: max-height 320ms ease, opacity 320ms ease, -webkit-transform 320ms ease;
    transition: max-height 320ms ease, opacity 320ms ease, transform 320ms ease;
    transition: max-height 320ms ease, opacity 320ms ease, transform 320ms ease, -webkit-transform 320ms ease;
    margin-top: 0.4rem;
    padding-left: 0.6rem;
  }
  .gnav nav .submenu-checkbox:checked + .submenu-toggle + .sub-menu,
  .gnav nav li.has-submenu > .submenu-toggle:hover + .sub-menu {
    max-height: 480px;
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
  .gnav nav .sub-menu li {
    list-style: none;
  }
  .gnav nav .sub-menu li a {
    display: block;
    padding-left: 1.25rem;
    border-bottom: 1px solid rgba(25, 57, 59, 0.1);
  }
  .gnav nav .sub-menu li:last-child a {
    border-bottom: 1px solid rgba(25, 57, 59, 0.1);
  }
  .gnav nav .submenu-checkbox {
    display: none !important;
  }
  .gnav nav .submenu-toggle {
    display: none !important;
  }
  .gnav nav .sub-menu {
    max-height: none !important;
    opacity: 1 !important;
    -webkit-transform: translateY(0) !important;
    -ms-transform: translateY(0) !important;
    transform: translateY(0) !important;
    display: block !important;
    padding-left: 0 !important;
    margin-top: 0 !important;
    overflow: visible !important;
    -webkit-transition: none !important;
    transition: none !important;
  }
  .gnav nav a {
    display: block;
    width: 100%;
    padding: 0.85rem 0.25rem;
    font-size: 1.1rem;
    border-bottom: 1px solid rgba(25, 57, 59, 0.1);
    -webkit-transition: color 0.3s ease, opacity 0.3s ease;
    transition: color 0.3s ease, opacity 0.3s ease;
  }
  .gnav nav li:last-child a {
    border-bottom: none;
  }
  .gnav::after {
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(10, 32, 41, 0.32);
    opacity: 0;
    pointer-events: none;
    -webkit-transition: opacity 0.28s ease;
    transition: opacity 0.28s ease;
    z-index: 1021;
  }
  .gnav.is-open nav {
    opacity: 1;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
    visibility: visible;
    pointer-events: auto;
    -webkit-transition: opacity 0.32s ease, -webkit-transform 0.32s ease;
    transition: opacity 0.32s ease, -webkit-transform 0.32s ease;
    transition: opacity 0.32s ease, transform 0.32s ease;
    transition: opacity 0.32s ease, transform 0.32s ease, -webkit-transform 0.32s ease;
  }
  .gnav.is-open::after {
    opacity: 1;
    pointer-events: auto;
  }
  .gnav .logo {
    height: 26px;
    max-width: 56vw;
  }
  .gnav .gnav__toggle {
    position: relative;
    width: 46px;
    height: 46px;
    border: none;
    border-radius: 50%;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.1);
    cursor: pointer;
    -webkit-transition: background 0.3s ease, -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
    transition: background 0.3s ease, -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease, -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
    z-index: 1023;
  }
  .gnav .gnav__toggle:focus {
    outline: 2px solid rgba(2, 88, 36, 0.45);
    outline-offset: 2px;
  }
  .gnav .gnav__toggle:active {
    -webkit-transform: scale(0.96);
    -ms-transform: scale(0.96);
    transform: scale(0.96);
    -webkit-box-shadow: 0 6px 18px #19393b;
    box-shadow: 0 6px 18px #19393b;
  }
  .gnav .gnav__toggle-bar, .gnav .gnav__toggle::before, .gnav .gnav__toggle::after {
    content: "";
    position: absolute;
    width: 24px;
    height: 2px;
    background: #19393b;
    border-radius: 999px;
    -webkit-transition: opacity 0.24s ease, top 0.32s ease, -webkit-transform 0.32s ease;
    transition: opacity 0.24s ease, top 0.32s ease, -webkit-transform 0.32s ease;
    transition: transform 0.32s ease, opacity 0.24s ease, top 0.32s ease;
    transition: transform 0.32s ease, opacity 0.24s ease, top 0.32s ease, -webkit-transform 0.32s ease;
  }
  .gnav .gnav__toggle::before {
    top: calc(50% - 9px);
  }
  .gnav .gnav__toggle::after {
    top: calc(50% + 7px);
  }
  .gnav .gnav__toggle-bar {
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
  }
  .gnav.is-open .gnav__toggle {
    background: rgba(2, 88, 36, 0.15);
  }
  .gnav.is-open .gnav__toggle::before {
    top: 50%;
    -webkit-transform: translateY(-50%) rotate(45deg);
    -ms-transform: translateY(-50%) rotate(45deg);
    transform: translateY(-50%) rotate(45deg);
  }
  .gnav.is-open .gnav__toggle::after {
    top: 50%;
    -webkit-transform: translateY(-50%) rotate(-45deg);
    -ms-transform: translateY(-50%) rotate(-45deg);
    transform: translateY(-50%) rotate(-45deg);
  }
  .gnav.is-open .gnav__toggle-bar {
    opacity: 0;
    -webkit-transform: translateY(-50%) scaleX(0.4);
    -ms-transform: translateY(-50%) scaleX(0.4);
    transform: translateY(-50%) scaleX(0.4);
  }
  .btn-contact a {
    width: 100%;
    margin-top: 0.75rem;
    text-align: center;
  }
}
/* decorative diagonal background layer */
.bg-diagonal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  height: 116vh;
  background: url(../img/bg_base.jpg) no-repeat left center/cover;
  pointer-events: none;
  opacity: 0;
  -webkit-transition: opacity 2.5s ease-in-out;
  transition: opacity 2.5s ease-in-out;
  z-index: 0;
}
.bg-diagonal.active {
  opacity: 0.85;
}

/* Hero / Stage / Background */
.hero {
  /* Background slider (Swiper) and reveal clipping */
  position: relative;
  min-height: 100vh;
  background: transparent;
  overflow: hidden;
  z-index: 10;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 800ms ease, visibility 0s linear 800ms;
  transition: opacity 800ms ease, visibility 0s linear 800ms;
  /* Flock (decorative artwork) */
  /* Lead / title and alternating blocks */
  /* Split-text animation (per-character) */
  /* Fade helpers */
  /* Sub / marquee / ticker */
  /* ニュースティッカー */
  /* Scroll Lottie area */
}
.hero.visible {
  opacity: 1;
  visibility: visible;
}
.hero .bg_slide {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, calc(-50% + 42px));
  -ms-transform: translate(-50%, calc(-50% + 42px));
  transform: translate(-50%, calc(-50% + 42px));
  width: calc(100vw - 150px - 16px);
  max-width: 84vw;
  height: calc(100vh - 150px - 92px);
  border-radius: 25px;
  overflow: hidden;
  pointer-events: none;
  clip-path: inset(0 50% 0 50% round 25px);
  -webkit-transition: clip-path 1000ms ease-in-out;
  transition: clip-path 1000ms ease-in-out;
  z-index: 3;
}
.hero .bg_slide.active {
  clip-path: inset(0 0 0 0 round 18px);
}
.hero .bg_slide .bg_slide_wrapper {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  pointer-events: none;
}
.hero .bg_slide .swiper-slide {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  height: 100%;
}
.hero .bg_slide .swiper-slide__item {
  width: 100%;
  height: 100%;
  overflow: hidden;
  will-change: transform;
}
.hero .bg_slide .swiper-slide__item img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  display: block;
}
.hero .bg_slide .swiper-slide-active .swiper-slide__item,
.hero .bg_slide .swiper-slide-prev .swiper-slide__item {
  -webkit-animation: zoomanime 11s linear both;
  animation: zoomanime 11s linear both;
}
@-webkit-keyframes zoomanime {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  100% {
    -webkit-transform: scale(1.16);
    transform: scale(1.16);
  }
}
@keyframes zoomanime {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  100% {
    -webkit-transform: scale(1.16);
    transform: scale(1.16);
  }
}
.hero .flock {
  position: absolute;
  top: 55px;
  right: -1%;
  width: 45vw;
  min-width: 400px;
  max-width: 780px;
  z-index: 12;
  pointer-events: none;
  opacity: 0;
  -webkit-filter: blur(5px);
  filter: blur(5px);
  -webkit-transition: opacity 3.5s ease 0.1s, -webkit-filter 2.5s ease 0.1s;
  transition: opacity 3.5s ease 0.1s, -webkit-filter 2.5s ease 0.1s;
  transition: filter 2.5s ease 0.1s, opacity 3.5s ease 0.1s;
  transition: filter 2.5s ease 0.1s, opacity 3.5s ease 0.1s, -webkit-filter 2.5s ease 0.1s;
}
.hero .flock.active {
  opacity: 1;
  -webkit-filter: none;
  filter: none;
}
.hero .flock img {
  width: 100%;
  height: auto;
  display: block;
}
.hero .lead {
  position: absolute;
  top: 45%;
  left: 14vw;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  z-index: 5;
  width: 100%;
  font-size: 3.6rem;
  font-family: "Noto Serif JP", serif, sans-serif;
  font-weight: 700;
  color: #fff;
  text-shadow: 2px 2px 22px rgba(11, 85, 95, 0.36);
}
.hero .block {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  opacity: 0;
  pointer-events: none;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}
.hero .block.show {
  opacity: 1;
  pointer-events: auto;
}
.hero .text-split {
  overflow: hidden;
  padding: 0 0.5em;
}
.hero .text-split span {
  display: inline-block;
  min-width: 0.15em;
  -webkit-transform: translateY(100%);
  -ms-transform: translateY(100%);
  transform: translateY(100%);
  -webkit-transition: -webkit-transform 0.8s cubic-bezier(0.7, 0.2, 0.1, 1);
  transition: -webkit-transform 0.8s cubic-bezier(0.7, 0.2, 0.1, 1);
  transition: transform 0.8s cubic-bezier(0.7, 0.2, 0.1, 1);
  transition: transform 0.8s cubic-bezier(0.7, 0.2, 0.1, 1), -webkit-transform 0.8s cubic-bezier(0.7, 0.2, 0.1, 1);
}
.hero .title.is-active .text-split span {
  -webkit-transform: translateY(0);
  -ms-transform: translateY(0);
  transform: translateY(0);
}
.hero .fade-out {
  opacity: 0 !important;
  pointer-events: none !important;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}
.hero #scene.fade-out {
  opacity: 0 !important;
  pointer-events: none !important;
}
.hero .sub {
  position: absolute;
  bottom: 34px;
  right: 3.4vw;
  z-index: 3;
  mix-blend-mode: hard-light;
  color: rgba(204, 225, 226, 0.75);
  line-height: 1.5;
  display: inline-block;
  -webkit-text-stroke: 0 transparent;
  opacity: 0;
  -webkit-transition: opacity 2.5s ease-in-out;
  transition: opacity 2.5s ease-in-out;
}
.hero .sub.visible {
  opacity: 1;
}
.hero .sub .en {
  font-family: "Playfair Display", serif;
  font-size: 7vw;
  font-weight: 300;
  line-height: 1.01;
  text-align: right;
}
.hero .news-ticker {
  position: absolute;
  bottom: 42px;
  left: 50%;
  -webkit-transform: translate(-50%, calc(-50% + 42px));
  -ms-transform: translate(-50%, calc(-50% + 42px));
  transform: translate(-50%, calc(-50% + 42px));
  width: calc(100vw - 150px - 16px);
  max-width: 84vw;
  text-align: left;
  position: absolute;
  z-index: 10;
  min-height: 2em;
}
.hero .news-ticker .ticker-container {
  border-radius: 20px;
  background: rgba(250, 255, 255, 0.75);
  overflow: hidden;
  max-width: 56%;
  border-radius: 20px;
}
.hero .news-ticker-item {
  padding: 10px 20px;
  font-size: 0.9rem;
  -webkit-transition: opacity 0.8s, -webkit-transform 0.8s;
  transition: opacity 0.8s, -webkit-transform 0.8s;
  transition: opacity 0.8s, transform 0.8s;
  transition: opacity 0.8s, transform 0.8s, -webkit-transform 0.8s;
  opacity: 0;
  width: 100vw;
  pointer-events: none;
  -webkit-transform: translateX(-20px);
  -ms-transform: translateX(-20px);
  transform: translateX(-20px);
}
.hero .news-ticker-item .news-ticker-info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 8px;
  margin-right: 12px;
}
.hero .news-ticker-item .news-ticker-title {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
}
.hero .news-ticker-item.active {
  opacity: 1;
  -webkit-transform: translateX(0);
  -ms-transform: translateX(0);
  transform: translateX(0);
  z-index: 2;
}
.hero .news-ticker-item.fadeout {
  opacity: 0;
  -webkit-transform: translateX(10px);
  -ms-transform: translateX(10px);
  transform: translateX(10px);
  z-index: 1;
}
.hero .news-ticker-item.fadeonext {
  opacity: 0;
  -webkit-transform: translateX(-10px);
  -ms-transform: translateX(-10px);
  transform: translateX(-10px);
  z-index: 1;
}
.hero .news-ticker-item.entering {
  opacity: 0;
  -webkit-transform: translateX(-20px);
  -ms-transform: translateX(-20px);
  transform: translateX(-20px);
}
.hero .news-ticker-item.active {
  opacity: 1;
  position: relative;
  pointer-events: auto;
  -webkit-transform: translateX(0);
  -ms-transform: translateX(0);
  transform: translateX(0);
}
@media (max-width: 991.98px) {
  .hero {
    /* Lead / title and alternating blocks */
  }
  .hero .bg-diagonal {
    background: url(../img/bg_base.jpg) no-repeat 20% center/cover;
  }
  .hero .bg_slide {
    top: 40%;
    width: calc(100% - 40px);
    height: 61vh;
    max-width: unset;
    border-radius: 20px;
  }
  .hero .flock {
    position: absolute;
    top: 7.5vh;
    right: -4vw;
    width: 82vw;
    min-width: auto;
    max-width: 460px;
  }
  .hero .lead {
    position: absolute;
    top: 39%;
    left: 6vw;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    font-size: 2.3rem;
    text-shadow: 1px 1px 20px rgba(11, 85, 95, 0.36);
  }
  .hero .sub {
    bottom: 27vh;
    right: 6.5vw;
    color: rgba(204, 225, 226, 0.72);
    mix-blend-mode: screen;
  }
  .hero .sub .en {
    font-size: 11.5vw;
  }
  .hero .news-ticker {
    top: 77.6%;
    left: 20px;
    bottom: auto;
    width: 100%;
    max-width: calc(100% - 40px);
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0);
    min-height: 10vh;
  }
  .hero .news-ticker .ticker-container {
    border-radius: 20px;
    background: rgba(250, 255, 255, 0.75);
    max-width: 100%;
    height: 100%;
    border-radius: 20px;
  }
  .hero .news-ticker .ticker-container .news-ticker-item .news-ticker-info {
    margin-right: 0;
    margin-bottom: 4px;
    gap: 8px;
  }
  .hero .news-ticker .ticker-container .news-ticker-item .news-ticker-title {
    line-height: 1.4;
    font-size: 14px;
    margin: 0.5em 0;
    width: calc(100% - 40px);
    display: block;
  }
  .hero .scrollLottie {
    display: none;
  }
}
.hero .news-ticker-cat {
  line-height: 1.1;
  color: #fff;
  background: #92aab4;
  border-radius: 6px;
  padding: 2px 8px 2px;
  border-radius: 2px;
  margin-right: 8px;
  margin-top: -2px;
  font-size: 0.8em;
  vertical-align: middle;
  display: inline-block;
}
.hero .news-ticker-date {
  color: #334b44;
  margin-right: 8px;
  font-size: 0.9em;
}
.hero .news-ticker-item .news-ticker-title {
  color: #19393b;
  -webkit-transition: opacity 0.4s;
  transition: opacity 0.4s;
}
.hero .news-ticker-item .news-ticker-title:hover {
  opacity: 0.7;
}
.hero .scrollLottie {
  position: absolute;
  bottom: 0;
  left: -50px;
  width: 250px;
  height: 250px;
  cursor: pointer;
  pointer-events: auto;
  opacity: 0;
  -webkit-transition: opacity 1s ease;
  transition: opacity 1s ease;
}
.hero .scrollLottie.active {
  opacity: 1;
}

/* Section-01 content styles (image mask, text, .mark) */
.sectoion-01 {
  position: relative;
  width: 100%;
  height: 100vh;
  background: rgba(239, 245, 245, 0.8);
  opacity: 0;
  padding: 0;
  -webkit-transition: opacity 1s ease;
  transition: opacity 1s ease;
}
.sectoion-01.active {
  opacity: 1;
}
.sectoion-01 .section01-inner {
  display: grid;
  grid-template-rows: 40vh 1fr;
  grid-template-columns: 50% 1fr;
  gap: 2rem;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
.sectoion-01 .section01-title {
  grid-row: 1/2;
  grid-column: 1/2;
  text-align: left;
}
.sectoion-01 .section01-title .question {
  text-align: left;
  margin-left: 15.5vw;
  line-height: 1.4;
  padding-top: 9rem;
  font-family: "Noto Serif JP", serif, sans-serif;
  font-weight: 700;
  font-size: 2.7vw;
}
.sectoion-01 .section01-img {
  grid-row: 2/3;
  grid-column: 1/2;
  height: 100%;
}
.sectoion-01 .section01-img .section-img {
  -webkit-box-shadow: 0 4px 20px rgba(4, 84, 104, 0.05);
  box-shadow: 0 4px 20px rgba(4, 84, 104, 0.05);
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  border-top-right-radius: 28px;
}
.sectoion-01 .section01-right {
  grid-row: 1/3;
  grid-column: 2/3;
  padding: 0 0 0 2.8vw;
}
.sectoion-01 .section01-right p {
  font-weight: 600;
  color: #19393b;
  line-height: 1.64;
  font-size: min(1.3vw, 21px);
  margin-bottom: 2.2rem;
  text-shadow: 0 0 5px #f5fdff, 0 0 5px #f5fdff;
}

/* Responsive tweaks */
@media (max-width: 991.98px) {
  .sectoion-01 {
    height: auto;
  }
  .sectoion-01 .section01-inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    padding-top: 3vh;
  }
  .sectoion-01 .section01-left, .sectoion-01 .section01-right {
    width: 100%;
    height: auto;
    padding: 0 20px;
  }
  .sectoion-01 .section01-img-mask {
    min-height: 46vh;
    --mask-size:82% auto;
    --mask-position: 50% 35%;
  }
  .sectoion-01 .section01-title .question {
    text-align: left;
    margin-left: 0;
    line-height: 1.4;
    padding-top: 18px;
    font-size: max(1.66rem, 5vw);
  }
  .sectoion-01 .section01-right p {
    font-size: 1.15rem;
    margin-bottom: 2rem;
  }
  .sectoion-01 .section01-img .section-img {
    border-top-right-radius: 0;
  }
}
/* News Items */
#newsRelease .news-item {
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
#newsRelease .news-item:hover {
  -webkit-transform: translateX(8px);
  -ms-transform: translateX(8px);
  transform: translateX(8px);
}
#newsRelease .news-item:hover a h5 {
  color: #025824;
}

/* Our Role */
.bg-circle {
  position: relative;
  padding: 2.75rem 3.5rem;
  margin-bottom: 1.5rem;
  text-align: left;
  -webkit-transition: opacity 0.5s ease;
  transition: opacity 0.5s ease;
}
.bg-circle h3,
.bg-circle p {
  color: #f8fcff;
}
.bg-circle p {
  font-size: 1.1rem;
  margin-bottom: 0;
}
.bg-circle:hover {
  opacity: 0.8;
}
.bg-circle a:hover {
  text-decoration: none;
}
.bg-circle::before {
  content: "";
  position: absolute;
  inset: -1% -14%;
  background: rgba(88, 158, 152, 0.8);
  border-radius: 55%/55%;
  -webkit-box-shadow: 0 1px 5px rgba(16, 38, 43, 0.04);
  box-shadow: 0 1px 5px rgba(16, 38, 43, 0.04);
  z-index: 0;
  mix-blend-mode: multiply;
}
.bg-circle > * {
  position: relative;
  z-index: 1;
}
@media (max-width: 992px) {
  .bg-circle {
    padding: 3rem 2.5rem !important;
  }
  .bg-circle h3 {
    font-size: 1.6rem;
  }
  .bg-circle p {
    font-size: 1.1rem;
  }
  .bg-circle::before {
    inset: -10% -6%;
  }
  .bg-circle:nth-child(2n) {
    margin-top: -5px !important;
  }
}
@media (max-width: 576px) {
  .bg-circle {
    padding: 2.4rem 1.5rem !important;
  }
  .bg-circle h3 {
    font-size: 1.4rem;
  }
  .bg-circle p {
    font-size: 0.9rem;
  }
  .bg-circle:nth-child(2n) {
    margin-top: -30px !important;
  }
  .bg-circle::before {
    inset: -5% 2%;
  }
}

.bg-text-our-role {
  position: absolute;
  font-size: 13rem;
  font-family: "Playfair Display", serif;
  font-weight: 400;
  color: rgba(247, 253, 250, 0.98);
  line-height: 1;
  white-space: nowrap;
  pointer-events: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  z-index: 0;
  bottom: 0;
}
.bg-text-our-role.vertical {
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.bg-text-our-role.vertical.right {
  right: -10px;
}
.bg-text-our-role.vertical.left {
  left: 0;
}
.bg-text-our-role.t-green {
  color: rgba(200, 230, 228, 0.75);
}
.bg-text-our-role.top {
  top: 0px;
}
@media (max-width: 991.98px) {
  .bg-text-our-role {
    font-size: min(50vw, 16rem);
  }
  .bg-text-our-role.vertical.right {
    right: -14px;
  }
}

@media (max-width: 991.98px) {
  #testimonialsTop .bg-holder {
    min-height: auto;
    height: 90vw;
  }
}

/* Services */
#HumanResourceDevelopment p.fs-lg-8 {
  font-size: 1.1rem !important;
  line-height: 1.5 !important;
}

/* Helper: five equal columns centered (responsive) */
.five-equal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 1rem;
}
.five-equal__item {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 calc(20% - 1rem);
  flex: 0 0 calc(20% - 1rem);
  max-width: calc(20% - 1rem);
  /* center images and text inside the five-equal item */
}
.five-equal__item .img-fluid,
.five-equal__item img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.five-equal__item h5 {
  text-align: center;
}
@media (max-width: 992px) {
  .five-equal__item {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media (max-width: 576px) {
  .five-equal__item {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 30%;
    flex: 0 0 30%;
    max-width: 100%;
    gap: 0.5rem;
  }
  .five-equal__item h5 {
    font-size: 0.9rem;
  }
}

/* Decorated AFTER heading: show backslash before and forward slash after */
.heading-after {
  position: relative;
  display: inline-block;
  padding: 0 1.4rem;
  font-weight: 700;
}

.heading-after::before,
.heading-after::after {
  color: rgba(16, 38, 43, 0.6);
  font-weight: 700;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}

.heading-after::before {
  content: "\\"; /* backslash */
  left: -1.2rem;
}

.heading-after::after {
  content: "/"; /* forward slash */
  right: -1.2rem;
}

#beforeAfter .col img {
  width: 100%;
  height: auto;
}
@media (max-width: 991.98px) {
  #beforeAfter .cards-before .w-80 {
    width: 66% !important;
  }
  #beforeAfter .cards-before h3.fs-9 {
    font-size: 1.15rem !important;
  }
}
#beforeAfter .cards-after img {
  width: 75% !important;
}
#beforeAfter .cards-after .bg-gold {
  border-radius: 5px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  min-width: 85%;
  margin: 0 auto;
  line-height: 1.3;
  font-size: 1.25rem !important;
}
@media (max-width: 991.98px) {
  #beforeAfter .cards-after {
    width: 95%;
    margin: 0 auto;
  }
}

#beforeAfterSection {
  position: relative;
  overflow: hidden;
  /* Position the circle relative to the content column so it sits behind the heading */
}
#beforeAfterSection .col-lg-9 {
  position: relative;
}

/* Grouping box for problems list */
.problems {
  background: #f8fcff;
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  -webkit-box-shadow: 0 4px 18px rgba(16, 38, 43, 0.05);
  box-shadow: 0 4px 18px rgba(16, 38, 43, 0.05);
}
.problems .five-equal {
  margin: 0; /* remove extra spacing from wrapper */
}
@media (max-width: 768px) {
  .problems {
    padding: 1rem;
    border-radius: 8px;
  }
}

.problems-swiper__swiper {
  background: #f8fcff;
  border-radius: 12px;
  padding: 1.25rem 0rem 0.75rem;
  -webkit-box-shadow: 0 4px 18px rgba(16, 38, 43, 0.05);
  box-shadow: 0 4px 18px rgba(16, 38, 43, 0.05);
}
.problems-swiper__swiper .swiper-wrapper {
  -webkit-transition-timing-function: linear !important;
  transition-timing-function: linear !important;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 40%; /* spaceBetween:10px × 2列分 */
}
.problems-swiper__swiper .swiper-wrapper .w-80 {
  width: 90% !important;
}

#practicalWorkshop .bg-text {
  position: absolute;
  font-size: 13rem;
  font-family: "Playfair Display", serif;
  font-weight: 400;
  color: rgba(247, 253, 250, 0.98);
  line-height: 1;
  white-space: nowrap;
  pointer-events: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  z-index: 1;
  bottom: 0;
}
#practicalWorkshop .bg-text.t-green {
  color: rgba(200, 230, 228, 0.75);
}
#practicalWorkshop .bg-text.top {
  top: 0px;
}
@media (max-width: 991.98px) {
  #practicalWorkshop .bg-text {
    text-align: center;
    display: block;
    position: relative;
    margin: 0 auto;
    font-size: 4.5rem !important;
  }
}

@media (max-width: 991.98px) {
  .swipe-wrap {
    position: relative;
  }
  /* 画像（150px固定） */
  .swipe-guide {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 80px;
    height: 80px;
    -webkit-transform: translate(-30%, -50%);
    -ms-transform: translate(-30%, -50%);
    transform: translate(-30%, -50%); /* 初期位置（中央） */
    background: url("../img/swipe_guide.png") no-repeat center/contain;
    opacity: 0;
    pointer-events: none; /* スクロール操作を邪魔しない */
    z-index: 10;
  }
  /* 表示状態 */
  .swipe-wrap.is-guide-visible .swipe-guide {
    opacity: 1;
    -webkit-animation: swipeGuideLoop 2s linear infinite;
    animation: swipeGuideLoop 2s linear infinite;
  }
  /* 非表示 */
  .swipe-wrap.is-guide-hidden .swipe-guide {
    opacity: 0;
    -webkit-animation: none;
    animation: none;
  }
  /*
    1.0s 右へ30px (表示維持)
    0.5s フェードアウトしつつ戻る
    1.0s 待機（非表示）
    合計 2.5s / loop
  */
  @-webkit-keyframes swipeGuideLoop {
    0% {
      -webkit-transform: translate(-50%, -50%) translateX(45px);
      transform: translate(-50%, -50%) translateX(45px);
      opacity: 0;
    }
    25% {
      -webkit-transform: translate(-50%, -50%) translateX(15px);
      transform: translate(-50%, -50%) translateX(15px);
      opacity: 1;
    }
    50% {
      -webkit-transform: translate(-50%, -50%) translateX(-15px);
      transform: translate(-50%, -50%) translateX(-15px);
      opacity: 1;
    } /* 1.0s到達相当 */
    75% {
      -webkit-transform: translate(-50%, -50%) translateX(-45px);
      transform: translate(-50%, -50%) translateX(-45px);
      opacity: 0;
    } /* 0.5sで消える */
    100% {
      -webkit-transform: translate(-50%, -50%) translateX(0);
      transform: translate(-50%, -50%) translateX(0);
      opacity: 0;
    } /* 1.0s待機 */
  }
  @keyframes swipeGuideLoop {
    0% {
      -webkit-transform: translate(-50%, -50%) translateX(45px);
      transform: translate(-50%, -50%) translateX(45px);
      opacity: 0;
    }
    25% {
      -webkit-transform: translate(-50%, -50%) translateX(15px);
      transform: translate(-50%, -50%) translateX(15px);
      opacity: 1;
    }
    50% {
      -webkit-transform: translate(-50%, -50%) translateX(-15px);
      transform: translate(-50%, -50%) translateX(-15px);
      opacity: 1;
    } /* 1.0s到達相当 */
    75% {
      -webkit-transform: translate(-50%, -50%) translateX(-45px);
      transform: translate(-50%, -50%) translateX(-45px);
      opacity: 0;
    } /* 0.5sで消える */
    100% {
      -webkit-transform: translate(-50%, -50%) translateX(0);
      transform: translate(-50%, -50%) translateX(0);
      opacity: 0;
    } /* 1.0s待機 */
  }
}
@media (max-width: 991.98px) {
  #differenceSection h2,
  #differenceSection-2 h2 {
    font-size: 1.3rem !important;
  }
  #differenceSection .table-deference.table-responsive .table,
  #differenceSection-2 .table-deference.table-responsive .table {
    min-width: 100%;
    white-space: nowrap;
    min-width: auto !important;
  }
  #differenceSection .table-deference.table-responsive .table td, #differenceSection .table-deference.table-responsive .table th, #differenceSection .table-deference.table-responsive .table .fs-8,
  #differenceSection-2 .table-deference.table-responsive .table td,
  #differenceSection-2 .table-deference.table-responsive .table th,
  #differenceSection-2 .table-deference.table-responsive .table .fs-8 {
    font-size: 11.5px !important;
  }
  #differenceSection .table-deference.table-responsive .table td img, #differenceSection .table-deference.table-responsive .table th img, #differenceSection .table-deference.table-responsive .table .fs-8 img,
  #differenceSection-2 .table-deference.table-responsive .table td img,
  #differenceSection-2 .table-deference.table-responsive .table th img,
  #differenceSection-2 .table-deference.table-responsive .table .fs-8 img {
    max-width: 100px;
    height: auto;
  }
  #differenceSection .table-deference.table-responsive .table td.w-20p, #differenceSection .table-deference.table-responsive .table th.w-20p, #differenceSection .table-deference.table-responsive .table .fs-8.w-20p,
  #differenceSection-2 .table-deference.table-responsive .table td.w-20p,
  #differenceSection-2 .table-deference.table-responsive .table th.w-20p,
  #differenceSection-2 .table-deference.table-responsive .table .fs-8.w-20p {
    width: 20% !important;
  }
  #differenceSection .table-deference.table-responsive .table td.w-50p, #differenceSection .table-deference.table-responsive .table th.w-50p, #differenceSection .table-deference.table-responsive .table .fs-8.w-50p,
  #differenceSection-2 .table-deference.table-responsive .table td.w-50p,
  #differenceSection-2 .table-deference.table-responsive .table th.w-50p,
  #differenceSection-2 .table-deference.table-responsive .table .fs-8.w-50p {
    width: 50% !important;
  }
}

/* Slightly soften table-light used in feature sections */
.table.table-light {
  background-color: rgba(255, 255, 255, 0.9) !important;
}

/* Utility: fade table backgrounds without changing text color
   Usage: add `table-fade` to the table element: <table class="table table-fade"> */
.table-fade {
  position: relative;
  z-index: 0;
}
.table-fade thead th,
.table-fade tbody td,
.table-fade tbody th {
  position: relative;
  background-color: transparent; /* keep original color */
}
.table-fade::before {
  /* overlay a translucent layer to reduce perceived background opacity */
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.6); /* adjust alpha to taste */
  pointer-events: none;
  z-index: 0;
}
.table-fade * {
  z-index: 1;
  position: relative;
}

.text-circle {
  position: absolute;
  z-index: 0;
  opacity: 0.22;
  width: 300px;
  pointer-events: none;
  will-change: transform, opacity;
}

/* heading wrapper: center the circle inside the wrapper */
.heading-wrap {
  position: relative;
  display: inline-block;
  width: 100%;
  text-align: center;
}

/* Use a wrapper that handles centering (translate) and an inner element for rotation.
   This prevents the animation from overwriting the translate centering. */
.heading-wrap .text-circle {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 320px;
  max-width: 90%;
  opacity: 0.32;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%); /* centering handled here */
  pointer-events: none;
}

/* inner rotator preserves centering while rotating */
.heading-wrap .text-circle-inner {
  display: block;
  width: 100%;
  height: auto;
  -webkit-transform-origin: 50% 50%;
  -ms-transform-origin: 50% 50%;
  transform-origin: 50% 50%;
  will-change: transform;
}

@media (max-width: 992px) {
  .heading-wrap .text-circle {
    width: 280px;
  }
}
@media (max-width: 576px) {
  .heading-wrap .text-circle {
    width: 240px;
  }
}
/* rotate at 30 degrees per second -> 360deg in 12s */
@-webkit-keyframes spin-30deg-sec {
  from {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes spin-30deg-sec {
  from {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
/* Apply animation to the inner element so the outer .text-circle keeps its translate centering */
.heading-wrap .text-circle-inner {
  -webkit-animation: spin-30deg-sec 60s linear infinite;
  animation: spin-30deg-sec 60s linear infinite;
}

/* pause animation for accessibility states */
.col-lg-9 {
  /* ensure heading sits above the rotating circle */
}
.col-lg-9:hover .text-circle, .col-lg-9:focus .text-circle, .col-lg-9:focus-within .text-circle {
  -webkit-animation-play-state: paused !important;
  animation-play-state: paused !important;
}
.col-lg-9 h2 {
  position: relative;
  z-index: 2;
}

/* prefers-reduced-motion: disable rotation */
@media (prefers-reduced-motion: reduce) {
  .text-circle {
    -webkit-animation: none !important;
    animation: none !important;
    opacity: 0.18 !important;
  }
}
.table-group-divider {
  border-top: 2px solid inherit;
}

/* ステップ表の矢印スタイル */
.step-table-wrapper .step-table {
  font-size: 1rem;
  white-space: normal;
  background-color: #FFF;
}
.step-table-wrapper .step-table td, .step-table-wrapper .step-table th, .step-table-wrapper .step-table li, .step-table-wrapper .step-table h4 {
  font-family: "Noto Sans JP", sans-serif !important;
  font-optical-sizing: auto !important;
  font-weight: 500 !important;
  letter-spacing: 0.015em !important;
}
.step-table-wrapper .step-table tr > :nth-child(even) {
  background-color: rgba(93, 161, 155, 0.07);
}
.step-table-wrapper .step-table thead th {
  vertical-align: middle;
  padding: 0.5rem;
}
.step-table-wrapper .step-table tbody th {
  vertical-align: middle;
}
.step-table-wrapper .step-table tbody td {
  padding: 0.4rem;
  vertical-align: top;
  font-size: 0.88rem;
  text-align: left;
}
.step-table-wrapper .step-table tbody td ul {
  font-size: 0.8rem;
  margin-left: 0.9rem !important;
}
.step-table-wrapper .step-table tbody td ul li {
  position: relative;
  list-style: none;
}
.step-table-wrapper .step-table tbody td ul li::before {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #19393b;
  position: absolute;
  left: -10px;
  top: calc(0.75em - 3px);
}
.step-table-wrapper .step-table__step-title {
  background: rgba(93, 161, 155, 0.85);
  padding: 0.5rem;
  font-weight: 700;
  font-size: 1.75rem;
  color: #19393b;
  color: #FFF;
}
.step-table-wrapper .step-table__rowhead {
  font-weight: 700;
  width: 10%;
  text-align: center;
  background-color: rgba(93, 161, 155, 0.25);
  left: 0;
  z-index: 2;
}
.step-table-wrapper .step-table__rowhead--top {
  z-index: 3;
}
.step-table-wrapper .step-table__program-name {
  width: 18%;
  text-align: center;
}
.step-table-wrapper .step-table__program-name h4 {
  background: #19393b;
  color: #FFF;
  font-size: medium;
  padding: 5px 0;
}
.step-table-wrapper .step-table__badge {
  text-align: center;
  padding: 0.5rem 0;
  margin-bottom: 0.5rem;
  border-radius: 0.5rem;
  background-color: #ece2c6;
  font-size: 0.84rem;
  font-weight: 600;
  line-height: 1.3;
}
@media (max-width: 991.98px) {
  .step-table-wrapper .step-heading {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    text-align: start;
  }
  .step-table-wrapper .step-table {
    font-size: 0.78rem;
    text-align: left;
  }
  .step-table-wrapper .step-table .step-table__step-title {
    font-size: 1.2rem;
    padding: 0.4rem 1rem;
    text-align: left !important;
  }
  .step-table-wrapper .step-table .step-label {
    width: 185px;
  }
}

.table-program {
  /* ▼ 共通スタイル */
  /* テキストを前面に */
  /* ▼ 背景の矢印 */
  /* ▼ 各ステップの色（薄い→濃いミント） */
  /* かなり薄い */
  /* 薄い */
  /* 中間 */
  /* 指定色そのまま */
  /* STEP1 内の 1-1〜1-5 を縦に並べる */
  /* 各項目を“セル風”のボックスに */
  /* 最後だけ下線を消す（好みで） */
  /* アイコン用の箱（縦ラインをここに合わせる） */
  /* Font Awesome アイコン自体の色など */
}
.table-program td, .table-program th, .table-program li, .table-program h4 {
  font-family: "Noto Sans JP", sans-serif !important;
  font-optical-sizing: auto !important;
  font-weight: 500 !important;
  letter-spacing: 0.015em !important;
}
.table-program .step-head th.step {
  position: relative;
  padding: 18px 12px;
  text-align: center;
  font-weight: 700;
  vertical-align: middle;
  overflow: hidden; /* 矢印をセル内に収める */
}
.table-program .step-head th.step > span {
  position: relative;
  z-index: 1;
  color: #333;
}
.table-program .step-head th.step::before {
  content: "";
  position: absolute;
  inset: 0; /* セル全体を覆う */
  background: var(--step-bg);
  /* 左端は直線、右端が矢印になる多角形 */
  clip-path: polygon(0 0, calc(100% - 40px) 0, 100% 50%, calc(100% - 40px) 100%, 0 100%);
  z-index: 0;
}
.table-program .step-0 {
  --step-bg: rgba(93, 161, 155, 0.30);
}
.table-program .step-1 {
  --step-bg: rgba(93, 161, 155, 0.43);
}
.table-program .step-2 {
  --step-bg: rgba(93, 161, 155, 0.56);
}
.table-program .step-3 {
  --step-bg: rgba(93, 161, 155, 0.69);
}
.table-program .step1-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  margin: 0 -0.7rem; /* table の padding とバランス調整したければここで */
}
.table-program .step1-item {
  padding: 1.5rem 0.5rem;
  border-bottom: 1px solid #dee2e6; /* .table-bordered に近い色 */
  font-size: 0.95rem;
}
.table-program .step1-item:last-child {
  border-bottom: none;
}
.table-program .step1-item i {
  -ms-flex-negative: 0;
  flex-shrink: 0; /* アイコンの縮小を防ぐ */
  color: #5DA19B; /* ミント基調で統一 */
}
.table-program .step1-item {
  display: grid;
  grid-template-columns: 1fr 50px; /* 左：テキスト / 右：アイコン */
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  padding: 0.9rem 0.5rem;
  border-bottom: 1px solid #dee2e6;
  gap: 8px;
}
.table-program .step1-icon {
  width: 50px;
  text-align: center; /* 箱の中央に */
}
.table-program .step1-icon i {
  color: #5DA19B !important;
  font-size: 3.2rem;
}
.table-program ol {
  padding-left: 1.2rem !important;
}
.table-program ol li {
  margin-bottom: 0.6rem;
}
@media (max-width: 991.98px) {
  .table-program {
    min-width: 750px;
    font-size: 0.9rem;
    text-align: left;
  }
  .table-program .step1-item {
    padding: 0 0.8rem 0.9rem;
    display: block;
    border-bottom: none;
  }
  .table-program .step1-item .fs-9 {
    font-size: 0.86rem !important;
  }
  .table-program .step1-item .step1-icon {
    display: block;
    text-align: center;
    margin-top: 0.3rem;
    width: 100%;
  }
  .table-program tbody tr td {
    padding: 0.8rem 0.5rem !important;
    width: 180px !important;
  }
  .table-program tbody tr td:has(.step1-list) {
    vertical-align: middle !important;
  }
}

@media (max-width: 991.98px) {
  #subsidy .bg-holder {
    min-height: auto;
    height: 90vw;
  }
}

@media (max-width: 991.98px) {
  #consultingIssues {
    width: 90%;
  }
  #consultingIssues .col-md-4 {
    margin: 0;
  }
  #consultingIssues .col-md-4 .w-80 {
    width: 60% !important;
    height: auto;
  }
  #consultingIssues .col-md-4 .fs-9 {
    font-size: 1.2rem !important;
  }
}

@media (max-width: 991.98px) {
  #ourConsultingSolution .solution-list .px-4 {
    padding: 1rem !important;
  }
  #ourConsultingSolution .solution-list h4 {
    font-size: 1.1em;
  }
}

#csltTab {
  width: 100%;
}
#csltTab .nav-item {
  width: 90%;
  font-size: 1.4rem;
}
#csltTab .nav-item .nav-link {
  padding: 15px 0;
  width: 100%;
  font-family: "Noto Serif JP", serif, sans-serif;
  color: #19393b;
}
#csltTab .nav-item .nav-link.active {
  background-color: #f8fcff;
  border-bottom: none;
  -webkit-transform: translateY(1px);
  -ms-transform: translateY(1px);
  transform: translateY(1px);
}

.tabs-centered {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 0.5rem;
}
.tabs-centered .nav-item {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 45%;
  flex: 0 0 45%;
  max-width: 80%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.tabs-centered .nav-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 4.5rem;
  text-align: center;
  white-space: normal;
}
@media (max-width: 991.98px) {
  .tabs-centered {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .tabs-centered .nav-item {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 48%;
    flex: 0 0 48%;
    max-width: 48%;
  }
  .tabs-centered .nav-link {
    font-size: 1rem;
    min-height: 3.75rem;
  }
}

.ai-flow hr {
  border-top: 1px solid #e5e7eb;
}
.ai-flow__col {
  position: relative;
}
.ai-flow__arrow {
  position: absolute;
  top: 50%;
  right: -8px;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-top: 50px solid transparent;
  border-bottom: 50px solid transparent;
}
.ai-flow__arrow--right {
  border-left: 17px solid rgba(93, 161, 155, 0.6);
}

.phase-card {
  border-radius: 4px;
  -webkit-box-shadow: 0 2px 3px rgba(15, 23, 42, 0.08);
  box-shadow: 0 2px 3px rgba(15, 23, 42, 0.08);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  width: 100%;
  overflow: hidden;
}
.phase-card p, .phase-card a, .phase-card li, .phase-card address, .phase-card .badge, .phase-card .button-round, .phase-card td, .phase-card th, .phase-card .phase-card__sub-header, .phase-card span {
  font-family: "Noto Sans JP", sans-serif !important;
  font-optical-sizing: auto !important;
  font-weight: 500 !important;
}
.phase-card__header {
  padding: 0.9rem 1.4rem;
  background-color: rgb(69, 131, 126);
  color: #fff;
}
.phase-card__title {
  font-weight: 700;
  font-size: clamp(0.9rem, 1.08vw, 1.05rem);
}
.phase-card__badge {
  background: rgba(255, 255, 255, 0.12);
  font-size: clamp(0.75rem, 0.9vw, 0.9rem);
  border-radius: 999px;
  padding: 0.2rem 0.5rem;
  font-weight: 600;
}
.phase-card__body {
  -webkit-box-flex: 1;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  padding: 1.2rem 1.9rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  text-align: left;
  font-size: 1.2rem;
}
.phase-card__body--stack {
  padding: 1.2rem 1.2rem;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 1rem;
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
}
.phase-card__list {
  list-style: none;
  padding-left: 0.5rem;
  margin-bottom: 0;
  /* style-check placeholder removed */
}
.phase-card__list li {
  position: relative;
  font-size: clamp(0.82rem, 1.08vw, 1.11rem);
  padding-left: 0.4rem;
  line-height: 1.7;
}
.phase-card__list li:not(:last-child) {
  margin-bottom: 0.65rem;
}
.phase-card__sub {
  background: #f9fafb;
  border-radius: 3px;
  padding: 0.9rem;
  border: 1px solid #e5e7eb;
}
.phase-card__sub .phase-card__list {
  padding-left: 1.1rem;
}
.phase-card__sub .phase-card__list li {
  font-size: clamp(0.85rem, 0.93vw, 0.92rem);
  position: relative;
  line-height: 1.4;
}
.phase-card__sub .phase-card__list li:not(:last-child) {
  margin-bottom: 0.2rem;
}
.phase-card__sub-header {
  font-weight: 700;
  color: rgb(69, 131, 126);
  font-size: clamp(0.95rem, 1.08vw, 1.15rem);
  margin-bottom: 0.4rem;
}

@media (max-width: 991.98px) {
  .ai-flow__col {
    margin: 0 0 2rem;
    padding: 0;
  }
  .ai-flow__arrow {
    -webkit-transform: rotate(90deg) translate(380%, 50%);
    -ms-transform: rotate(90deg) translate(380%, 50%);
    transform: rotate(90deg) translate(380%, 50%);
    bottom: 0;
    right: calc(50% - 50px);
    top: auto;
  }
  .phase-card__body {
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
  }
  .phase-card__sub {
    width: 100%;
  }
}
#businessReformFrame .left-box {
  position: relative;
}
#businessReformFrame .left-box .arrow-right {
  position: absolute;
  top: 50%;
  right: -11px;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-top: 80px solid transparent;
  border-bottom: 80px solid transparent;
  border-left: 25px solid rgba(93, 161, 155, 0.5);
}
@media (max-width: 991.98px) {
  #businessReformFrame .left-box .arrow-right {
    bottom: 0;
    top: auto;
    right: calc(50% - 25px);
    -webkit-transform: rotate(90deg) translate(370%, 0);
    -ms-transform: rotate(90deg) translate(370%, 0);
    transform: rotate(90deg) translate(370%, 0);
  }
}
#businessReformFrame .card {
  border: none !important;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
}
#businessReformFrame .card p, #businessReformFrame .card a, #businessReformFrame .card li, #businessReformFrame .card address, #businessReformFrame .card .badge, #businessReformFrame .card td, #businessReformFrame .card th, #businessReformFrame .card div, #businessReformFrame .card span {
  font-family: "Noto Sans JP", sans-serif !important;
  font-optical-sizing: auto !important;
  font-weight: 500 !important;
}
#businessReformFrame .card .table-green {
  font-family: "Noto Sans JP", sans-serif !important;
  font-optical-sizing: auto !important;
  font-weight: 500 !important;
  padding: 0.9rem 1.4rem;
  background-color: rgb(69, 131, 126);
  color: #fff;
  font-size: 1.22rem;
}
#businessReformFrame .card .table {
  font-size: medium;
  border-collapse: separate;
  border-spacing: 4px;
}
#businessReformFrame .card .table thead th {
  padding: 0.4rem 1rem 0.4rem;
  font-size: 1.1rem;
  background: none;
}
#businessReformFrame .card .table td, #businessReformFrame .card .table th {
  border-radius: 4px;
  border: none;
  background-color: #ffffff;
  padding: 0.6rem;
  vertical-align: middle;
  background-color: rgba(93, 161, 155, 0.12);
  font-weight: bold;
  font-size: clamp(0.85rem, 1.06vw, 0.9rem);
}
#businessReformFrame .card .table td.bg-subaccent, #businessReformFrame .card .table th.bg-subaccent {
  background-color: rgba(93, 161, 155, 0.28);
  font-size: clamp(0.95rem, 1.08vw, 1rem);
}
@media (max-width: 991.98px) {
  #businessReformFrame .card .table thead th {
    font-size: 1rem;
  }
  #businessReformFrame .card .table td, #businessReformFrame .card .table th {
    font-size: 1rem;
  }
  #businessReformFrame .card .table td.bg-subaccent, #businessReformFrame .card .table th.bg-subaccent {
    font-size: 1rem;
  }
}
#businessReformFrame .right-box {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
#businessReformFrame .right-box .card {
  width: 100%;
  height: 100%;
  background: none;
}
#businessReformFrame .right-box .card .table {
  font-size: medium;
}
#businessReformFrame .right-box .card .table thead th {
  padding: 0.4rem 1rem 0.4rem;
  text-align: center;
  background: none;
}
#businessReformFrame .right-box .card .table td, #businessReformFrame .right-box .card .table th {
  border: none;
  border-radius: 5px;
  background-color: rgba(236, 226, 198, 0.8);
  padding: 0.9rem 1rem;
  vertical-align: middle;
  text-align: left;
}

.arrow-box {
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
.arrow-box p, .arrow-box a, .arrow-box li, .arrow-box address, .arrow-box .badge, .arrow-box td, .arrow-box th, .arrow-box div, .arrow-box span {
  font-family: "Noto Sans JP", sans-serif !important;
  font-optical-sizing: auto !important;
  font-weight: 500 !important;
}

.arrow-icon {
  font-size: 4rem;
  font-weight: bold;
  color: #8c7b48;
  opacity: 0.9;
  /* スマホ表示の調整 */
}
@media (max-width: 767px) {
  .arrow-icon {
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
    font-size: 3rem;
    margin: 1rem 0;
  }
}

.phase-box {
  font-size: 0.9rem;
  border-radius: 8px;
  -webkit-box-shadow: 0 2px 5px rgba(16, 38, 43, 0.1);
  box-shadow: 0 2px 5px rgba(16, 38, 43, 0.1);
}

.phase-icon {
  min-height: 7rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  line-height: 1;
}
.phase-icon i {
  font-size: clamp(3.5rem, 5vw, 4.5rem);
  line-height: 1;
}

.phase-title {
  font-weight: 700;
  font-size: 1.2rem;
  color: #FFF;
}

/* スマホ時の間隔調整 */
@media (max-width: 767px) {
  .phase-box {
    padding: 1.5rem;
  }
}
.step-flow .row > .col-md {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 0.5rem;
  position: relative;
}
.step-flow__arrow {
  position: relative;
  background-color: rgb(69, 131, 126);
  color: #fff;
  font-size: clamp(0.94rem, 1vw, 1.05rem);
  text-align: left;
  padding: 0.75rem 0.5rem;
  border-radius: 4px;
  min-height: 100px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-flex: 0;
  -ms-flex: 0 0 100px;
  flex: 0 0 100px;
  font-family: "Noto Sans JP", sans-serif !important;
  font-optical-sizing: auto !important;
  font-weight: 500 !important;
}
.step-flow__arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -14px;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  border-style: solid;
  border-width: 46px 0 46px 14px;
  border-color: transparent transparent transparent rgb(69, 131, 126);
}
.step-flow__arrow:last-child::after {
  border: none;
}
@media (max-width: 767.98px) {
  .step-flow__arrow {
    font-size: 1.2rem;
    min-height: 64px;
    -ms-flex-preferred-size: 64px;
    flex-basis: 64px;
  }
  .step-flow__arrow::after {
    right: 50%;
    border-width: 16px 0 16px 15px;
    -webkit-transform: rotate(90deg) translateY(calc(50% - 23px));
    -ms-transform: rotate(90deg) translateY(calc(50% - 23px));
    transform: rotate(90deg) translateY(calc(50% - 23px));
    top: 90%;
  }
}
.step-flow__box {
  font-family: "Noto Sans JP", sans-serif !important;
  font-optical-sizing: auto !important;
  font-weight: 500 !important;
  letter-spacing: 0.015em !important;
  position: relative;
  background-color: rgba(93, 161, 155, 0.1);
  color: #19393b;
  font-size: clamp(0.9rem, 0.98vw, 1rem);
  font-weight: 700;
  line-height: 1.35;
  padding: 0 0.75rem;
  border-radius: 4px;
  min-height: 100px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  text-align: left;
  -webkit-box-flex: 0;
  -ms-flex: 0 0 100px;
  flex: 0 0 100px;
}
.step-flow__box--with-arrow::before {
  content: "";
  width: 0;
  height: 0;
  position: absolute;
  bottom: -13px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
  border-left: 35px solid transparent;
  border-right: 35px solid transparent;
  border-top: 11px solid rgba(93, 161, 155, 0.3);
}
@media (max-width: 767.98px) {
  .step-flow__box {
    font-size: 1rem;
    margin-top: 1.2rem !important;
    min-height: 64px;
    -ms-flex-preferred-size: 64px;
    flex-basis: 64px;
  }
  .step-flow__box--with-arrow::before {
    border-left: 15px solid transparent;
    border-right: 15px solid transparent;
  }
}
@media (max-width: 767.98px) {
  .step-flow {
    /* mobile arrow adjustments removed */
  }
  .step-flow .row > .col-md {
    margin-bottom: 1rem;
  }
}

#outcomeCriteria p, #outcomeCriteria a, #outcomeCriteria li, #outcomeCriteria address, #outcomeCriteria .badge, #outcomeCriteria .button-round, #outcomeCriteria td, #outcomeCriteria th, #outcomeCriteria .phase-card__sub-header, #outcomeCriteria span {
  font-family: "Noto Sans JP", sans-serif !important;
  font-optical-sizing: auto !important;
  font-weight: 500 !important;
  letter-spacing: 0.015em !important;
}
#outcomeCriteria .table {
  font-size: medium;
  border-collapse: separate;
  border-spacing: 4px;
}
#outcomeCriteria .table th, #outcomeCriteria .table td {
  border-radius: 4px;
  -webkit-box-shadow: none;
  box-shadow: none;
  background-color: rgba(93, 161, 155, 0.25);
  font-size: 1.15rem;
}
#outcomeCriteria .table th.crit-desc, #outcomeCriteria .table td.crit-desc {
  background-color: rgba(93, 161, 155, 0.1);
}

.outcome-section .table-green {
  font-family: "Noto Sans JP", sans-serif !important;
  font-optical-sizing: auto !important;
  font-weight: 500 !important;
  letter-spacing: 0.015em !important;
  padding: 0.9rem 1.2rem;
  background-color: rgb(69, 131, 126);
  color: #fff;
  font-size: 1.1rem;
}
.outcome-section__col {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.outcome-section .outcome-panel,
.outcome-section .criteria-panel,
.outcome-section .note-panel {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-flex: 1;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
}
.outcome-section .outcome-panel h3,
.outcome-section .criteria-panel h3 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}
.outcome-section .outcome-panel .table-responsive,
.outcome-section .criteria-panel .table-responsive {
  -webkit-box-flex: 1;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
}
.outcome-section__col--outcome {
  position: relative;
  overflow: visible;
}
.outcome-section__col--outcome::after {
  content: "";
  position: absolute;
  right: -8px;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-top: 80px solid transparent;
  border-bottom: 80px solid transparent;
  border-left: 20px solid rgba(93, 161, 155, 0.5);
}
.outcome-section .note-panel {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  position: relative;
  padding-left: 1.5rem;
}
.outcome-section .note-panel::before {
  content: "";
  position: absolute;
  left: -25px;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-top: 80px solid transparent;
  border-bottom: 80px solid transparent;
  border-left: 20px solid rgba(93, 161, 155, 0.5);
}
.outcome-section__criteria-table .crit-label {
  position: relative;
  padding-top: 1.4rem;
  padding-bottom: 1.4rem;
  white-space: nowrap;
}
.outcome-section__criteria-table .crit-label:not(:last-child)::after {
  content: "×";
  position: absolute;
  font-family: sans-serif;
  left: 50%;
  bottom: -1.2rem;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
  font-size: 1.8rem;
  font-weight: 500;
  color: #497975;
  line-height: 1;
  pointer-events: none;
  background-color: transparent;
  padding: 0 0.15rem;
  z-index: 1;
}
.outcome-section__criteria-table .crit-desc {
  padding-top: 1.1rem;
  padding-bottom: 1.1rem;
  text-align: left;
}
@media (max-width: 991.98px) {
  .outcome-section__col--criteria::before {
    left: -12px;
  }
  .outcome-section .note-panel {
    margin-top: 1rem;
  }
  .outcome-section .note-panel::before {
    left: 50%;
    top: 0;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    border-right: 0;
    border-top: 0;
    border-left: 8px solid transparent;
    border-bottom: 10px solid #999;
  }
}

#philosophy {
  /* marquee / ticker for .sub - robust seamless scroll for large text */
  /* CSS-driven scroll using measured --shift and --duration */
}
#philosophy .ticker-p {
  position: absolute;
  bottom: -2.1rem;
  left: 0;
  z-index: 0;
  font-size: 10.5rem;
  font-family: "Playfair Display", serif;
  font-weight: 300;
  font-style: normal;
  letter-spacing: -0.02em;
  line-height: 1.6;
  overflow: hidden;
  width: 100%;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  opacity: 0;
  -webkit-transition: opacity 1s ease;
  transition: opacity 1s ease;
  pointer-events: none;
}
@media (max-width: 991.98px) {
  #philosophy .ticker-p {
    bottom: 0;
    font-size: 5rem;
  }
}
#philosophy .ticker-p.visible {
  opacity: 0.1;
  pointer-events: auto;
}
#philosophy .ticker-p.visible .ticker__track {
  -webkit-animation-name: ticker-scroll;
  animation-name: ticker-scroll;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-duration: var(--duration, 14s);
  animation-duration: var(--duration, 14s);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
#philosophy .ticker-p.visible .ticker__track .sub1 {
  display: inline-block;
  margin-right: 1rem;
  -webkit-text-stroke: 0px transparent;
}
#philosophy .ticker-p__track {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-animation: none;
  animation: none;
}
#philosophy .ticker-p__item {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  gap: 3.4rem;
  white-space: nowrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
@-webkit-keyframes ticker-scroll {
  from {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(calc(-1 * var(--shift)));
    transform: translateX(calc(-1 * var(--shift)));
  }
}
@keyframes ticker-scroll {
  from {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(calc(-1 * var(--shift)));
    transform: translateX(calc(-1 * var(--shift)));
  }
}
@media (prefers-reduced-motion: reduce) {
  #philosophy .ticker__track {
    -webkit-animation: none !important;
    animation: none !important;
  }
}

#ceoMessage {
  position: relative;
}
#ceoMessage .ceo-message {
  font-size: clamp(0.9rem, 0.92vw, 1rem);
}
#ceoMessage .ceoImg {
  right: 10%;
  width: 40% !important;
}
@media (max-width: 1539.98px) {
  #ceoMessage .ceoImg {
    width: 38% !important;
  }
  #ceoMessage .ceoImg img {
    -o-object-fit: cover;
    object-fit: cover;
    aspect-ratio: 1/1;
  }
}
@media (max-width: 1199.98px) {
  #ceoMessage .ceoImg {
    width: 38% !important;
  }
  #ceoMessage .ceoImg img {
    -o-object-fit: cover;
    object-fit: cover;
    aspect-ratio: 3/4;
  }
}
#ceoMessage .ceo-profile {
  position: absolute;
  max-width: 100vw;
  bottom: -69px;
  left: 6vw;
  z-index: 2;
  font-size: 6.9rem;
  font-family: "Playfair Display", serif;
  opacity: 0.12;
  mix-blend-mode: multiply;
  min-width: 100vw;
}
@media (max-width: 991.98px) {
  #ceoMessage .ceo-message {
    margin: 0 0;
    padding: 0px 0 70px;
  }
  #ceoMessage .ceo-profile {
    text-align: right;
    font-size: 4.6rem;
    line-height: 1;
    bottom: -3.2rem;
    left: 0;
  }
}

@media (max-width: 991.98px) {
  #testimonials .bg-holder {
    min-height: auto;
    height: 75vw;
    width: 100vw !important;
  }
}

#newsArticle .article-content img {
  max-width: 100%;
  height: auto;
}
#newsArticle .article-content p {
  font-size: 1.1rem;
  margin-bottom: 1.8rem;
}

#footerContent {
  background-image: url(../img/bg_base.jpg) !important;
  background-color: rgba(230, 243, 245, 0.66) !important;
  background-blend-mode: lighten !important;
  background-position: left 55% !important;
  background-size: cover !important;
}
#footerContent p {
  line-height: 2;
}
#footerContent .logo-footer {
  margin-top: 5px;
}
#footerContent .list-unstyled li {
  margin-bottom: 3px;
}
#footerContent .list-unstyled li a {
  color: #19393b;
  text-decoration: none;
  -webkit-transition: color 0.3s;
  transition: color 0.3s;
}
#footerContent .list-unstyled li a:hover {
  color: #025824;
}

/* Contact Section */
.contact-form label {
  font-family: "Noto Serif JP", serif, sans-serif;
}
.contact-form .form-control, .contact-form .form-select {
  background-color: #f8fcff !important;
}
.contact-form ::-webkit-input-placeholder {
  color: #19393b !important;
  opacity: 0.5 !important;
}
.contact-form ::-moz-placeholder {
  color: #19393b !important;
  opacity: 0.5 !important;
}
.contact-form :-ms-input-placeholder {
  color: #19393b !important;
  opacity: 0.5 !important;
}
.contact-form ::-ms-input-placeholder {
  color: #19393b !important;
  opacity: 0.5 !important;
}
.contact-form ::placeholder {
  color: #19393b !important;
  opacity: 0.5 !important;
}

#testimonials .card-header {
  width: 100%;
}
#testimonials .card-header h5 {
  font-size: 1.33rem;
  text-align: center;
}
#testimonials .order-lg-1 {
  z-index: 1;
}
#testimonials .order-lg-2 .bg-holder {
  right: 0;
  left: auto;
  z-index: 0;
}

/* Footer */
.footer {
  position: relative;
  z-index: 1;
}
.footer.bg-black {
  background-color: #0d2527 !important;
}

.w-80 {
  width: 80% !important;
}

/* small debug helper */
.debug * {
  outline: 1px dashed rgba(0, 0, 0, 0.06);
}

/* Centered tabs utility used on consulting page */
/* Round corners for improvement images (Before / After grids) */
#beforeAfterSection img[src*=improvement] {
  border-radius: 8px;
  display: block;
  overflow: hidden;
}
/*# sourceMappingURL=user.css.map */
