:root {
  --ibg-site-container: 1180px;
  --ibg-site-copy: 820px;
  --ibg-site-text-width: var(--ibg-site-copy);
  --ibg-site-gutter: 24px;
  --ibg-site-space-1: 8px;
  --ibg-site-space-2: 16px;
  --ibg-site-space-3: 24px;
  --ibg-site-space-4: 40px;
  --ibg-site-space-5: 64px;
  --ibg-site-section-space: 64px;
  --ibg-site-section-compact: 40px;
  --ibg-site-block-gap: 40px;
  --ibg-site-card-gap: 24px;
  --ibg-site-text-media-gap: 40px;
  --ibg-site-body-size: 18px;
  --ibg-site-helper-size: 15px;
  --ibg-site-control-size: 16px;
  --ibg-site-body-line: 1.58;
  --ibg-site-helper-line: 1.45;
  --ibg-site-h1-size: clamp(42px, 3.5vw, 52px);
  --ibg-site-h2-size: clamp(32px, 3vw, 42px);
  --ibg-site-h3-size: clamp(24px, 2vw, 30px);
  --ibg-site-h4-size: 22px;
  --ibg-site-heading-line: 1.14;
  --ibg-site-text-media-columns: minmax(0, 0.94fr) minmax(0, 1.06fr);
  --ibg-site-card-ratio: 16 / 10;
  --ibg-site-hero-ratio: 16 / 9;
  --ibg-site-radius: 18px;
  --ibg-site-radius-small: 12px;
  --ibg-site-control-height: 48px;
  --ibg-site-breakpoint: 900px;
  --ibg-site-ink: #102f46;
  --ibg-site-copy-color: #294a61;
  --ibg-site-muted: #435f72;
  --ibg-site-inverse-copy: #eaf4f8;
  --ibg-site-inverse-accent: #f0c76d;
  --ibg-site-border: #c8d3da;
  --ibg-site-media: #edf2f3;
  --ibg-site-page: #f7f4ed;
  --ibg-site-paper: #ffffff;
  --ibg-site-mist: #eaf4f8;
  --ibg-site-accent: #a67616;
  --ibg-site-accent-dark: #76520f;
  --ibg-site-accent-ink: var(--ibg-site-accent-dark);
  --ibg-site-link: #0b568a;
  --ibg-site-focus: #2563a6;

  /* Compatibility aliases are defined here only. Component styles consume
     these values but do not own a competing token scale. */
  --ibg-space-1: var(--ibg-site-space-1);
  --ibg-space-2: var(--ibg-site-space-2);
  --ibg-space-3: var(--ibg-site-space-3);
  --ibg-space-4: var(--ibg-site-space-4);
  --ibg-space-5: var(--ibg-site-space-5);
  --ibg-ink: var(--ibg-site-ink);
  --ibg-text-muted: var(--ibg-site-copy-color);
  --ibg-border: var(--ibg-site-border);
  --ibg-border-strong: var(--ibg-site-border);
  --ibg-paper: var(--ibg-site-paper);
  --ibg-ivory: var(--ibg-site-page);
  --ibg-mist: var(--ibg-site-mist);
  --ibg-focus: var(--ibg-site-focus);
  --ibg-clay: var(--ibg-site-accent);
  --ibg-clay-dark: var(--ibg-site-accent-dark);
  --p3-ink: var(--ibg-site-ink);
  --p3-paper: var(--ibg-site-page);
  --p3-mist: var(--ibg-site-mist);
  --p3-accent: var(--ibg-site-accent);
  --p3-border: var(--ibg-site-border);
  --p3-border-strong: var(--ibg-site-border);
  --el-navy: var(--ibg-site-ink);
  --el-page: var(--ibg-site-page);
  --el-paper: var(--ibg-site-paper);
  --el-mist: var(--ibg-site-mist);
  --el-text: var(--ibg-site-copy-color);
  --el-muted: var(--ibg-site-muted);
  --el-border: var(--ibg-site-border);
  --el-border-strong: var(--ibg-site-border);
}

body:is(.ibg-site-system-v088, .ibg-el-page) main {
  color: var(--ibg-site-copy-color);
  font-size: var(--ibg-site-body-size);
  line-height: var(--ibg-site-body-line);
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(p, li, td, blockquote, a, label, legend, button) {
  overflow-wrap: anywhere;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(p, li, td, blockquote, .ibg-body, .ibg-p3a-body, .ibg-gap-note, .ibg-transfer-editorial__content) {
  /* Bricks emits per-element ID selectors after global classes. These two
     contract declarations deliberately win that generated specificity so the
     public body scale has one source across every template. */
  font-size: var(--ibg-site-body-size) !important;
  line-height: var(--ibg-site-body-line) !important;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(small, figcaption, .ibg-eyebrow, .ibg-p3a-eyebrow, .ibg-th-eyebrow, .el-eyebrow, .el-badge, [class*="__eyebrow"], [class*="helper"], [class*="hint"], [class*="caption"], .ibg-tour-language-note) {
  color: var(--ibg-site-muted);
  font-size: var(--ibg-site-helper-size) !important;
  line-height: var(--ibg-site-helper-line) !important;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(label, legend, button, input, select, textarea, .ibg-btn, .ibg-p3a-button, .el-button, [class*="button"]) {
  font-size: var(--ibg-site-control-size) !important;
  line-height: 1.4 !important;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(label, legend) {
  color: var(--ibg-site-ink) !important;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(input, select, textarea) {
  color: var(--ibg-site-ink);
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(h1, .ibg-h1, .ibg-p3a-h1) {
  max-width: 18ch;
  margin-block: 0;
  color: var(--ibg-site-ink);
  font-size: var(--ibg-site-h1-size);
  line-height: 1.08;
  letter-spacing: -0.025em;
  word-break: normal;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(h2, .ibg-h2, .ibg-p3a-h2) {
  color: var(--ibg-site-ink);
  font-size: var(--ibg-site-h2-size);
  line-height: var(--ibg-site-heading-line);
  text-wrap: balance;
  overflow-wrap: anywhere;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(h3, .ibg-h3) {
  color: var(--ibg-site-ink);
  font-size: var(--ibg-site-h3-size);
  line-height: 1.2;
  overflow-wrap: anywhere;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(h4, .ibg-h4) {
  color: var(--ibg-site-ink);
  font-size: var(--ibg-site-h4-size);
  line-height: 1.3;
  overflow-wrap: anywhere;
}

/* Bricks may render its content root as an article instead of a main element. */
body:is(.ibg-site-system-v088, .ibg-el-page) :where(main, #brx-content) :where(h1, h2, h3, h4) {
  overflow-wrap: anywhere;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-section--ink, .ibg-services__hero, .ibg-about__hero) :where(h1, h2, h3, h4) {
  color: var(--ibg-site-paper);
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-section--ink, .ibg-services__hero, .ibg-about__hero) :where(p, li) {
  color: var(--ibg-site-inverse-copy);
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-services__hero, .ibg-about__hero) :where(.ibg-services__eyebrow, .ibg-about__eyebrow) {
  color: var(--ibg-site-inverse-accent) !important;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-services__presence, .ibg-services__cta, .ibg-about__cta) :where(.ibg-services__eyebrow, .ibg-about__eyebrow) {
  color: var(--ibg-site-inverse-accent) !important;
}

/* Destination related slots without any rendered links are not content. */
body.single-ibg_destination.ibg-site-system-v088 :where(main, #brx-content) .ibg-section--mist:has(> .ibg-container > .ibg-body:empty),
body.single-ibg_destination.ibg-site-system-v088 :where(main, #brx-content) .ibg-section--mist:has(> .ibg-container > .ibg-loop-grid:empty),
body.single-ibg_destination.ibg-site-system-v088 :where(main, #brx-content) .ibg-section:has(> .ibg-container > .ibg-list:empty),
body.single-ibg_destination.ibg-site-system-v088 :where(main, #brx-content) .ibg-section:has(> .ibg-container > .ibg-loop-grid:empty) {
  display: none;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-container, .ibg-p3a-container, .ibg-th-wrap, .ibg-single-tour__hero-grid, .ibg-single-tour__content-grid, .ibg-single-tour__facts-grid, .ibg-p2a-hero, .ibg-hero__inner, .ibg-f-restored__inner, .ibg-f-modern__hero-grid) {
  box-sizing: border-box;
  width: min(var(--ibg-site-container), calc(100% - (2 * var(--ibg-site-gutter))));
  max-width: none;
  margin-inline: auto;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-section, .ibg-p3a-section, .ibg-th-hero, .ibg-th-section, .ibg-p2b-section, .ibg-p2b2-section, .ibg-services__section, .ibg-about__section, .ibg-owner-content, .ibg-single-tour__section, .ibg-single-tour__cta) {
  min-height: 0;
  padding-block: var(--ibg-site-section-space);
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-section--compact, .ibg-p2b-section--compact, .ibg-p2b2-section--compact, .ibg-single-tour__facts) {
  padding-block: var(--ibg-site-section-compact);
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-p3a-hero > .ibg-p3a-container, .ibg-single-tour__hero-grid, .ibg-p2a-hero, .ibg-hero, .ibg-hero--service, .ibg-f-modern__hero-grid) {
  display: grid;
  grid-template-columns: var(--ibg-site-text-media-columns);
  align-items: start;
  gap: var(--ibg-site-text-media-gap);
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-p3a-hero__media, .ibg-media-slot, .ibg-single-tour__media, .ibg-single-tour__hero-media, .ibg-p2a-hero__panel, .ibg-hero__media, .ibg-f-modern__media) {
  min-height: 0;
  overflow: hidden;
  border-radius: var(--ibg-site-radius);
  background: var(--ibg-site-media);
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-p3a-hero__media, .ibg-single-tour__media, .ibg-single-tour__hero-media, .ibg-p2a-hero__panel, .ibg-hero__media, .ibg-f-modern__media) {
  aspect-ratio: var(--ibg-site-hero-ratio);
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-p3a-hero__media, .ibg-single-tour__media, .ibg-single-tour__hero-media, .ibg-p2a-hero__panel, .ibg-hero__media, .ibg-f-modern__media) > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-p2a-card-grid, .ibg-p3a-destination-grid, .ibg-th-grid, .ibg-grid--3, .el-card-grid) {
  align-items: stretch;
  gap: var(--ibg-site-card-gap);
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-p2a-card, .ibg-p3a-destination-card, .ibg-th-card, .el-card) {
  display: flex;
  min-width: 0;
  height: 100%;
  flex-direction: column;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-p2a-card, .ibg-p3a-destination-card, .ibg-th-card, .el-card) :where(.ibg-media-slot, .ibg-p3a-destination-card__media, .ibg-th-image, .el-card-media) {
  width: 100%;
  aspect-ratio: var(--ibg-site-card-ratio);
  background: var(--ibg-site-media);
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-p2a-card, .ibg-p3a-destination-card, .ibg-th-card, .el-card) :where(.ibg-media-slot, .ibg-p3a-destination-card__media, .ibg-th-image) img,
body:is(.ibg-site-system-v088, .ibg-el-page) main .el-card-media {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-p2a-card__action, .ibg-th-link, .el-card-link) {
  margin-top: auto;
  font-size: var(--ibg-site-control-size);
  line-height: 1.4;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-p3a-plan-link, .ibg-site-cta, .ibg-p2a-listing-cta, .ibg-p2b-cta) {
  min-height: 0;
  padding-block: var(--ibg-site-section-compact);
}

body:is(.ibg-site-system-v088, .ibg-el-page) main .ibg-p3a-plan-link > .ibg-p3a-container {
  display: flex;
  align-items: center;
  justify-content: center;
}

body:is(.ibg-site-system-v088, .ibg-el-page) main .ibg-p3a-plan-link__anchor {
  display: inline-flex;
  min-height: var(--ibg-site-control-height);
  align-items: center;
  justify-content: center;
  padding: 12px 22px;
  border: 1px solid var(--ibg-site-ink);
  border-radius: 999px;
  background: var(--ibg-site-ink);
  color: #fff;
  font-size: var(--ibg-site-control-size);
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
}

body:is(.ibg-site-system-v088, .ibg-el-page) :where(.ibg-category-f-related, .ibg-catalog-complete, .ibg-gsc-discovery, .ibg-country-intro) {
  box-sizing: border-box;
  width: min(var(--ibg-site-container), calc(100% - (2 * var(--ibg-site-gutter))));
  max-width: none;
  margin: 0 auto;
  padding: var(--ibg-site-section-compact) 0;
  border-top: 1px solid var(--ibg-site-border);
}

body:is(.ibg-site-system-v088, .ibg-el-page) :where(.ibg-category-f-related, .ibg-catalog-complete, .ibg-gsc-discovery, .ibg-country-intro) h2 {
  margin: 0 0 var(--ibg-site-space-3);
  color: var(--ibg-site-ink);
  font-size: var(--ibg-site-h3-size);
  line-height: 1.2;
}

body:is(.ibg-site-system-v088, .ibg-el-page) :where(.ibg-category-f-related, .ibg-catalog-complete, .ibg-gsc-discovery) :where(p, ul) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ibg-site-space-2) var(--ibg-site-card-gap);
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--ibg-site-body-size);
  line-height: var(--ibg-site-body-line);
}

body:is(.ibg-site-system-v088, .ibg-el-page) :where(.ibg-category-f-related, .ibg-catalog-complete, .ibg-gsc-discovery) a {
  color: var(--ibg-site-ink);
  text-underline-offset: 0.2em;
}

body:is(.ibg-site-system-v088, .ibg-el-page) .ibg-country-intro p {
  max-width: var(--ibg-site-text-width);
  margin: 0;
  font-size: var(--ibg-site-body-size);
  line-height: var(--ibg-site-body-line);
}

body.ibg-site-system-v088 main :where(.ibg-transfer-editorial__content, .ibg-article-content, .ibg-legal-content, article.wordpress) {
  max-width: var(--ibg-site-copy);
}

body.ibg-site-system-v088 main .ibg-p2a-vehicle-grid--commercial {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: var(--ibg-site-card-gap);
}

body.ibg-site-system-v088 main .ibg-p2a-vehicle-grid--commercial > .ibg-card {
  display: flex;
  height: 100%;
  flex-direction: column;
  gap: var(--ibg-site-space-2);
}

body.ibg-site-system-v088 main .ibg-helsinki-airport-detail-media {
  width: min(80%, 1000px);
  max-width: 1000px;
  margin: var(--ibg-site-space-3) auto;
  overflow: hidden;
  border-radius: var(--ibg-site-radius);
  background: var(--ibg-site-media);
}

body.ibg-site-system-v088 main .ibg-helsinki-airport-detail-media > .ibg-catalog-featured__image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1800 / 1202;
  object-fit: contain;
  object-position: center;
}

body.ibg-site-system-v088 main .ibg-helsinki-airport-detail-media > figcaption {
  width: 100%;
  margin: 0;
  padding: 12px 16px 14px;
  background: var(--ibg-site-media);
  color: var(--ibg-site-copy-color);
}

body.ibg-site-system-v088 main :where(.ibg-single-tour__section-heading, .ibg-single-tour__section-heading > *, .ibg-single-tour__content > h2, .ibg-single-tour__content > h3) {
  position: static;
  inset: auto;
  transform: none;
}

body.ibg-site-system-v088 img.bricks-lazy-hidden {
  visibility: visible;
  opacity: 1;
}

body.ibg-site-system-v088 img {
  max-width: 100%;
}

body.ibg-site-system-v088.ibg-view-collapsed .ibg-p3a-destination-card.ibg-site-collapsed-desktop {
  display: none;
}

body.ibg-site-system-v088 .ibg-site-view-all {
  display: flex;
  justify-content: center;
  margin-top: var(--ibg-site-space-4);
}

body.ibg-site-system-v088.ibg-view-all .ibg-site-view-all {
  display: none;
}

body:is(.ibg-site-system-v088, .ibg-el-page) :where(input, textarea)::placeholder {
  color: var(--ibg-site-muted);
  opacity: 1;
}

@media (max-width: 900px) {
  :root {
    --ibg-site-gutter: 18px;
    --ibg-site-section-space: 40px;
    --ibg-site-section-compact: 32px;
    --ibg-site-block-gap: 24px;
    --ibg-site-text-media-gap: 24px;
    --ibg-site-body-size: 17px;
    --ibg-site-h1-size: clamp(38px, 6vw, 48px);
    --ibg-site-h2-size: clamp(30px, 4.5vw, 38px);
  }

  body.ibg-site-system-v088 main .ibg-p2a-vehicle-grid--commercial {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  :root {
    --ibg-site-gutter: 16px;
    --ibg-site-section-space: 40px;
    --ibg-site-section-compact: 24px;
    --ibg-site-body-size: 16px;
    --ibg-site-h1-size: clamp(34px, 10vw, 42px);
    --ibg-site-h2-size: clamp(28px, 8vw, 36px);
    --ibg-site-h3-size: 24px;
  }

  body:is(.ibg-site-system-v088, .ibg-el-page) main :where(.ibg-p3a-hero > .ibg-p3a-container, .ibg-single-tour__hero-grid, .ibg-p2a-hero, .ibg-hero, .ibg-hero--service, .ibg-f-modern__hero-grid) {
    grid-template-columns: minmax(0, 1fr);
  }

  body:is(.ibg-site-system-v088, .ibg-el-page) :where(.ibg-category-f-related, .ibg-catalog-complete, .ibg-gsc-discovery) :where(p, ul) {
    grid-template-columns: minmax(0, 1fr);
  }

  body.ibg-site-system-v088 main .ibg-p2a-vehicle-grid--commercial {
    grid-template-columns: minmax(0, 1fr);
  }

  body.ibg-site-system-v088.ibg-view-collapsed .ibg-p3a-destination-card.ibg-site-collapsed-mobile {
    display: none;
  }

  body.ibg-site-system-v088 main .ibg-helsinki-airport-detail-media {
    width: 100%;
    margin: var(--ibg-site-space-2) auto;
    border-radius: var(--ibg-site-radius-small);
  }

  body.ibg-site-system-v088 #chaty-widget-0 .on-hover-text {
    display: none;
  }

  body.ibg-services-refresh.ibg-site-system-v088 main .ibg-services__hero > .ibg-services__route {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  body:is(.ibg-site-system-v088, .ibg-el-page) * {
    animation-duration: 0.01ms;
    animation-iteration-count: 1;
    scroll-behavior: auto;
    transition-duration: 0.01ms;
  }
}
