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

@font-face {
  font-family: "Graphik";
  src: url("../fonts/Graphik-Semibold-Web.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "York Grot";
  src: url("../fonts/YorkGrot-SemiBoldCondensed.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

:root {
  --fontstack-body: "Graphik", -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, "Helvetica Neue", sans-serif !important;
  --fontstack-display: "York Grot", Impact, sans-serif-condensed, sans-serif !important;
  --body-50-size: clamp(0.87rem, calc(0.34vw + 0.74rem), 1rem) !important;
  --body-100-size: 1rem !important;
  --body-200-size: clamp(1rem, calc(0.35vw + 0.78rem), 1.125rem) !important;
  --body-300-size: clamp(
    1.1875rem,
    calc(0.53vw + 0.86rem),
    1.375rem
  ) !important;
  --body-400-size: clamp(1.63rem, calc(1.05vw + 0.99rem), 2rem) !important;
  --display-200-size: clamp(1.13rem, calc(0.34vw + 0.92rem), 1.25rem);
  --display-300-size: clamp(1.375rem, calc(0.35vw + 1.16rem), 1.5rem);
  --display-400-size: clamp(1.625rem, calc(0.71vw + 1.19rem), 1.875rem);
  --display-500-size: clamp(1.875rem, calc(1.07vw + 1.23rem), 2.25rem);
  --display-600-size: clamp(2.1875rem, calc(1.25vw + 1.43rem), 2.625rem);
  --padding: clamp(1.5rem, calc(1.59vw + 0.73rem), 2.25rem);
  --gutter: clamp(1.5rem, calc(4.78vw + -0.8em), 3.75rem);
  --wrapper-padding: var(--padding);
}
.uoy_branch_heading {
  flex-basis: unset;
}
body {
  font-family: var(--fontstack-body) !important;
  color: var(--black);
  position: relative;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--fontstack-display) !important;
}
.uoy_page{
  min-height:auto;
}
.uoy_page_header {
  color: #fff;
}
.uoy_page_header h2 {
  color: #fff;
}
.uoy_page_header a {
  color: #fff !important;
}
.uoy_page_header a:hover {
  color: #ffd200 !important;
}
.york_logo img {
  width: 209px !important;
}
.york_masthead_nav {
  flex-flow: column-reverse;
  align-items: end;
  display: flex;
}
.york_nav_main {
  gap: calc(var(--padding) * 3 / 4);
  --submenu-offset: 1rem;
  margin: 0 0 1rem;
  flex-flow: row;
  padding: 0.25rem 0 1rem;
  display: flex;
  position: relative;
}
.york_nav_utility {
  gap: var(--padding);
}
.york_nav_main > li {
  margin: 0;
  display: block;
}
.york_nav_main > li > a {
  white-space: nowrap;
  font-family: var(--fontstack-display);
  font-size: var(--display-400-size);
  line-height: var(--display-400-line-height);
  text-transform: uppercase;
  display: block;
  text-decoration: none;
}
.york_nav_utility {
  gap: calc(var(--padding) * 3 / 4);
  font-size: var(--body-100-size);
  line-height: var(--body-100-line-height);
  flex-flow: row;
  margin: 0;
  padding: 0.5rem 0 1rem;
  display: flex;
  position: relative;
}
.york_nav_utility > li {
  display: block;
}
.york_nav_utility > li > a {
  white-space: nowrap;
  text-decoration: none;
  display: block;
}
.york_page_Subheader {
  background: #0c31ac;
}
.york_branch_heading {
  text-wrap: balance;
  font-family: var(--fontstack-display);
  font-size: var(--display-300-size);
  line-height: var(--display-300-line-height);
  text-transform: uppercase;
  padding: 1rem;
  color: #fff;
}

/* Common CSS Starts */
.pt-6,
.py-6 {
  padding-top: 64px !important;
}
.pb-6,
.py-6 {
  padding-bottom: 64px !important;
}
.py-6 {
  padding-top: 64px !important;
  padding-bottom: 64px !important;
}

.bg-dark-blue-shade {
  background: var(--dark-blue-shade);
}
.bg--dark-blue-tint {
  background: var(--dark-blue-tint);
}
.bg--promo-background {
  background: var(--promo-background);
}
.color--white {
  color: var(--white);
}
.bg-warm-grey-tint {
  background-color: var(--warm-grey-tint);
}
.bg-white {
  background-color: var(--white);
}
.mt-3 {
  margin-top: 20px !important;
}
.mb-3 {
  margin-bottom: 20px !important;
}
.para--one {
  font-size: 18px;
  line-height: 155%;
}

.para--two {
  font-size: 16px;
  line-height: 160%;
}
h1 {
  font-size: 56px !important;
  line-height: 110% !important;
}

h2 {
  font-size: 42px !important;
  font-weight: 600 !important;
  line-height: 120% !important;
}

/* Common CSS ends */

/* image-text Section Starts */
.image-text-section .image-block img {
  width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}
/* image-text Section Ends */
/* Stacks Info Cards Starts */

.stacks-info-card {
  background: var(--dark-blue-tint);
  border-radius: 12px;
  padding: 1.5rem;
  box-shadow: 0 4px 3px 1px rgb(0 0 0 / 17%) !important;
  height: 100%;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.stacks-info-card:hover,
.stacks-info-card:focus-within {
  /* transform: translateY(-5px); */
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}

.stacks-info-card h3 {
  font-weight: 700;
  color: var(--white);
  margin-bottom: 0.5rem;
}

.stacks-info-card p {
  margin: 0;
  color: var(--white);
}
.stacks-info-card-wrapper {
  row-gap: 16px;
}
.stacks-info-card-parent {
  margin: 0;
}
.stacks-info-card h6 {
  font-size: 20px !important;
  font-style: normal;
  font-weight: 400;
  line-height: 140%;
}
@media (max-width: 768px) {
  .stacks-info-card h6 {
    font-size: 18px !important;
    font-style: normal;
    font-weight: 400;
    line-height: 130%;
  }
}
/* Stacks Info Cards Ends */

/* Info Cards Starts */

.info-card {
  background: var(--white);
  border-radius: 12px;
  padding: 1.5rem;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
  height: 100%;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.info-card:hover,
.info-card:focus-within {
  transform: translateY(-5px);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}

.info-card h3 {
  font-weight: 700;
  color: var(--dark-blue-tint);
  margin-bottom: 0.5rem;
}

.info-card p {
  margin: 0;
}
.info-card-wrapper {
  row-gap: 16px;
}
.info-card-parent {
  margin: 0;
}
/* Info Cards Ends */

/* Undergraduate Section Starts */
.course-card {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  height: 100%;
  cursor: pointer;
}
.course-body {
  background-color: var(--promo-background);
  color: var(--promo-colour);
  padding: 24px 20px 20px;
  font-weight: 600;
  position: relative;
  flex-grow: 1;
}
.course-title {
  color: var(--promo-link-colour);
  font-size: 32px;
  line-height: 125%; /* 40px */
  margin-bottom: 12px;
}
.course-card:hover .course-title {
  text-decoration: underline;
}
.course-date {
  font-size: 16px;
  line-height: 160%; /* 25.6px */
  span {
    font-weight: 400;
  }
}
.course-duration {
  font-size: 16px;
  line-height: 160%; /* 25.6px */
  span {
    font-weight: 400;
  }
}
.course-req {
  font-size: 16px;
  font-weight: 700;
  margin-top: 8px;
}
.course-icon {
  position: absolute;
  right: 15px;
  bottom: 15px;
  background-color: var(--promo-link-colour);
  width: 35px;
  height: 35px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 18px;
}
/* York Life Starts */
.section-york-life .main-img,
.section-york-life .york-card {
  border-radius: 12px;
}
.section-york-life .york-card {
  background: var(--yellow);
}
.section-york-life .york-card #york-life-heading {
  text-transform: uppercase;
}
/* York Life Ends */

@media (min-width: 992px) {
  .section-york-life .york-card {
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    max-width: 520px;
  }
  .section-york-life .main-img {
    width: calc(100% - 58px) !important;
  }
}

/* Undergraduate Section Ends */

/* new setion starts*/

.news-card {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  transition: transform 0.2s ease;
  height: 100%;
  cursor: pointer;
}

.image-wrapper {
  position: relative;
}
.image-wrapper img {
  border-radius: 6px;
}

.news-card .badge {
  position: absolute;
  font-family: var(--fontstack-display);
  bottom: 0;
  right: 0;
  background: var(--label-background);
  color: var(--label-colour);
  font-weight: 600;
  font-size: 20px;
  letter-spacing: -0.3px;
  padding: 6px 14px;
  border-radius: 6px;
  border: 3px solid #ffffff;
}

.news-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 12px;
}

.news-title {
  display: block;
  font-family: var(--fontstack-display);
  margin-bottom: 5px;
  transition: color 0.2s ease;
  font-size: 20px;
  font-weight: 600;
  line-height: 140%; /* 28px */
  text-decoration-style: solid;
  color: var(--link-colour, blue);
}

.news-card:hover a {
  text-decoration-line: underline;
  color: var(--link-colour-hover, red);
}

.news-body p {
  margin: 0;
}
.news-body a {
  text-decoration: none;
}

/* new setion ends*/

/* modal starts */

#modal_dialog {
  border: none;
  padding: 0;
  margin: auto;
  width: 100%;
  max-width: 800px;
  border-radius: 12px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25);
  background: #fff;
  animation: fadeIn 0.25s ease-in-out;
  max-height: calc(100vh - 2rem);
}

/* Modal content wrapper */
#modal_dialog .modal-content {
  position: relative;
  padding: 2rem;
}

/* Title and text */
.modal-title {
  font-size: 1.5rem;
  margin-bottom: 1rem;
}
.modal-text {
  font-size: 1rem;
  color: #555;
}

/* Close button */

.modal-close {
  position: absolute;
  top: 12px;
  right: 12px;
  background: transparent;
  border: none;
  font-size: 1.8rem;
  cursor: pointer;
  line-height: 1;
  color: #333;
  transition: color 0.2s;
}
/* close css and outline css*/
.modal-close:hover {
  color: #333;
  background: none !important;
  outline: none !important;
}

.modal-close:focus-visible {
  color: #333;
  background: none !important;
  outline: none !important;
}

.modal-close:hover:focus-visible {
  color: var(--black);
}

.info-section input:focus-visible {
  outline: none !important;
}

.info-section input:hover:focus-visible {
  outline: none !important;
}

/* close css and outline css*/
.accessibility-container h2 {
  display: none;
}

/* Backdrop (native popover supports ::backdrop) */
#modal_dialog::backdrop {
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(3px);
}

.success-msg-wrap .msg-box {
  border-radius: 4px;
  background: #3a812824;
  width: 100%;
  margin: auto;
  padding: 1rem;
  border: solid 1px #3a8128;
  gap: 10px !important;
}
.fail_msg,
.success_msg {
  width: calc(100% - 67px);
}
.msg-box .msg-title-head {
  font-size: 16px;
  line-height: 140%;
  color: #232b31;
  font-weight: 700;
}
.msg-box p {
  font-size: 16px;
  line-height: 160%;
  font-weight: 400;
  color: #232b31;
}

/* Animation */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-15px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* modal ends */

@media screen and (min-width: 960px) {
  .uoy_hero_content {
    grid-template-columns: 8fr 4fr !important;
  }
}

/* Media Queries */
@media (min-width: 1440px) {
  .accessibility-container ~ footer {
    position: absolute;
    width: 100%;
    top: calc(100% - 100px);
  }
  .uoy_hero_content{
    padding: 0;
  }
}

@media (max-width: 959px) {
  .accessibility-container h2 {
    display: block;
  }
}
@media (max-width: 991px) {
  .pt-6,
  .py-6 {
    padding-top: 32px !important;
  }
  .pb-6,
  .py-6 {
    padding-bottom: 32px !important;
  }
  .para--one {
    font-size: 16px;
    line-height: 160%;
  }
  .para--two {
    font-size: 14px;
  }

  h1 {
    font-size: 36px !important;
    line-height: 34px !important;
  }

  h2 {
    font-size: 30px !important;
    line-height: 125% !important;
  }

  .image-text-section .image-block {
    margin-bottom: 24px;
  }
  .uoy_masthead_core_logo a > img {
    width: 120px;
    margin: auto;
  }
  .course-title {
    font-size: 22px;
  }
  .section-york-life .york-card {
    top: -12px;
    position: relative;
  }
  .news .news-title {
    font-size: 16px;
  }
}
@media (min-width: 991px) and (max-width: 1360px) {
  .uoy_hero_content {
    grid-template-columns: 10fr 1fr !important;
  }
}
@media (max-width: 961px) {
  .uoy_nav_utility > li > a {
    font-size: 16px !important;
    font-weight: 600 !important;
    font-family: Graphik;
    color: #0b0c0c !important;
  }
  .uoy_nav_utility > li > a:hover {
    color: #0b0c0c !important;
  }
  .uoy_page_header .uoy_submenu_toggle {
    color: #0b0c0c !important;
  }
  .uoy_page_header .uoy_submenu_toggle:hover {
    color: #0b0c0c !important;
  }
  .uoy_masthead_core_logo {
    align-self: center;
    margin: 0 !important;
    padding: 1rem 1.25rem !important;
  }
}

/* cookie_banner CSS */
.uoy_page{
  min-height:auto;
}
.uoy_cookie_banner_close {
  background: #000;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  color: #fff;
}
.uoy_cookie_banner .uoy_icon {
  position: absolute;
  right: 10px;
  top: 10px;
}
.uoy_cookie_banner .uoy_icon:hover {
  opacity: 1;
}
.uoy_cookie_banner .uoy_icon:before, 
.uoy_cookie_banner .uoy_icon:after {
  position: absolute;
  right: 4px;
  top:-2px;
  content: ' ';
  height: 14px;
  width: 2px;
  background-color: #fff;
}
.uoy_cookie_banner .uoy_icon:before {
  transform: rotate(45deg);
}
.uoy_cookie_banner .uoy_icon:after {
  transform: rotate(-45deg);
}
/* cookie_banner CSS end */
