@charset "utf-8";
@import url(fonts.css);

:root {
  --base-text-color: #555555;
  --black: #000000;
  --white: #ffffff;
  --green1: #003728;
  --green2: #355E3B;
  --green3: #50A16D;
  --green4: #76C07D;
  --green5: #D5E49A;
  --green6: #355E3B;
  --green7: #002C20;
  --green8: #5de49a;
  --bluegreen1: #00818A;
  --bluegreen2: #3E9891;
  --red1: #E71316;
  --grey1: #8C978F;
  --grey2: #B3B2B3;
  --blue1: #0039A3;
  --blue2: #293075;
  --brown1: #866137;
  --linecolor: #bbdddb;
  --tablecolor1: #ebf4f4;
  --tablecolor2: #d8eae9;

  --secondary: rgba(213, 228, 154, 0.3);
  --primary: var(--green2);

  --border-radius-5: 5px;
  --border-radius-10: 10px;
  --border-radius-25: 25px;
  --border-radius-40: 40px;
  --border-radius-60: 60px;
  --border-radius-80: 80px;

  --page-header-height: 122px;
  --page-horizontal-padding: clamp(0.938rem, calc(0.553rem + 1.639vw), 2.5rem);
  --page-content-horizontal-padding: clamp(0.938rem, calc(0.092rem + 3.607vw), 4.375rem);
  --page-inner-content-horizontal-padding: clamp(0rem, -3.8603rem + 5.8824vw, 3.125rem);
  --container-width: 1520px;
  --container-horizontal-padding: var(--page-horizontal-padding);
  --normal-font: 'Outfit', 'Opan Sans', Arial, "微軟正黑體", "Microsoft JhengHei", sans-serif;
  --title-font: 'Outfit', 'Opan Sans', Arial, "微軟正黑體", "Microsoft JhengHei", sans-serif;
  --topbtn-size: 60px;
  --site-max-width: 3000px;
  --line-height3: 2;
  --title-line-height: 1.2;
  --special-width: 1400px;

  --space-xs: clamp(0.5rem, 1vw, 0.75rem);
  --space-sm: clamp(0.75rem, 1.5vw, 1rem);
  --space-md: clamp(1rem, 3vw, 2rem);
  --space-lg: clamp(2rem, 5vw, 4rem);
  --space-xl: clamp(4rem, 8vw, 8rem);

  --text-base-size: clamp(1rem, 0.9078rem + 0.3934vw, 1.375rem);
  --main-menu-lv1-font-size: 1.25rem;
  --index-main-visual-year-text-size: clamp(1.9375rem, 1.1844rem + 3.2131vw, 5rem);
  --index-main-visual-year-big-text-size: clamp(3.4375rem, 2.1311rem + 5.5738vw, 8.75rem);
  --index-vision-title-text-size: clamp(1.4375rem, 1.084rem + 1.5082vw, 2.875rem);
  --index-vision-content-text-size: clamp(1rem, 0.7848rem + 0.918vw, 1.875rem);
  --index-section-title-text-size: clamp(2.125rem, 1.3412rem + 3.3443vw, 5.3125rem);
  --index-campus-sub-title-text-size: clamp(1.875rem, 1.4139rem + 1.9672vw, 3.75rem);
  --index-campus-title-text-size: clamp(2.9375rem, 1.9693rem + 4.1311vw, 6.875rem);
  --index-giving-quote-title-text-size: clamp(1.625rem, 1.041rem + 2.4918vw, 4rem);


  --logo-width: 100px;
  --header-padding-block: clamp(0.438rem, calc(0.299rem + 0.59vw), 1rem);
  --index-section-padding-block: clamp(2.5rem, calc(1.424rem + 4.59vw), 6.875rem);


  --common-btn-bg: linear-gradient(to right, var(--green2) 0%, var(--green4) 50%, var(--green4) 50%, var(--green5) 100%);
  --common-btn-bg2: linear-gradient(to right, var(--green3) 0%, var(--green1) 50%, var(--green1) 50%, var(--green2) 100%);
  --mainmenu-btn-bg: linear-gradient(to right, var(--green4) 0%, var(--green5) 50%, var(--white) 50%, var(--white) 100%);
  --mobilemenu-btn-bg: linear-gradient(to right, var(--green4) 0%, var(--green5) 50%, var(--green1) 50%, var(--green1) 100%);
}

[id] {
  scroll-margin-top: var(--page-header-height);
}

html.lenis,
html.lenis body {
  height: auto
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain
}

.lenis.lenis-stopped {
  overflow: clip
}

/* .lenis.lenis-smooth iframe {
  pointer-events: none
} */


@layer core {


  :where(dialog:modal) {
    all: revert;
  }

  html {
    border: 0;
    margin: 0 auto;
    padding: 0;
    min-height: 100vh;
  }

  body {
    font-size: var(--text-base-size);
    line-height: 1.2;
    font-family: var(--normal-font);
    font-variant-ligatures: none;
    color: var(--base-text-color);
    font-weight: 300;
    min-height: 100vh;
    opacity: 0;
    transition: opacity 0.1s ease 0s;
  }

  body.done {
    opacity: 1;
  }

  .clearfix:before,
  .clearfix:after {
    display: table;
    content: " ";
  }

  .clearfix:after {
    clear: both;
  }

  *:focus-visible {
    outline: var(--bluegreen2) solid 2px;
  }

  /* a {
    transition: font-size .3s ease 0s, color .3s ease 0s, background-color .3s ease 0s, padding .3s ease 0s, margin .3s ease 0s;
  } */

  sub,
  sup {
    font-size: 0.777em;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }

  sup {
    top: -0.5em;
  }

  sub {
    bottom: -0.35em;
  }

  #skipToContent {
    float: left;
    margin: 0;
    padding: 0;
    width: 100%;
    position: relative;
    z-index: 5000;
  }

  #skipToContent a {
    /* background: #fff; */
    font-size: 100%;
    height: 1px;
    overflow: hidden;
    position: absolute;
    width: 1px;
  }

  #skipToContent a:focus,
  #skipToContent a:active {
    display: inline;
    height: auto;
    left: 0;
    padding: 4px;
    top: 0;
    width: 180px;
    z-index: 1000;
    background: #005295;
    color: #fff;
  }

  .videoWrap,
  .youtubeWrap {
    position: relative;
  }

  .youtubeWrap iframe,
  .videoWrap video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }

  .accessibility {
    height: 0;
    width: 0;
    display: inline-block;
    overflow: hidden;
    margin: 0;
    padding: 0;
    font-size: 0;
    text-indent: -9999px;
  }

  .hidden,
  .invisible {
    position: absolute;
    left: -10000px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
    display: inline;
  }



  /********* dialog ************/
  dialog {
    inset: 0;
    z-index: 10000;
    width: 95%;
    max-width: 1080px;
    max-height: 100svh;
    overflow: hidden;
    transition: opacity .5s;
    animation-timing-function: cubic-bezier(.5, -.5, .1, 1.5);
    border-radius: 5px;
    padding: 0;
    border: 0;
  }

  dialog[open] {
    --animation-slide-in-up: slide-in-up .5s cubic-bezier(.25, 0, .3, 1);
    animation: var(--animation-slide-in-up) forwards;
  }

  dialog:not([open]) {
    pointer-events: none;
    opacity: 0;
  }

  dialog::backdrop {
    backdrop-filter: blur(0);
    background-color: rgba(0, 55, 40, .9);
  }

  dialog[open]::backdrop {
    animation: backdrop-fade-in 0.5s ease-out forwards;
  }

  @keyframes slide-in-up {
    0% {
      transform: translateY(-100%)
    }
  }

  @keyframes backdrop-fade-in {
    from {
      -webkit-backdrop-filter: blur(0);
      backdrop-filter: blur(0);
    }

    to {
      -webkit-backdrop-filter: blur(5px);
      backdrop-filter: blur(5px);
    }
  }

  dialog article {
    background-color: var(--white);
    width: 100%;
    max-height: 100svh;
  }

  dialog article header {
    padding-inline: clamp(1.25rem, calc(0.943rem + 1.311vw), 2.5rem);
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    font-size: clamp(0.8125rem, 0.7357rem + 0.3279vw, 1.125rem);
    background-color: rgba(213, 228, 154, 0.3);
    padding-block: 15px;
  }


  dialog article header>*:last-child,
  dialog article .modal-content .modal-scroll-content>*:last-child {
    margin-bottom: 0 !important;
  }

  dialog article .modal-content {
    padding-inline: clamp(1.25rem, calc(0.943rem + 1.311vw), 2.5rem);
    padding-block: clamp(0.938rem, calc(0.707rem + 0.984vw), 1.875rem) clamp(1.25rem, calc(0.943rem + 1.311vw), 2.5rem);
  }

  dialog article .modal-content .modal-scroll-content {
    max-height: calc(100svh - 240px);
    overflow-y: auto;
    padding-right: 5px;
  }

  .firefox dialog article .modal-content .modal-scroll-content {
    scrollbar-color: var(--primary) var(--secondary);
  }

  dialog article .modal-content .modal-scroll-content::-webkit-scrollbar {
    width: 10px;
    height: 10px;
  }

  dialog article .modal-content .modal-scroll-content::-webkit-scrollbar-track {
    background-color: var(--secondary);
    border-radius: 0;
  }

  dialog article .modal-content .modal-scroll-content::-webkit-scrollbar-thumb {
    background-color: var(--primary);
    border-radius: 0;
  }

  dialog article footer {
    padding: 1rem 1.5rem;
    display: flex;
    justify-content: flex-end;
    border-top: 1px solid var(--grey);
    border-bottom-left-radius: var(--border-radius);
    border-bottom-right-radius: var(--border-radius);
  }

  dialog article footer.no-border {
    border-top: none;
  }

  dialog article footer.text-center {
    justify-content: center;
  }

  dialog a.close-modal-btn {
    display: block;
    width: 40px;
    aspect-ratio: 1 / 1;
    position: absolute !important;
    right: clamp(1.25rem, calc(0.943rem + 1.311vw), 2.5rem);
    top: 8px;
    margin-right: -5px;
    color: var(--green1) !important;
    transition: all 0.3s ease 0s;
    outline: none;
  }

  /* dialog a.close-modal-btn:is(:hover, :focus-visible) {
    background-color: var(--yellow);
    color: var(--primary-blue) !important;
  } */

  dialog a.close-modal-btn:before,
  dialog a.close-modal-btn:after {
    content: '';
    position: absolute;
    width: 55%;
    height: 2px;
    background-color: currentColor;
    top: 19px;
    left: 9px;
  }

  dialog a.close-modal-btn:before {
    transform: rotate(45deg);
  }

  dialog a.close-modal-btn:after {
    transform: rotate(-45deg);
  }

  /****** dialog end *********/


  object {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
    -moz-transition: width 0.25s ease 0s;
    -o-transition: width 0.25s ease 0s;
    -webkit-transition: width 0.25s ease;
    -webkit-transition-delay: 0s;
    transition: width 0.25s ease 0s;
  }

  ::-webkit-input-placeholder {
    /* WebKit, Blink, Edge */
    color: rgba(51, 51, 51, 0.8);
  }

  :-moz-placeholder {
    /* Mozilla Firefox 4 to 18 */
    color: rgba(51, 51, 51, 0.8);
    opacity: 1;
  }

  ::-moz-placeholder {
    /* Mozilla Firefox 19+ */
    color: rgba(51, 51, 51, 0.8);
    opacity: 1;
  }

  :-ms-input-placeholder {
    /* Internet Explorer 10-11 */
    color: rgba(51, 51, 51, 0.8);
  }

  ::-ms-input-placeholder {
    /* Microsoft Edge */
    color: rgba(51, 51, 51, 0.8);
  }

  ::placeholder {
    /* Most modern browsers support this now. */
    color: rgba(51, 51, 51, 0.8);
  }

  input:focus::-moz-placeholder {
    color: rgba(51, 51, 51, 1);
  }

  input:focus:-ms-input-placeholder {
    color: rgba(51, 51, 51, 1);
  }

  input:focus::-webkit-input-placeholder {
    color: rgba(51, 51, 51, 1);
  }

  /* Chrome, Safari, Edge, Opera */
  input::-webkit-outer-spin-button,
  input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
  }

  /* Firefox */
  input[type="number"] {
    -moz-appearance: textfield;
  }

  input[type="search"] {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }

  strong {
    font-weight: 700;
  }

  .container {
    width: 100%;
    padding: 0 var(--container-horizontal-padding);
    margin: 0 auto;
    max-width: var(--container-width);
    transition: padding .3s ease 0s, gap .3s ease 0s;
  }

  #wrapper {
    width: 100%;
    min-width: 320px;
    max-width: var(--site-max-width);
    min-height: 100vh;
    margin: 0 auto;
    position: relative;
    overflow: clip;
  }

  #wrapper.grayscale {
    filter: grayscale(1);
  }

}

/*end layer*/
/*custom style*/
.f-left {
  float: left;
}

.f-right {
  float: right;
}

.a-center {
  text-align: center;
}

.a-right {
  text-align: right;
}

.v-top {
  vertical-align: top;
}

.v-middle {
  vertical-align: middle;
}

.v-bottom {
  vertical-align: bottom;
}

.no-wrap {
  white-space: nowrap;
}

.no-padding {
  padding: 0;
}

.no-margin {
  margin: 0;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

a.link{
	overflow-wrap: break-word;
}

.display-m {
  display: none;
}

#wrapper.home {
  background-image: linear-gradient(to right, var(--white) 50%, #f4f9f9 50%);
}

#wrapper:not(.home) {
  background-color: var(--white);
  background-image:
    linear-gradient(to bottom, transparent 700px, var(--white) 1400px),
    linear-gradient(to right, var(--white) 50%, #f4f9f9 50%);
  background-size: 100% 100%;
}

#wrapper.home:before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: 1px;
  height: 100%;
  opacity: 0.2;
  background-color: var(--bluegreen2);
}

#wrapper:not(.home):before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: 1px;
  opacity: 0.2;
  background-color: var(--bluegreen2);
  height: 1400px;
  -webkit-mask-image: linear-gradient(to bottom, black 700px, transparent 1400px);
  mask-image: linear-gradient(to bottom, black 700px, transparent 1400px);
}

/********** header *********/
#innerZone {
  position: relative;
  overflow: clip;
}

#headerZone {
  padding-inline: var(--page-horizontal-padding);
  padding-block: var(--header-padding-block);
  transition: background-color 0.25s ease 0s, padding-block 0.25s ease 0s, transform 0.25s ease 0s;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  z-index: 1000;
  will-change: transform;
}

#headerZone.header-hidden {
  transform: translateY(-100%) !important;
  pointer-events: none;
}

#headerZone.hide {
  opacity: 0;
  pointer-events: none;
}

#headerZone.hide * {
  pointer-events: none;
}

#wrapper.fixed #headerZone {
  --header-padding-block: 5px;
  position: fixed;
  background-color: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(7px);
}

@supports selector(:has(*)) {
  #wrapper #headerZone:has(#mainNav>ul>li:hover) {
    background-color: rgba(255, 255, 255, 0.6);
    backdrop-filter: blur(7px);
  }
}

#wrapper #headerZone.is-blurred {
  background-color: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(7px);
}

#header-inner {
  display: grid;
  grid-template-columns: 235px 1fr 235px;
  transition: grid-template-columns 0.25s ease 0s;
}

#logo-wrap {
  width: var(--logo-width);
  line-height: 0;
  transition: width 0.25s ease 0s;
}

#wrapper.fixed #headerZone #logo-wrap {
  --logo-width: 70px;
}

#tool-wrap {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  column-gap: 5px;
}

#mobile-tool-wrap {
  column-gap: 5px;
}

:is(#tool-wrap, #mobile-tool-wrap) span.icon {
  display: block;
  width: 25px;
  aspect-ratio: 1/1;
  background-color: var(--green1);
  transition: background-color 0.35s ease 0s;
  position: relative;
  z-index: 1;
}

#tool-wrap>div:not(.mobile-menu-btn)>a:not(.common-arrow-btn),
#mobile-tool-wrap>div>a:not(.common-arrow-btn) {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  aspect-ratio: 1/1;
  border-radius: 50%;
  position: relative;
}

#tool-wrap>div:not(.mobile-menu-btn)>a:not(.common-arrow-btn):before,
#mobile-tool-wrap>div>a:not(.common-arrow-btn):before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  left: 0;
  top: 0;
  background-image: linear-gradient(to right bottom, var(--green3), var(--green2));
  /* transform: scaleY(0);
  transform-origin: center top;
  transition: transform 0.35s ease 0s; */
  opacity: 0;
  transition: opacity 0.35s ease 0s;
}

#tool-wrap>div:not(.mobile-menu-btn)>a:not(.common-arrow-btn):is(:hover, :focus-visible):before,
#tool-wrap>div:not(.mobile-menu-btn):is(:hover, :focus-within) a:not(.common-arrow-btn):before,
#mobile-tool-wrap>div>a:not(.common-arrow-btn):is(:hover, :focus-visible):before,
#mobile-tool-wrap>div:is(:hover, :focus-within) a:not(.common-arrow-btn):before {
  /* transform: scaleY(1); */
  opacity: 1;
}

#tool-wrap>div:not(.mobile-menu-btn)>a:not(.common-arrow-btn):is(:hover, :focus-visible) span,
#tool-wrap>div:not(.mobile-menu-btn):is(:hover, :focus-within) a:not(.common-arrow-btn) span,
#mobile-tool-wrap>div>a:not(.common-arrow-btn):is(:hover, :focus-visible) span,
#mobile-tool-wrap>div:is(:hover, :focus-within) a:not(.common-arrow-btn) span {
  background-color: var(--white);
}

#tool-wrap>div.tool-giving,
#mobile-tool-wrap>div.tool-giving {
  margin-left: 10px;
}

#tool-wrap .tool-share,
#mobile-tool-wrap .tool-share {
  position: relative;
}

#tool-wrap .tool-share .subnav-wrap,
#mobile-tool-wrap .tool-share .subnav-wrap {
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translate(-50%, 10px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease 0s, transform 0.3s ease 0s;
  padding-top: 20px;
  width: max-content;
  z-index: 1000;
}

#tool-wrap .tool-share .subnav,
#mobile-tool-wrap .tool-share .subnav {
  color: #fff;
  padding: clamp(10px, calc(8.77px + 0.328vw), 15px) clamp(5px, calc(3.77px + 0.328vw), 10px);
  background-color: var(--white);
  border-radius: 10px;
  transition: opacity 0.3s ease 0s, transform 0.3s ease 0s;
  filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.2));
  position: relative;
}

#tool-wrap>div:is(:hover, :focus-within) .subnav-wrap,
#mobile-tool-wrap>div:is(:hover, :focus-within) .subnav-wrap {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

#tool-wrap .tool-share .subnav:before,
#mobile-tool-wrap .tool-share .subnav:before {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 10px solid var(--white);
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
}

#tool-wrap .tool-share .subnav>div:not(:last-child),
#mobile-tool-wrap .tool-share .subnav>div:not(:last-child) {
  border-bottom: 1px solid rgba(62, 152, 145, 0.2);
}

#tool-wrap .tool-share .subnav a,
#mobile-tool-wrap .tool-share .subnav a {
  display: block;
  color: var(--black);
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 6px 10px;
  font-size: clamp(0.75rem, 0.7193rem + 0.1311vw, 0.875rem);
}

#tool-wrap .tool-share .subnav a>span,
#mobile-tool-wrap .tool-share .subnav a>span {
  box-shadow: inset -100% 0 0 0 transparent;
  background-image: linear-gradient(to top, var(--black) 1px, transparent 1px);
  background-repeat: no-repeat;
  background-size: 0% 100%;
  background-position: left 100%;
  transition: background-size 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

#tool-wrap .tool-share .subnav a:is(:hover, :focus-visible)>span,
#mobile-tool-wrap .tool-share .subnav a:is(:hover, :focus-visible)>span {
  background-size: 100% 100%;
}

#tool-wrap .tool-share .subnav a:before,
#mobile-tool-wrap .tool-share .subnav a:before {
  content: '';
  position: relative;
  width: 24px;
  aspect-ratio: 1/1;
  background-size: cover;
  opacity: 0.5 !important;
  transition: opacity 0.35s ease 0s;
}

#tool-wrap .tool-share .subnav a:is(:hover, :focus-visible):before,
#mobile-tool-wrap .tool-share .subnav a:is(:hover, :focus-visible):before {
  opacity: 1 !important;
}

:is(#tool-wrap, #mobile-tool-wrap) .tool-share .subnav a.btnFacebook:before {
  background-image: url(../images/icon-facebook.svg);
}

:is(#tool-wrap, #mobile-tool-wrap) .tool-share .subnav a.btnThreads:before {
  background-image: url(../images/icon-threads.svg);
}

:is(#tool-wrap, #mobile-tool-wrap) .tool-share .subnav a.btnInstagram:before {
  background-image: url(../images/icon-instagram.svg);
}

:is(#tool-wrap, #mobile-tool-wrap) .tool-share .subnav a.btnX:before {
  background-image: url(../images/icon-x.svg);
}

:is(#tool-wrap, #mobile-tool-wrap) .tool-share .subnav a.btnWhatsapp:before {
  background-image: url(../images/icon-whatsapp.svg);
}

:is(#tool-wrap, #mobile-tool-wrap) .tool-share .subnav a.btnCopyLink:before {
  background-image: url(../images/icon-copylink.svg);
}

#mmenuCtrl {
  height: 36px;
}

div.mobile-menu-btn a {
  display: flex !important;
  width: 46px;
  height: 100%;
  align-items: center;
  background-color: transparent;
  border: 0;
  transition: background-color 0.35s ease 0s;
}

div.mobile-menu-btn a span {
  display: block;
  width: 100%;
  height: 4px;
  position: relative;
  background-color: var(--green7);
  transition: background-color 0.35s ease 0s;
}

div.mobile-menu-btn a span:before,
div.mobile-menu-btn a span:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 4px;
  left: 0;
  background-color: var(--green7);
  transition: all 0.35s ease 0s;
}

div.mobile-menu-btn a span:after {
  bottom: -14px;
}

div.mobile-menu-btn a:is(:hover, :focus-visible) span:after {
  bottom: -17px;
}

/* div.mobile-menu-btn a:is(:hover, :focus-visible) span:after,
div.mobile-menu-btn a:is(:hover, :focus-visible) span:before,
div.mobile-menu-btn a:is(:hover, :focus-visible) span {
  background-color: var(--white);
} */

div.mobile-menu-btn a span:before {
  top: -14px;
}

div.mobile-menu-btn a:is(:hover, :focus-visible) span:before {
  top: -17px;
}


/********** header end *********/


/********** footer *********/
#footerZone {
  display: flex;
  width: 100%;
  background-color: var(--green1);
  position: relative;
  z-index: 5;
}

#footerZone .img {
  flex: 1 1 auto;
  line-height: 0;
  position: relative;
}

#footerZone .img:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--green1);
  opacity: 0.3;
}

#footerZone .img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#footerZone #footer-content-wrap {
  flex: 0 0 70%;
  min-width: 700px;
  position: relative;
  padding: clamp(2.188rem, calc(1.496rem + 2.951vw), 5rem) 0 clamp(2.5rem, calc(0.809rem + 7.213vw), 9.375rem) clamp(1.875rem, calc(1.491rem + 1.639vw), 3.438rem);

}

#footerZone #footer-content-wrap::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: 1px;
  height: 100%;
  background-color: var(--green3);
  opacity: 0.2;
}

#footerZone #footer-content {
  display: flex;
  position: relative;
  padding-right: clamp(1.875rem, calc(1.491rem + 1.639vw), 3.438rem);
  padding-bottom: 110px;
}

#footerZone #footer-content>div {
  flex: 0 0 50%;
}

#footerZone #footer-content>div:first-child {
  padding-right: clamp(1.875rem, calc(1.491rem + 1.639vw), 3.438rem);
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr auto;
  color: var(--white);
  font-size: clamp(0.875rem, 0.7213rem + 0.6557vw, 1.5rem);
}

#footerZone #footer-content>div:first-child a,
#footerZone #btm-url a {
  color: var(--white);

  box-shadow: inset -100% 0 0 0 transparent;
  background-image: linear-gradient(to top, var(--white) 2px, transparent 2px);
  background-repeat: no-repeat;
  background-size: 0% 100%;
  background-position: left 100%;
  transition: background-size 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

#footerZone #footer-content>div:first-child a:is(:hover, :focus-visible),
#footerZone #btm-url a:is(:hover, :focus-visible) {
  background-size: 100% 100%;
}

#footerZone #footer-content>div:nth-child(2) {
  padding-left: clamp(1.875rem, calc(1.491rem + 1.639vw), 3.438rem);
}

#footerZone #footer-content #footer-logo {
  max-width: 500px;
  width: 100%;
  line-height: 0;
}

#footerZone #footer-content #footer-logo img,
#footerZone #footer-content #jesuit-logo img {
  max-width: 100%;
}

#footerZone #footer-content #jesuit-logo {
  max-width: 268px;
  width: 100%;
  line-height: 0;
}

#footerZone #footer-content>div:first-child .contact {
  margin-top: 2.5em;
}

#footerZone #footer-content>div:first-child .contact>div {
  margin-top: 1em;
}

#footerZone #footer-content>div:nth-child(2)>div:not(:last-child) {
  border-bottom: 1px solid rgba(80, 161, 109, 0.2);
  padding-block-end: clamp(0.938rem, calc(0.707rem + 0.984vw), 1.875rem);
}

#footerZone #footer-content>div:nth-child(2)>div:not(:first-child) {
  padding-block-start: clamp(0.938rem, calc(0.707rem + 0.984vw), 1.875rem);
}

#footer-mainNav a,
#footerZone .bigger a {
  color: var(--green5);
  font-size: clamp(0.75rem, 0.6578rem + 0.3934vw, 1.125rem);
  box-shadow: inset -100% 0 0 0 transparent;
  background-image: linear-gradient(to top, var(--green5) 1px, transparent 1px);
  background-repeat: no-repeat;
  background-size: 0% 100%;
  background-position: left 100%;
  transition: background-size 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

#footerZone #useful-url a>span {
  box-shadow: inset -100% 0 0 0 transparent;
  background-image: linear-gradient(to top, var(--green5) 2px, transparent 2px);
  background-repeat: no-repeat;
  background-size: 0% 100%;
  background-position: left 100%;
  transition: background-size 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

#footer-mainNav a:is(:hover, :focus-visible),
#footerZone #useful-url a:is(:hover, :focus-visible)>span,
#footerZone .bigger a:is(:hover, :focus-visible) {
  background-size: 100% 100%;
}

#footer-mainNav ul>li:not(:last-child) {
  margin-bottom: 0.5em;
}

#footerZone #useful-url ul>li:not(:last-child) {
  margin-bottom: 0.9em;
}

#footerZone #useful-url a {
  color: var(--green5);
  font-size: clamp(0.875rem, 0.752rem + 0.5246vw, 1.375rem);
  font-weight: 600;
  position: relative;
  display: inline-block;
  padding-inline-start: clamp(1.25rem, calc(0.943rem + 1.311vw), 2.5rem);
  line-height: 1.5;
}

#footerZone #useful-url a:before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: clamp(0.875rem, calc(0.629rem + 1.049vw), 1.875rem);
  aspect-ratio: 1/1;
  transform: translateY(-50%);
  border: 1px solid rgba(213, 228, 154, 0.4);
  border-radius: 50%;
  transition: border-color 0.3s ease 0s;
}

#footerZone #useful-url a:is(:hover, :focus-visible):before {
  border-color: var(--green5);
}

#footerZone #useful-url a:after {
  content: '';
  position: absolute;
  width: clamp(0.313rem, calc(0.236rem + 0.328vw), 0.625rem);
  aspect-ratio: 1/1;
  border-top: 2px solid var(--green5);
  border-right: 2px solid var(--green5);
  transform: rotate(45deg);
  left: clamp(0.188rem, calc(0.111rem + 0.328vw), 0.5rem);
  top: 38%;
}

#footerZone .bigger {
  margin-bottom: 1.5em;
}

#footerZone #btm-url {
  font-size: clamp(0.75rem, 0.6885rem + 0.2623vw, 1rem);
  color: var(--white);
  display: flex;
  flex-wrap: wrap;
  column-gap: 15px;
  row-gap: 10px;
  margin-bottom: 1em;
}

#footerZone #btm-url a {
  background-image: linear-gradient(to top, var(--white) 1px, transparent 1px);
}

#footerZone #btm-url>div:not(:last-child) {
  padding-inline-end: 15px;
  border-right: 1px solid var(--white);
}

#footerZone #copyright {
  font-size: clamp(0.6875rem, 0.626rem + 0.2623vw, 0.9375rem);
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: 1.2em;
  line-height: 1.5;
}

#footerZone #wcag-icon-wrap {
  width: 90px;
  line-height: 0;
}

#footer-slogan {
  position: absolute;
  bottom: 0;
  left: 0;
  color: rgba(213, 228, 154, 0.3);
  font-size: clamp(3.4375rem, 1.4395rem + 8.5246vw, 11.5625rem);
  line-height: 1.2;
  font-weight: 600;
  width: 100%;
  overflow: hidden;
  display: flex;
}

#footer-slogan .slogan-inner {
  display: flex;
  white-space: nowrap;
  gap: 2rem;
  animation: marquee 40s linear infinite;
}

#footer-slogan .slogan-inner.paused {
  animation-play-state: paused;
}

.slogan-inner span {
  letter-spacing: 2px;
}

@keyframes marquee {
  0% {
    transform: translateX(0%);
  }

  100% {
    transform: translateX(-50%);
  }
}

/********** footer end *********/


/******** main menu *********/
#mainNav {
  height: calc(100% + var(--header-padding-block) * 2);
  margin-top: calc(-1 * var(--header-padding-block));
}

#mainNav>ul {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  column-gap: clamp(1.25rem, calc(1.019rem + 0.984vw), 2.188rem);
}

#mainNav>ul>li {
  display: flex;
  align-items: center;
  height: 100%;
}

#mainNav>ul>li>a:after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 10px solid var(--green4);
  opacity: 0;
  transition: opacity 0.3s ease;
}

#mainNav>ul>li.hasSubnav:is(:hover, :focus-within)>a:after {
  opacity: 1;
}

#mainNav>ul>li>a {
  font-size: var(--main-menu-lv1-font-size);
  font-weight: 400;
  color: var(--black);
  transition: color 0.3s ease;
  position: relative;
  align-content: center;
  height: 100%;
}

#mainNav>ul>li>a>span {
  position: relative;
  display: inline-block;
  text-align: center;
}

#mainNav>ul>li.selected>a,
#mainNav>ul>li:is(:hover, :focus-within)>a {
  color: var(--green2);
}

#mainNav>ul>li.selected>a>span {
  padding-bottom: 10px;
}

#mainNav>ul>li.selected>a>span:after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 4px;
  background-image: linear-gradient(to right, var(--green4), var(--green5));
}

#mainNav .subnav {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 640px;
  background-position: 100% 100%;
  background-repeat: no-repeat;
  background-size: cover;
  border-top: 5px solid var(--green4);
  padding-block: clamp(1.25rem, calc(0.789rem + 1.967vw), 3.125rem) 0;
  overflow: hidden;
  opacity: 0;
  display: none;
  pointer-events: none;
  transition: opacity 0.35s ease, display 0.35s allow-discrete;
  transition-delay: 0.3s;
}

#mainNav>ul>li.hasSubnav:is(:hover, :focus-within)>.subnav {
  opacity: 1;
  display: block;
  pointer-events: auto;
  transition-delay: 0s;

  @starting-style {
    opacity: 0;
  }
}

#mainNav>ul.is-closed>li.hasSubnav>.subnav {
  opacity: 0 !important;
  display: none !important;
  pointer-events: none !important;
  transition-delay: 0.3s;
}

#mainNav .subnav:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(to right, rgba(0, 55, 40, 0.9) 0%, rgba(0, 55, 40, 0.9) 40%, rgba(0, 55, 40, 0.6) 100%);
}

#mainNav .subnav .container:after {
  content: '';
  position: absolute;
  top: -50px;
  left: calc(480px + var(--container-horizontal-padding));
  width: 1px;
  /* height: 650px; */
  background-color: var(--green5);
  opacity: 0.3;
  height: 0;
  transition: height 0.5s ease 0.3s;
}

#mainNav .subnav.shown-sub .container:after {
  height: 650px;
}

#mainNav .subnav .container {
  position: relative;
  z-index: 1;

}

#mainNav .subnav .nav-title {
  font-size: clamp(2rem, 1.5389rem + 1.9672vw, 3.875rem);
  background: linear-gradient(to right, var(--green4), var(--green5));

  -webkit-background-clip: text;
  background-clip: text;

  -webkit-text-fill-color: transparent;
  text-fill-color: transparent;
  font-weight: 600;
  display: inline-block;
  margin-bottom: 10px;
}

#mainNav .subnav .nav-content {
  display: flex;
  width: 100%;
}

#mainNav .subnav .nav-content>div.first-lv {
  flex: 0 0 480px;
  position: relative;
}

#mainNav .subnav .nav-content>div.first-lv>ul>li:not(:last-child) {
  margin-bottom: 10px;
}

#mainNav .subnav .nav-content>div.first-lv>ul>li>a {
  display: block;
  width: calc(100% - 40px);
  position: relative;
  overflow: hidden;
  padding: 12px 43px;
  border-radius: 10px;
  font-size: clamp(1.125rem, 1.0328rem + 0.3934vw, 1.5rem);
  font-weight: 400;
  color: var(--green2);
  transition: color 0.3s ease, width 0.3s ease, border-radius 0.3s ease;
  line-height: 1.5;
}

#mainNav .subnav .nav-content>div.first-lv>ul>li.hasSubnav:is(:hover, :focus-within)>a {
  width: 100%;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

#mainNav .subnav .nav-content>div.first-lv>ul>li.hasSubnav>a>span {
  display: block;
  position: relative;
  padding-right: 20px;
}

#mainNav .subnav .nav-content>div.first-lv>ul>li.hasSubnav>a>span:after {
  content: '';
  position: absolute;
  right: -20px;
  top: 50%;
  width: 13px;
  height: 13px;
  border-right: 2px solid var(--green2);
  border-bottom: 2px solid var(--green2);
  transform: translateY(-50%) rotate(-45deg);
  transition: border-color 0.3s ease;
}

#mainNav .subnav .nav-content>div.first-lv>ul>li.hasSubnav:is(:hover, :focus-within)>a>span:after {
  border-color: var(--green1);
}

#mainNav .subnav .nav-content>div.first-lv>ul>li:is(:hover, :focus-within)>a {
  color: var(--green1);
}

#mainNav .subnav .nav-content>div.first-lv>ul>li>a:before {
  content: '';
  position: absolute;
  top: 50%;
  left: 22px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: var(--grey1);
  transform: translateY(-50%);
  opacity: 0.5;
  transition: background-color 0.3s ease;
}

#mainNav .subnav .nav-content>div.first-lv>ul>li:is(:hover, :focus-within)>a:before {
  background-color: var(--white);
}

#mainNav .subnav .nav-content>div.first-lv>ul>li>a:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 200%;
  height: 100%;
  background-image: var(--mainmenu-btn-bg);
  transition: right 0.6s ease;
  z-index: -1;
}

#mainNav .subnav .nav-content>div.first-lv>ul>li:is(:hover, :focus-within)>a:after {
  right: -100%;
}

#mainNav .subnav .nav-content>div.first-lv>ul>li.hasSubnav>ul {
  position: absolute;
  top: 0;
  left: 100%;
  width: 100%;
  min-height: 100%;
  padding-left: 35px;
  z-index: 2;
  opacity: 0;
  display: none;
  pointer-events: none;
  transition: opacity 0.35s ease, display 0.35s allow-discrete;
}

#mainNav .subnav .nav-content>div.first-lv>ul>li.hasSubnav:is(:hover, :focus-within)>ul {
  opacity: 1;
  display: block;
  pointer-events: auto;

  @starting-style {
    opacity: 0;
  }
}

#mainNav .subnav .nav-content>div.second-lv {
  flex: 1 1 auto;
  padding-left: 35px;
  visibility: hidden;
}

#mainNav .subnav .nav-content>div.second-lv a {
  pointer-events: none;
}

#mainNav .subnav .nav-content>div.first-lv>ul>li.hasSubnav>ul>li:not(:last-child),
#mainNav .subnav .nav-content>div.second-lv>ul>li:not(:last-child) {
  margin-bottom: 15px;
}

#mainNav .subnav .nav-content>div.first-lv>ul>li.hasSubnav>ul>li>a,
#mainNav .subnav .nav-content>div.second-lv>ul>li>a {
  font-size: clamp(1.125rem, 1.0328rem + 0.3934vw, 1.5rem);
  color: var(--white);
  font-weight: 200;
  position: relative;
  display: block;
  padding-left: 25px;
  transition: color 0.3s ease;
}

#mainNav .subnav .nav-content>div.first-lv>ul>li.hasSubnav>ul>li>a:is(:hover, :focus-visible),
#mainNav .subnav .nav-content>div.second-lv>ul>li>a:is(:hover, :focus-visible) {
  color: var(--green5);
}

#mainNav .subnav .nav-content>div.first-lv>ul>li.hasSubnav>ul>li>a>span,
#mainNav .subnav .nav-content>div.second-lv>ul>li>a>span {
  box-shadow: inset -100% 0 0 0 transparent;
  background-image: linear-gradient(to top, var(--green5) 1px, transparent 2px);
  background-repeat: no-repeat;
  background-size: 0% 100%;
  background-position: left 100%;
  transition: background-size 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

#mainNav .subnav .nav-content>div.first-lv>ul>li.hasSubnav>ul>li>a:is(:hover, :focus-visible)>span,
#mainNav .subnav .nav-content>div.second-lv>ul>li>a:is(:hover, :focus-visible)>span {
  background-size: 100% 100%;
}

#mainNav .subnav .nav-content>div.first-lv>ul>li.hasSubnav>ul>li>a:before,
#mainNav .subnav .nav-content>div.second-lv>ul>li>a:before {
  content: '';
  position: absolute;
  width: 15px;
  aspect-ratio: 1/1;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  -webkit-mask-image: url(../images/menu/mask.svg);
  mask-image: url(../images/menu/mask.svg);
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  background-color: rgba(255, 255, 255, 0.4);
  transition: background-color 0.3s ease;
}

#mainNav .subnav .nav-content>div.first-lv>ul>li.hasSubnav>ul>li>a:is(:hover, :focus-visible):before,
#mainNav .subnav .nav-content>div.second-lv>ul>li>a:is(:hover, :focus-visible):before {
  background-color: var(--green5);
}

/********* main menu end *********/


/********* mobile menu *********/
#mobileBgLayer {
  position: fixed;
  width: 100%;
  height: 100%;
  background-color: var(--green1);
  opacity: 0.9;
  z-index: 1020;
  left: 0;
  top: 0;
}

#mobileNavWrap {
  position: fixed;
  width: 80%;
  max-width: 460px;
  height: 100%;
  right: -100%;
  opacity: 1;
  z-index: 1025;
  /* display: none; */
  background: var(--green1);
  transition: right 0.5s;
}

.showMMenu #mobileNavWrap {
  display: block;
}

#mobileNavWrap.show {
  right: 0;
}

#mobileMenuCrtl {
  background-color: var(--white);
  display: flex;
  justify-content: space-between;
  height: 60px;
  align-items: center;
  padding-inline: 15px;
}

#mobileMenuCrtl span.icon {
  display: block;
  width: 25px;
  aspect-ratio: 1 / 1;
  background-color: var(--green1);
}

#mobile-tool-wrap {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 20px;
}

#closeMobileMenu {
  display: block;
  width: 30px;
  aspect-ratio: 1/1;
  position: relative;
}

#closeMobileMenu>span {
  display: block;
  width: 100%;
  height: 100%;
  text-indent: -9999px;
  position: relative;
}

#closeMobileMenu>span:before,
#closeMobileMenu>span:after {
  width: 100%;
  height: 2px;
  background: var(--green1);
  position: absolute;
  top: 50%;
  content: '';
  right: 0;
  transition: background 0.3s ease;
}

#closeMobileMenu>span:before {
  transform: translateY(-50%) rotate(45deg);
}

#closeMobileMenu>span:after {
  transform: translateY(-50%) rotate(-45deg);
}

#closeMobileMenu:is(:hover, :focus-visible)>span:before,
#closeMobileMenu:is(:hover, :focus-visible)>span:after {
  background: var(--green4);
}

#mainNav_m {
  position: relative;
  max-height: calc(100svh - 60px);
  overflow-y: auto;
  padding-bottom: 60px;
}

#mainNav_m>ul>li>div.mobileBtnWrap {
  padding-inline: 20px;
  padding-block: 15px;
  font-size: clamp(1.3125rem, 1.2049rem + 0.459vw, 1.75rem);
  font-weight: 600;
  overflow: hidden;
}

#mainNav_m>ul>li div.mobileBtnWrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}

#mainNav_m>ul>li>div.mobileBtnWrap:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 200%;
  height: 100%;
  background-image: var(--mobilemenu-btn-bg);
  transition: right 0.6s ease;
  z-index: -1;
}

#mainNav_m>ul>li:is(:hover, :has(:focus-visible), .is-open, .selected)>div.mobileBtnWrap:after {
  right: -100%;
}

#mainNav_m>ul>li div.mobileBtnWrap>a {
  flex: 1 1 auto;
}

#mainNav_m>ul>li>div.mobileBtnWrap>a>span {
  background: linear-gradient(to right, var(--green4), var(--green5));
  -webkit-background-clip: text;
  background-clip: text;

  -webkit-text-fill-color: transparent;
  text-fill-color: transparent;

  transition: all 0.3s ease 0s;
}

#mainNav_m>ul>li:is(:hover, :has(:focus-visible), .is-open, .selected)>div.mobileBtnWrap>a>span {
  background: linear-gradient(to right, var(--green1), var(--green1));
  -webkit-background-clip: text;
  background-clip: text;

  -webkit-text-fill-color: transparent;
  text-fill-color: transparent;
}

#mainNav_m>ul>li.hasSubnav div.mobileBtnWrap>button {
  display: block;
  height: 60px;
  aspect-ratio: 1/1;
  text-indent: -9999px;
  cursor: pointer;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1;
  background-color: transparent;
  border: 0;
  border-radius: 0;
  transition: color 0.3s ease 0s;
  color: var(--green5);
}

#mainNav_m>ul>li.hasSubnav div.mobileBtnWrap>button:after {
  --arrow-size: 14px;
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--arrow-size);
  aspect-ratio: 1/1;
  margin-top: calc(-1 * (var(--arrow-size) + 10px) / 2);
  margin-left: calc(-1 * (var(--arrow-size) / 3));
  transform-origin: center center;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: margin-top 0.3s ease 0s, transform 0.3s ease 0s;
}

#mainNav_m>ul>li.hasSubnav:is(:hover, :has(:focus-visible), .is-open, .selected) div.mobileBtnWrap>button {
  color: var(--green1);
}

#mainNav_m>ul li.hasSubnav:is(.is-open, .selected)>div.mobileBtnWrap>button:after {
  margin-top: calc(-1 * (var(--arrow-size) - 3px) / 2);
  transform: rotate(225deg);
}

#mainNav_m>ul>li.hasSubnav li.hasSubnav:is(.is-open, .selected) div.mobileBtnWrap>button:after {
  margin-top: calc(-1 * (var(--arrow-size) - 1px) / 2);
}

#mainNav_m>ul>li {
  border-bottom: 1px solid rgba(213, 228, 154, 0.2);
}

#mainNav_m>ul>li.hasSubnav>.subnav {
  background-color: var(--green7);
}

#mainNav_m>ul li.hasSubnav>.subnav {
  display: grid;
  grid-template-rows: 0fr;
  overflow: hidden;
  transition: grid-template-rows 0.4s ease-out;
}

#mainNav_m>ul li.hasSubnav:is(.is-open, .selected)>.subnav {
  grid-template-rows: 1fr;
}

#mainNav_m>ul li.hasSubnav>.subnav>ul {
  min-height: 0;
}

#mainNav_m>ul>li.hasSubnav>.subnav>ul>li:not(:last-child) {
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

#mainNav_m>ul>li.hasSubnav>.subnav>ul>li>div.mobileBtnWrap {
  padding-inline: 25px;
  padding-block: 15px;
  font-size: clamp(0.9375rem, 0.7992rem + 0.5902vw, 1.5rem);
  color: var(--white);
  font-weight: 400;
  transition: background-color 0.3s ease 0s;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

#mainNav_m>ul>li.hasSubnav>.subnav>ul>li>div.mobileBtnWrap>a {
  padding-inline-start: 15px;
  position: relative;
}

#mainNav_m>ul>li.hasSubnav>.subnav>ul>li>div.mobileBtnWrap>a:before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--white);
  transform: translateY(-50%);
  opacity: 0.5;
  transition: opacity 0.3s ease 0s;
}

#mainNav_m>ul>li.hasSubnav>.subnav>ul>li:is(:hover, :has(:focus-visible), .is-open, .selected)>div.mobileBtnWrap>a:before {
  opacity: 1;
}

#mainNav_m>ul>li.hasSubnav li.hasSubnav div.mobileBtnWrap>button {
  color: var(--white);
}

#mainNav_m>ul>li.hasSubnav li.hasSubnav div.mobileBtnWrap>button:after {
  margin-top: calc(-1 * (var(--arrow-size) + 20px) / 2);
}

#mainNav_m>ul>li.hasSubnav li:is(:hover, :has(:focus-visible), .is-open, .selected) div.mobileBtnWrap {
  background-color: var(--green2);
}

#mainNav_m>ul>li.hasSubnav li.hasSubnav>.subnav {
  background-color: var(--green2);
}

#mainNav_m>ul>li.hasSubnav li.hasSubnav>.subnav>ul {
  padding-inline: 35px;
  /* padding-block: 18px; */
}

#mainNav_m>ul>li.hasSubnav li.hasSubnav>.subnav>ul>li:first-child {
  padding-block-start: 18px;
}

#mainNav_m>ul>li.hasSubnav li.hasSubnav>.subnav>ul>li:last-child {
  padding-block-end: 18px;
}

#mainNav_m>ul>li.hasSubnav li.hasSubnav>.subnav>ul>li:not(:last-child) {
  margin-bottom: 10px;
}

#mainNav_m>ul>li.hasSubnav li.hasSubnav>.subnav a {
  color: var(--white);
  font-size: clamp(0.9375rem, 0.7992rem + 0.5902vw, 1.5rem);
  font-weight: 200;
  position: relative;
  display: block;
  padding-left: 25px;
}

#mainNav_m>ul>li.hasSubnav li.hasSubnav>.subnav a>span {
  box-shadow: inset -100% 0 0 0 transparent;
  background-image: linear-gradient(to top, var(--white) 1px, transparent 2px);
  background-repeat: no-repeat;
  background-size: 0% 100%;
  background-position: left 100%;
  transition: background-size 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

#mainNav_m>ul>li.hasSubnav li.hasSubnav>.subnav a:is(:hover, :focus-visible)>span,
#mainNav_m>ul>li.hasSubnav li.hasSubnav>.subnav li.selected a>span {
  background-size: 100% 100%;
}

#mainNav_m>ul>li.hasSubnav li.hasSubnav>.subnav a:before {
  content: '';
  position: absolute;
  width: 15px;
  aspect-ratio: 1/1;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  -webkit-mask-image: url(../images/menu/mask.svg);
  mask-image: url(../images/menu/mask.svg);
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  background-color: rgba(255, 255, 255, 0.4);
  transition: background-color 0.3s ease;
}

#mainNav_m>ul>li.hasSubnav li.hasSubnav>.subnav a:is(:hover, :focus-visible):before,
#mainNav_m>ul>li.hasSubnav li.hasSubnav>.subnav li.selected a:before {
  background-color: var(--white);
}

/********* mobile menu end *********/


/********** back to top button *********/
#backToTop {
  position: fixed;
  right: 30px;
  bottom: 30px;
  width: var(--topbtn-size);
  height: var(--topbtn-size);
  opacity: 0;
  transition: background-color 0.5s ease 0s, opacity 0.3s ease 0s, color 0.5s ease 0s, transform 0.3s ease 0s;
  z-index: 1000;
  text-indent: -9999px;
  color: var(--green1);
  background-color: var(--white);
  visibility: hidden;
  border-radius: 50%;
  border: 3px solid var(--white);
  text-decoration: none;
  box-shadow: 0 0 20px rgba(0, 0, 0, .2);
  overflow: hidden;
  transform-origin: 100% 100%;
}

#backToTop:after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(to right bottom, var(--green5), var(--green4));
  opacity: 0;
  transition: opacity 0.3s ease 0s;
}

#backToTop:is(:hover, :focus-visible):after {
  opacity: 1;
}

#backToTop:is(:hover, :focus-visible):before {
  /* transform: translateY(-70px) rotate(-45deg); */
  top: calc(55% - 5px);
  /*  background-color: var(--main-color-light); */
}

#backToTop:before {
  content: '';
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 55%;
  left: 50%;
  width: 20%;
  height: 20%;
  text-align: center;
  color: currentColor;
  text-indent: 0;
  transform: translate(-50%, -50%) rotate(-45deg);
  transition: top 0.35s ease 0s;
  border-right: 3px solid currentColor;
  border-top: 3px solid currentColor;
  z-index: 1;
  /* filter: drop-shadow(0 70px 0 currentColor); */
}

#backToTop.fixed {
  position: absolute;
  bottom: 30px;
}

#backToTop.active {
  opacity: 1;
  visibility: visible;
}

#wrapper.showMMenu #backToTop {
  visibility: hidden;
}

/********** back to top button end *********/

/******** icon button *********/
span.icon {
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;

  transition: all 0.3s ease 0s;
}

span.icon.icon-contact {
  -webkit-mask-image: url(../images/icon-contact.svg);
  mask-image: url(../images/icon-contact.svg);
}

span.icon.icon-share {
  -webkit-mask-image: url(../images/icon-share.svg);
  mask-image: url(../images/icon-share.svg);
  margin-left: -3px;
}

span.icon.icon-announcement {
  -webkit-mask-image: url(../images/icon-announcement.svg);
  mask-image: url(../images/icon-announcement.svg);
}

span.icon.icon-infinity {
  -webkit-mask-image: url(../images/icon-infinity.svg);
  mask-image: url(../images/icon-infinity.svg);
}

span.icon.icon-current-students {
  -webkit-mask-image: url(../images/icon-current-students.svg);
  mask-image: url(../images/icon-current-students.svg);
}

span.icon.icon-prospective-students {
  -webkit-mask-image: url(../images/icon-prospective-students.svg);
  mask-image: url(../images/icon-prospective-students.svg);
}

span.icon.icon-further-studies {
  -webkit-mask-image: url(../images/icon-further-studies.svg);
  mask-image: url(../images/icon-further-studies.svg);
}

span.icon.icon-list-scholarships-awards-financial-aid {
  -webkit-mask-image: url(../images/icon-list-scholarships-awards-financial-aid.svg);
  mask-image: url(../images/icon-list-scholarships-awards-financial-aid.svg);
}

span.icon.icon-emergency-relief {
  -webkit-mask-image: url(../images/icon-emergency-relief.svg);
  mask-image: url(../images/icon-emergency-relief.svg);
}

span.icon.icon-overseas-exchange {
  -webkit-mask-image: url(../images/icon-overseas-exchange.svg);
  mask-image: url(../images/icon-overseas-exchange.svg);
}

span.icon.icon-information-day {
  -webkit-mask-image: url(../images/icon-information-day.svg);
  mask-image: url(../images/icon-information-day.svg);
}

span.icon.icon-jobs {
  -webkit-mask-image: url(../images/icon-jobs.svg);
  mask-image: url(../images/icon-jobs.svg);
}

span.icon.icon-address {
  -webkit-mask-image: url(../images/icon-address.svg);
  mask-image: url(../images/icon-address.svg);
}

span.icon.icon-email {
  -webkit-mask-image: url(../images/icon-email.svg);
  mask-image: url(../images/icon-email.svg);
}

span.icon.icon-tel {
  -webkit-mask-image: url(../images/icon-tel.svg);
  mask-image: url(../images/icon-tel.svg);
}

span.icon.icon-print {
  -webkit-mask-image: url(../images/icon-print.svg);
  mask-image: url(../images/icon-print.svg);
}

span.icon.icon-tab-menu-open {
  -webkit-mask-image: url(../images/icon-tab-menu-open.svg);
  mask-image: url(../images/icon-tab-menu-open.svg);
}

span.icon.icon-tab-menu-close {
  -webkit-mask-image: url(../images/icon-tab-menu-close.svg);
  mask-image: url(../images/icon-tab-menu-close.svg);
}

span.icon.icon-location {
  -webkit-mask-image: url(../images/icon-location.svg);
  mask-image: url(../images/icon-location.svg);
}
span.icon.icon-application {
  -webkit-mask-image: url(../images/icon-application.svg);
  mask-image: url(../images/icon-application.svg);
}

/******** icon button end *********/

/********* notice *********/
#notice-wrap {
  /* position: fixed;
  z-index: 1000;

  top: 0;
  left: 50%;
  transform: translateX(-50%); */
  width: 100%;
  transform: translateY(0);
  /* max-width: var(--site-max-width); */
  padding: 15px var(--container-horizontal-padding);
  background-color: var(--green1);
  transition: padding 0.25s ease 0s, transform 0.3s ease 0s;
  color: var(--white);
  font-size: clamp(0.8125rem, 0.7357rem + 0.3279vw, 1.125rem);
}

#notice-wrap.hide {
  display: none;
  pointer-events: none;
}

#notice-wrap .grid {
  display: grid;
  grid-template-columns: 25px auto;
  column-gap: 20px;
  align-items: center;
}

#notice-wrap .grid span.icon {
  display: block;
  width: 20px;
  aspect-ratio: 1 / 1;
  background-color: var(--green5);
}

#notice-wrap .grid .desc p {
  margin-bottom: 0 !important;
}

#notice-wrap .grid .desc>a>span {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-height: 1.5em;
  line-height: 1.5;
}

#notice-wrap .grid .desc>a>span>span {
  position: relative;
  box-shadow: inset -100% 0 0 0 transparent;
  background-image: linear-gradient(to top, var(--white) 1px, transparent 1px);
  background-repeat: no-repeat;
  background-size: 0% 100%;
  background-position: left 100%;
  transition: background-size 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

/* #notice-wrap .grid .desc>a>span>span::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(to top, rgba(255, 255, 255, 0.7) 1px, transparent 1px);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-position: left 100%;

  transition: none;
} */

#notice-wrap .grid .desc>a:is(:hover, :focus-visible)>span>span {
  background-size: 100% 100%;
  transition-delay: 0.25s;
}

#notice-wrap .grid .desc>a:is(:hover, :focus-visible)>span>span::before {
  background-size: 0% 100%;
  transition: background-size 0.3s cubic-bezier(0.25, 1, 0.5, 1) 0s;
}

#notice-wrap .grid>div:not(.img) {
  display: grid;
  grid-template-columns: 1fr 160px;
  column-gap: 20px;

}

#notice-wrap .grid .inner-grid {
  display: grid;
  grid-template-columns: 110px auto;
  column-gap: 20px;
  align-items: center;
  height: 100%;
}

#wrapper.fixed #notice-wrap {
  padding-top: 15px;
  padding-bottom: 15px;
}

#notice-wrap .date {
  font-weight: 400;
}

#notice-wrap .grid a {
  color: rgba(255, 255, 255, 0.7);
  position: relative;
  transition: color 0.3s ease 0s;
}

#notice-wrap .grid a:is(:hover, :focus-visible) {
  color: var(--white);
}

/* #notice-wrap .grid a:hover {
  --offset: 7px;
  text-decoration-color: var(--pink1);
} */

#notice-wrap .swiper-control {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  column-gap: 15px;
}

#notice-wrap .swiper-control * {
  position: relative;
}

#notice-wrap .swiper-control .swiper-pagination-fraction {
  text-align: right;
  opacity: 0.7;
  top: 0;
}

#notice-wrap .swiper-control>div.arrow {
  display: flex;
  justify-content: center;
  align-items: center;
  column-gap: 2px;
}

#notice-wrap .swiper-control :is(.swiper-button-prev, .swiper-button-next) {
  left: 0;
  top: 0;
  margin: 0;
  width: 40px;
  aspect-ratio: 1/1;
  height: auto;
  border-radius: 3px;
  background-color: rgba(53, 94, 59, 0.5);
  color: var(--green5);
  transition: background-color 0.3s ease 0s, color 0.3s ease 0s;
  overflow: hidden;
}

#notice-wrap .swiper-control :is(.swiper-button-prev, .swiper-button-next)::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--green2);
  transform: scaleX(0);
  z-index: -1;
  transform-origin: left center;
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

#notice-wrap .swiper-control .swiper-button-prev::before {
  transform-origin: right center;
}

#notice-wrap .swiper-control :is(.swiper-button-prev, .swiper-button-next):is(:hover, :focus-visible)::before {
  transform: scaleX(1);
}

#notice-wrap .swiper-control :is(.swiper-button-prev, .swiper-button-next) svg {
  width: 50%;
  aspect-ratio: 1/1;
  height: auto;
}

#announcement-swiper {
  /* height: 40px; */
  width: 100%;
}

#announcement-swiper .swiper-slide {
  opacity: 0;
  transition: opacity 0.3s ease 0s;
}

#announcement-swiper .swiper-slide.swiper-slide-active {
  opacity: 1;
  transition: opacity 0.3s ease 0s;
}

dialog#notice-detail-wrap article header>div {
  display: flex;
  align-items: center;
  column-gap: 15px;
}

dialog#notice-detail-wrap article header span.icon {
  display: block;
  width: 25px;
  aspect-ratio: 1/1;
  background-color: var(--green1);
}

dialog#notice-detail-wrap article header>div .date {
  color: var(--green1);
  font-weight: 400;
}

dialog#notice-detail-wrap article .modal-content .modal-scroll-content .title {
  font-size: clamp(1rem, 0.877rem + 0.5246vw, 1.5rem);
  font-weight: 400;
  color: var(--green1);
  margin-bottom: 1.2em;
  margin-top: 0;
}

dialog#notice-detail-wrap article .modal-content .modal-scroll-content .imgTxtBlk {
  font-size: clamp(0.875rem, 0.8135rem + 0.2623vw, 1.125rem);
  line-height: 1.5;
}

dialog#notice-detail-wrap article .modal-content .modal-scroll-content a {
  color: var(--blue1);
  position: relative;
  box-shadow: inset -100% 0 0 0 transparent;

  background-image:
    linear-gradient(to top, var(--green1) 1px, transparent 1px),
    linear-gradient(to top, var(--blue1) 1px, transparent 1px);

  background-repeat: no-repeat, no-repeat;

  background-size: 0% 100%, 100% 100%;
  background-position: left 100%, left 100%;

  transition: background-size 0.3s cubic-bezier(0.25, 1, 0.5, 1), color 0.3s ease 0s;
}

dialog#notice-detail-wrap article .modal-content .modal-scroll-content a:is(:hover, :focus-visible) {
  color: var(--green1);
  background-size: 0% 100%, 0% 100%;
}

dialog#notice-detail-wrap article .swiper-control {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  column-gap: 10px;
  margin-top: 10px;
}

dialog#notice-detail-wrap article .swiper-control>* {
  position: relative;
  top: 0;
  margin-top: 0;
}

dialog#notice-detail-wrap article .swiper-control>.swiper-pagination {
  width: auto;
  min-width: 50px;
  font-size: clamp(0.875rem, 0.8135rem + 0.2623vw, 1.125rem);
}

dialog#notice-detail-wrap article .swiper-control> :is(.swiper-button-prev, .swiper-button-next) {
  width: 40px;
  aspect-ratio: 1/1;
  height: auto;
  color: var(--green1);
  transition: color 0.3s ease 0s;
}

dialog#notice-detail-wrap article .swiper-control> :is(.swiper-button-prev, .swiper-button-next)>svg {
  width: 50%;
  aspect-ratio: 1/1;
  height: auto;
  transition: all 0.3s ease 0s;
}

dialog#notice-detail-wrap article .swiper-control>.swiper-button-prev:is(:hover, :focus-visible)>svg {
  margin-left: -2px;
}

dialog#notice-detail-wrap article .swiper-control>.swiper-button-next:is(:hover, :focus-visible)>svg {
  margin-right: -2px;
}

/********* notice end *********/


/*********** section banner *********/
#section-banner {
  position: relative;
  width: 100%;
  aspect-ratio: 1900/720;
  background: url(../images/inside-main-vis-bg.png) no-repeat center 100%;
}

#section-banner-container {
  position: absolute;
  top: 65%;
  transform: translateY(-50%);
  right: -10%;
  width: 70%;
  height: 150%;
  /* min-width: 1600px; */
  min-height: 1000px;
  pointer-events: none;
  /* transform: scale(1.35); */
}

#section-banner-container canvas {
  transform: rotate(8deg);
}

#section-banner .container {
  --container-width: 100%;
  --container-horizontal-padding: var(--page-content-horizontal-padding);
  display: flex;
  align-items: center;
  height: 100%;
}

#section-tittle {
  width: 50%;
}

#section-tittle span {
  font-weight: 600;
  font-size: clamp(2.1875rem, 0.8811rem + 5.5738vw, 7.5rem);
  background: linear-gradient(to right, var(--green2), var(--green3));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-fill-color: transparent;
  line-height: 0.9;
  display: inline-block;
  padding-bottom: 0.15em;
}

/*********** section banner end *********/

/*breadcrumb*/
#wrapper:not(.home) #mainZone .container {
  --container-width: 100%;
  --container-horizontal-padding: var(--page-content-horizontal-padding);
}

.inner-container {
  width: 100%;
  padding-inline: var(--page-inner-content-horizontal-padding);
  padding-block: clamp(1.875rem, calc(1.337rem + 2.295vw), 4.063rem) clamp(2.813rem, calc(1.506rem + 5.574vw), 8.125rem);
}

#wrapper.other .inner-container #content {
  max-width: var(--special-width);
  margin-inline: auto;
}

#wrapper.other #breadcrumb {
  max-width: var(--special-width);
  margin-inline: auto;
  padding-block-end: 0;
}

#breadcrumb {
  font-size: clamp(0.75rem, 0.6578rem + 0.3934vw, 1.125rem);
  padding-block-end: 20px;
}

#breadcrumb ul {
  font-weight: 400;
  color: #6e6e6e;
  display: grid;
  gap: 5px 20px;
  grid-template-columns: repeat(auto-fit, minmax(16px, max-content));
}

#breadcrumb ul li {
  position: relative;
}

#breadcrumb ul li>a {
  position: relative;
  color: var(--green1);
  box-shadow: inset -100% 0 0 0 transparent;
  background-image: linear-gradient(to top, var(--green1) 1px, transparent 1px);
  background-repeat: no-repeat;
  background-size: 0% 100%;
  background-position: left 100%;
  transition: background-size 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

#breadcrumb ul li>a:is(:hover, :focus-visible) {
  background-size: 100% 100%;
}

#breadcrumb ul li:not(:first-child):before {
  content: "/";
  background: none;
  height: 5px;
  top: 0;
  left: -13px;
  width: 5px;
  pointer-events: none;
  position: absolute;
  transition: transform 0.25s ease 0s;
  color: var(--grey1);
}

/******** breadcrumb end *********/

/***** prayer ****/
#prayer {
  background-color: rgba(213, 228, 154, 0.2);
  text-align: center;
}

#wrapper:not(.home) #mainZone #prayer .container {
  display: inline-block;
  --container-width: auto;
  width: auto;
  padding-block: clamp(30px, calc(22.623px + 1.967vw), 60px);
  text-align: center;
  position: relative;
}

#wrapper:not(.home) #mainZone #prayer .container:before,
#wrapper:not(.home) #mainZone #prayer .container:after {
  content: '';
  position: absolute;
  width: clamp(45px, calc(33.934px + 2.951vw), 90px);
  aspect-ratio: 1/1;
  background-repeat: no-repeat;
  background-size: contain;
}

#wrapper:not(.home) #mainZone #prayer .container:before {
  left: 0;
  top: 9%;
  background-image: url(../images/home/icon-QuotationMarks-open.png);
}

#wrapper:not(.home) #mainZone #prayer .container:after {
  right: 0;
  background-position: right 100%;
  bottom: 9%;
  background-image: url(../images/home/icon-QuotationMarks-close.png);
}

#wrapper:not(.home) #mainZone #prayer .container .prayer-inner {
  padding-inline: clamp(12px, calc(2.656px + 2.492vw), 50px);
}

#wrapper:not(.home) #mainZone #prayer .container .prayer-content {
  font-size: clamp(0.875rem, 0.6598rem + 0.918vw, 1.75rem);
  color: #6e6e6e;
  line-height: 1.3;
  margin-bottom: 0.6em;
}

#wrapper:not(.home) #mainZone #prayer .container .prayer-title {
  font-weight: 600;
  font-size: clamp(0.75rem, 0.6578rem + 0.3934vw, 1.125rem);
  color: var(--green1);
}

#contentWrap.remove-pb .inner-container {
  padding-block-end: 0;
}

/***** prayer end ****/