@layer base, components, pages;
:root {
  --theme: #F3F6F6;
  --sub: #9DB1FF;
  --typo: #0F2476;
  --body: #f6f6f4;
  --ls: #42B7A5;
  --ud: #7D7D7D;
  --gray: #dddddd;
  --ice: #fff4e6;
  --bk01: rgba(12, 36, 118, .1);
  --bk02: rgba(12, 36, 118, .2);
  --bk03: rgba(12, 36, 118, .3);
  --bk04: rgba(12, 36, 118, .4);
  --bk05: rgba(12, 36, 118, .5);
  --bk06: rgba(12, 36, 118, .6);
  --bk07: rgba(12, 36, 118, .7);
  --bk08: rgba(12, 36, 118, .8);
  --bk09: rgba(12, 36, 118, .9);
  --wh01: rgba(255, 255, 255, .1);
  --wh02: rgba(255, 255, 255, .2);
  --wh03: rgba(255, 255, 255, .3);
  --wh04: rgba(255, 255, 255, .4);
  --wh05: rgba(255, 255, 255, .5);
  --wh06: rgba(255, 255, 255, .6);
  --wh07: rgba(255, 255, 255, .7);
  --wh08: rgba(255, 255, 255, .8);
  --wh09: rgba(255, 255, 255, .9);
  --thin: 250;
  --regular: 550;
  --semi: 550;
  --bold: 700;
  --black: 850;
  --h1: 2em;
  --h2: 1.75em;
  --h3: 1.5em;
  --h4: 1.25em;
  --h5: 1.125em;
  --chapSize: 4.5vw;
  --sans: "Figtree", sans-serif;
  --lineHeight: 2;
  --trDis: transform .6s cubic-bezier(0.55, -0.15, 0.1, 0.92), opacity .8s cubic-bezier(0.6, 0, 0, 1), visibility 0s, border-radius .6s cubic-bezier(0.6, 0, 0, 1), background-color .4s ease-in-out;
  --rad0: .25rem;
  --rad1: .75rem;
  --rad3: 2rem;
  --rad5: 5rem;
  --clip: calc(var(--navH) * 1.5);
  --paragraph: 1em;
  --margin: var(--floatingPos);
  --navH: 3.5rem;
  --fitH: 100vh;
  --btnMenu: 2.75rem;
  --logoW: var(--btnMenu);
  --logoRatio: 1000/248.17;
  --innMax: inherit;
  --modalClip: inset(var(--framePad) var(--framePad) round var(--rad1));
  --header-offset: calc(var(--floatingPos) + var(--btnMenu) + var(--pad) * 4);
  --scrW: 20px;
  --pad: 2rem;
  --innPad: calc(2.25vmax * 2.5);
  --innNarrow: calc(var(--innPad) * 2);
  --innCramped: calc(var(--innPad) * 3);
  --padTop: calc(var(--innPad) * 1.5);
  --padLeft: var(--innPad);
  --padRight: var(--innPad);
  --padBottom: calc(var(--innPad) * 1.5);
  --framePad: calc(var(--pad) * 1.25);
  --floatingPos: var(--framePad);
  --setNav: 100% 0;
}
@media (max-width: 1536px) {
  :root {
    --innPad: calc(var(--pad) * 2);
    --innNarrow: var(--innPad);
    --innCramped: var(--innPad);
  }
}
@media (max-width: 1100px) {
  :root {
    --h1: 1.8em;
    --h2: 1.6em;
    --h3: 1.6em;
    --h4: 1.5em;
    --h5: 1em;
    --chapSize: 4.5vw;
    --logoW: calc(var(--btnMenu) * .8);
    --pad: 1rem;
    --innPad: calc(var(--pad) * 2);
    --innNarrow: var(--innPad);
    --innCramped: var(--innPad);
    --padTop: calc(var(--innPad) * 2);
    --padBottom: calc(var(--innPad) * 2);
    --fitH: 150vw;
    --framePad: calc(var(--pad) * .5);
  }
}

.loaded .siteFrame {
  opacity: 1;
  visibility: visible;
}
.loaded .globalMenu {
  translate: var(--setNav);
}

*,
*:before,
*:after {
  box-sizing: border-box;
}

html {
  width: 100%;
  min-height: 100%;
  -webkit-text-size-adjust: 100%;
}
html.posFix {
  overflow-y: hidden;
}

body {
  background-color: var(--theme);
  background-image: url(../images/noise.png);
  background-repeat: repeat;
  background-attachment: fixed;
  width: 100%;
  min-height: 100vh;
  position: relative;
  transition: background-color 0.4s linear, color 0.4s ease-in-out;
  --headerHide: calc(0% - var(--floatingPos) - var(--logoW));
  --navHide: calc(0% - var(--floatingPos) - var(--btnMenu));
}
body.loaded .sectMenu,
body.loaded .siteFrame {
  transition: opacity 0.8s cubic-bezier(0.6, 0, 0, 1);
  opacity: 1;
}
body.loaded .ctaWrap {
  opacity: 1;
  transition-delay: 0.1s, var(--ctaDelay);
}
body.loaded .pageBg {
  opacity: 0.1;
}
body.loaded .sectMenu,
body.loaded .siteFrame {
  transition: opacity 0.8s cubic-bezier(0.6, 0, 0, 1);
  opacity: 1;
}
body.loaded .sideNav {
  opacity: 1;
  transition-delay: 0.1s, 0.1s, 0s;
}
body.loaded .pageBg {
  opacity: 1;
}
body.down .headerUtility {
  transform: translateY(var(--headerHide));
}
body.down .pcNav {
  transform: translateY(var(--navHide));
}
body.running .headerUtility p {
  opacity: 0;
  visibility: hidden;
}
body:not(.chgColor) {
  color: var(--typo);
}
body:not(.chgColor) .btnMenu, body:not(.chgColor) .ctaWrap, body:not(.chgColor) .bubble {
  color: var(--theme);
}
body:not(.chgColor) .btn:not(:hover) {
  color: var(--theme);
}
body.chgColor .btnMenu, body.chgColor .ctaWrap, body.chgColor .bubble {
  color: var(--invert-color);
}
body.chgColor .btn:not(:hover) {
  color: var(--invert-color);
}
.inner {
  width: 100%;
  padding: var(--padTop) var(--padRight) var(--padBottom) var(--padLeft);
  margin-left: auto;
  margin-right: auto;
}
.inner.narrow {
  --padLeft: var(--innNarrow);
  --padRight: var(--innNarrow);
}
.inner.cramped {
  --padLeft: var(--innCramped);
  --padRight: var(--innCramped);
}

.siteFrame {
  opacity: 0;
  width: 100%;
}
.siteFrame .headerUtility {
  order: 1;
  z-index: 99;
}
.siteFrame .btnMenu {
  z-index: 106;
}
.siteFrame .globalMenu {
  z-index: 105;
}
.siteFrame .outerWrap {
  order: 2;
}
.siteFrame .copyRight {
  order: 4;
}

.outerWrap {
  width: 100%;
  position: relative;
  z-index: 1;
  margin: 0 auto;
}
@media (max-width: 1100px) {
  .outerWrap {
    overflow: clip;
  }
}

.drawered .siteFrame .menuLayer {
  border-radius: 0;
}
.drawered.navOpen .siteFrame .menuLayer {
  width: 100%;
  height: 100%;
  transition: 0.6s all cubic-bezier(0.55, -0.15, 0.1, 0.92) 0.1s, 0s right;
}
.drawered.navOpen .siteFrame .menuLayer span {
  border-radius: 0;
  transition: 0.6s all cubic-bezier(0.55, -0.15, 0.1, 0.92) 0.1s;
}

.gLogo {
  height: var(--logoW);
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  gap: calc(var(--logoW) * 0.25);
  aspect-ratio: var(--logoRatio);
}
.gLogo a {
  display: block;
  width: 100%;
  height: 100%;
  transition: all 1.2s var(--springGlide);
}
.gLogo a svg {
  width: 100%;
  height: 100%;
}
.gLogo a svg path, .gLogo a svg polygon, .gLogo a svg rect {
  fill: currentColor;
}
.gLogo a:hover {
  color: var(--sub);
}

.headerUtility {
  position: fixed;
  transition: all 0.4s ease-in-out;
  top: var(--floatingPos);
  left: var(--floatingPos);
  display: flex;
}
@media (min-width: 1100px) {
  .headerUtility:hover {
    color: var(--sub);
  }
}
.headerUtility .gLogo svg rect, .headerUtility .gLogo svg polygon, .headerUtility .gLogo svg path {
  fill: currentColor;
}

.btnMenu {
  --barWidth: 1.25em;
  position: fixed;
  top: var(--floatingPos);
  width: var(--btnMenu);
  height: var(--btnMenu);
  padding: 0;
  cursor: pointer;
  border: 0;
  outline: 0;
  align-items: center;
  align-content: center;
  justify-content: center;
  background: none;
  color: white;
  border-radius: 50%;
  transition: transform 0.6s cubic-bezier(0.55, -0.15, 0.1, 0.92), opacity 0.8s cubic-bezier(0.6, 0, 0, 1), visibility 0s, border-radius 0.6s cubic-bezier(0.6, 0, 0, 1), box-shadow 0.4s var(--springGlide);
  background-color: var(--typo);
  background-image: url(../images/noise.png);
  background-repeat: repeat;
  background-attachment: fixed;
  box-shadow: 0 0 1em transparent inset, 0 0 3em transparent inset;
}
@media (min-width: 1100px) {
  .btnMenu {
    right: 0;
    margin-right: var(--floatingPos);
  }
  .btnMenu:hover {
    box-shadow: 0.5em 0.5em 3em var(--wh02) inset, -0.75em -0.75em 1.5em var(--typo) inset, 0.5em -1em 0.5em 1.25em var(--bk02) inset, 0 0 5em var(--sub) inset;
  }
}
@media (max-width: 1100px) {
  .btnMenu {
    right: var(--floatingPos);
  }
}
.btnMenu div {
  width: var(--barWidth);
  height: var(--barWidth);
  align-items: center;
  align-content: center;
  justify-content: center;
  transition: all 0.2s cubic-bezier(0.84, 0.17, 0, 0.71);
  transform: translate3d(0, 0, 0);
}
.btnMenu div span {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 40%;
}
.btnMenu div span:before, .btnMenu div span:after {
  content: "";
  height: 2px;
  display: block;
  background: currentColor;
  position: absolute;
  left: 0;
  transition: all 0.2s cubic-bezier(0.84, 0.17, 0, 0.71) 0.1s;
}
.btnMenu div span:before {
  top: 0;
  width: 100%;
}
.btnMenu div span:after {
  top: 100%;
  width: 75%;
}
.btnMenu div em {
  line-height: 1;
  font-size: 0.7em;
  text-align: center;
  width: calc(100% + 0.75em);
  color: var(--typo);
  font-weight: var(--regular);
  margin: 0.75em 0 -0.75em;
  display: none;
}
.btnMenu.opened {
  border-radius: 50%;
}
.btnMenu.opened div span:before, .btnMenu.opened div span:after {
  width: 100%;
  top: 50%;
  left: 0;
  transition-delay: 0.4s;
}
.btnMenu.opened div span:before {
  rotate: 45deg;
}
.btnMenu.opened div span:after {
  rotate: -45deg;
}

.pcNav {
  --barWidth: 1.25em;
  left: 0;
  z-index: 2;
  height: var(--btnMenu);
  position: fixed;
  width: 100%;
  display: grid;
  place-items: center;
  transition: all 0.4s ease-in-out;
}
@media (min-width: 1100px) {
  .pcNav {
    top: var(--floatingPos);
    gap: 2em;
  }
}
@media (max-width: 1100px) {
  .pcNav {
    display: none;
  }
}
.pcNav > ul {
  display: flex;
  align-items: center;
  height: 100%;
  transition: all 1.2s var(--springGlide);
  border-radius: var(--rad5);
  padding: 0 1em;
  font-size: 0.875em;
}
.pcNav > ul:hover {
  color: white;
  background-color: var(--bk08);
  box-shadow: 0 0 3em var(--wh02);
}
.pcNav > ul > li {
  position: relative;
}
.pcNav > ul > li > a {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0 calc(var(--pad) * 0.5);
  color: currentColor;
  z-index: 0;
}
.pcNav > ul > li > a:after {
  --afterH: 1px;
  content: "";
  display: block;
  width: calc(100% - var(--pad));
  height: 2px;
  background-color: currentColor;
  position: absolute;
  bottom: 0;
  left: calc(var(--pad) * 0.5);
  z-index: -1;
  clip-path: inset(0 100% round 0);
  transition: clip-path 0.4s var(--easing);
}
.pcNav > ul > li > a:hover:after {
  clip-path: inset(0 0 round var(--rad0));
}

.ctaWrap {
  --ctaWrapM: var(--floatingPos);
  --ctaWrapW: auto;
  --ctaWrapH: var(--btnMenu);
  --ctaBtnSize: .875em;
  --ctaWrapBg: none;
  --ctaWrapRad: 0;
  position: fixed;
  z-index: 10;
  width: var(--ctaWrapW);
  height: var(--ctaWrapH);
  font-size: var(--ctaBtnSize);
  font-weight: var(--bold);
  margin-right: var(--ctaWrapM);
  transition: transform 0.4s ease-in-out, opacity 0.4s ease-in-out 0.4s;
  border-radius: var(--ctaWrapRad);
  background-color: var(--ctaWrapBg);
  opacity: 0;
}
@media (min-width: 1100px) {
  .ctaWrap {
    top: var(--floatingPos);
    right: 0;
    margin-right: calc(var(--btnMenu) + var(--floatingPos) + 1em);
  }
}
@media (max-width: 1100px) {
  .ctaWrap {
    top: var(--floatingPos);
    right: calc(var(--btnMenu) + var(--floatingPos) * 2);
    letter-spacing: 0;
    --ctaWrapM: 0;
    --ctaWrapRad: var(--rad5);
    --ctaBtnSize: .8em;
  }
}
.ctaWrap a {
  --paddingLand: 2em;
  --paddingPort: 0;
  --btnMin: inherit;
  --display: grid;
  grid-template-columns: auto auto;
  place-items: center;
  height: 100%;
}

.serviceCard .serviceCardItem {
  flex: 1;
}
.serviceCard .serviceCardItem a {
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  height: 100%;
  text-align: center;
  font-weight: 700;
  transition: all 0.4s ease-in-out;
}
.serviceCard .serviceCardItem a figure {
  position: relative;
  z-index: 1;
  aspect-ratio: 500/367;
}
.serviceCard .serviceCardItem a figure:after {
  content: "";
  display: block;
  width: 73.4%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, 0);
  background: var(--typo);
  z-index: 0;
  border-radius: 50%;
  transition: all 0.4s ease-in-out;
}
.serviceCard .serviceCardItem a figure img {
  z-index: 1;
}
.serviceCard .serviceCardItem a span {
  display: block;
  line-height: 1.5;
}

.globalMenu {
  translate: var(--setNav);
  transition: translate 0s linear, opacity 0s linear, visibility linear 0s;
  transition-delay: 0.7s, 0.7s, 0.7s;
  opacity: 0;
  visibility: hidden;
}
.globalMenu .innerWrap {
  opacity: 0;
  filter: blur(2em);
  translate: var(--setNav);
  transition: translate 0.2s var(--smash), filter 0.2s linear, opacity 0.4s ease-in-out;
  transition-delay: 0.4s, 0s, 0s;
  will-change: filter;
}
.globalMenu.visible {
  translate: 0 0;
  transition-delay: 0s, 0s, 0s;
  opacity: 1;
  visibility: visible;
}
.globalMenu.visible .innerWrap {
  opacity: 1;
  filter: blur(0);
  translate: 0 0;
  transition-duration: 0.2s, 0s, 0.2s;
  transition-delay: 0.1s, 0.1s, 0s;
}
.globalMenu.visible .innerWrap em {
  --emY: 0;
  clip-path: inset(0 0 0 0);
  transition-delay: 0.3s;
}
.globalMenu.visible .innerWrap em span {
  transition-delay: 0.4s;
}
.globalMenu.visible .innerWrap em span:nth-child(1), .globalMenu.visible .innerWrap em span:nth-child(2), .globalMenu.visible .innerWrap em span:nth-child(3), .globalMenu.visible .innerWrap em span:nth-child(4) {
  transform: translateY(0em);
}
.globalMenu.visible .close {
  opacity: 1;
  transition-delay: 0.2s;
}

.globalMenu {
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 100;
  color: var(--typo);
}
@media (min-width: 1100px) {
  .globalMenu {
    --menuW: 50%;
    --menuH: 100%;
    --emSize: 2em;
    --innerPad: 0 calc(var(--pad) * 2);
    --mainPad: 0;
    --innerY: center;
    --innerX: center;
    --strongY: calc(var(--floatingPos) + var(--btnMenu) + .5em);
    --stringX: calc(100% - var(--floatingPos) - var(--btnMenu) - .1em);
    --listSize: var(--h4);
  }
}
@media (max-width: 1100px) {
  .globalMenu {
    --menuW: 75%;
    --menuH: 100%;
    --emSize: 2em;
    --innerPad: 0 0 var(--btnMenu);
    --mainPad: calc(var(--btnMenu) * 1.5) calc(var(--emSize) * .75) 0;
    --innerY: flex-start;
    --innerX: flex-start;
    --strongY: calc(var(--btnMenu) + 1em);
    --stringX: calc(100% - var(--btnMenu) + .2em);
    --listSize: 1.1em;
  }
}
.globalMenu .innerWrap {
  overflow: hidden;
  content-visibility: auto;
  contain-intrinsic-size: 1000px;
  background-color: var(--theme);
  background-image: url(../images/noise.png);
  background-repeat: repeat;
  background-attachment: fixed;
  width: var(--menuW);
  height: var(--menuH);
  position: relative;
  z-index: 1;
  margin-left: auto;
  padding: calc(var(--btnMenu) * 2) 0;
}
.globalMenu .innerWrap .menuWrap {
  width: 100%;
  height: 100%;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 1;
  color: var(--typo);
}
.globalMenu .innerWrap em {
  --emY: calc(0% - var(--btnMenu));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--emSize);
  position: absolute;
  top: var(--strongY);
  left: var(--stringX);
  line-height: 0.8;
  letter-spacing: 0;
  color: var(--typo) !important;
  transition: transform 0.3s var(--expo), clip-path 0.3s var(--expo);
  transform: translateY(var(--emY));
  clip-path: inset(0 0 4em 0);
}
.globalMenu .innerWrap em span {
  display: inline-block;
  transition: transform 0.2s var(--expo);
}
.globalMenu .innerWrap em span:nth-child(1) {
  transform: translateY(0em);
}
.globalMenu .innerWrap em span:nth-child(2) {
  transform: translateY(-1em);
}
.globalMenu .innerWrap em span:nth-child(3) {
  transform: translateY(-2em);
}
.globalMenu .innerWrap em span:nth-child(4) {
  transform: translateY(-3em);
}
.globalMenu .innerWrap .scrollInner {
  display: flex;
  width: 100%;
  height: 100%;
  z-index: 1;
  overflow-y: auto;
  overflow-x: hidden;
  max-height: 100%;
  position: relative;
  flex-direction: column;
  justify-content: var(--innerY);
  align-items: var(--innerX);
  padding: var(--innerPad);
}
.globalMenu .innerWrap .scrollInner .mainItem {
  --gridCol: 100%;
  --gridGap: 1em;
  padding: var(--mainPad);
  align-items: center;
}
.globalMenu .innerWrap .scrollInner .mainItem .primaryMenu {
  --gridCol: 100%;
  --gridGap: 0;
  width: 100%;
}
.globalMenu .innerWrap .scrollInner .mainItem .primaryMenu li {
  width: 100%;
  font-size: var(--listSize);
}
.globalMenu .innerWrap .scrollInner .mainItem .groupNav {
  --gridCol: 100%;
  --gridGap: 1em;
  --listGap: .5em;
  --listPad: .5em 1em;
  width: 100%;
}
.globalMenu .close {
  width: 100%;
  height: 100%;
  cursor: url(../images/close2.svg), pointer;
  background-color: var(--bk07);
  background-image: url(../images/noise.png);
  background-repeat: repeat;
  background-attachment: fixed;
  position: absolute;
  top: 0;
  right: 0;
  z-index: -1;
  opacity: 0;
  transition: all 0.4s ease-in-out;
}

.menu .primaryMenu a {
  width: 100%;
  display: block;
  padding: 0.5em 0 0.5em 2em;
  transition: all 0.4s var(--expo);
  position: relative;
}
.menu .primaryMenu a:before {
  content: "";
  display: block;
  width: 1em;
  height: 1px;
  background: currentColor;
  position: absolute;
  top: 50%;
  transition: all 0.4s var(--expo);
  left: 0;
}
@media (min-width: 1100px) {
  .menu .primaryMenu a:hover:before {
    width: 1.5em;
  }
}
.menu .primaryMenu:not(.sub-menu):not(.secondaryMenu) li:not(.guide).menu-item-has-children {
  display: flex;
  position: relative;
  line-height: 1;
  text-shadow: 0 0 1em rgba(0, 0, 0, 0.1);
  flex: 1;
  gap: var(--gap);
}
@media (min-width: 1100px) {
  .menu .primaryMenu:not(.sub-menu):not(.secondaryMenu) li:not(.guide).menu-item-has-children {
    flex-direction: column;
    --gap: 0;
  }
}
@media (max-width: 1100px) {
  .menu .primaryMenu:not(.sub-menu):not(.secondaryMenu) li:not(.guide).menu-item-has-children {
    --gap: 0;
    align-items: flex-start;
    flex-direction: column;
  }
}
.menu .primaryMenu:not(.sub-menu):not(.secondaryMenu) li:not(.guide).menu-item-has-children + .menu-item-has-children {
  margin-top: 1em;
}
.menu .primaryMenu:not(.sub-menu):not(.secondaryMenu) li:not(.guide).menu-item-has-children .sub-menu {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  padding-left: 1em;
}
@media (max-width: 1100px) {
  .menu .primaryMenu:not(.sub-menu):not(.secondaryMenu) li:not(.guide).menu-item-has-children .sub-menu {
    flex: 1;
  }
}
.menu .primaryMenu:not(.sub-menu):not(.secondaryMenu) li:not(.guide).menu-item-has-children .sub-menu li {
  position: relative;
}
.menu .primaryMenu:not(.sub-menu):not(.secondaryMenu) li:not(.guide).menu-item-has-children .sub-menu li a {
  font-size: 0.8em;
}
@media (min-width: 1100px) {
  .menu .primaryMenu:not(.sub-menu):not(.secondaryMenu) li:not(.guide).menu-item-has-children .sub-menu li a:hover:before {
    width: 1.5em;
  }
}

.groupNav li a {
  display: flex;
  justify-content: space-between;
  gap: var(--listGap);
  align-items: center;
  width: 100%;
  padding: var(--listPad);
  border-radius: var(--rad0);
  text-decoration: none !important;
  box-shadow: 0 0 0 1px var(--bk05);
  transition: all 1.2s var(--springGlide);
}
@media (min-width: 1100px) {
  .groupNav li a:hover {
    border-radius: var(--rad5);
    box-shadow: 0 1em 2em var(--bk02);
    transform: translateY(-0.1em);
  }
}

.breadCrumb {
  transition: transform 0.6s cubic-bezier(0.55, -0.15, 0.1, 0.92), opacity 0.8s cubic-bezier(0.6, 0, 0, 1), visibility 0s, border-radius 0.6s cubic-bezier(0.6, 0, 0, 1), background-color 0.4s ease-in-out;
  transition-delay: 0s, 0.6s, 0s, 0s;
  top: var(--top);
  left: var(--left);
}
@media (min-width: 1100px) {
  .breadCrumb {
    --top: calc(var(--floatingPos) + var(--btnMenu) * 2);
    --left: calc(var(--floatingPos) + var(--btnMenu) * .5 + .5em);
    position: fixed;
    z-index: 3;
    transform: rotate(90deg);
    transform-origin: left top;
    width: calc(var(--fitH) - var(--navH) * 1.5);
  }
}
@media (max-width: 1100px) {
  .breadCrumb {
    display: none;
  }
}
.breadCrumb ul {
  margin: 0;
  justify-content: flex-start;
  align-items: center;
  font-size: 0.75em;
}
@media (max-width: 1100px) {
  .breadCrumb ul {
    justify-content: flex-end;
    overflow-x: scroll;
    word-break: keep-all;
    white-space: nowrap;
    flex-wrap: nowrap;
    height: 100%;
    padding-right: 0.5em;
  }
  .breadCrumb ul::-webkit-scrollbar {
    display: none;
  }
}
.breadCrumb ul li {
  display: flex;
  align-items: center;
}
.breadCrumb ul li [property=itemListElement] {
  display: flex;
  align-items: center;
  padding: 0.25em 1em;
  transition: all 0.4s ease-in-out;
}
.breadCrumb ul li [property=itemListElement]:before {
  content: "";
  display: block;
  width: 1.5em;
  height: 1px;
  margin-right: 0.5em;
  background: currentColor;
}
.breadCrumb ul li [property=itemListElement] a, .breadCrumb ul li [property=itemListElement] span {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 20em;
}
.breadCrumb ul li [property=itemListElement]:has(a):hover {
  background: var(--typo);
  color: var(--theme);
  border-radius: 3em;
}

.ctaBanner {
  position: relative;
  --color1: transparent;
  --color2: #8b9cd9;
  --color3: #7442b5;
  --color4: #92a9ff;
  overflow: hidden;
}
.ctaBanner .bg {
  position: absolute;
  width: 100%;
  height: 100%;
  aspect-ratio: 1200/872;
  top: 0;
  left: 0;
  z-index: 0;
}
.ctaBanner .bg:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: 1;
  left: 0;
  top: 0;
  background-image: url(../images/noise.png), linear-gradient(90deg, var(--color1) 0%, var(--color3) 100%), linear-gradient(135deg, var(--color4) 0%, var(--color2) 100%);
  mix-blend-mode: lighten;
}
.ctaBanner .bg img {
  position: relative;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ctaBanner .inner {
  --titleSize: 6vw;
  --gridCol: 1fr 25%;
  --gridGap: 0;
  --pSize: var(--h4);
  --pMax: calc(var(--titleSize) * 5.5);
  --pMargin: 1em 0 0;
  --anchorPad: 0;
  --anchorRad: 50%;
  --anchorRatio: 1;
  position: relative;
  z-index: 1;
  justify-content: space-between;
  align-items: center;
  color: white;
}
@media (max-width: 1100px) {
  .ctaBanner .inner {
    --titleSize: 15vw;
    --gridCol: 1fr;
    --pSize: 1em;
    --pMax: inherit;
    --pMargin: var(--pad) 0;
    --anchorPad: 1em 0;
    --anchorRad: var(--rad5);
    --anchorRatio: inherit;
  }
}
.ctaBanner .inner div {
  filter: drop-shadow(0 0 0.3rem var(--bk05));
  will-change: filter;
}
.ctaBanner .inner div em {
  font-size: var(--titleSize);
  font-weight: var(--bold);
}
.ctaBanner .inner div p {
  display: block;
  font-size: var(--pSize);
  max-width: var(--pMax);
  margin: var(--pMargin);
}
.ctaBanner .inner a {
  display: block;
  width: 100%;
  aspect-ratio: var(--anchorRatio);
  text-align: center;
  clip-path: inset(0 0 round var(--anchorRad));
  border-radius: var(--anchorRad);
  transition: all 0.2s linear;
  box-shadow: 0 0 0 2px white inset;
  padding: var(--anchorPad);
}
.ctaBanner .inner a p {
  width: 100%;
  height: 100%;
  box-shadow: 0 0 1em transparent inset, 0 0 3em transparent inset;
  transition: all 0.8s ease-in-out;
  display: grid;
  place-content: center;
  border-radius: var(--anchorRad);
  transform: scale(1.1);
  position: relative;
}
.ctaBanner .inner a p br {
  display: none;
}
.ctaBanner .inner a p:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: transparent;
  background-image: url(../images/noise.png);
  background-repeat: repeat;
  background-attachment: fixed;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  mix-blend-mode: overlay;
  opacity: 0;
  border-radius: 50%;
  transition: all 0.8s ease-in-out;
  background-color: var(--ice);
  background-image: url(../images/noise.png);
  background-repeat: repeat;
  background-attachment: fixed;
  box-shadow: 0.5em 0.5em 2em var(--wh02) inset, -3em -2em 4em var(--typo) inset, -1em 3em 2em 0em var(--bk02) inset, 1em 1em 5em 0.5em var(--sub) inset;
}
@media (min-width: 1100px) {
  .ctaBanner .inner a p br {
    display: block;
  }
  .ctaBanner .inner a:hover {
    box-shadow: 0 0 0 2px transparent inset;
  }
  .ctaBanner .inner a:hover p {
    transform: scale(1);
    color: var(--typo);
  }
  .ctaBanner .inner a:hover p:before {
    opacity: 1;
  }
}

.globalFooter {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  background-color: white;
  background-image: url(../images/noise.png);
  background-repeat: repeat;
  background-attachment: fixed;
}
.globalFooter div.inner {
  --logoSize: 10vw;
  --logoMax: 15em;
  --gridCol: var(--logoSize) auto;
  --gridGap: 0;
  --padBottom: 0;
  --place: center;
  position: relative;
  z-index: 1;
  place-content: space-between;
  place-items: var(--place);
  gap: var(--pad);
}
@media (max-width: 1100px) {
  .globalFooter div.inner {
    --logoSize: 15vw;
    --gridCol: 1fr;
    --place: center;
  }
}
.globalFooter div.inner .coInfo {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.globalFooter div.inner .coInfo svg {
  max-width: var(--logoMax);
}
.globalFooter div.inner .coInfo strong {
  font-size: 0.8em;
  margin-top: calc(var(--pad) * 1);
}
.globalFooter div.inner .groupNav {
  --gridCol: 1fr 1fr;
  --gridGap: 1em;
  --listGap: 2em;
  --listPad: 1.5em 2em;
}
@media (max-width: 1100px) {
  .globalFooter div.inner .groupNav {
    width: 100%;
    --gridCol: 100%;
    --listGap: .5em;
    --listPad: 1.5em;
  }
}
.globalFooter aside.inner {
  align-items: center;
  justify-content: space-between;
  gap: var(--pad);
  font-size: 0.8em;
  --padBottom: var(--pad);
}
.globalFooter aside.inner small {
  display: block;
  font-size: 0.9em;
  opacity: 0.5;
}
.globalFooter aside.inner p {
  display: block;
  font-size: 0.9em;
  opacity: 0.5;
}
.globalFooter aside.inner .subMenu {
  gap: var(--pad);
}
.globalFooter aside.inner .subMenu li a {
  position: relative;
  display: block;
}
.globalFooter aside.inner .subMenu li a:after {
  content: "";
  display: block;
  width: 0;
  height: 1px;
  background-color: currentColor;
  position: absolute;
  bottom: 0;
  left: 0;
  transition: all 0.6s var(--springGlide);
}
@media (min-width: 1100px) {
  .globalFooter aside.inner .subMenu li a:hover:after {
    width: 100%;
  }
}

.closeBtn {
  --barWidth: 1.25em;
  width: var(--btnMenu);
  height: var(--btnMenu);
  cursor: pointer;
  display: block;
  position: absolute;
  top: var(--margin);
  right: var(--margin);
  padding: 0;
  border: 0;
  outline: 0;
  align-items: center;
  justify-content: center;
  background-color: var(--typo);
  background-image: url(../images/noise.png);
  background-repeat: repeat;
  background-attachment: fixed;
  border-radius: 50%;
  transition: all 0.4s ease;
  overflow: hidden;
}
.closeBtn span {
  width: 100%;
  height: 100%;
  background: var(--theme);
  display: block;
  transition: all 0.4s ease;
  position: relative;
}
.closeBtn span:before, .closeBtn span:after {
  content: "";
  display: block;
  width: 2px;
  height: 50%;
  transition: all 0.1s ease-in-out;
  position: absolute;
  top: 0;
  left: 50%;
  bottom: 0;
  margin: auto;
  z-index: 2;
  background: var(--typo);
}
.closeBtn span:before {
  transform: rotate(45deg);
}
.closeBtn span:after {
  transform: rotate(-45deg);
}
.closeBtn:hover {
  border-radius: 0;
}

.modalPane,
.overlay {
  transition: visibility 0s, opacity 0.2s, transform 0s;
  transition-delay: 0.8s, 0.4s, 0.9s;
}
.modalPane .scrollable,
.overlay .scrollable {
  clip-path: inset(0 0 round 0);
  transition: clip-path 0.6s cubic-bezier(0.6, 0, 0, 1);
  transition-delay: 0s;
}
.modalPane .scrollable .scrollInner,
.overlay .scrollable .scrollInner {
  transition: opacity 0.4s cubic-bezier(0.6, 0, 0, 1);
  transition-delay: 0s;
  opacity: 0;
}
.modalPane.visible,
.overlay.visible {
  visibility: visible;
  transition-delay: 0s, 0.1s, 0s;
  opacity: 1;
  transform: translate(0, 0);
}
.modalPane.visible .scrollable,
.overlay.visible .scrollable {
  transition-delay: 0.2s, 0s;
  clip-path: var(--modalClip);
}
.modalPane.visible .scrollable .scrollInner,
.overlay.visible .scrollable .scrollInner {
  transition: opacity 0.4s cubic-bezier(0.6, 0, 0, 1);
  transition-delay: 0.6s;
  opacity: 1;
}

.modalPane {
  overflow: hidden;
  content-visibility: auto;
  contain-intrinsic-size: 1000px;
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 106;
  opacity: 0;
  transform: translate(100%, 0);
}
.modalPane:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  background-image: var(--typo);
  opacity: 0.95;
}
.modalPane .scrollable {
  overflow-y: auto;
  overflow-x: hidden;
  max-height: 100%;
  padding: 1em;
  width: 100%;
  height: 100%;
  justify-content: center;
  align-items: center;
  background: var(--typo);
  position: relative;
  z-index: 1;
}
.modalPane .scrollable .scrollInner {
  justify-content: center;
  align-items: center;
}
@media (min-width: 1100px) {
  .modalPane .scrollable .scrollInner {
    width: calc(100% + var(--scrollBar));
    margin-right: calc(0% - var(--scrollBar));
    padding: calc(var(--navH) * 1) 0;
  }
}
@media (max-width: 1100px) {
  .modalPane .scrollable .scrollInner .inner {
    padding: calc(var(--pad) * 2) 0;
  }
}
.modalPane .closeBtn {
  position: absolute;
  top: calc(0% + var(--pad) * 2);
  right: calc(0% + var(--pad) * 2);
  z-index: 102;
}
@media (max-width: 1100px) {
  .modalPane .closeBtn {
    top: 1em;
    right: 1em;
  }
}

.overlay {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  content-visibility: auto;
  contain-intrinsic-size: 1000px;
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 110;
  opacity: 0;
  transform: translate(100%, 0);
  background-color: var(--theme);
  background-image: url(../images/noise.png);
  background-repeat: repeat;
  background-attachment: fixed;
}
.overlay .scrollable {
  width: 100%;
  height: 100%;
  justify-content: center;
  align-items: center;
  background: var(--typo);
  position: relative;
  z-index: 1;
  display: flex;
}
.overlay figure {
  z-index: 1;
}
.overlay .closeBtn {
  position: absolute;
  top: calc(0% + var(--pad) * 2);
  right: calc(0% + var(--pad) * 2);
  z-index: 102;
}
@media (max-width: 1100px) {
  .overlay .closeBtn {
    top: 1em;
    right: 1em;
  }
}
.overlay #modalImg {
  position: relative;
  top: inherit;
  left: inherit;
  max-width: 90vw;
  max-height: 90vh;
}

html.modaled .layer {
  opacity: 1;
  visibility: visible;
}

.modalImg img {
  cursor: pointer;
  transition: transform 0.4s ease-in-out 0s, filter 0.6s ease-in-out 0.4s !important;
}
.modalImg:hover img {
  transform: scale(1.05);
}

.prevNext {
  --arrow: calc(var(--btnMenu) * .25);
  --borderWid: 2px;
  position: absolute;
  top: 0;
  border: none;
  width: 33%;
  height: 100%;
  font-size: 18px;
  cursor: pointer;
  transition: all 0.4s ease;
  z-index: 1000;
  text-indent: -999em;
  display: flex;
  align-items: center;
}
@media (min-width: 1100px) {
  .prevNext {
    --arrowX: calc(0% - var(--arrow) * 2);
  }
}
@media (max-width: 1100px) {
  .prevNext {
    --arrowX: calc(0% - var(--arrow) * .75);
  }
}
.prevNext:before {
  content: "";
  display: block;
  width: var(--arrow);
  height: var(--arrow);
  border-top: var(--borderWid) solid;
  border-right: var(--borderWid) solid;
  flex-shrink: 0;
  transform-origin: center;
}
.prevNext.nextLink {
  right: var(--arrowX);
  justify-content: flex-end;
}
.prevNext.nextLink:before {
  transform: rotate(45deg);
}
.prevNext.prevLink {
  left: var(--arrowX);
  justify-content: flex-start;
}
.prevNext.prevLink:before {
  transform: rotate(-135deg);
}
.prevNext:hover {
  color: var(--typo);
  background: var(--wh01);
}

/*# sourceMappingURL=layout.css.map */
