  /*
  Running Squiz Matrix
  Developed by Squiz - http://www.squiz.net
  Squiz, Squiz Matrix, MySource, MySource Matrix and Squiz.net are registered Trademarks of Squiz Pty Ltd
  Page generated: 20 December 2025 00:40:27
*/


/* 天涯社区 brand colours.*/
/* Non-standard:*/
/* Bootstrap functions*/
/**/
/* Utility mixins and functions for evaluating source code across our variables, maps, and mixins.*/
/* Ascending*/
/* Used to evaluate Sass maps like our grid breakpoints.*/
/* Starts at zero*/
/* Used to ensure the min-width of the lowest breakpoint starts at 0.*/
/* Replace `$search` with `$replace` in `$string`*/
/* Used on our SVG icon backgrounds for custom forms.*/
/**/
/* @author Hugo Giraudel*/
/* @param {String} $string - Initial string*/
/* @param {String} $search - Substring to replace*/
/* @param {String} $replace ('') - New value*/
/* @return {String} - Updated string*/
/* See https://codepen.io/kevinweber/pen/dXWoRw*/
/**/
/* Requires the use of quotes around data URIs.*/
/* Color contrast*/
/* Retrieve color Sass maps*/
/* Request a theme color level*/
/* Return valid calc*/
/* Variables*/
/**/
/* Variables should follow the `$component-state-property-size` formula for*/
/* consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.*/
/* Color system*/
/* Set a specific jump point for requesting color jumps*/
/* The yiq lightness value that determines when the lightness of color changes from "dark" to "light". Acceptable values are between 0 and 255.*/
/* Customize the light and dark text colors for use in our YIQ color contrast function.*/
/* Characters which are escaped by the escape-svg function*/
/* Options*/
/**/
/* Quickly modify global styling by enabling or disabling optional features.*/
/* Deprecated, no longer affects any compiled CSS*/
/* Spacing*/
/**/
/* Control the default styling of most Bootstrap elements by modifying these*/
/* variables. Mostly focused on spacing.*/
/* You can add more entries to the $spacers map, should you need more variation.*/
/* This variable affects the `.h-*` and `.w-*` classes.*/
/* Body*/
/**/
/* Settings for the `<Body><h1><a href="/">天涯社区</a></h1><script>
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(bp, s);
})();
</script>` element.*/
/* Links*/
/**/
/* Style anchor elements.*/
/* Darken percentage for links with `.text-*` class (e.g. `.text-success`)*/
/* Paragraphs*/
/**/
/* Style p element.*/
/* Grid breakpoints*/
/**/
/* Define the minimum dimensions at which your layout will change,*/
/* adapting to different screen sizes, for use in media queries.*/
/* Do nothing*/
/* Do nothing*/
/* Do nothing*/
/* Do nothing*/
/* Do nothing*/
/* Grid containers*/
/**/
/* Define the maximum width of `.container` for different screen sizes.*/
/* Do nothing*/
/* Do nothing*/
/* Do nothing*/
/* Do nothing*/
/* Grid columns*/
/**/
/* Set the number of columns and specify the width of the gutters.*/
/* Components*/
/**/
/* Define common padding and border radius sizes and more.*/
/* Typography*/
/**/
/* Font, line-height, and color for body text, headings, and more.*/
/* stylelint-disable value-keyword-case*/
/* stylelint-enable value-keyword-case*/
/* Assumes the browser default, typically `16px`*/
/* Tables*/
/**/
/* Customizes the `.table` component with basic values, each used across all table variations.*/
/* Buttons + Forms*/
/**/
/* Shared variables that are reassigned to `$input-` and `$btn-` specific variables.*/
/* Buttons*/
/**/
/* For each of Bootstrap's buttons, define text, background, and border color.*/
/* Set to `nowrap` to prevent text wrapping*/
/* Allows for customizing button radius independently from global border radius*/
/* Forms*/
/* Extra padding to account for the presence of the background-image based indicator*/
/* In pixels because image dimensions*/
/* Used so we can have multiple background elements (e.g., arrow and feedback icon)*/
/* For focus box shadow issue in IE/Edge*/
/* Form validation*/
/* Z-index master list*/
/**/
/* Warning: Avoid customizing these values. They're used for a bird's eye view*/
/* of components dependent on the z-axis and are designed to all work together.*/
/* Navs*/
/* Navbar*/
/* Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link*/
/* Dropdowns*/
/**/
/* Dropdown menu container and contents.*/
/* Pagination*/
/* Jumbotron*/
/* Cards*/
/* Tooltips*/
/* Form tooltips must come after regular tooltips*/
/* Popovers*/
/* Toasts*/
/* Badges*/
/* Use a higher than normal value to ensure completely rounded edges when*/
/* customizing padding or font-size on labels.*/
/* Modals*/
/* Padding applied to the modal body*/
/* Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding*/
/* Keep this for backwards compatibility*/
/* Alerts*/
/**/
/* Define alert colors, border radius, and padding.*/
/* Progress bars*/
/* List group*/
/* Image thumbnails*/
/* Figures*/
/* Breadcrumbs*/
/* Carousel*/
/* Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)*/
/* Spinners*/
/* Close*/
/* Code*/
/* Utilities*/
/* Printing*/
/* Toggles*/
/**/
/* Used in conjunction with global variables to enable certain theme features.*/
/* Vendor*/
/* stylelint-disable property-blacklist, scss/dollar-variable-default*/
/* SCSS RFS mixin*/
/**/
/* Automated font-resizing*/
/**/
/* See https://github.com/twbs/rfs*/
/* Configuration*/
/* Base font size*/
/* Breakpoint at where font-size starts decreasing if screen width is smaller*/
/* Resize font-size based on screen height and width*/
/* Factor of decrease*/
/* Generate enable or disable classes. Possibilities: false, "enable" or "disable"*/
/* 1 rem = $rfs-rem-value px*/
/* Safari iframe resize bug: https://github.com/twbs/rfs/issues/14*/
/* Disable RFS by setting $enable-responsive-font-sizes to false*/
/* Cache $rfs-base-font-size unit*/
/* Remove px-unit from $rfs-base-font-size for calculations*/
/* Cache $rfs-breakpoint unit to prevent multiple calls*/
/* Remove unit from $rfs-breakpoint for calculations*/
/* The font-size & responsive-font-size mixin uses RFS to rescale font sizes*/
/* Deprecate*/
/* Deprecate mixin*/
/**/
/* This mixin can be used to deprecate mixins or functions.*/
/* `$enable-deprecation-messages` is a global variable, `$ignore-warning` is a variable that can be passed to*/
/* some deprecated mixins to suppress the warning (for example if the mixin is still be used in the current version of Bootstrap)*/
/* Utilities*/
/* Breakpoint viewport sizes and media queries.*/
/**/
/* Breakpoints are defined as a map of (name: minimum width), order from small to large:*/
/**/
/*    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)*/
/**/
/* The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.*/
/* Name of the next breakpoint, or null for the last breakpoint.*/
/**/
/*    >> breakpoint-next(sm)*/
/*    md*/
/*    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))*/
/*    md*/
/*    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))*/
/*    md*/
/* Minimum breakpoint width. Null for the smallest (first) breakpoint.*/
/**/
/*    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))*/
/*    576px*/
/* Maximum breakpoint width. Null for the largest (last) breakpoint.*/
/* The maximum value is calculated as the minimum of the next one less 0.02px*/
/* to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.*/
/* See https://www.w3.org/TR/mediaqueries-4/#mq-min-max*/
/* Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.*/
/* See https://bugs.webkit.org/show_bug.cgi?id=178261*/
/**/
/*    >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))*/
/*    767.98px*/
/* Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.*/
/* Useful for making responsive utilities.*/
/**/
/*    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))*/
/*    ""  (Returns a blank string)*/
/*    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))*/
/*    "-sm"*/
/* Media of at least the minimum breakpoint width. No query for the smallest breakpoint.*/
/* Makes the @content apply to the given breakpoint and wider.*/
/* Media of at most the maximum breakpoint width. No query for the largest breakpoint.*/
/* Makes the @content apply to the given breakpoint and narrower.*/
/* Media that spans multiple breakpoint widths.*/
/* Makes the @content apply between the min and max breakpoints*/
/* Media between the breakpoint's minimum and maximum widths.*/
/* No minimum for the smallest breakpoint, and no maximum for the largest one.*/
/* Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.*/
/* Hover mixin and `$enable-hover-media-query` are deprecated.*/
/**/
/* Originally added during our alphas and maintained during betas, this mixin was*/
/* designed to prevent `:hover` stickiness on iOS-an issue where hover styles*/
/* would persist after initial touch.*/
/**/
/* For backward compatibility, we've kept these mixins and updated them to*/
/* always return their regular pseudo-classes instead of a shimmed media query.*/
/**/
/* Issue: https://github.com/twbs/bootstrap/issues/25195*/
/* Image Mixins*/
/* - Responsive image*/
/* - Retina image*/
/* Responsive image*/
/**/
/* Keep images from scaling beyond the width of their parents.*/
/* Retina image*/
/**/
/* Short retina mixin for setting background-image and -size.*/
/* Resize anything*/
/* Only display content to screen readers*/
/**/
/* See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/*/
/* See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/*/
/* Use in conjunction with .sr-only to only display content when it's focused.*/
/**/
/* Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1*/
/**/
/* Credit: HTML5 Boilerplate*/
/* Sizing shortcuts*/
/* stylelint-disable declaration-no-important*/
/* Typography*/
/* CSS image replacement*/
/* Text truncate*/
/* Requires inline-block or block for proper styling*/
/* stylelint-disable declaration-no-important*/
/* Visibility*/
/* Components*/
/* Button variants*/
/**/
/* Easily pump out default styles, as well as :hover, :focus, :active,*/
/* and disabled options for all buttons*/
/* Button sizes*/
/* Pagination*/
/* Lists*/
/* Unstyled keeps list items block level, just removes default browser padding and list-style*/
/* List Groups*/
/* Horizontal dividers*/
/**/
/* Dividers (basically an hr) within dropdowns and nav lists*/
/* Form control focus state*/
/**/
/* Generate a customized focus state and for any input with the specified color,*/
/* which defaults to the `$input-focus-border-color` variable.*/
/**/
/* We highly encourage you to not customize the default value, but instead use*/
/* this to tweak colors on an as-needed basis. This aesthetic change is based on*/
/* WebKit's default styles, but applicable to a wider range of browsers. Its*/
/* usability and accessibility should be taken into account with any change.*/
/**/
/* Example usage: change the default blue border and shadow to white for better*/
/* contrast against a dark gray background.*/
/* This mixin uses an `if()` technique to be compatible with Dart Sass*/
/* See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details*/
/* Tables*/
/* Skins*/
/* stylelint-disable declaration-no-important*/
/* Contextual backgrounds*/
/* stylelint-disable property-disallowed-list*/
/* Single side border-radius*/
/* Helper function to replace negative values with 0*/
/* Gradients*/
/* Horizontal gradient, from left to right*/
/**/
/* Creates two color stops, start and end, by specifying a color and position for each color stop.*/
/* Vertical gradient, from top to bottom*/
/**/
/* Creates two color stops, start and end, by specifying a color and position for each color stop.*/
/* stylelint-disable property-disallowed-list*/
/* Layout*/
/* Framework grid generation*/
/**/
/* Used only by Bootstrap to generate the correct number of grid classes given*/
/* any value of `$grid-columns`.*/
/*/ Grid system*/
/**/
/* Generate semantic grid columns with these mixins.*/
/* For each breakpoint, define the maximum width of the container in a media query*/
/* Row columns*/
/**/
/* Specify on a parent element(e.g., .row) to force immediate children into NN*/
/* numberof columns. Supports wrapping to new lines, but does not do a Masonry*/
/* style grid.*/
/* stylelint-disable declaration-no-important*/
/* stylelint-disable-line scss/at-import-partial-extension*/
html {
  scroll-behavior: smooth;
}
@media (max-width: 575.98px) {
  h1.hero-banner-title {
    font-size: 12vw !important;
  }
}
.course-guide-form.mktoForm {
  width: auto !important;
}
.course-guide-form.mktoForm .mktoOffset, .course-guide-form.mktoForm .mktoLabel, .course-guide-form.mktoForm .mktoGutter {
  display: none !important;
}
.course-guide-form.mktoForm .mktoFormRow, .course-guide-form.mktoForm .mktoFormCol, .course-guide-form.mktoForm .mktoFieldWrap {
  float: none;
  min-height: 0;
}
.course-guide-form.mktoForm .mktoFormCol {
  margin: 0 !important;
}
.course-guide-form.mktoForm .mktoFormRow, .course-guide-form.mktoForm .mktoButtonRow {
  display: none;
}
.course-guide-form.mktoForm > [class*="col-"] {
  display: block;
  margin-bottom: 1rem !important;
}
.course-guide-form.mktoForm input.mktoField {
  width: 100% !important;
  padding: 0.5rem;
  border: 1px solid #bbb;
  border-radius: 5px;
}
.course-guide-form.mktoForm .mktoHtmlText {
  width: auto !important;
}
.course-guide-form.mktoForm .mktoButtonWrap {
  margin: 0 !important;
}
.course-guide-form.mktoForm .mktoButtonWrap .mktoButton {
  font-family: "Verlag A", "Verlag B", "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
ol.timeline-list {
  list-style-type: none;
  padding-left: 0;
}
ol.timeline-list li {
  position: relative;
  margin: 0;
  padding-bottom: 1em;
  padding-left: 30px;
}
ol.timeline-list li::before {
  content: '';
  background-color: #bbb;
  position: absolute;
  bottom: -7px;
  top: 7px;
  left: 5px;
  width: 1px;
}
ol.timeline-list li::after {
  content: '';
  border: 1px solid #bbb;
  border-radius: 50%;
  background: #fff;
  position: absolute;
  left: 0;
  top: 7px;
  height: 10px;
  width: 10px;
}
ol.timeline-list li:last-child::before {
  display: none;
}
ol.timeline-list li.current {
  font-weight: bold;
}
ol.timeline-list li.current::after {
  background: #009abc;
  border-color: #009abc;
}
.unit-card {
  outline: none;
}
@media (min-width: 768px) {
  .unit-card {
    position: relative;
  }
  .unit-card .unit-card-actual {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: auto;
    overflow: hidden;
  }
  .unit-card .unit-card-actual .unit-card-synopsis {
    min-height: 350px;
  }
  .unit-card::after {
    content: '';
    display: block;
    height: 350px;
  }
}
.unit-card .toggle-collapse, .unit-card .toggle-expand {
  display: none;
}
.unit-card.collapsed .unit-card-actual:hover {
  background: #f1f1f1 !important;
}
@media (min-width: 768px) {
  .unit-card.collapsed .toggle-expand {
    display: block;
  }
  .unit-card.collapsed .unit-card-actual {
    transition: max-height 0.7s, z-index 0.7s step-end;
    max-height: 350px;
    z-index: 0;
  }
}
@media (min-width: 768px) {
  .unit-card.expanded .toggle-collapse {
    display: block;
  }
  .unit-card.expanded .unit-card-actual {
    transition: max-height 0.7s, z-index 0.7s step-start;
    max-height: 800px;
    z-index: 1;
  }
}
.detail-icon-image {
  height: 4rem;
  margin-bottom: 1rem;
}
.detail-icon-image img {
  width: auto;
  height: 4rem;
}
blockquote.testimonial-quote {
  position: relative;
}
blockquote.testimonial-quote::before, blockquote.testimonial-quote::after {
  font-family: 'Georgia', 'Times', serif;
  font-size: 5.5rem;
  font-weight: bold;
  color: #006c91;
  position: absolute;
  height: 3rem;
  width: 3rem;
  line-height: 1;
}
blockquote.testimonial-quote::before {
  content: '鈥';
  top: -0.5rem;
  left: -4rem;
}
blockquote.testimonial-quote::after {
  content: '鈥';
  bottom: -0.5rem;
  right: -4rem;
}
@media (max-width: 991.98px) {
  .campaign-cta-block-bg {
    background: #fff;
  }
}
@media (min-width: 992px) {
  .campaign-cta-block-bg {
    background: radial-gradient(circle at 50% 30%, #fff 65%, transparent 65%);
  }
}
.timeline-list li {
  font-size: 18px;
}
