@charset "UTF-8";
/**
 * @file
 * Content Promo Block component
 *
 * See also .region--content-promo-blocks in
 *   source/themes/custom/tnvacation/styles/styles.scss
 */
/**
* @file
* Common dependencies for all theme stylesheets (both global and component specific)
*/
/**
* @file
* Functions
*
* Defines reusable Sass functions that perform calculations or transformations (e.g.,
* color manipulation, scaling values).
*/
/**
 * @file
 * Color functions
 */
/**
* @file
* Tier 1 - Primitive Color Variables
*
* Contains the color design tokens assigned to our aliases.
* These variables are the raw, unchanging values used to define the core visual language of the project.
*/
/**
* @file
* Convert values into rem units.
* Only `px` values are converted to rem.
* ! Use CSS variables whenever possible
* defines the base font size in a way that is understandable by Sass functions
*/
/**
* @file
* Mixins
*
* Contains imports for reusable Sass mixins that encapsulate common patterns or logic, such as
* responsive styles, vendor prefixes, or utility functions.
*/
/**
* @file
* Breakpoints
*
* Defines CSS variables for responsive design breakpoints used throughout the project.
*/
/**
* @file
* Container Mixins
*
* Contains mixins for containers that can be applied on a component level when their associated utility class is applied
*/
/**
* @file
* Container Variables
*/
/**
 * @file
 * Global typography for site
*/
/**
* @file
* Typography
*
* Defines CSS variables and styles related to typography, including font families,
* sizes, weights, line heights, and letter spacing.
*/
/**
* @file
* Type SCSS variables for spacing system
*/
/* === Font Stacks === */
/* === Font Weights === */
/* === Letter Spacing === */
/* === Line Heights === */
/* A single line value will be used for type. The largest value was selected based on comparing between mobile and desktop. */
/* === Font Sizes === */
/* Min / Mobile */
/* Max / Desktop */
/* Font Size / Fluid Units
* Resource: Utopia Clamp Calculator
* @link https://utopia.fyi/clamp/calculator?a=320,1440,92—104|64—88|52—64|48—60|32—40|16—20
*
* viewport values from utopia clamp calculator
* values without clamp are the same for mobile and desktop
*/
/*
 Preset typography
*/
/**
* @file
* Utility Mixins
*/
/**
* @file
* Container Mixins
*
* Contains mixins for containers that can be applied on a component level when their associated utility class is applied
*/
/**
* @file
* Variables
*/
/**
* @file
* Type SCSS variables for transition durations.
*/
/**
* @file
* Typography
*
* Defines CSS variables and styles related to typography, including font families,
* sizes, weights, line heights, and letter spacing.
*/
/**
* @file
* SCSS variables for radii
*/
/**
* @file
* Typography
*
* Defines CSS variables and styles related to typography, including font families,
* sizes, weights, line heights, and letter spacing.
*/
/**
 * @file
 * Global typography for site
*/
/**
* @file
* Z-Index
*
* Source of truth for z-index values used throughout the theme.
*/
/**
* @file
* SCSS variables for miscellaneous items
*/
/**
* @file
* Common dependencies for all theme stylesheets (both global and component specific)
*/
/**
 * Tabs/tab as seen on the search page.
 * Pattern reference: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/tab_role#example
 */
/**
 * Styles for "No Results" message to be displayed when 0 results are returned initiating 
 * a search from the Nav, or when 0 results are returned using filters
 */
/**
* @file
* Utility Mixins
*/
:root {
  --promo-block-background-data-mode: light-dark(var(--surface-tertiary), var(--surface-secondary));
  --promo-block-color-data-mode: light-dark(var(--text-primary), var(--text-secondary));
}

.content-promo-block {
  block-size: auto;
  color-scheme: dark;
  display: grid;
  grid-template-columns: 1rem 1fr 1rem;
  grid-template-rows: 1rem 1fr 1rem;
  inline-size: 100%;
  overflow: hidden;
  position: relative;
}

@media (min-width: 768px) {
  .region--content-promo-blocks :is(.content-promo-block, .content-promo-block__content) {
    max-block-size: 11.75rem;
  }
}
.content-promo-block__copy-text {
  color: var(--text-primary);
  max-inline-size: 19ch;
  text-align: center;
  transform: rotate(-1.265deg);
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  font-family: "TNSansPerfect", Monaco, monospace;
  font-style: italic;
  text-transform: uppercase;
  font-size: 1.25rem;
  line-height: 1.4;
}
:has(.font-loaded) .content-promo-block__copy-text {
  line-height: 1.4;
}

.content-promo-block__background-image {
  grid-area: 1/1/-1/-1;
}
.content-promo-block__background-image > div {
  block-size: 100%;
}
.content-promo-block__background-image img {
  block-size: 100%;
  inline-size: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.content-promo-block__content {
  align-items: center;
  container-type: size;
  display: flex;
  flex-flow: column nowrap;
  gap: 0.625rem 1.125rem;
  grid-area: 2/2/2/2;
  inline-size: 100%;
  justify-content: center;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .content-promo-block__content {
    flex-flow: row wrap;
  }
}
@media (min-width: 1440px) {
  .content-promo-block__content {
    gap: 6.5rem;
  }
}
.content-promo-block__content .cta-button::after {
  block-size: 100cqb;
  content: "";
  inset: auto 0 0 2rem;
  position: absolute;
  z-index: 2;
}

.region--content-promo-blocks {
  background-color: var(--surface-tertiary);
}

.content-promo-block--first {
  display: flex;
  flex-flow: row nowrap;
}
@media (max-width: 767px) {
  .content-promo-block--first {
    flex-direction: column;
  }
}
.content-promo-block--first .promo-container {
  background-color: var(--promo-block-background-data-mode);
  block-size: auto;
  display: grid;
  gap: 0.625rem;
  grid-template-columns: minmax(auto, clamp(1rem, 1vw, 3rem)) [image] minmax(auto, 13.6875rem) [text] 1fr [cta] 1fr 1rem;
  margin-inline-start: auto;
  width: 100%;
}
.content-promo-block--first .promo-container p {
  color: var(--promo-block-color-data-mode);
  max-inline-size: 10rem;
  text-transform: uppercase;
  transform: rotate(-3deg);
  font-family: "TNSansPerfect", Monaco, monospace;
  font-style: italic;
  text-transform: uppercase;
  font-size: 1.25rem;
  line-height: 1.4;
}
:has(.font-loaded) .content-promo-block--first .promo-container p {
  line-height: 1.4;
}
.content-promo-block--first .promo-container footer {
  align-items: center;
  display: flex;
  grid-column: cta;
  justify-content: flex-end;
  margin: auto;
}
.content-promo-block--first .promo-container footer .cta-button {
  white-space: nowrap;
}
.content-promo-block--first .promo-container section.promo-content {
  align-items: center;
  display: flex;
  grid-column: text;
  margin: auto auto 0 0;
}
@media (min-width: 768px) {
  .content-promo-block--first .promo-container section.promo-content {
    margin: auto auto auto 0;
  }
}
.content-promo-block--first .promo-container svg {
  position: relative;
  top: 0.625rem;
  transform: scaleX(-1) rotate(40deg);
}
.content-promo-block--first .promo-container img {
  block-size: auto;
  grid-column: image;
  place-self: end;
}
@media (min-width: 768px) {
  .content-promo-block--first .promo-container img {
    max-block-size: 11.75rem;
  }
}
@media (max-width: 767px) {
  .content-promo-block--first .promo-container {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: min-content min-content;
    width: 100%;
  }
  .content-promo-block--first .promo-container img {
    block-size: auto;
    grid-column: 2;
    grid-row: 1/-1;
    place-self: end;
    width: 100%;
  }
  .content-promo-block--first .promo-container section.promo-content {
    grid-column: 1;
    grid-row: 1/2;
    justify-content: center;
    width: 100%;
  }
  .content-promo-block--first .promo-container section.promo-content p {
    max-width: 10.625rem;
    padding-left: 1.25rem;
    padding-top: 1.25rem;
  }
  .content-promo-block--first .promo-container section.promo-content p span {
    display: grid;
  }
  .content-promo-block--first .promo-container section.promo-content svg {
    justify-self: self-end;
    position: relative;
    top: 0;
    transform: none;
  }
  .content-promo-block--first .promo-container footer {
    align-items: normal;
    grid-column: 1;
    grid-row: 2/3;
    justify-content: center;
    margin: auto;
    padding-left: 1.25rem;
  }
  .content-promo-block--first .promo-container footer .cta-button {
    margin-block-end: 0.625rem;
    padding-bottom: 0.625rem;
    padding-top: 0.625rem;
  }
}
@media (max-width: 767px) and (min-width: 768px) {
  .content-promo-block--first .promo-container footer .cta-button {
    margin-block-end: 0;
  }
}
/*# sourceMappingURL=../maps/content-promo-block/content-promo-block.css.map */
