@charset "UTF-8";
/**
 * @file
 * Newsletter Modal Component
 */
/**
* @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 {
  --newsletter-modal-height: auto;
}

.newsletter-signup-modal,
.ui-dialog.ui-widget-content {
  background: url("/themes/custom/tnvacation/img/newsletter-modal.webp") no-repeat center;
  background-size: cover;
  border: none !important;
  border-radius: 0.75rem;
  box-shadow: 0 0.625rem 2.5rem rgba(0, 0, 0, 0.2);
  max-width: 24.5625rem;
  padding: 1.25rem 1.25rem;
  transform: translate(-50%, -50%);
  width: 100%;
  z-index: 9;
}
@media (min-width: 768px) {
  .newsletter-signup-modal,
  .ui-dialog.ui-widget-content {
    max-width: 32.75rem;
  }
}

.newsletter-signup-modal {
  align-items: flex-end;
  flex-direction: column;
  flex-shrink: 0;
  gap: 0.625rem;
  inset: 50% 0 0 50%;
}
.newsletter-signup-modal[open] {
  display: flex;
}
.newsletter-signup-modal::backdrop {
  background-color: var(--surface-primary);
  color-scheme: dark;
  opacity: 0.4;
}
.newsletter-signup-modal .modal-close {
  align-items: center;
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  justify-content: flex-end;
  padding: 0;
}
.newsletter-signup-modal .modal-close::after {
  background: url("/themes/custom/tnvacation/img/close-icon.png") no-repeat center;
  background-size: contain;
  color: var(--text-error);
  content: "";
  display: inline-block;
  height: 2.5rem;
  vertical-align: middle;
  width: 2.5rem;
}
.newsletter-signup-modal .modal-content {
  width: 100%;
}
.newsletter-signup-modal .modal-label {
  color: var(--neutral-color-100);
  position: relative;
  text-align: center;
  transform: rotate(-2.965deg);
  z-index: 5;
  font-family: "TNSansPerfect", Monaco, monospace;
  font-style: italic;
  text-transform: uppercase;
  font-size: 1rem;
  line-height: 1.5;
}
:has(.font-loaded) .newsletter-signup-modal .modal-label {
  line-height: 1.5;
}
@media (min-width: 768px) {
  .newsletter-signup-modal .modal-label {
    max-width: 45%;
  }
}
.newsletter-signup-modal form {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  margin-block-start: 3.5rem;
}
@media (min-width: 768px) {
  .newsletter-signup-modal form {
    margin-block-start: 0;
  }
}
.newsletter-signup-modal .form-item {
  max-inline-size: 100%;
}
@media (min-width: 768px) {
  .newsletter-signup-modal .form-item {
    padding-inline: 3.25rem;
  }
}
.newsletter-signup-modal .form-actions,
.newsletter-signup-modal .form-submit {
  position: relative;
}
.newsletter-signup-modal .form-actions {
  display: flex;
  inline-size: 100%;
  justify-content: flex-end;
  margin-inline-end: 3.25rem;
}
.newsletter-signup-modal .form-submit {
  color-scheme: dark;
  line-height: 1;
  margin: 0;
  max-inline-size: 100%;
}
.newsletter-signup-modal .form-item-email-address {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.newsletter-signup-modal .form-item-email-address label {
  color: var(--text-primary);
  color-scheme: dark;
  letter-spacing: 0.15em;
  margin-bottom: 0;
  position: relative;
  text-align: center;
  text-transform: uppercase;
  z-index: 5;
  text-transform: uppercase;
  font-family: Knockout53, system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
  font-size: 0.75rem;
  line-height: 1;
}
:where(:has(.font-loaded)) .newsletter-signup-modal .form-item-email-address label {
  font-size-adjust: unset;
  font-stretch: unset;
  font-weight: unset;
  transform: none;
}
:has(.font-loaded) .newsletter-signup-modal .form-item-email-address label {
  line-height: 1;
}
.newsletter-signup-modal .form-item input {
  align-items: center;
  align-self: stretch;
  background: var(--neutral-color-100);
  border: 0.125rem solid var(--neutral-color-900);
  border-radius: 6.5rem;
  display: flex;
  font-size: 0.75rem;
  gap: 0.5rem;
  letter-spacing: 0.1125rem;
  padding: 0.75rem 1rem;
}
.newsletter-signup-modal .form-item input.error {
  background: var(--surface-primary, #FAF9F5);
  border: 0.125rem solid var(--border-error, #C62818);
}
.newsletter-signup-modal .form-item-privacy-policy {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  margin-block-start: 1.875rem;
}
@media (min-width: 768px) {
  .newsletter-signup-modal .form-item-privacy-policy {
    margin-block-start: 0;
  }
}
.newsletter-signup-modal .form-item-privacy-policy a {
  color: var(--text-primary);
  color-scheme: dark;
  text-decoration-line: underline;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
  text-decoration-style: solid;
  text-decoration-thickness: 10%;
  text-transform: capitalize;
  text-underline-offset: 25%;
  font-family: "DM Sans", "Trebuchet MS", Geneva, system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.875rem;
  line-height: 1.57;
}
:has(.font-loaded) .newsletter-signup-modal .form-item-privacy-policy a {
  line-height: 1.57;
}
.newsletter-signup-modal [data-drupal-messages] [role=alert] {
  font-family: "DM Sans", "Trebuchet MS", Geneva, system-ui, sans-serif;
  font-weight: 700;
  letter-spacing: 0.1em;
  font-size: 0.75rem;
  line-height: 1;
  align-items: center;
  color: var(--text-primary);
  color-scheme: dark;
  display: flex;
  flex-direction: row;
  letter-spacing: 0.0625rem;
  padding-top: 0.875rem;
  position: absolute;
  top: 59%;
}
:has(.font-loaded) .newsletter-signup-modal [data-drupal-messages] [role=alert] {
  line-height: 1;
}
@media (min-width: 768px) {
  .newsletter-signup-modal [data-drupal-messages] [role=alert] {
    margin-left: 50px;
    max-width: 32.75rem;
    top: 60%;
  }
}
.newsletter-signup-modal [data-drupal-messages] [role=alert]::before {
  background: url("/themes/custom/tnvacation/img/alert.png") no-repeat center;
  background-size: contain;
  color: var(--text-error);
  content: "";
  display: inline-block;
  height: 1rem;
  margin-right: 0.625rem;
  vertical-align: middle;
  width: 1rem;
}

.webform-ajax-form-wrapper {
  width: 100%;
}
.webform-ajax-form-wrapper::after {
  content: "";
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: -1;
}

html:has(.ui-dialog.ui-widget-content) {
  padding-right: unset !important;
}

.ui-dialog.ui-widget-content {
  align-items: center;
  bottom: unset;
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  gap: 1.875rem;
  height: var(--newsletter-modal-height) !important;
  justify-content: center;
  left: 50% !important;
  width: calc(100% - 2.375rem) !important;
}
@media (min-width: 768px) {
  .ui-dialog.ui-widget-content {
    max-width: 32.75rem;
  }
}
.ui-dialog.ui-widget-content .ui-dialog-titlebar {
  background: none;
  border: none;
  position: static;
  text-align: center;
  width: 100%;
}
.ui-dialog.ui-widget-content .ui-dialog-titlebar .ui-dialog-title {
  color: var(--neutral-color-100);
  letter-spacing: 0.09375rem;
  width: 100% !important;
  text-transform: uppercase;
  font-family: Knockout68, system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
  font-size-adjust: cap-height 0.438;
  font-stretch: condensed;
  font-weight: 900;
  transform: scaleY(1.5);
  font-size: clamp(3.25rem, 3.0357rem + 1.0714vw, 4rem);
  line-height: 0.55;
}
:where(:has(.font-loaded)) .ui-dialog.ui-widget-content .ui-dialog-titlebar .ui-dialog-title {
  font-size-adjust: unset;
  font-stretch: unset;
  font-weight: unset;
  transform: none;
}
:has(.font-timed-out) .ui-dialog.ui-widget-content .ui-dialog-titlebar .ui-dialog-title {
  font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
:has(.font-loaded) .ui-dialog.ui-widget-content .ui-dialog-titlebar .ui-dialog-title {
  line-height: 0.83;
}
.ui-dialog.ui-widget-content .ui-dialog-titlebar button.ui-dialog-titlebar-close {
  background: none;
  border: none;
  bottom: unset;
  display: flex;
  height: auto;
  right: 1.1875rem;
  top: 1.8125rem;
  width: auto;
}
.ui-dialog.ui-widget-content .ui-dialog-titlebar button.ui-dialog-titlebar-close::after {
  background: url("/themes/custom/tnvacation/img/close-icon.png") no-repeat center;
  background-size: contain;
  color: var(--text-error);
  content: "";
  display: block;
  height: 1.625rem;
  width: 1.625rem;
}
.ui-dialog.ui-widget-content .ui-dialog-titlebar button.ui-dialog-titlebar-close span.ui-icon-closethick {
  display: none;
}
.ui-dialog.ui-widget-content .webform-confirmation-modal--content {
  color: var(--neutral-color-100);
  max-height: 20rem !important;
  max-width: 20rem !important;
  position: relative;
  text-align: center;
  transform: rotate(-2.965deg);
  width: 19.8895625rem;
  z-index: 5;
  font-family: "TNSansPerfect", Monaco, monospace;
  font-style: italic;
  text-transform: uppercase;
  font-size: 1.125rem;
  line-height: 1.1;
}
:has(.font-loaded) .ui-dialog.ui-widget-content .webform-confirmation-modal--content {
  line-height: 1.1;
}
/*# sourceMappingURL=../maps/newsletter-modal/newsletter-modal.css.map */
