/** -------------------------------------------- */
/** Giving form - Quasi-giving form block. Added to a header, followed by a paragraph, followed by a button block */
.ncstc-giving-form {
  color: white;
  margin-top: 0;
  margin-bottom: 0 !important;
  background-color: #6f7d1c;
}
h2.ncstc-giving-form,
h3.ncstc-giving-form,
h4.ncstc-giving-form {
  padding: 2rem 2rem 0 2rem !important;
  font-size: 1.75rem;
}
p.ncstc-giving-form {
  padding: 1rem 2rem !important;
  color: #fff;
  font-size: 1rem;
  line-height: 1.4;
}
div.ncstc-giving-form {
  padding: 1rem 2rem !important;
  margin-bottom: 2rem !important;
}
div.ncstc-giving-form a.btn {
  margin: 0 !important;
  padding: 0;
}
.ncstc-giving-form .wp-block-ncst-button .btn.ncst-block__button-link {
  margin: 10px;
  background-color: white;
  color: #6f7d1c;
}

/* Giving Form Color Variants */
.ncstc-giving-form-reynolds {
  background-color: #900;
}
.ncstc-giving-form-reynolds .wp-block-ncst-button .btn.ncst-block__button-link {
  color: #900;
}

.ncstc-giving-form-orange {
  background-color: #d14905;
}
.ncstc-giving-form-orange .wp-block-ncst-button .btn.ncst-block__button-link {
  color: #d14905;
}

.ncstc-giving-form-aqua {
  background-color: #008473;
}
.ncstc-giving-form-aqua .wp-block-ncst-button .btn.ncst-block__button-link {
  color: #008473;
}

.ncstc-giving-form-red {
  background-color: #c00;
}
.ncstc-giving-form-red .wp-block-ncst-button .btn.ncst-block__button-link {
  color: #c00;
}

.ncstc-giving-form-gray {
  background-color: #333;
}
.ncstc-giving-form-gray .wp-block-ncst-button .btn.ncst-block__button-link {
  color: #333;
}

.ncstc-giving-form-blue {
  background-color: #427e93;
}
.ncstc-giving-form-blue .wp-block-ncst-button .btn.ncst-block__button-link {
  color: #427e93;
}

.ncstc-giving-form-indigo {
  background-color: #4156a1;
}
.ncstc-giving-form-indigo .wp-block-ncst-button .btn.ncst-block__button-link {
  color: #4156a1;
}

/** -------------------------------------------- */
/** .ncstc-clear - Clear floats on both sides */
.ncstc-clear {
  clear: both;
}
.ncstc-clear.wp-block-heading + .wp-block-image {
  margin: 0 auto;
}

/** -------------------------------------------- */
/** .ncstc-equal-width-cols - Ensure that table columns are of equal widths */
.wp-block-table.ncstc-equal-width-cols {
  table-layout: fixed;
  width: 100%;
}
.wp-block-table.ncstc-equal-width-cols td,
.wp-block-table.ncstc-equal-width-cols th {
  width: auto;
  padding-right: 15px;
}
.wp-block-table.ncstc-equal-width-cols td:last-child,
.wp-block-table.ncstc-equal-width-cols th:last-child {
  padding-right: 0;
}
.wp-block-table.ncstc-equal-width-cols tr {
  display: grid;
  grid-auto-columns: 1fr;
  grid-auto-flow: column;
}
.wp-block-table.ncstc-equal-width-cols td {
  grid-row: 1;
  width: 1%; /* Fallback for older browsers */
}

/** -------------------------------------------- */
/** .ncstc-top-align-td - Vertically-align table cell content to the top */
.ncstc-top-align-td td {
  vertical-align: top;
}

/** -------------------------------------------- */
/** .ncstc-no-wrap-col-1 - Prevent text wrapping in the first column of a table */
.ncstc-no-wrap-col-1 td:first-child {
  white-space: nowrap;
}

/** -------------------------------------------- */
/** .ncstc-wide-button - Remove max-width restriction from buttons */
.ncstc-wide-button,
.ncstc-wide-button a.btn.ncst-component__button-link,
.ncstc-wide-button a.btn.ncst-block__button-link {
  max-width: none !important;
}

/** -------------------------------------------- */
/** .ncstc-text-aligned-button & .ncstc-single-button-near-aside - Align button blocks with standard text blocks */
.wp-block-ncst-buttons.ncstc-text-aligned-button,
.ncstc-single-button-near-aside {
  display: block;
}

/** -------------------------------------------- */
/** .ncstc-img-175 - Adjusts margin for large right-aligned images to align with short text */
@media (min-width: 992px) {
  .page .wp-block-image.ncstc-img-175 .alignright {
    margin-right: -225px;
  }
}

/** -------------------------------------------- */
/** .ncstc-empty-block-white - Makes a colored block white if it contains no content */
.ncstc-empty-block-white:empty {
  background-color: #fff;
}

/** -------------------------------------------- */
/** .ncstc-featured-content-one-column - Single column layout for Featured Content blocks */
.ncst-featured-content.ncstc-featured-content-one-column .ncst-content-card {
  flex: 0 0 100% !important;
  max-width: 100% !important;
  display: flex;
  background: #f2f2f2;
  padding: 40px;
}
.ncst-featured-content.ncstc-featured-content-one-column .ncst-content-card .content-card__image-container {
  padding-top: 0;
  flex-basis: 100%;
}
.ncst-featured-content.ncstc-featured-content-one-column .content-card__text-container {
  flex-basis: 100%;
  padding: 30px 0 0 0;
}
@media (min-width: 768px) {
  .ncst-featured-content.ncstc-featured-content-one-column .ncst-content-card {
    flex-direction: row;
  }
  .ncst-featured-content.ncstc-featured-content-one-column .ncst-content-card .content-card__image-container {
    flex-basis: 50%;
  }
  .ncst-featured-content.ncstc-featured-content-one-column .content-card__text-container {
    flex-basis: 50%;
    padding: 0 0 0 40px !important;
  }
}

/** -------------------------------------------- */
/** .ncstc-featured-content-4col - Four-column option for Featured Content blocks */
@media (min-width: 576px) {
  .ncst-featured-content.nsctc-featured-content-4col .ncst-content-card {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media (min-width: 768px) {
  .ncst-featured-content.nsctc-featured-content-4col .ncst-content-card {
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
  }
}
@media (min-width: 992px) {
  .ncst-featured-content.nsctc-featured-content-4col .ncst-content-card {
    flex: 0 0 25%;
    max-width: 25%;
  }
}
@media (width >= 1024px) {
  .wp-block-ncst-featured-content.nsctc-featured-content-4col {
    grid-template-columns: repeat(4, 1fr) !important;
  }
}

/** -------------------------------------------- */
/** .ncstc-featured-content-white-bg - Set text container background to white */
.ncstc-featured-content-white-bg .ncst-featured-content .content-card__text-container,
.ncstc-featured-content-white-bg .ncst-featured-content .ncst-content-card {
  background-color: white !important;
}

/** -------------------------------------------- */
/** .ncstc-block-button & .ncstc-narrow-block-button - Button-style content blocks */
.wp-block-ncst-featured-content.ncstc-block-button .content-card__text-container,
.wp-block-ncst-featured-content.ncstc-narrow-block-button .content-card__text-container {
  display: none !important;
}
.wp-block-ncst-featured-content.ncstc-narrow-block-button img.content-card__image {
  aspect-ratio: 5 / 1 !important;
  object-fit: contain !important;
  contain-intrinsic-size: 396px 80px;
}

/** -------------------------------------------- */
/** .ncstc-wide - Align block with the site header (widths for various breakpoints) */
@media (min-width: 576px) {
  .ncstc-wide {
    flex: 0 0 83.333333%;
    max-width: 83.333333%;
  }
}
@media (min-width: 992px) {
  .ncstc-wide {
    flex: 0 0 75%;
    max-width: 75%;
  }
}
@media (min-width: 1200px) {
  .ncstc-wide {
    flex: 0 0 66.666667%;
    max-width: 66.666667%;
  }
}

/** -------------------------------------------- */
/** .ncstc-spotify-tall - Adjust Spotify embed height and alignment */
figure.ncstc-spotify-tall .wp-block-embed__wrapper:before {
  padding-top: 0 !important;
}
figure.ncstc-spotify-tall {
  position: relative;
  display: block !important;
  height: 0 !important;
  flex: none;
  margin-bottom: 500px;
}
figure.ncstc-spotify-tall iframe {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 500px !important;
}
figure.ncstc-spotify-tall .wp-block-embed__wrapper > * {
  margin: 0 !important;
}

/** -------------------------------------------- */
/** .ncstc-table-links - Remove excess margin when a link list follows a table */
.ncst-wrap__content > div[id^="tablepress"] + ul.ncst-link-list.ncstc-table-links {
  margin-top: -60px;
}

/** -------------------------------------------- */
/** .ncstc-no-space-between - Remove whitespace between sequential block instances */
.ncstc-no-space-between.wp-block-ncst-fact-list + .ncstc-no-space-between.wp-block-ncst-fact-list {
  margin-top: -60px;
}

/** -------------------------------------------- */
/** .ncstc-gcal-header - Adjust width for paragraph following a gCal header */
@media (min-width: 576px) {
  .ncstc-gcal-header + p {
    flex: 0 0 83.333333%;
    max-width: 83.333333%;
  }
}
@media (min-width: 992px) {
  .ncstc-gcal-header + p {
    flex: 0 0 75%;
    max-width: 75%;
  }
}
@media (min-width: 1200px) {
  .ncstc-gcal-header + p {
    flex: 0 0 66.666667%;
    max-width: 66.666667%;
  }
}

/** -------------------------------------------- */
/** .ncstc-issuu - Responsive full-width Issuu embeds */
.wp-block-embed-issuu.ncstc-issuu {
  position: relative !important;
  padding: 0 0 56.25% 0 !important;
  height: 50vw !important;
  overflow: hidden !important;
  width: 100% !important;
  max-width: 1470px;
  max-height: 100%;
}
.wp-block-embed-issuu.ncstc-issuu iframe {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  height: 50vw !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/** -------------------------------------------- */
/** .ncstc-3-col-list & .ncstc-2-col-list - Multi-column list layouts */
ul.ncstc-3-col-list,
ul.ncstc-2-col-list {
  column-count: 1;
  column-gap: 40px;
  break-inside: avoid;
  word-break: break-word;
}
@media (min-width: 576px) {
  ul.ncstc-3-col-list,
  ul.ncstc-2-col-list {
    column-count: 2;
  }
}
@media (min-width: 1000px) {
  ul.ncstc-3-col-list {
    column-count: 3;
  }
}

/** -------------------------------------------- */
/** .ncstc-ncst-list - Apply NC State-style chevron bullets to standard lists */
.ncstc-ncst-list ul {
  padding-left: 2rem;
  list-style: none;
  margin: 0.2888em 0;
}
.ncstc-ncst-list ul li:before {
  content: " ";
  font-size: 0.889em;
  padding-right: 1em;
  margin-left: -1.25em;
  background: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M327.38,207.75,183.63,64l-47.26,48.25L279.14,256,136.37,399.75,183.63,448l192-192Z' fill='%23cc0000'/%3E%3C/svg%3E")
    no-repeat;
  background-size: 1em 1em;
  background-position: -0.25em 0.1em;
}

/** -------------------------------------------- */
/** .ncstc-social-box - Social media link containers with custom branding icons */
.ncstc-social-box {
  background: #efefef;
  padding: 25px 20px 5px 20px;
}
.ncstc-social-box .ncst-component__bold-link {
  color: #333;
  font-size: 20px;
  font-weight: normal;
  font-family: Univers, Arial, sans-serif;
}
.ncstc-social-box .ncst-component__bold-link:before {
  font-family: ncsu-icons;
  color: #333;
  font-size: 25px;
  display: inline-block;
  vertical-align: -5px;
}
.ncstc-social-box a.ncst-component__bold-link.wp-block-ncst-bold-link svg.wolficon {
  display: none;
}
.ncstc-social-box a.ncstc-instagram:before {
  content: "s";
}
.ncstc-social-box a.ncstc-twitter:before {
  content: "v";
}
.ncstc-social-box a.ncstc-youtube:before {
  content: "w";
}
.ncstc-social-box a.ncstc-linkedin:before {
  content: "t";
}
.ncstc-social-box a.ncstc-flickr:before {
  content: "q";
}
.ncstc-social-box a.ncstc-facebook:before {
  content: "y";
}
.ncstc-social-box a.ncstc-pinterest:before {
  content: "u";
}
.ncstc-social-box a.ncstc-email:before {
  content: "z";
}

/** -------------------------------------------- */
/** .ncstc-a-teaser-list - Convert anchor tags inside content cards into a styled list */
.ncstc-a-teaser-list p {
  padding-left: 2rem;
  list-style: none;
  margin: 0.2888em 0;
}
.ncstc-a-teaser-list p a:before {
  content: " ";
  font-size: 0.889em;
  padding-right: 1em;
  margin-left: -1.25em;
  background: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M327.38,207.75,183.63,64l-47.26,48.25L279.14,256,136.37,399.75,183.63,448l192-192Z' fill='%23cc0000'/%3E%3C/svg%3E")
    no-repeat;
  background-size: 1em 1em;
  background-position: -0.25em 0.1em;
}
.ncstc-a-teaser-list span.arrow-indicator {
  display: none;
}

/** -------------------------------------------- */
/** .ncstc-alignfeatured - Standardizes wide width for image blocks */
@media (min-width: 576px) {
  .wp-block-image.ncstc-alignfeatured {
    flex: 0 0 83.333333%;
    max-width: 83.333333%;
  }
}
@media (min-width: 992px) {
  .wp-block-image.ncstc-alignfeatured {
    flex: 0 0 75%;
    max-width: 75%;
  }
}
@media (min-width: 1200px) {
  .wp-block-image.ncstc-alignfeatured {
    flex: 0 0 66.666667%;
    max-width: 66.666667%;
  }
}
@media (max-width: 575px) {
  .wp-block-image.ncstc-alignfeatured {
    width: calc(100% - 40px);
  }
}

/** -------------------------------------------- */
/** .ncstc-alignright - Responsive right alignment for image blocks */
@media (min-width: 992px) {
  .wp-block-image.ncstc-alignright {
    float: right;
    margin: 0 8.333333vw 30px 40px;
    max-width: 370px;
  }
}

/** -------------------------------------------- */
/** .ncstc-inline-img - Tiles thumbnail images in rows with responsive spacing */
figure.size-thumbnail.ncstc-inline-img {
  display: inline-block;
  vertical-align: top;
  margin: 0 0 20px 20px;
  padding: 0;
}
figure.size-thumbnail.ncstc-inline-img:first-of-type:before,
figure.size-thumbnail.ncstc-inline-img:last-of-type:after {
  content: "";
  display: block;
  height: 1px;
}

/** -------------------------------------------- */
/** .ncstc-gray10-bg, .ncstc-gray90-featureimg-bg, .ncstc-bio-indigo-bg - Color Utility Styles */
.ncstc-gray10-bg {
  background: #f2f2f2;
}
.ncstc-gray10-bg.ncst-featured-content {
  padding-top: 39px;
}

.ncstc-gray90-featureimg-bg .content-card__image-container {
  background: #333;
}

.ncstc-bio-indigo-bg {
  background: #4156a1;
  color: #fff;
}
.ncstc-bio-indigo-bg a.wp-block-ncst-inner-fact,
.ncstc-bio-indigo-bg a.wp-block-ncst-inner-fact:hover {
  color: #fff;
}

/** --------------------------------------------- */
/** .ncstc-guest-authors - Styling for custom author byline */
.ncstc-guest-authors {
  font-weight: 400 !important;
  margin: 0 auto !important;
  padding-bottom: 24px;
  font-size: 1rem !important;
}
