@charset "UTF-8";
/*!
Theme Name: AVA
Theme URI: iREJ.cz
Author: iREJ
Author URI: iREJ.cz
Version: 2.0.1
Description: Custom base theme by iREJ.cz
*/
/*! normalize.css v6.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -ms-text-size-adjust: 100%; /* 2 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/**
 * Remove the margin in all browsers (opinionated).
 */
body {
  margin: 0;
}

/* Sections
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
article,
aside,
footer,
header,
nav,
section {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in IE.
 */
figcaption,
figure,
main { /* 1 */
  display: block;
}

/**
 * Add the correct margin in IE 8.
 */
figure {
  margin: 1em 40px;
}

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent; /* 1 */
  -webkit-text-decoration-skip: objects; /* 2 */
}

/**
 * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */
b,
strong {
  font-weight: inherit;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic;
}

/**
 * Add the correct background and color in IE 9-.
 */
mark {
  background-color: #ff0;
  color: #000;
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
audio,
video {
  display: inline-block;
}

/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Remove the border on images inside links in IE 10-.
 */
img {
  border-style: none;
}

/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden;
}

/* Forms
   ========================================================================== */
/**
 * Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select { /* 1 */
  text-transform: none;
}

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */
button,
html [type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button; /* 2 */
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * 1. Add the correct display in IE 9-.
 * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  display: inline-block; /* 1 */
  vertical-align: baseline; /* 2 */
}

/**
 * Remove the default vertical scrollbar in IE.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */
[type=checkbox],
[type=radio] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 */
details,
menu {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Scripting
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
canvas {
  display: inline-block;
}

/**
 * Add the correct display in IE.
 */
template {
  display: none;
}

:focus {
  outline: none;
}

/* Hidden
   ========================================================================== */
/**
 * Add the correct display in IE 10-.
 */
[hidden] {
  display: none;
}

/* CLEARFIX */
.clearfix:after {
  content: ".";
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0;
}

.clearfix {
  display: inline-block;
}

html[xmlns] .clearfix {
  display: block;
}

* html .clearfix {
  height: 1%;
  overflow: visible;
}

/* CLEARFIX END */
/*
 * Fonts are located in theme base folder "fonts"
 */
/*
 * PRIMARY FONT: Mukta
 * Not self-hosted - loaded from Google Fonts via <link> in header.php
 * (weights 200, 400, 600, 700, display=swap).
 * Family and weights are set in base/_variables.scss as $font-primary
 * and $font-primary-weight-*.
 */
html {
  width: 100%;
  height: 100%;
  font-size: 16px;
}

@media (min-width: 480px) and (max-width: 730px) {
  html {
    font-size: 90%;
  }
}
@media (min-width: 731px) and (max-width: 979px) {
  html {
    font-size: 70%;
  }
}
@media (min-width: 980px) and (max-width: 1024px) {
  html {
    font-size: 80%;
  }
}
@media (min-width: 1025px) and (max-width: 1280px) {
  html {
    font-size: 90%;
  }
}
@media (min-width: 1281px) {
  html {
    font-size: 100%;
  }
}
body {
  position: relative;
  width: 100%;
  min-width: 320px;
  height: 100%;
  min-height: 320px;
  margin-top: 0px;
  background-color: #ffffff;
  color: #222222;
  font-family: "Mukta", sans-serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.4;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

@media (max-width: 479px) {
  br.bp0-hide-br {
    content: " ";
  }
  br.bp0-hide-br:after {
    content: " ";
  }
}
@media (min-width: 480px) and (max-width: 730px) {
  br.bp1-hide-br {
    content: " ";
  }
  br.bp1-hide-br:after {
    content: " ";
  }
}
@media (min-width: 731px) and (max-width: 979px) {
  br.bp2-hide-br {
    content: " ";
  }
  br.bp2-hide-br:after {
    content: " ";
  }
}
@media (min-width: 980px) and (max-width: 1239px) {
  br.bp3-hide-br {
    content: " ";
  }
  br.bp3-hide-br:after {
    content: " ";
  }
}
@media (min-width: 1240px) {
  br.bp4-hide-br {
    content: " ";
  }
  br.bp4-hide-br:after {
    content: " ";
  }
}

span.br:before {
  content: "";
}
@media (max-width: 479px) {
  span.br.bp0-hide-br br {
    display: none;
  }
  span.br.bp0-hide-br:before {
    content: " ";
  }
}
@media (min-width: 480px) and (max-width: 730px) {
  span.br.bp1-hide-br br {
    display: none;
  }
  span.br.bp1-hide-br:before {
    content: " ";
  }
}
@media (min-width: 731px) and (max-width: 979px) {
  span.br.bp2-hide-br br {
    display: none;
  }
  span.br.bp2-hide-br:before {
    content: " ";
  }
}
@media (min-width: 980px) and (max-width: 1239px) {
  span.br.bp3-hide-br br {
    display: none;
  }
  span.br.bp3-hide-br:before {
    content: " ";
  }
}
@media (min-width: 1240px) {
  span.br.bp4-hide-br br {
    display: none;
  }
  span.br.bp4-hide-br:before {
    content: " ";
  }
}

#main-wrapper {
  min-width: 320px;
  overflow: clip;
}
#main-wrapper .content_max_width_1366 {
  max-width: 85.375rem;
  margin: 0 auto;
}

.outer,
.outer-no-height {
  display: table;
  height: 100%;
}
.outer.no-height,
.outer-no-height.no-height {
  height: auto;
}
.outer.full-width,
.outer-no-height.full-width {
  width: 100%;
}
.outer.align-center,
.outer-no-height.align-center {
  margin: 0 auto;
}
.outer.align-left,
.outer-no-height.align-left {
  margin: 0 auto 0 0;
}
.outer.align-right,
.outer-no-height.align-right {
  margin: 0 0 0 auto;
}
.outer.even-width .middle,
.outer-no-height.even-width .middle {
  width: 1%;
}
.outer .middle,
.outer-no-height .middle {
  display: table-cell;
  vertical-align: middle;
}
.outer .middle.quarter-width,
.outer-no-height .middle.quarter-width {
  width: 25%;
}
.outer .middle.half-width,
.outer-no-height .middle.half-width {
  width: 50%;
}
.outer .middle.full-width,
.outer-no-height .middle.full-width {
  width: 100%;
}
.outer .bottom,
.outer-no-height .bottom {
  display: table-cell;
  vertical-align: bottom;
}
.outer .bottom.quarter-width,
.outer-no-height .bottom.quarter-width {
  width: 25%;
}
.outer .bottom.half-width,
.outer-no-height .bottom.half-width {
  width: 50%;
}
.outer .bottom.full-width,
.outer-no-height .bottom.full-width {
  width: 100%;
}
.outer .top,
.outer-no-height .top {
  display: table-cell;
  vertical-align: top;
}
.outer .top.quarter-width,
.outer-no-height .top.quarter-width {
  width: 25%;
}
.outer .top.half-width,
.outer-no-height .top.half-width {
  width: 50%;
}
.outer .top.full-width,
.outer-no-height .top.full-width {
  width: 100%;
}

.outer-no-height {
  height: auto;
}

.default_content-wrapper {
  width: calc(100% - 5.25rem);
  min-width: 270px;
  max-width: 77.25rem;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}
@media (max-width: 730px) {
  .default_content-wrapper {
    width: calc(100% - 3rem);
  }
  .default_content-wrapper.mobile-thiner {
    width: calc(100% - 3rem);
  }
  .default_content-wrapper.mobile-extra_thiner {
    width: calc(100% - 6.5rem);
  }
}
.default_content-wrapper.width-1000 {
  max-width: 62.5rem;
}
.default_content-wrapper.full-width {
  width: 100%;
  max-width: none;
}
@media (max-width: 479px) {
  .default_content-wrapper.bp0-full-width {
    width: 100%;
    max-width: none;
  }
}
@media (min-width: 480px) and (max-width: 730px) {
  .default_content-wrapper.bp1-full-width {
    width: 100%;
    max-width: none;
  }
}
@media (min-width: 731px) and (max-width: 979px) {
  .default_content-wrapper.bp2-full-width {
    width: 100%;
    max-width: none;
  }
}
@media (min-width: 980px) and (max-width: 1024px) {
  .default_content-wrapper.bp3-full-width {
    width: 100%;
    max-width: none;
  }
}
@media (min-width: 1025px) {
  .default_content-wrapper.bp4-full-width {
    width: 100%;
    max-width: none;
  }
}
@media (max-width: 730px) {
  .default_content-wrapper.mobile-wider {
    width: calc(100% - 1.5rem);
  }
}
.default_content-wrapper.no_side_padding {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.default_content-wrapper :last-child:not(.do-not-remove-last-bottom-margin) {
  margin-bottom: 0;
}
.default_content-wrapper.position_relative {
  position: relative;
}
.default_content-wrapper.reset-overflow {
  overflow: initial !important;
}

.default_content_spacing {
  padding-top: 3.5rem;
  padding-bottom: 0rem;
}
.default_content_spacing.no_content_spacing_top {
  padding-top: 0;
}
.default_content_spacing.no_content_spacing_bottom {
  padding-bottom: 0;
}
.default_content_spacing.extra_content_spacing_bottom {
  padding-bottom: 5rem;
}
@media (max-width: 730px) {
  .default_content_spacing.extra_content_spacing_bottom {
    padding-bottom: 3rem;
  }
}
@media (max-width: 479px) {
  .default_content_spacing.bp0-no_content_spacing_top {
    padding-top: 0;
  }
  .default_content_spacing.bp0-no_content_spacing_bottom {
    padding-bottom: 0;
  }
}
@media (min-width: 480px) and (max-width: 730px) {
  .default_content_spacing.bp1-no_content_spacing_top {
    padding-top: 0;
  }
  .default_content_spacing.bp1-no_content_spacing_bottom {
    padding-bottom: 0;
  }
}

img {
  display: block;
  width: 100%;
  height: auto;
  -webkit-user-select: none;
  user-select: none;
}
img.round {
  aspect-ratio: 1/1;
  object-fit: cover;
  object-position: center center;
  border-radius: 50%;
}

/*
**************** IREJ FLEX BOX GRID SYSTEM ****************
*/
/* -- Set defaults -- */
.grid-wrap {
  box-sizing: border-box;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin: 0 -1.5em;
}
.grid-wrap.reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

.grid-col {
  box-sizing: border-box;
  -webkit-box-flex: 0;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  padding: 0 1.5em;
}
.grid-col.reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
  -ms-flex-direction: column-reverse;
  flex-direction: column-reverse;
}

/*
GENERATE GRID FOR EACH BREAKING POINT
*/
/* -- Setup grids with base class -- */
/* Grid modifiers
   ========================================================================== */
/**
 * Horizontal align
 */
.grid-wrap-align-center {
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  text-align: center;
}

.grid-wrap-align-left {
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  text-align: start;
}

.grid-wrap-align-right {
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  text-align: end;
}

/**
 * VALIGN modifiers
 */
.grid-wrap-valign-top {
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
}

.grid-wrap-valign-middle {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.grid-wrap-valign-bottom {
  -webkit-box-align: end;
  -ms-flex-align: end;
  align-items: flex-end;
}

/**
 * Distribution modifiers
 */
.grid-wrap-distribution-around {
  -ms-flex-pack: distribute;
  justify-content: space-around;
}

.grid-wrap-distribution-between {
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

/* Grid cell modifiers
   ========================================================================== */
/**
 * Move col to first or last
 */
.grid-col-move-to-first {
  -webkit-box-ordinal-group: 0;
  -ms-flex-order: -1;
  order: -1;
}

.grid-col-move-to-last {
  -webkit-box-ordinal-group: 2;
  -ms-flex-order: 1;
  order: 1;
}

.grid-col-move-to-0 {
  -ms-flex-order: 0;
  order: 0;
}

.grid-col-move-to-1 {
  -ms-flex-order: 1;
  order: 1;
}

.grid-col-move-to-2 {
  -ms-flex-order: 2;
  order: 2;
}

.grid-col-move-to-3 {
  -ms-flex-order: 3;
  order: 3;
}

.grid-col-move-to-4 {
  -ms-flex-order: 4;
  order: 4;
}

.grid-col-move-to-5 {
  -ms-flex-order: 5;
  order: 5;
}

.grid-col-move-to-6 {
  -ms-flex-order: 6;
  order: 6;
}

.grid-col-move-to-7 {
  -ms-flex-order: 7;
  order: 7;
}

.grid-col-move-to-8 {
  -ms-flex-order: 8;
  order: 8;
}

.grid-col-move-to-9 {
  -ms-flex-order: 9;
  order: 9;
}

.grid-col-move-to-10 {
  -ms-flex-order: 10;
  order: 10;
}

.grid-col-move-to-11 {
  -ms-flex-order: 11;
  order: 11;
}

.grid-col-move-to-12 {
  -ms-flex-order: 12;
  order: 12;
}

.grid-col-move-to-13 {
  -ms-flex-order: 13;
  order: 13;
}

.grid-col-move-to-14 {
  -ms-flex-order: 14;
  order: 14;
}

.grid-col-move-to-15 {
  -ms-flex-order: 15;
  order: 15;
}

.grid-col-move-to-16 {
  -ms-flex-order: 16;
  order: 16;
}

.grid-col-move-to-17 {
  -ms-flex-order: 17;
  order: 17;
}

.grid-col-move-to-18 {
  -ms-flex-order: 18;
  order: 18;
}

.grid-col-move-to-19 {
  -ms-flex-order: 19;
  order: 19;
}

.grid-col-move-to-20 {
  -ms-flex-order: 20;
  order: 20;
}

/* Grid gutters
   ========================================================================== */
.grid-wrap.ultra-gutter {
  margin: 0 -6em; /* 1 */
}

.grid-wrap.ultra-gutter > .grid-col {
  padding: 0 6em; /* 2 */
}

.grid-wrap.large-gutter {
  margin: 0 -3em; /* 1 */
}

.grid-wrap.large-gutter > .grid-col {
  padding: 0 3em; /* 2 */
}

.grid-wrap.half-gutter {
  margin: 0 -0.75em; /* 1 */
}

.grid-wrap.half-gutter > .grid-col {
  padding: 0 0.75em; /* 2 */
}

.grid-wrap.quarter-gutter {
  margin: 0 -0.375em; /* 1 */
}

.grid-wrap.quarter-gutter > .grid-col {
  padding: 0 0.375em; /* 2 */
}

.grid-wrap.no-gutter {
  margin: 0 0; /* 1 */
}

.grid-wrap.no-gutter > .grid-col {
  padding: 0 0; /* 2 */
}

/* Proportional units
   ========================================================================== */
/*
 * Specify the proportional width of an object.
 * Primarily for, but not limited to, use with `.grid__cell` components.
 * Intentional redundancy build into each set of unit classes.
 */
.col-full {
  -ms-flex-preferred-size: 100%;
  flex-basis: 100%;
  max-width: 100%;
}

.col-auto {
  -webkit-box-flex: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
  -ms-flex-preferred-size: 0;
  flex-basis: 0;
  max-width: 100%;
}

.col-display-none {
  display: none;
}

.col-1-2, .col-10-20, .col-6-12, .col-5-10, .col-4-8, .col-3-6, .col-2-4 {
  -ms-flex-preferred-size: 50%;
  flex-basis: 50%;
  max-width: 50%;
}

.col-1-3, .col-4-12, .col-2-6 {
  -ms-flex-preferred-size: 33.3333333333%;
  flex-basis: 33.3333333333%;
  max-width: 33.3333333333%;
}

.col-2-3, .col-8-12, .col-4-6 {
  -ms-flex-preferred-size: 66.6666666667%;
  flex-basis: 66.6666666667%;
  max-width: 66.6666666667%;
}

.col-1-4, .col-5-20, .col-3-12, .col-2-8 {
  -ms-flex-preferred-size: 25%;
  flex-basis: 25%;
  max-width: 25%;
}

.col-3-4, .col-15-20, .col-9-12, .col-6-8 {
  -ms-flex-preferred-size: 75%;
  flex-basis: 75%;
  max-width: 75%;
}

.col-1-5, .col-4-20, .col-2-10 {
  -ms-flex-preferred-size: 20%;
  flex-basis: 20%;
  max-width: 20%;
}

.col-2-5, .col-8-20, .col-4-10 {
  -ms-flex-preferred-size: 40%;
  flex-basis: 40%;
  max-width: 40%;
}

.col-3-5, .col-12-20, .col-6-10 {
  -ms-flex-preferred-size: 60%;
  flex-basis: 60%;
  max-width: 60%;
}

.col-4-5, .col-16-20, .col-8-10 {
  -ms-flex-preferred-size: 80%;
  flex-basis: 80%;
  max-width: 80%;
}

.col-1-6, .col-2-12 {
  -ms-flex-preferred-size: 16.6666666667%;
  flex-basis: 16.6666666667%;
  max-width: 16.6666666667%;
}

.col-5-6, .col-10-12 {
  -ms-flex-preferred-size: 83.3333333333%;
  flex-basis: 83.3333333333%;
  max-width: 83.3333333333%;
}

.col-1-7 {
  -ms-flex-preferred-size: 14.2857142857%;
  flex-basis: 14.2857142857%;
  max-width: 14.2857142857%;
}

.col-2-7 {
  -ms-flex-preferred-size: 28.5714285714%;
  flex-basis: 28.5714285714%;
  max-width: 28.5714285714%;
}

.col-3-7 {
  -ms-flex-preferred-size: 42.8571428571%;
  flex-basis: 42.8571428571%;
  max-width: 42.8571428571%;
}

.col-4-7 {
  -ms-flex-preferred-size: 57.1428571429%;
  flex-basis: 57.1428571429%;
  max-width: 57.1428571429%;
}

.col-5-7 {
  -ms-flex-preferred-size: 71.4285714286%;
  flex-basis: 71.4285714286%;
  max-width: 71.4285714286%;
}

.col-6-7 {
  -ms-flex-preferred-size: 85.7142857143%;
  flex-basis: 85.7142857143%;
  max-width: 85.7142857143%;
}

.col-1-8 {
  -ms-flex-preferred-size: 12.5%;
  flex-basis: 12.5%;
  max-width: 12.5%;
}

.col-3-8 {
  -ms-flex-preferred-size: 37.5%;
  flex-basis: 37.5%;
  max-width: 37.5%;
}

.col-5-8 {
  -ms-flex-preferred-size: 62.5%;
  flex-basis: 62.5%;
  max-width: 62.5%;
}

.col-7-8 {
  -ms-flex-preferred-size: 87.5%;
  flex-basis: 87.5%;
  max-width: 87.5%;
}

.col-1-10, .col-2-20 {
  -ms-flex-preferred-size: 10%;
  flex-basis: 10%;
  max-width: 10%;
}

.col-3-10, .col-6-20 {
  -ms-flex-preferred-size: 30%;
  flex-basis: 30%;
  max-width: 30%;
}

.col-7-10, .col-14-20 {
  -ms-flex-preferred-size: 70%;
  flex-basis: 70%;
  max-width: 70%;
}

.col-9-10, .col-18-20 {
  -ms-flex-preferred-size: 90%;
  flex-basis: 90%;
  max-width: 90%;
}

.col-1-12 {
  -ms-flex-preferred-size: 8.3333333333%;
  flex-basis: 8.3333333333%;
  max-width: 8.3333333333%;
}

.col-5-12 {
  -ms-flex-preferred-size: 41.6666666667%;
  flex-basis: 41.6666666667%;
  max-width: 41.6666666667%;
}

.col-7-12 {
  -ms-flex-preferred-size: 58.3333333333%;
  flex-basis: 58.3333333333%;
  max-width: 58.3333333333%;
}

.col-11-12 {
  -ms-flex-preferred-size: 91.6666666667%;
  flex-basis: 91.6666666667%;
  max-width: 91.6666666667%;
}

.col-1-20 {
  -ms-flex-preferred-size: 5%;
  flex-basis: 5%;
  max-width: 5%;
}

.col-3-20 {
  -ms-flex-preferred-size: 15%;
  flex-basis: 15%;
  max-width: 15%;
}

.col-7-20 {
  -ms-flex-preferred-size: 35%;
  flex-basis: 35%;
  max-width: 35%;
}

.col-9-20 {
  -ms-flex-preferred-size: 45%;
  flex-basis: 45%;
  max-width: 45%;
}

.col-11-20 {
  -ms-flex-preferred-size: 55%;
  flex-basis: 55%;
  max-width: 55%;
}

.col-13-20 {
  -ms-flex-preferred-size: 65%;
  flex-basis: 65%;
  max-width: 65%;
}

.col-17-20 {
  -ms-flex-preferred-size: 85%;
  flex-basis: 85%;
  max-width: 85%;
}

.col-19-20 {
  -ms-flex-preferred-size: 95%;
  flex-basis: 95%;
  max-width: 95%;
}

/* -- Breakpoint (.bp0)
------------------------------------------------------------- */
@media (max-width: 479px) {
  /* Grid modifiers
     ========================================================================== */
  /**
   * Horizontal align
   */
  .bp0-grid-wrap-align-center {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    text-align: center;
  }
  .bp0-grid-wrap-align-left {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    text-align: start;
  }
  .bp0-grid-wrap-align-right {
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    text-align: end;
  }
  /**
   * VALIGN modifiers
   */
  .bp0-grid-wrap-valign-top {
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
  }
  .bp0-grid-wrap-valign-middle {
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }
  .bp0-grid-wrap-valign-bottom {
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
  }
  /**
   * Distribution modifiers
   */
  .bp0-grid-wrap-distribution-around {
    -ms-flex-pack: distribute;
    justify-content: space-around;
  }
  .bp0-grid-wrap-distribution-between {
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
  }
  /* Grid cell modifiers
     ========================================================================== */
  /**
   * Move col to first or last
   */
  .bp0-grid-col-move-to-first {
    -webkit-box-ordinal-group: 0;
    -ms-flex-order: -1;
    order: -1;
  }
  .bp0-grid-col-move-to-last {
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
  }
  .bp0-grid-col-move-to-0 {
    -ms-flex-order: 0;
    order: 0;
  }
  .bp0-grid-col-move-to-1 {
    -ms-flex-order: 1;
    order: 1;
  }
  .bp0-grid-col-move-to-2 {
    -ms-flex-order: 2;
    order: 2;
  }
  .bp0-grid-col-move-to-3 {
    -ms-flex-order: 3;
    order: 3;
  }
  .bp0-grid-col-move-to-4 {
    -ms-flex-order: 4;
    order: 4;
  }
  .bp0-grid-col-move-to-5 {
    -ms-flex-order: 5;
    order: 5;
  }
  .bp0-grid-col-move-to-6 {
    -ms-flex-order: 6;
    order: 6;
  }
  .bp0-grid-col-move-to-7 {
    -ms-flex-order: 7;
    order: 7;
  }
  .bp0-grid-col-move-to-8 {
    -ms-flex-order: 8;
    order: 8;
  }
  .bp0-grid-col-move-to-9 {
    -ms-flex-order: 9;
    order: 9;
  }
  .bp0-grid-col-move-to-10 {
    -ms-flex-order: 10;
    order: 10;
  }
  .bp0-grid-col-move-to-11 {
    -ms-flex-order: 11;
    order: 11;
  }
  .bp0-grid-col-move-to-12 {
    -ms-flex-order: 12;
    order: 12;
  }
  .bp0-grid-col-move-to-13 {
    -ms-flex-order: 13;
    order: 13;
  }
  .bp0-grid-col-move-to-14 {
    -ms-flex-order: 14;
    order: 14;
  }
  .bp0-grid-col-move-to-15 {
    -ms-flex-order: 15;
    order: 15;
  }
  .bp0-grid-col-move-to-16 {
    -ms-flex-order: 16;
    order: 16;
  }
  .bp0-grid-col-move-to-17 {
    -ms-flex-order: 17;
    order: 17;
  }
  .bp0-grid-col-move-to-18 {
    -ms-flex-order: 18;
    order: 18;
  }
  .bp0-grid-col-move-to-19 {
    -ms-flex-order: 19;
    order: 19;
  }
  .bp0-grid-col-move-to-20 {
    -ms-flex-order: 20;
    order: 20;
  }
  /* Grid gutters
     ========================================================================== */
  .grid-wrap.bp0-ultra-gutter {
    margin: 0 -6em; /* 1 */
  }
  .grid-wrap.bp0-ultra-gutter > .grid-col {
    padding: 0 6em; /* 2 */
  }
  .grid-wrap.bp0-large-gutter {
    margin: 0 -3em; /* 1 */
  }
  .grid-wrap.bp0-large-gutter > .grid-col {
    padding: 0 3em; /* 2 */
  }
  .grid-wrap.bp0-half-gutter {
    margin: 0 -0.75em; /* 1 */
  }
  .grid-wrap.bp0-half-gutter > .grid-col {
    padding: 0 0.75em; /* 2 */
  }
  .grid-wrap.bp0-quarter-gutter {
    margin: 0 -0.375em; /* 1 */
  }
  .grid-wrap.bp0-quarter-gutter > .grid-col {
    padding: 0 0.375em; /* 2 */
  }
  .grid-wrap.bp0-no-gutter {
    margin: 0 0; /* 1 */
  }
  .grid-wrap.bp0-no-gutter > .grid-col {
    padding: 0 0; /* 2 */
  }
  /* Proportional units
     ========================================================================== */
  /*
   * Specify the proportional width of an object.
   * Primarily for, but not limited to, use with `.grid__cell` components.
   * Intentional redundancy build into each set of unit classes.
   */
  .bp0-col-full {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%;
  }
  .bp0-col-auto {
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    max-width: 100%;
  }
  .bp0-col-display-none {
    display: none;
  }
  .bp0-col-1-2, .bp0-col-10-20, .bp0-col-6-12, .bp0-col-5-10, .bp0-col-4-8, .bp0-col-3-6, .bp0-col-2-4 {
    -ms-flex-preferred-size: 50%;
    flex-basis: 50%;
    max-width: 50%;
  }
  .bp0-col-1-3, .bp0-col-4-12, .bp0-col-2-6 {
    -ms-flex-preferred-size: 33.3333333333%;
    flex-basis: 33.3333333333%;
    max-width: 33.3333333333%;
  }
  .bp0-col-2-3, .bp0-col-8-12, .bp0-col-4-6 {
    -ms-flex-preferred-size: 66.6666666667%;
    flex-basis: 66.6666666667%;
    max-width: 66.6666666667%;
  }
  .bp0-col-1-4, .bp0-col-5-20, .bp0-col-3-12, .bp0-col-2-8 {
    -ms-flex-preferred-size: 25%;
    flex-basis: 25%;
    max-width: 25%;
  }
  .bp0-col-3-4, .bp0-col-15-20, .bp0-col-9-12, .bp0-col-6-8 {
    -ms-flex-preferred-size: 75%;
    flex-basis: 75%;
    max-width: 75%;
  }
  .bp0-col-1-5, .bp0-col-4-20, .bp0-col-2-10 {
    -ms-flex-preferred-size: 20%;
    flex-basis: 20%;
    max-width: 20%;
  }
  .bp0-col-2-5, .bp0-col-8-20, .bp0-col-4-10 {
    -ms-flex-preferred-size: 40%;
    flex-basis: 40%;
    max-width: 40%;
  }
  .bp0-col-3-5, .bp0-col-12-20, .bp0-col-6-10 {
    -ms-flex-preferred-size: 60%;
    flex-basis: 60%;
    max-width: 60%;
  }
  .bp0-col-4-5, .bp0-col-16-20, .bp0-col-8-10 {
    -ms-flex-preferred-size: 80%;
    flex-basis: 80%;
    max-width: 80%;
  }
  .bp0-col-1-6, .bp0-col-2-12 {
    -ms-flex-preferred-size: 16.6666666667%;
    flex-basis: 16.6666666667%;
    max-width: 16.6666666667%;
  }
  .bp0-col-5-6, .bp0-col-10-12 {
    -ms-flex-preferred-size: 83.3333333333%;
    flex-basis: 83.3333333333%;
    max-width: 83.3333333333%;
  }
  .bp0-col-1-7 {
    -ms-flex-preferred-size: 14.2857142857%;
    flex-basis: 14.2857142857%;
    max-width: 14.2857142857%;
  }
  .bp0-col-2-7 {
    -ms-flex-preferred-size: 28.5714285714%;
    flex-basis: 28.5714285714%;
    max-width: 28.5714285714%;
  }
  .bp0-col-3-7 {
    -ms-flex-preferred-size: 42.8571428571%;
    flex-basis: 42.8571428571%;
    max-width: 42.8571428571%;
  }
  .bp0-col-4-7 {
    -ms-flex-preferred-size: 57.1428571429%;
    flex-basis: 57.1428571429%;
    max-width: 57.1428571429%;
  }
  .bp0-col-5-7 {
    -ms-flex-preferred-size: 71.4285714286%;
    flex-basis: 71.4285714286%;
    max-width: 71.4285714286%;
  }
  .bp0-col-6-7 {
    -ms-flex-preferred-size: 85.7142857143%;
    flex-basis: 85.7142857143%;
    max-width: 85.7142857143%;
  }
  .bp0-col-1-8 {
    -ms-flex-preferred-size: 12.5%;
    flex-basis: 12.5%;
    max-width: 12.5%;
  }
  .bp0-col-3-8 {
    -ms-flex-preferred-size: 37.5%;
    flex-basis: 37.5%;
    max-width: 37.5%;
  }
  .bp0-col-5-8 {
    -ms-flex-preferred-size: 62.5%;
    flex-basis: 62.5%;
    max-width: 62.5%;
  }
  .bp0-col-7-8 {
    -ms-flex-preferred-size: 87.5%;
    flex-basis: 87.5%;
    max-width: 87.5%;
  }
  .bp0-col-1-10, .bp0-col-2-20 {
    -ms-flex-preferred-size: 10%;
    flex-basis: 10%;
    max-width: 10%;
  }
  .bp0-col-3-10, .bp0-col-6-20 {
    -ms-flex-preferred-size: 30%;
    flex-basis: 30%;
    max-width: 30%;
  }
  .bp0-col-7-10, .bp0-col-14-20 {
    -ms-flex-preferred-size: 70%;
    flex-basis: 70%;
    max-width: 70%;
  }
  .bp0-col-9-10, .bp0-col-18-20 {
    -ms-flex-preferred-size: 90%;
    flex-basis: 90%;
    max-width: 90%;
  }
  .bp0-col-1-12 {
    -ms-flex-preferred-size: 8.3333333333%;
    flex-basis: 8.3333333333%;
    max-width: 8.3333333333%;
  }
  .bp0-col-5-12 {
    -ms-flex-preferred-size: 41.6666666667%;
    flex-basis: 41.6666666667%;
    max-width: 41.6666666667%;
  }
  .bp0-col-7-12 {
    -ms-flex-preferred-size: 58.3333333333%;
    flex-basis: 58.3333333333%;
    max-width: 58.3333333333%;
  }
  .bp0-col-11-12 {
    -ms-flex-preferred-size: 91.6666666667%;
    flex-basis: 91.6666666667%;
    max-width: 91.6666666667%;
  }
  .bp0-col-1-20 {
    -ms-flex-preferred-size: 5%;
    flex-basis: 5%;
    max-width: 5%;
  }
  .bp0-col-3-20 {
    -ms-flex-preferred-size: 15%;
    flex-basis: 15%;
    max-width: 15%;
  }
  .bp0-col-7-20 {
    -ms-flex-preferred-size: 35%;
    flex-basis: 35%;
    max-width: 35%;
  }
  .bp0-col-9-20 {
    -ms-flex-preferred-size: 45%;
    flex-basis: 45%;
    max-width: 45%;
  }
  .bp0-col-11-20 {
    -ms-flex-preferred-size: 55%;
    flex-basis: 55%;
    max-width: 55%;
  }
  .bp0-col-13-20 {
    -ms-flex-preferred-size: 65%;
    flex-basis: 65%;
    max-width: 65%;
  }
  .bp0-col-17-20 {
    -ms-flex-preferred-size: 85%;
    flex-basis: 85%;
    max-width: 85%;
  }
  .bp0-col-19-20 {
    -ms-flex-preferred-size: 95%;
    flex-basis: 95%;
    max-width: 95%;
  }
}
/* -- Breakpoint (.bp1)
------------------------------------------------------------- */
@media (min-width: 480px) and (max-width: 730px) {
  /* Grid modifiers
     ========================================================================== */
  /**
   * Horizontal align
   */
  .bp1-grid-wrap-align-center {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    text-align: center;
  }
  .bp1-grid-wrap-align-left {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    text-align: start;
  }
  .bp1-grid-wrap-align-right {
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    text-align: end;
  }
  /**
   * VALIGN modifiers
   */
  .bp1-grid-wrap-valign-top {
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
  }
  .bp1-grid-wrap-valign-middle {
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }
  .bp1-grid-wrap-valign-bottom {
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
  }
  /**
   * Distribution modifiers
   */
  .bp1-grid-wrap-distribution-around {
    -ms-flex-pack: distribute;
    justify-content: space-around;
  }
  .bp1-grid-wrap-distribution-between {
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
  }
  /* Grid cell modifiers
     ========================================================================== */
  /**
   * Move col to first or last
   */
  .bp1-grid-col-move-to-first {
    -webkit-box-ordinal-group: 0;
    -ms-flex-order: -1;
    order: -1;
  }
  .bp1-grid-col-move-to-last {
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
  }
  .bp1-grid-col-move-to-0 {
    -ms-flex-order: 0;
    order: 0;
  }
  .bp1-grid-col-move-to-1 {
    -ms-flex-order: 1;
    order: 1;
  }
  .bp1-grid-col-move-to-2 {
    -ms-flex-order: 2;
    order: 2;
  }
  .bp1-grid-col-move-to-3 {
    -ms-flex-order: 3;
    order: 3;
  }
  .bp1-grid-col-move-to-4 {
    -ms-flex-order: 4;
    order: 4;
  }
  .bp1-grid-col-move-to-5 {
    -ms-flex-order: 5;
    order: 5;
  }
  .bp1-grid-col-move-to-6 {
    -ms-flex-order: 6;
    order: 6;
  }
  .bp1-grid-col-move-to-7 {
    -ms-flex-order: 7;
    order: 7;
  }
  .bp1-grid-col-move-to-8 {
    -ms-flex-order: 8;
    order: 8;
  }
  .bp1-grid-col-move-to-9 {
    -ms-flex-order: 9;
    order: 9;
  }
  .bp1-grid-col-move-to-10 {
    -ms-flex-order: 10;
    order: 10;
  }
  .bp1-grid-col-move-to-11 {
    -ms-flex-order: 11;
    order: 11;
  }
  .bp1-grid-col-move-to-12 {
    -ms-flex-order: 12;
    order: 12;
  }
  .bp1-grid-col-move-to-13 {
    -ms-flex-order: 13;
    order: 13;
  }
  .bp1-grid-col-move-to-14 {
    -ms-flex-order: 14;
    order: 14;
  }
  .bp1-grid-col-move-to-15 {
    -ms-flex-order: 15;
    order: 15;
  }
  .bp1-grid-col-move-to-16 {
    -ms-flex-order: 16;
    order: 16;
  }
  .bp1-grid-col-move-to-17 {
    -ms-flex-order: 17;
    order: 17;
  }
  .bp1-grid-col-move-to-18 {
    -ms-flex-order: 18;
    order: 18;
  }
  .bp1-grid-col-move-to-19 {
    -ms-flex-order: 19;
    order: 19;
  }
  .bp1-grid-col-move-to-20 {
    -ms-flex-order: 20;
    order: 20;
  }
  /* Grid gutters
     ========================================================================== */
  .grid-wrap.bp1-ultra-gutter {
    margin: 0 -6em; /* 1 */
  }
  .grid-wrap.bp1-ultra-gutter > .grid-col {
    padding: 0 6em; /* 2 */
  }
  .grid-wrap.bp1-large-gutter {
    margin: 0 -3em; /* 1 */
  }
  .grid-wrap.bp1-large-gutter > .grid-col {
    padding: 0 3em; /* 2 */
  }
  .grid-wrap.bp1-half-gutter {
    margin: 0 -0.75em; /* 1 */
  }
  .grid-wrap.bp1-half-gutter > .grid-col {
    padding: 0 0.75em; /* 2 */
  }
  .grid-wrap.bp1-quarter-gutter {
    margin: 0 -0.375em; /* 1 */
  }
  .grid-wrap.bp1-quarter-gutter > .grid-col {
    padding: 0 0.375em; /* 2 */
  }
  .grid-wrap.bp1-no-gutter {
    margin: 0 0; /* 1 */
  }
  .grid-wrap.bp1-no-gutter > .grid-col {
    padding: 0 0; /* 2 */
  }
  /* Proportional units
     ========================================================================== */
  /*
   * Specify the proportional width of an object.
   * Primarily for, but not limited to, use with `.grid__cell` components.
   * Intentional redundancy build into each set of unit classes.
   */
  .bp1-col-full {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%;
  }
  .bp1-col-auto {
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    max-width: 100%;
  }
  .bp1-col-display-none {
    display: none;
  }
  .bp1-col-1-2, .bp1-col-10-20, .bp1-col-6-12, .bp1-col-5-10, .bp1-col-4-8, .bp1-col-3-6, .bp1-col-2-4 {
    -ms-flex-preferred-size: 50%;
    flex-basis: 50%;
    max-width: 50%;
  }
  .bp1-col-1-3, .bp1-col-4-12, .bp1-col-2-6 {
    -ms-flex-preferred-size: 33.3333333333%;
    flex-basis: 33.3333333333%;
    max-width: 33.3333333333%;
  }
  .bp1-col-2-3, .bp1-col-8-12, .bp1-col-4-6 {
    -ms-flex-preferred-size: 66.6666666667%;
    flex-basis: 66.6666666667%;
    max-width: 66.6666666667%;
  }
  .bp1-col-1-4, .bp1-col-5-20, .bp1-col-3-12, .bp1-col-2-8 {
    -ms-flex-preferred-size: 25%;
    flex-basis: 25%;
    max-width: 25%;
  }
  .bp1-col-3-4, .bp1-col-15-20, .bp1-col-9-12, .bp1-col-6-8 {
    -ms-flex-preferred-size: 75%;
    flex-basis: 75%;
    max-width: 75%;
  }
  .bp1-col-1-5, .bp1-col-4-20, .bp1-col-2-10 {
    -ms-flex-preferred-size: 20%;
    flex-basis: 20%;
    max-width: 20%;
  }
  .bp1-col-2-5, .bp1-col-8-20, .bp1-col-4-10 {
    -ms-flex-preferred-size: 40%;
    flex-basis: 40%;
    max-width: 40%;
  }
  .bp1-col-3-5, .bp1-col-12-20, .bp1-col-6-10 {
    -ms-flex-preferred-size: 60%;
    flex-basis: 60%;
    max-width: 60%;
  }
  .bp1-col-4-5, .bp1-col-16-20, .bp1-col-8-10 {
    -ms-flex-preferred-size: 80%;
    flex-basis: 80%;
    max-width: 80%;
  }
  .bp1-col-1-6, .bp1-col-2-12 {
    -ms-flex-preferred-size: 16.6666666667%;
    flex-basis: 16.6666666667%;
    max-width: 16.6666666667%;
  }
  .bp1-col-5-6, .bp1-col-10-12 {
    -ms-flex-preferred-size: 83.3333333333%;
    flex-basis: 83.3333333333%;
    max-width: 83.3333333333%;
  }
  .bp1-col-1-7 {
    -ms-flex-preferred-size: 14.2857142857%;
    flex-basis: 14.2857142857%;
    max-width: 14.2857142857%;
  }
  .bp1-col-2-7 {
    -ms-flex-preferred-size: 28.5714285714%;
    flex-basis: 28.5714285714%;
    max-width: 28.5714285714%;
  }
  .bp1-col-3-7 {
    -ms-flex-preferred-size: 42.8571428571%;
    flex-basis: 42.8571428571%;
    max-width: 42.8571428571%;
  }
  .bp1-col-4-7 {
    -ms-flex-preferred-size: 57.1428571429%;
    flex-basis: 57.1428571429%;
    max-width: 57.1428571429%;
  }
  .bp1-col-5-7 {
    -ms-flex-preferred-size: 71.4285714286%;
    flex-basis: 71.4285714286%;
    max-width: 71.4285714286%;
  }
  .bp1-col-6-7 {
    -ms-flex-preferred-size: 85.7142857143%;
    flex-basis: 85.7142857143%;
    max-width: 85.7142857143%;
  }
  .bp1-col-1-8 {
    -ms-flex-preferred-size: 12.5%;
    flex-basis: 12.5%;
    max-width: 12.5%;
  }
  .bp1-col-3-8 {
    -ms-flex-preferred-size: 37.5%;
    flex-basis: 37.5%;
    max-width: 37.5%;
  }
  .bp1-col-5-8 {
    -ms-flex-preferred-size: 62.5%;
    flex-basis: 62.5%;
    max-width: 62.5%;
  }
  .bp1-col-7-8 {
    -ms-flex-preferred-size: 87.5%;
    flex-basis: 87.5%;
    max-width: 87.5%;
  }
  .bp1-col-1-10, .bp1-col-2-20 {
    -ms-flex-preferred-size: 10%;
    flex-basis: 10%;
    max-width: 10%;
  }
  .bp1-col-3-10, .bp1-col-6-20 {
    -ms-flex-preferred-size: 30%;
    flex-basis: 30%;
    max-width: 30%;
  }
  .bp1-col-7-10, .bp1-col-14-20 {
    -ms-flex-preferred-size: 70%;
    flex-basis: 70%;
    max-width: 70%;
  }
  .bp1-col-9-10, .bp1-col-18-20 {
    -ms-flex-preferred-size: 90%;
    flex-basis: 90%;
    max-width: 90%;
  }
  .bp1-col-1-12 {
    -ms-flex-preferred-size: 8.3333333333%;
    flex-basis: 8.3333333333%;
    max-width: 8.3333333333%;
  }
  .bp1-col-5-12 {
    -ms-flex-preferred-size: 41.6666666667%;
    flex-basis: 41.6666666667%;
    max-width: 41.6666666667%;
  }
  .bp1-col-7-12 {
    -ms-flex-preferred-size: 58.3333333333%;
    flex-basis: 58.3333333333%;
    max-width: 58.3333333333%;
  }
  .bp1-col-11-12 {
    -ms-flex-preferred-size: 91.6666666667%;
    flex-basis: 91.6666666667%;
    max-width: 91.6666666667%;
  }
  .bp1-col-1-20 {
    -ms-flex-preferred-size: 5%;
    flex-basis: 5%;
    max-width: 5%;
  }
  .bp1-col-3-20 {
    -ms-flex-preferred-size: 15%;
    flex-basis: 15%;
    max-width: 15%;
  }
  .bp1-col-7-20 {
    -ms-flex-preferred-size: 35%;
    flex-basis: 35%;
    max-width: 35%;
  }
  .bp1-col-9-20 {
    -ms-flex-preferred-size: 45%;
    flex-basis: 45%;
    max-width: 45%;
  }
  .bp1-col-11-20 {
    -ms-flex-preferred-size: 55%;
    flex-basis: 55%;
    max-width: 55%;
  }
  .bp1-col-13-20 {
    -ms-flex-preferred-size: 65%;
    flex-basis: 65%;
    max-width: 65%;
  }
  .bp1-col-17-20 {
    -ms-flex-preferred-size: 85%;
    flex-basis: 85%;
    max-width: 85%;
  }
  .bp1-col-19-20 {
    -ms-flex-preferred-size: 95%;
    flex-basis: 95%;
    max-width: 95%;
  }
}
/* -- Breakpoint 2 (.bp2)
------------------------------------------------------------- */
@media (min-width: 731px) and (max-width: 979px) {
  /* Grid modifiers
     ========================================================================== */
  /**
   * Horizontal align
   */
  .bp2-grid-wrap-align-center {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    text-align: center;
  }
  .bp2-grid-wrap-align-left {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    text-align: start;
  }
  .bp2-grid-wrap-align-right {
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    text-align: end;
  }
  /**
   * VALIGN modifiers
   */
  .bp2-grid-wrap-valign-top {
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
  }
  .bp2-grid-wrap-valign-middle {
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }
  .bp2-grid-wrap-valign-bottom {
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
  }
  /**
   * Distribution modifiers
   */
  .bp2-grid-wrap-distribution-around {
    -ms-flex-pack: distribute;
    justify-content: space-around;
  }
  .bp2-grid-wrap-distribution-between {
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
  }
  /* Grid cell modifiers
     ========================================================================== */
  /**
   * Move col to first or last
   */
  .bp2-grid-col-move-to-first {
    -webkit-box-ordinal-group: 0;
    -ms-flex-order: -1;
    order: -1;
  }
  .bp2-grid-col-move-to-last {
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
  }
  .bp2-grid-col-move-to-0 {
    -ms-flex-order: 0;
    order: 0;
  }
  .bp2-grid-col-move-to-1 {
    -ms-flex-order: 1;
    order: 1;
  }
  .bp2-grid-col-move-to-2 {
    -ms-flex-order: 2;
    order: 2;
  }
  .bp2-grid-col-move-to-3 {
    -ms-flex-order: 3;
    order: 3;
  }
  .bp2-grid-col-move-to-4 {
    -ms-flex-order: 4;
    order: 4;
  }
  .bp2-grid-col-move-to-5 {
    -ms-flex-order: 5;
    order: 5;
  }
  .bp2-grid-col-move-to-6 {
    -ms-flex-order: 6;
    order: 6;
  }
  .bp2-grid-col-move-to-7 {
    -ms-flex-order: 7;
    order: 7;
  }
  .bp2-grid-col-move-to-8 {
    -ms-flex-order: 8;
    order: 8;
  }
  .bp2-grid-col-move-to-9 {
    -ms-flex-order: 9;
    order: 9;
  }
  .bp2-grid-col-move-to-10 {
    -ms-flex-order: 10;
    order: 10;
  }
  .bp2-grid-col-move-to-11 {
    -ms-flex-order: 11;
    order: 11;
  }
  .bp2-grid-col-move-to-12 {
    -ms-flex-order: 12;
    order: 12;
  }
  .bp2-grid-col-move-to-13 {
    -ms-flex-order: 13;
    order: 13;
  }
  .bp2-grid-col-move-to-14 {
    -ms-flex-order: 14;
    order: 14;
  }
  .bp2-grid-col-move-to-15 {
    -ms-flex-order: 15;
    order: 15;
  }
  .bp2-grid-col-move-to-16 {
    -ms-flex-order: 16;
    order: 16;
  }
  .bp2-grid-col-move-to-17 {
    -ms-flex-order: 17;
    order: 17;
  }
  .bp2-grid-col-move-to-18 {
    -ms-flex-order: 18;
    order: 18;
  }
  .bp2-grid-col-move-to-19 {
    -ms-flex-order: 19;
    order: 19;
  }
  .bp2-grid-col-move-to-20 {
    -ms-flex-order: 20;
    order: 20;
  }
  /* Grid gutters
     ========================================================================== */
  .grid-wrap.bp2-ultra-gutter {
    margin: 0 -6em; /* 1 */
  }
  .grid-wrap.bp2-ultra-gutter > .grid-col {
    padding: 0 6em; /* 2 */
  }
  .grid-wrap.bp2-large-gutter {
    margin: 0 -3em; /* 1 */
  }
  .grid-wrap.bp2-large-gutter > .grid-col {
    padding: 0 3em; /* 2 */
  }
  .grid-wrap.bp2-half-gutter {
    margin: 0 -0.75em; /* 1 */
  }
  .grid-wrap.bp2-half-gutter > .grid-col {
    padding: 0 0.75em; /* 2 */
  }
  .grid-wrap.bp2-quarter-gutter {
    margin: 0 -0.375em; /* 1 */
  }
  .grid-wrap.bp2-quarter-gutter > .grid-col {
    padding: 0 0.375em; /* 2 */
  }
  .grid-wrap.bp2-no-gutter {
    margin: 0 0; /* 1 */
  }
  .grid-wrap.bp2-no-gutter > .grid-col {
    padding: 0 0; /* 2 */
  }
  /* Proportional units
     ========================================================================== */
  /*
   * Specify the proportional width of an object.
   * Primarily for, but not limited to, use with `.grid__cell` components.
   * Intentional redundancy build into each set of unit classes.
   */
  .bp2-col-full {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%;
  }
  .bp2-col-auto {
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    max-width: 100%;
  }
  .bp2-col-display-none {
    display: none;
  }
  .bp2-col-1-2, .bp2-col-10-20, .bp2-col-6-12, .bp2-col-5-10, .bp2-col-4-8, .bp2-col-3-6, .bp2-col-2-4 {
    -ms-flex-preferred-size: 50%;
    flex-basis: 50%;
    max-width: 50%;
  }
  .bp2-col-1-3, .bp2-col-4-12, .bp2-col-2-6 {
    -ms-flex-preferred-size: 33.3333333333%;
    flex-basis: 33.3333333333%;
    max-width: 33.3333333333%;
  }
  .bp2-col-2-3, .bp2-col-8-12, .bp2-col-4-6 {
    -ms-flex-preferred-size: 66.6666666667%;
    flex-basis: 66.6666666667%;
    max-width: 66.6666666667%;
  }
  .bp2-col-1-4, .bp2-col-5-20, .bp2-col-3-12, .bp2-col-2-8 {
    -ms-flex-preferred-size: 25%;
    flex-basis: 25%;
    max-width: 25%;
  }
  .bp2-col-3-4, .bp2-col-15-20, .bp2-col-9-12, .bp2-col-6-8 {
    -ms-flex-preferred-size: 75%;
    flex-basis: 75%;
    max-width: 75%;
  }
  .bp2-col-1-5, .bp2-col-4-20, .bp2-col-2-10 {
    -ms-flex-preferred-size: 20%;
    flex-basis: 20%;
    max-width: 20%;
  }
  .bp2-col-2-5, .bp2-col-8-20, .bp2-col-4-10 {
    -ms-flex-preferred-size: 40%;
    flex-basis: 40%;
    max-width: 40%;
  }
  .bp2-col-3-5, .bp2-col-12-20, .bp2-col-6-10 {
    -ms-flex-preferred-size: 60%;
    flex-basis: 60%;
    max-width: 60%;
  }
  .bp2-col-4-5, .bp2-col-16-20, .bp2-col-8-10 {
    -ms-flex-preferred-size: 80%;
    flex-basis: 80%;
    max-width: 80%;
  }
  .bp2-col-1-6, .bp2-col-2-12 {
    -ms-flex-preferred-size: 16.6666666667%;
    flex-basis: 16.6666666667%;
    max-width: 16.6666666667%;
  }
  .bp2-col-5-6, .bp2-col-10-12 {
    -ms-flex-preferred-size: 83.3333333333%;
    flex-basis: 83.3333333333%;
    max-width: 83.3333333333%;
  }
  .bp2-col-1-7 {
    -ms-flex-preferred-size: 14.2857142857%;
    flex-basis: 14.2857142857%;
    max-width: 14.2857142857%;
  }
  .bp2-col-2-7 {
    -ms-flex-preferred-size: 28.5714285714%;
    flex-basis: 28.5714285714%;
    max-width: 28.5714285714%;
  }
  .bp2-col-3-7 {
    -ms-flex-preferred-size: 42.8571428571%;
    flex-basis: 42.8571428571%;
    max-width: 42.8571428571%;
  }
  .bp2-col-4-7 {
    -ms-flex-preferred-size: 57.1428571429%;
    flex-basis: 57.1428571429%;
    max-width: 57.1428571429%;
  }
  .bp2-col-5-7 {
    -ms-flex-preferred-size: 71.4285714286%;
    flex-basis: 71.4285714286%;
    max-width: 71.4285714286%;
  }
  .bp2-col-6-7 {
    -ms-flex-preferred-size: 85.7142857143%;
    flex-basis: 85.7142857143%;
    max-width: 85.7142857143%;
  }
  .bp2-col-1-8 {
    -ms-flex-preferred-size: 12.5%;
    flex-basis: 12.5%;
    max-width: 12.5%;
  }
  .bp2-col-3-8 {
    -ms-flex-preferred-size: 37.5%;
    flex-basis: 37.5%;
    max-width: 37.5%;
  }
  .bp2-col-5-8 {
    -ms-flex-preferred-size: 62.5%;
    flex-basis: 62.5%;
    max-width: 62.5%;
  }
  .bp2-col-7-8 {
    -ms-flex-preferred-size: 87.5%;
    flex-basis: 87.5%;
    max-width: 87.5%;
  }
  .bp2-col-1-10, .bp2-col-2-20 {
    -ms-flex-preferred-size: 10%;
    flex-basis: 10%;
    max-width: 10%;
  }
  .bp2-col-3-10, .bp2-col-6-20 {
    -ms-flex-preferred-size: 30%;
    flex-basis: 30%;
    max-width: 30%;
  }
  .bp2-col-7-10, .bp2-col-14-20 {
    -ms-flex-preferred-size: 70%;
    flex-basis: 70%;
    max-width: 70%;
  }
  .bp2-col-9-10, .bp2-col-18-20 {
    -ms-flex-preferred-size: 90%;
    flex-basis: 90%;
    max-width: 90%;
  }
  .bp2-col-1-12 {
    -ms-flex-preferred-size: 8.3333333333%;
    flex-basis: 8.3333333333%;
    max-width: 8.3333333333%;
  }
  .bp2-col-5-12 {
    -ms-flex-preferred-size: 41.6666666667%;
    flex-basis: 41.6666666667%;
    max-width: 41.6666666667%;
  }
  .bp2-col-7-12 {
    -ms-flex-preferred-size: 58.3333333333%;
    flex-basis: 58.3333333333%;
    max-width: 58.3333333333%;
  }
  .bp2-col-11-12 {
    -ms-flex-preferred-size: 91.6666666667%;
    flex-basis: 91.6666666667%;
    max-width: 91.6666666667%;
  }
  .bp2-col-1-20 {
    -ms-flex-preferred-size: 5%;
    flex-basis: 5%;
    max-width: 5%;
  }
  .bp2-col-3-20 {
    -ms-flex-preferred-size: 15%;
    flex-basis: 15%;
    max-width: 15%;
  }
  .bp2-col-7-20 {
    -ms-flex-preferred-size: 35%;
    flex-basis: 35%;
    max-width: 35%;
  }
  .bp2-col-9-20 {
    -ms-flex-preferred-size: 45%;
    flex-basis: 45%;
    max-width: 45%;
  }
  .bp2-col-11-20 {
    -ms-flex-preferred-size: 55%;
    flex-basis: 55%;
    max-width: 55%;
  }
  .bp2-col-13-20 {
    -ms-flex-preferred-size: 65%;
    flex-basis: 65%;
    max-width: 65%;
  }
  .bp2-col-17-20 {
    -ms-flex-preferred-size: 85%;
    flex-basis: 85%;
    max-width: 85%;
  }
  .bp2-col-19-20 {
    -ms-flex-preferred-size: 95%;
    flex-basis: 95%;
    max-width: 95%;
  }
}
/* -- Breakpoint 3 (.bp3)
------------------------------------------------------------- */
@media (min-width: 980px) and (max-width: 1239px) {
  /* Grid modifiers
     ========================================================================== */
  /**
   * Horizontal align
   */
  .bp3-grid-wrap-align-center {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    text-align: center;
  }
  .bp3-grid-wrap-align-left {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    text-align: start;
  }
  .bp3-grid-wrap-align-right {
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    text-align: end;
  }
  /**
   * VALIGN modifiers
   */
  .bp3-grid-wrap-valign-top {
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
  }
  .bp3-grid-wrap-valign-middle {
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }
  .bp3-grid-wrap-valign-bottom {
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
  }
  /**
   * Distribution modifiers
   */
  .bp3-grid-wrap-distribution-around {
    -ms-flex-pack: distribute;
    justify-content: space-around;
  }
  .bp3-grid-wrap-distribution-between {
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
  }
  /* Grid cell modifiers
     ========================================================================== */
  /**
   * Move col to first or last
   */
  .bp3-grid-col-move-to-first {
    -webkit-box-ordinal-group: 0;
    -ms-flex-order: -1;
    order: -1;
  }
  .bp3-grid-col-move-to-last {
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
  }
  .bp3-grid-col-move-to-0 {
    -ms-flex-order: 0;
    order: 0;
  }
  .bp3-grid-col-move-to-1 {
    -ms-flex-order: 1;
    order: 1;
  }
  .bp3-grid-col-move-to-2 {
    -ms-flex-order: 2;
    order: 2;
  }
  .bp3-grid-col-move-to-3 {
    -ms-flex-order: 3;
    order: 3;
  }
  .bp3-grid-col-move-to-4 {
    -ms-flex-order: 4;
    order: 4;
  }
  .bp3-grid-col-move-to-5 {
    -ms-flex-order: 5;
    order: 5;
  }
  .bp3-grid-col-move-to-6 {
    -ms-flex-order: 6;
    order: 6;
  }
  .bp3-grid-col-move-to-7 {
    -ms-flex-order: 7;
    order: 7;
  }
  .bp3-grid-col-move-to-8 {
    -ms-flex-order: 8;
    order: 8;
  }
  .bp3-grid-col-move-to-9 {
    -ms-flex-order: 9;
    order: 9;
  }
  .bp3-grid-col-move-to-10 {
    -ms-flex-order: 10;
    order: 10;
  }
  .bp3-grid-col-move-to-11 {
    -ms-flex-order: 11;
    order: 11;
  }
  .bp3-grid-col-move-to-12 {
    -ms-flex-order: 12;
    order: 12;
  }
  .bp3-grid-col-move-to-13 {
    -ms-flex-order: 13;
    order: 13;
  }
  .bp3-grid-col-move-to-14 {
    -ms-flex-order: 14;
    order: 14;
  }
  .bp3-grid-col-move-to-15 {
    -ms-flex-order: 15;
    order: 15;
  }
  .bp3-grid-col-move-to-16 {
    -ms-flex-order: 16;
    order: 16;
  }
  .bp3-grid-col-move-to-17 {
    -ms-flex-order: 17;
    order: 17;
  }
  .bp3-grid-col-move-to-18 {
    -ms-flex-order: 18;
    order: 18;
  }
  .bp3-grid-col-move-to-19 {
    -ms-flex-order: 19;
    order: 19;
  }
  .bp3-grid-col-move-to-20 {
    -ms-flex-order: 20;
    order: 20;
  }
  /* Grid gutters
     ========================================================================== */
  .grid-wrap.bp3-ultra-gutter {
    margin: 0 -6em; /* 1 */
  }
  .grid-wrap.bp3-ultra-gutter > .grid-col {
    padding: 0 6em; /* 2 */
  }
  .grid-wrap.bp3-large-gutter {
    margin: 0 -3em; /* 1 */
  }
  .grid-wrap.bp3-large-gutter > .grid-col {
    padding: 0 3em; /* 2 */
  }
  .grid-wrap.bp3-half-gutter {
    margin: 0 -0.75em; /* 1 */
  }
  .grid-wrap.bp3-half-gutter > .grid-col {
    padding: 0 0.75em; /* 2 */
  }
  .grid-wrap.bp3-quarter-gutter {
    margin: 0 -0.375em; /* 1 */
  }
  .grid-wrap.bp3-quarter-gutter > .grid-col {
    padding: 0 0.375em; /* 2 */
  }
  .grid-wrap.bp3-no-gutter {
    margin: 0 0; /* 1 */
  }
  .grid-wrap.bp3-no-gutter > .grid-col {
    padding: 0 0; /* 2 */
  }
  /* Proportional units
     ========================================================================== */
  /*
   * Specify the proportional width of an object.
   * Primarily for, but not limited to, use with `.grid__cell` components.
   * Intentional redundancy build into each set of unit classes.
   */
  .bp3-col-full {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%;
  }
  .bp3-col-auto {
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    max-width: 100%;
  }
  .bp3-col-display-none {
    display: none;
  }
  .bp3-col-1-2, .bp3-col-10-20, .bp3-col-6-12, .bp3-col-5-10, .bp3-col-4-8, .bp3-col-3-6, .bp3-col-2-4 {
    -ms-flex-preferred-size: 50%;
    flex-basis: 50%;
    max-width: 50%;
  }
  .bp3-col-1-3, .bp3-col-4-12, .bp3-col-2-6 {
    -ms-flex-preferred-size: 33.3333333333%;
    flex-basis: 33.3333333333%;
    max-width: 33.3333333333%;
  }
  .bp3-col-2-3, .bp3-col-8-12, .bp3-col-4-6 {
    -ms-flex-preferred-size: 66.6666666667%;
    flex-basis: 66.6666666667%;
    max-width: 66.6666666667%;
  }
  .bp3-col-1-4, .bp3-col-5-20, .bp3-col-3-12, .bp3-col-2-8 {
    -ms-flex-preferred-size: 25%;
    flex-basis: 25%;
    max-width: 25%;
  }
  .bp3-col-3-4, .bp3-col-15-20, .bp3-col-9-12, .bp3-col-6-8 {
    -ms-flex-preferred-size: 75%;
    flex-basis: 75%;
    max-width: 75%;
  }
  .bp3-col-1-5, .bp3-col-4-20, .bp3-col-2-10 {
    -ms-flex-preferred-size: 20%;
    flex-basis: 20%;
    max-width: 20%;
  }
  .bp3-col-2-5, .bp3-col-8-20, .bp3-col-4-10 {
    -ms-flex-preferred-size: 40%;
    flex-basis: 40%;
    max-width: 40%;
  }
  .bp3-col-3-5, .bp3-col-12-20, .bp3-col-6-10 {
    -ms-flex-preferred-size: 60%;
    flex-basis: 60%;
    max-width: 60%;
  }
  .bp3-col-4-5, .bp3-col-16-20, .bp3-col-8-10 {
    -ms-flex-preferred-size: 80%;
    flex-basis: 80%;
    max-width: 80%;
  }
  .bp3-col-1-6, .bp3-col-2-12 {
    -ms-flex-preferred-size: 16.6666666667%;
    flex-basis: 16.6666666667%;
    max-width: 16.6666666667%;
  }
  .bp3-col-5-6, .bp3-col-10-12 {
    -ms-flex-preferred-size: 83.3333333333%;
    flex-basis: 83.3333333333%;
    max-width: 83.3333333333%;
  }
  .bp3-col-1-7 {
    -ms-flex-preferred-size: 14.2857142857%;
    flex-basis: 14.2857142857%;
    max-width: 14.2857142857%;
  }
  .bp3-col-2-7 {
    -ms-flex-preferred-size: 28.5714285714%;
    flex-basis: 28.5714285714%;
    max-width: 28.5714285714%;
  }
  .bp3-col-3-7 {
    -ms-flex-preferred-size: 42.8571428571%;
    flex-basis: 42.8571428571%;
    max-width: 42.8571428571%;
  }
  .bp3-col-4-7 {
    -ms-flex-preferred-size: 57.1428571429%;
    flex-basis: 57.1428571429%;
    max-width: 57.1428571429%;
  }
  .bp3-col-5-7 {
    -ms-flex-preferred-size: 71.4285714286%;
    flex-basis: 71.4285714286%;
    max-width: 71.4285714286%;
  }
  .bp3-col-6-7 {
    -ms-flex-preferred-size: 85.7142857143%;
    flex-basis: 85.7142857143%;
    max-width: 85.7142857143%;
  }
  .bp3-col-1-8 {
    -ms-flex-preferred-size: 12.5%;
    flex-basis: 12.5%;
    max-width: 12.5%;
  }
  .bp3-col-3-8 {
    -ms-flex-preferred-size: 37.5%;
    flex-basis: 37.5%;
    max-width: 37.5%;
  }
  .bp3-col-5-8 {
    -ms-flex-preferred-size: 62.5%;
    flex-basis: 62.5%;
    max-width: 62.5%;
  }
  .bp3-col-7-8 {
    -ms-flex-preferred-size: 87.5%;
    flex-basis: 87.5%;
    max-width: 87.5%;
  }
  .bp3-col-1-10, .bp3-col-2-20 {
    -ms-flex-preferred-size: 10%;
    flex-basis: 10%;
    max-width: 10%;
  }
  .bp3-col-3-10, .bp3-col-6-20 {
    -ms-flex-preferred-size: 30%;
    flex-basis: 30%;
    max-width: 30%;
  }
  .bp3-col-7-10, .bp3-col-14-20 {
    -ms-flex-preferred-size: 70%;
    flex-basis: 70%;
    max-width: 70%;
  }
  .bp3-col-9-10, .bp3-col-18-20 {
    -ms-flex-preferred-size: 90%;
    flex-basis: 90%;
    max-width: 90%;
  }
  .bp3-col-1-12 {
    -ms-flex-preferred-size: 8.3333333333%;
    flex-basis: 8.3333333333%;
    max-width: 8.3333333333%;
  }
  .bp3-col-5-12 {
    -ms-flex-preferred-size: 41.6666666667%;
    flex-basis: 41.6666666667%;
    max-width: 41.6666666667%;
  }
  .bp3-col-7-12 {
    -ms-flex-preferred-size: 58.3333333333%;
    flex-basis: 58.3333333333%;
    max-width: 58.3333333333%;
  }
  .bp3-col-11-12 {
    -ms-flex-preferred-size: 91.6666666667%;
    flex-basis: 91.6666666667%;
    max-width: 91.6666666667%;
  }
  .bp3-col-1-20 {
    -ms-flex-preferred-size: 5%;
    flex-basis: 5%;
    max-width: 5%;
  }
  .bp3-col-3-20 {
    -ms-flex-preferred-size: 15%;
    flex-basis: 15%;
    max-width: 15%;
  }
  .bp3-col-7-20 {
    -ms-flex-preferred-size: 35%;
    flex-basis: 35%;
    max-width: 35%;
  }
  .bp3-col-9-20 {
    -ms-flex-preferred-size: 45%;
    flex-basis: 45%;
    max-width: 45%;
  }
  .bp3-col-11-20 {
    -ms-flex-preferred-size: 55%;
    flex-basis: 55%;
    max-width: 55%;
  }
  .bp3-col-13-20 {
    -ms-flex-preferred-size: 65%;
    flex-basis: 65%;
    max-width: 65%;
  }
  .bp3-col-17-20 {
    -ms-flex-preferred-size: 85%;
    flex-basis: 85%;
    max-width: 85%;
  }
  .bp3-col-19-20 {
    -ms-flex-preferred-size: 95%;
    flex-basis: 95%;
    max-width: 95%;
  }
}
/* -- Breakpoint 4 (.bp4)
------------------------------------------------------------- */
@media (min-width: 1240px) {
  /* Grid modifiers
     ========================================================================== */
  /**
   * Horizontal align
   */
  .bp4-grid-wrap-align-center {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    text-align: center;
  }
  .bp4-grid-wrap-align-left {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    text-align: start;
  }
  .bp4-grid-wrap-align-right {
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    text-align: end;
  }
  /**
   * VALIGN modifiers
   */
  .bp4-grid-wrap-valign-top {
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
  }
  .bp4-grid-wrap-valign-middle {
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }
  .bp4-grid-wrap-valign-bottom {
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
  }
  /**
   * Distribution modifiers
   */
  .bp4-grid-wrap-distribution-around {
    -ms-flex-pack: distribute;
    justify-content: space-around;
  }
  .bp4-grid-wrap-distribution-between {
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
  }
  /* Grid cell modifiers
     ========================================================================== */
  /**
   * Move col to first or last
   */
  .bp4-grid-col-move-to-first {
    -webkit-box-ordinal-group: 0;
    -ms-flex-order: -1;
    order: -1;
  }
  .bp4-grid-col-move-to-last {
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
  }
  .bp4-grid-col-move-to-0 {
    -ms-flex-order: 0;
    order: 0;
  }
  .bp4-grid-col-move-to-1 {
    -ms-flex-order: 1;
    order: 1;
  }
  .bp4-grid-col-move-to-2 {
    -ms-flex-order: 2;
    order: 2;
  }
  .bp4-grid-col-move-to-3 {
    -ms-flex-order: 3;
    order: 3;
  }
  .bp4-grid-col-move-to-4 {
    -ms-flex-order: 4;
    order: 4;
  }
  .bp4-grid-col-move-to-5 {
    -ms-flex-order: 5;
    order: 5;
  }
  .bp4-grid-col-move-to-6 {
    -ms-flex-order: 6;
    order: 6;
  }
  .bp4-grid-col-move-to-7 {
    -ms-flex-order: 7;
    order: 7;
  }
  .bp4-grid-col-move-to-8 {
    -ms-flex-order: 8;
    order: 8;
  }
  .bp4-grid-col-move-to-9 {
    -ms-flex-order: 9;
    order: 9;
  }
  .bp4-grid-col-move-to-10 {
    -ms-flex-order: 10;
    order: 10;
  }
  .bp4-grid-col-move-to-11 {
    -ms-flex-order: 11;
    order: 11;
  }
  .bp4-grid-col-move-to-12 {
    -ms-flex-order: 12;
    order: 12;
  }
  .bp4-grid-col-move-to-13 {
    -ms-flex-order: 13;
    order: 13;
  }
  .bp4-grid-col-move-to-14 {
    -ms-flex-order: 14;
    order: 14;
  }
  .bp4-grid-col-move-to-15 {
    -ms-flex-order: 15;
    order: 15;
  }
  .bp4-grid-col-move-to-16 {
    -ms-flex-order: 16;
    order: 16;
  }
  .bp4-grid-col-move-to-17 {
    -ms-flex-order: 17;
    order: 17;
  }
  .bp4-grid-col-move-to-18 {
    -ms-flex-order: 18;
    order: 18;
  }
  .bp4-grid-col-move-to-19 {
    -ms-flex-order: 19;
    order: 19;
  }
  .bp4-grid-col-move-to-20 {
    -ms-flex-order: 20;
    order: 20;
  }
  /* Grid gutters
     ========================================================================== */
  .grid-wrap.bp4-ultra-gutter {
    margin: 0 -6em; /* 1 */
  }
  .grid-wrap.bp4-ultra-gutter > .grid-col {
    padding: 0 6em; /* 2 */
  }
  .grid-wrap.bp4-large-gutter {
    margin: 0 -3em; /* 1 */
  }
  .grid-wrap.bp4-large-gutter > .grid-col {
    padding: 0 3em; /* 2 */
  }
  .grid-wrap.bp4-half-gutter {
    margin: 0 -0.75em; /* 1 */
  }
  .grid-wrap.bp4-half-gutter > .grid-col {
    padding: 0 0.75em; /* 2 */
  }
  .grid-wrap.bp4-quarter-gutter {
    margin: 0 -0.375em; /* 1 */
  }
  .grid-wrap.bp4-quarter-gutter > .grid-col {
    padding: 0 0.375em; /* 2 */
  }
  .grid-wrap.bp4-no-gutter {
    margin: 0 0; /* 1 */
  }
  .grid-wrap.bp4-no-gutter > .grid-col {
    padding: 0 0; /* 2 */
  }
  /* Proportional units
     ========================================================================== */
  /*
   * Specify the proportional width of an object.
   * Primarily for, but not limited to, use with `.grid__cell` components.
   * Intentional redundancy build into each set of unit classes.
   */
  .bp4-col-full {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%;
  }
  .bp4-col-auto {
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    max-width: 100%;
  }
  .bp4-col-display-none {
    display: none;
  }
  .bp4-col-1-2, .bp4-col-10-20, .bp4-col-6-12, .bp4-col-5-10, .bp4-col-4-8, .bp4-col-3-6, .bp4-col-2-4 {
    -ms-flex-preferred-size: 50%;
    flex-basis: 50%;
    max-width: 50%;
  }
  .bp4-col-1-3, .bp4-col-4-12, .bp4-col-2-6 {
    -ms-flex-preferred-size: 33.3333333333%;
    flex-basis: 33.3333333333%;
    max-width: 33.3333333333%;
  }
  .bp4-col-2-3, .bp4-col-8-12, .bp4-col-4-6 {
    -ms-flex-preferred-size: 66.6666666667%;
    flex-basis: 66.6666666667%;
    max-width: 66.6666666667%;
  }
  .bp4-col-1-4, .bp4-col-5-20, .bp4-col-3-12, .bp4-col-2-8 {
    -ms-flex-preferred-size: 25%;
    flex-basis: 25%;
    max-width: 25%;
  }
  .bp4-col-3-4, .bp4-col-15-20, .bp4-col-9-12, .bp4-col-6-8 {
    -ms-flex-preferred-size: 75%;
    flex-basis: 75%;
    max-width: 75%;
  }
  .bp4-col-1-5, .bp4-col-4-20, .bp4-col-2-10 {
    -ms-flex-preferred-size: 20%;
    flex-basis: 20%;
    max-width: 20%;
  }
  .bp4-col-2-5, .bp4-col-8-20, .bp4-col-4-10 {
    -ms-flex-preferred-size: 40%;
    flex-basis: 40%;
    max-width: 40%;
  }
  .bp4-col-3-5, .bp4-col-12-20, .bp4-col-6-10 {
    -ms-flex-preferred-size: 60%;
    flex-basis: 60%;
    max-width: 60%;
  }
  .bp4-col-4-5, .bp4-col-16-20, .bp4-col-8-10 {
    -ms-flex-preferred-size: 80%;
    flex-basis: 80%;
    max-width: 80%;
  }
  .bp4-col-1-6, .bp4-col-2-12 {
    -ms-flex-preferred-size: 16.6666666667%;
    flex-basis: 16.6666666667%;
    max-width: 16.6666666667%;
  }
  .bp4-col-5-6, .bp4-col-10-12 {
    -ms-flex-preferred-size: 83.3333333333%;
    flex-basis: 83.3333333333%;
    max-width: 83.3333333333%;
  }
  .bp4-col-1-7 {
    -ms-flex-preferred-size: 14.2857142857%;
    flex-basis: 14.2857142857%;
    max-width: 14.2857142857%;
  }
  .bp4-col-2-7 {
    -ms-flex-preferred-size: 28.5714285714%;
    flex-basis: 28.5714285714%;
    max-width: 28.5714285714%;
  }
  .bp4-col-3-7 {
    -ms-flex-preferred-size: 42.8571428571%;
    flex-basis: 42.8571428571%;
    max-width: 42.8571428571%;
  }
  .bp4-col-4-7 {
    -ms-flex-preferred-size: 57.1428571429%;
    flex-basis: 57.1428571429%;
    max-width: 57.1428571429%;
  }
  .bp4-col-5-7 {
    -ms-flex-preferred-size: 71.4285714286%;
    flex-basis: 71.4285714286%;
    max-width: 71.4285714286%;
  }
  .bp4-col-6-7 {
    -ms-flex-preferred-size: 85.7142857143%;
    flex-basis: 85.7142857143%;
    max-width: 85.7142857143%;
  }
  .bp4-col-1-8 {
    -ms-flex-preferred-size: 12.5%;
    flex-basis: 12.5%;
    max-width: 12.5%;
  }
  .bp4-col-3-8 {
    -ms-flex-preferred-size: 37.5%;
    flex-basis: 37.5%;
    max-width: 37.5%;
  }
  .bp4-col-5-8 {
    -ms-flex-preferred-size: 62.5%;
    flex-basis: 62.5%;
    max-width: 62.5%;
  }
  .bp4-col-7-8 {
    -ms-flex-preferred-size: 87.5%;
    flex-basis: 87.5%;
    max-width: 87.5%;
  }
  .bp4-col-1-10, .bp4-col-2-20 {
    -ms-flex-preferred-size: 10%;
    flex-basis: 10%;
    max-width: 10%;
  }
  .bp4-col-3-10, .bp4-col-6-20 {
    -ms-flex-preferred-size: 30%;
    flex-basis: 30%;
    max-width: 30%;
  }
  .bp4-col-7-10, .bp4-col-14-20 {
    -ms-flex-preferred-size: 70%;
    flex-basis: 70%;
    max-width: 70%;
  }
  .bp4-col-9-10, .bp4-col-18-20 {
    -ms-flex-preferred-size: 90%;
    flex-basis: 90%;
    max-width: 90%;
  }
  .bp4-col-1-12 {
    -ms-flex-preferred-size: 8.3333333333%;
    flex-basis: 8.3333333333%;
    max-width: 8.3333333333%;
  }
  .bp4-col-5-12 {
    -ms-flex-preferred-size: 41.6666666667%;
    flex-basis: 41.6666666667%;
    max-width: 41.6666666667%;
  }
  .bp4-col-7-12 {
    -ms-flex-preferred-size: 58.3333333333%;
    flex-basis: 58.3333333333%;
    max-width: 58.3333333333%;
  }
  .bp4-col-11-12 {
    -ms-flex-preferred-size: 91.6666666667%;
    flex-basis: 91.6666666667%;
    max-width: 91.6666666667%;
  }
  .bp4-col-1-20 {
    -ms-flex-preferred-size: 5%;
    flex-basis: 5%;
    max-width: 5%;
  }
  .bp4-col-3-20 {
    -ms-flex-preferred-size: 15%;
    flex-basis: 15%;
    max-width: 15%;
  }
  .bp4-col-7-20 {
    -ms-flex-preferred-size: 35%;
    flex-basis: 35%;
    max-width: 35%;
  }
  .bp4-col-9-20 {
    -ms-flex-preferred-size: 45%;
    flex-basis: 45%;
    max-width: 45%;
  }
  .bp4-col-11-20 {
    -ms-flex-preferred-size: 55%;
    flex-basis: 55%;
    max-width: 55%;
  }
  .bp4-col-13-20 {
    -ms-flex-preferred-size: 65%;
    flex-basis: 65%;
    max-width: 65%;
  }
  .bp4-col-17-20 {
    -ms-flex-preferred-size: 85%;
    flex-basis: 85%;
    max-width: 85%;
  }
  .bp4-col-19-20 {
    -ms-flex-preferred-size: 95%;
    flex-basis: 95%;
    max-width: 95%;
  }
}
/*!
 * animate.css -http://daneden.me/animate
 * Version - 3.5.2
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2017 Daniel Eden
 */
.animated {
  animation-duration: 1s;
  animation-fill-mode: both;
}

.animated.infinite {
  animation-iteration-count: infinite;
}

.animated.hinge {
  animation-duration: 2s;
}

.animated.flipOutX,
.animated.flipOutY,
.animated.bounceIn,
.animated.bounceOut {
  animation-duration: 0.75s;
}

@keyframes bounce {
  from, 20%, 53%, 80%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 0, 0);
  }
  40%, 43% {
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transform: translate3d(0, -30px, 0);
  }
  70% {
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transform: translate3d(0, -15px, 0);
  }
  90% {
    transform: translate3d(0, -4px, 0);
  }
}
.bounce {
  animation-name: bounce;
  transform-origin: center bottom;
}

@keyframes flash {
  from, 50%, to {
    opacity: 1;
  }
  25%, 75% {
    opacity: 0;
  }
}
.flash {
  animation-name: flash;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@keyframes pulse {
  from {
    transform: scale3d(1, 1, 1);
  }
  50% {
    transform: scale3d(1.05, 1.05, 1.05);
  }
  to {
    transform: scale3d(1, 1, 1);
  }
}
.pulse {
  animation-name: pulse;
}

@keyframes rubberBand {
  from {
    transform: scale3d(1, 1, 1);
  }
  30% {
    transform: scale3d(1.25, 0.75, 1);
  }
  40% {
    transform: scale3d(0.75, 1.25, 1);
  }
  50% {
    transform: scale3d(1.15, 0.85, 1);
  }
  65% {
    transform: scale3d(0.95, 1.05, 1);
  }
  75% {
    transform: scale3d(1.05, 0.95, 1);
  }
  to {
    transform: scale3d(1, 1, 1);
  }
}
.rubberBand {
  animation-name: rubberBand;
}

@keyframes shake {
  from, to {
    transform: translate3d(0, 0, 0);
  }
  10%, 30%, 50%, 70%, 90% {
    transform: translate3d(-10px, 0, 0);
  }
  20%, 40%, 60%, 80% {
    transform: translate3d(10px, 0, 0);
  }
}
.shake {
  animation-name: shake;
}

@keyframes headShake {
  0% {
    transform: translateX(0);
  }
  6.5% {
    transform: translateX(-6px) rotateY(-9deg);
  }
  18.5% {
    transform: translateX(5px) rotateY(7deg);
  }
  31.5% {
    transform: translateX(-3px) rotateY(-5deg);
  }
  43.5% {
    transform: translateX(2px) rotateY(3deg);
  }
  50% {
    transform: translateX(0);
  }
}
.headShake {
  animation-timing-function: ease-in-out;
  animation-name: headShake;
}

@keyframes swing {
  20% {
    transform: rotate3d(0, 0, 1, 15deg);
  }
  40% {
    transform: rotate3d(0, 0, 1, -10deg);
  }
  60% {
    transform: rotate3d(0, 0, 1, 5deg);
  }
  80% {
    transform: rotate3d(0, 0, 1, -5deg);
  }
  to {
    transform: rotate3d(0, 0, 1, 0deg);
  }
}
.swing {
  transform-origin: top center;
  animation-name: swing;
}

@keyframes tada {
  from {
    transform: scale3d(1, 1, 1);
  }
  10%, 20% {
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
  }
  30%, 50%, 70%, 90% {
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  }
  40%, 60%, 80% {
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  }
  to {
    transform: scale3d(1, 1, 1);
  }
}
.tada {
  animation-name: tada;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@keyframes wobble {
  from {
    transform: none;
  }
  15% {
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
  }
  30% {
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
  }
  45% {
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
  }
  60% {
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
  }
  75% {
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
  }
  to {
    transform: none;
  }
}
.wobble {
  animation-name: wobble;
}

@keyframes jello {
  from, 11.1%, to {
    transform: none;
  }
  22.2% {
    transform: skewX(-12.5deg) skewY(-12.5deg);
  }
  33.3% {
    transform: skewX(6.25deg) skewY(6.25deg);
  }
  44.4% {
    transform: skewX(-3.125deg) skewY(-3.125deg);
  }
  55.5% {
    transform: skewX(1.5625deg) skewY(1.5625deg);
  }
  66.6% {
    transform: skewX(-0.78125deg) skewY(-0.78125deg);
  }
  77.7% {
    transform: skewX(0.390625deg) skewY(0.390625deg);
  }
  88.8% {
    transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
  }
}
.jello {
  animation-name: jello;
  transform-origin: center;
}

@keyframes bounceIn {
  from, 20%, 40%, 60%, 80%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
  20% {
    transform: scale3d(1.1, 1.1, 1.1);
  }
  40% {
    transform: scale3d(0.9, 0.9, 0.9);
  }
  60% {
    opacity: 1;
    transform: scale3d(1.03, 1.03, 1.03);
  }
  80% {
    transform: scale3d(0.97, 0.97, 0.97);
  }
  to {
    opacity: 1;
    transform: scale3d(1, 1, 1);
  }
}
.bounceIn {
  animation-name: bounceIn;
}

@keyframes bounceInDown {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    transform: translate3d(0, -3000px, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(0, 25px, 0);
  }
  75% {
    transform: translate3d(0, -10px, 0);
  }
  90% {
    transform: translate3d(0, 5px, 0);
  }
  to {
    transform: none;
  }
}
.bounceInDown {
  animation-name: bounceInDown;
}

@keyframes bounceInLeft {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    transform: translate3d(-3000px, 0, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(25px, 0, 0);
  }
  75% {
    transform: translate3d(-10px, 0, 0);
  }
  90% {
    transform: translate3d(5px, 0, 0);
  }
  to {
    transform: none;
  }
}
.bounceInLeft {
  animation-name: bounceInLeft;
}

@keyframes bounceInRight {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  from {
    opacity: 0;
    transform: translate3d(3000px, 0, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(-25px, 0, 0);
  }
  75% {
    transform: translate3d(10px, 0, 0);
  }
  90% {
    transform: translate3d(-5px, 0, 0);
  }
  to {
    transform: none;
  }
}
.bounceInRight {
  animation-name: bounceInRight;
}

@keyframes bounceInUp {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  from {
    opacity: 0;
    transform: translate3d(0, 3000px, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(0, -20px, 0);
  }
  75% {
    transform: translate3d(0, 10px, 0);
  }
  90% {
    transform: translate3d(0, -5px, 0);
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
.bounceInUp {
  animation-name: bounceInUp;
}

@keyframes bounceOut {
  20% {
    transform: scale3d(0.9, 0.9, 0.9);
  }
  50%, 55% {
    opacity: 1;
    transform: scale3d(1.1, 1.1, 1.1);
  }
  to {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
}
.bounceOut {
  animation-name: bounceOut;
}

@keyframes bounceOutDown {
  20% {
    transform: translate3d(0, 10px, 0);
  }
  40%, 45% {
    opacity: 1;
    transform: translate3d(0, -20px, 0);
  }
  to {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
}
.bounceOutDown {
  animation-name: bounceOutDown;
}

@keyframes bounceOutLeft {
  20% {
    opacity: 1;
    transform: translate3d(20px, 0, 0);
  }
  to {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }
}
.bounceOutLeft {
  animation-name: bounceOutLeft;
}

@keyframes bounceOutRight {
  20% {
    opacity: 1;
    transform: translate3d(-20px, 0, 0);
  }
  to {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }
}
.bounceOutRight {
  animation-name: bounceOutRight;
}

@keyframes bounceOutUp {
  20% {
    transform: translate3d(0, -10px, 0);
  }
  40%, 45% {
    opacity: 1;
    transform: translate3d(0, 20px, 0);
  }
  to {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
}
.bounceOutUp {
  animation-name: bounceOutUp;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.fadeIn {
  animation-name: fadeIn;
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.fadeInDown {
  animation-name: fadeInDown;
}

@keyframes fadeInDownBig {
  from {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.fadeInDownBig {
  animation-name: fadeInDownBig;
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translate3d(-100%, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.fadeInLeft {
  animation-name: fadeInLeft;
}

@keyframes fadeInLeftBig {
  from {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.fadeInLeftBig {
  animation-name: fadeInLeftBig;
}

@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translate3d(100%, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.fadeInRight {
  animation-name: fadeInRight;
}

@keyframes fadeInRightBig {
  from {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.fadeInRightBig {
  animation-name: fadeInRightBig;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.fadeInUp {
  animation-name: fadeInUp;
}

@keyframes fadeInUpBig {
  from {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.fadeInUpBig {
  animation-name: fadeInUpBig;
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
.fadeOut {
  animation-name: fadeOut;
}

@keyframes fadeOutDown {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
  }
}
.fadeOutDown {
  animation-name: fadeOutDown;
}

@keyframes fadeOutDownBig {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
}
.fadeOutDownBig {
  animation-name: fadeOutDownBig;
}

@keyframes fadeOutLeft {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(-100%, 0, 0);
  }
}
.fadeOutLeft {
  animation-name: fadeOutLeft;
}

@keyframes fadeOutLeftBig {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }
}
.fadeOutLeftBig {
  animation-name: fadeOutLeftBig;
}

@keyframes fadeOutRight {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(100%, 0, 0);
  }
}
.fadeOutRight {
  animation-name: fadeOutRight;
}

@keyframes fadeOutRightBig {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }
}
.fadeOutRightBig {
  animation-name: fadeOutRightBig;
}

@keyframes fadeOutUp {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
  }
}
.fadeOutUp {
  animation-name: fadeOutUp;
}

@keyframes fadeOutUpBig {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
}
.fadeOutUpBig {
  animation-name: fadeOutUpBig;
}

@keyframes flip {
  from {
    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    animation-timing-function: ease-out;
  }
  40% {
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    animation-timing-function: ease-out;
  }
  50% {
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    animation-timing-function: ease-in;
  }
  80% {
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    animation-timing-function: ease-in;
  }
  to {
    transform: perspective(400px);
    animation-timing-function: ease-in;
  }
}
.animated.flip {
  -webkit-backface-visibility: visible;
  backface-visibility: visible;
  animation-name: flip;
}

@keyframes flipInX {
  from {
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    animation-timing-function: ease-in;
    opacity: 0;
  }
  40% {
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    animation-timing-function: ease-in;
  }
  60% {
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1;
  }
  80% {
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
  }
  to {
    transform: perspective(400px);
  }
}
.flipInX {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  animation-name: flipInX;
}

@keyframes flipInY {
  from {
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    animation-timing-function: ease-in;
    opacity: 0;
  }
  40% {
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    animation-timing-function: ease-in;
  }
  60% {
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1;
  }
  80% {
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
  }
  to {
    transform: perspective(400px);
  }
}
.flipInY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  animation-name: flipInY;
}

@keyframes flipOutX {
  from {
    transform: perspective(400px);
  }
  30% {
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1;
  }
  to {
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0;
  }
}
.flipOutX {
  animation-name: flipOutX;
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
}

@keyframes flipOutY {
  from {
    transform: perspective(400px);
  }
  30% {
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1;
  }
  to {
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0;
  }
}
.flipOutY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  animation-name: flipOutY;
}

@keyframes lightSpeedIn {
  from {
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0;
  }
  60% {
    transform: skewX(20deg);
    opacity: 1;
  }
  80% {
    transform: skewX(-5deg);
    opacity: 1;
  }
  to {
    transform: none;
    opacity: 1;
  }
}
.lightSpeedIn {
  animation-name: lightSpeedIn;
  animation-timing-function: ease-out;
}

@keyframes lightSpeedOut {
  from {
    opacity: 1;
  }
  to {
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0;
  }
}
.lightSpeedOut {
  animation-name: lightSpeedOut;
  animation-timing-function: ease-in;
}

@keyframes rotateIn {
  from {
    transform-origin: center;
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0;
  }
  to {
    transform-origin: center;
    transform: none;
    opacity: 1;
  }
}
.rotateIn {
  animation-name: rotateIn;
}

@keyframes rotateInDownLeft {
  from {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
  to {
    transform-origin: left bottom;
    transform: none;
    opacity: 1;
  }
}
.rotateInDownLeft {
  animation-name: rotateInDownLeft;
}

@keyframes rotateInDownRight {
  from {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
  to {
    transform-origin: right bottom;
    transform: none;
    opacity: 1;
  }
}
.rotateInDownRight {
  animation-name: rotateInDownRight;
}

@keyframes rotateInUpLeft {
  from {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
  to {
    transform-origin: left bottom;
    transform: none;
    opacity: 1;
  }
}
.rotateInUpLeft {
  animation-name: rotateInUpLeft;
}

@keyframes rotateInUpRight {
  from {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0;
  }
  to {
    transform-origin: right bottom;
    transform: none;
    opacity: 1;
  }
}
.rotateInUpRight {
  animation-name: rotateInUpRight;
}

@keyframes rotateOut {
  from {
    transform-origin: center;
    opacity: 1;
  }
  to {
    transform-origin: center;
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0;
  }
}
.rotateOut {
  animation-name: rotateOut;
}

@keyframes rotateOutDownLeft {
  from {
    transform-origin: left bottom;
    opacity: 1;
  }
  to {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
}
.rotateOutDownLeft {
  animation-name: rotateOutDownLeft;
}

@keyframes rotateOutDownRight {
  from {
    transform-origin: right bottom;
    opacity: 1;
  }
  to {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}
.rotateOutDownRight {
  animation-name: rotateOutDownRight;
}

@keyframes rotateOutUpLeft {
  from {
    transform-origin: left bottom;
    opacity: 1;
  }
  to {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}
.rotateOutUpLeft {
  animation-name: rotateOutUpLeft;
}

@keyframes rotateOutUpRight {
  from {
    transform-origin: right bottom;
    opacity: 1;
  }
  to {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0;
  }
}
.rotateOutUpRight {
  animation-name: rotateOutUpRight;
}

@keyframes hinge {
  0% {
    transform-origin: top left;
    animation-timing-function: ease-in-out;
  }
  20%, 60% {
    transform: rotate3d(0, 0, 1, 80deg);
    transform-origin: top left;
    animation-timing-function: ease-in-out;
  }
  40%, 80% {
    transform: rotate3d(0, 0, 1, 60deg);
    transform-origin: top left;
    animation-timing-function: ease-in-out;
    opacity: 1;
  }
  to {
    transform: translate3d(0, 700px, 0);
    opacity: 0;
  }
}
.hinge {
  animation-name: hinge;
}

@keyframes jackInTheBox {
  from {
    opacity: 0;
    transform: scale(0.1) rotate(30deg);
    transform-origin: center bottom;
  }
  50% {
    transform: rotate(-10deg);
  }
  70% {
    transform: rotate(3deg);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.jackInTheBox {
  animation-name: jackInTheBox;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@keyframes rollIn {
  from {
    opacity: 0;
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.rollIn {
  animation-name: rollIn;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@keyframes rollOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
  }
}
.rollOut {
  animation-name: rollOut;
}

@keyframes zoomIn {
  from {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
  50% {
    opacity: 1;
  }
}
.zoomIn {
  animation-name: zoomIn;
}

@keyframes zoomInDown {
  from {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  60% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}
.zoomInDown {
  animation-name: zoomInDown;
}

@keyframes zoomInLeft {
  from {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  60% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}
.zoomInLeft {
  animation-name: zoomInLeft;
}

@keyframes zoomInRight {
  from {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  60% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}
.zoomInRight {
  animation-name: zoomInRight;
}

@keyframes zoomInUp {
  from {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  60% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}
.zoomInUp {
  animation-name: zoomInUp;
}

@keyframes zoomOut {
  from {
    opacity: 1;
  }
  50% {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
  to {
    opacity: 0;
  }
}
.zoomOut {
  animation-name: zoomOut;
}

@keyframes zoomOutDown {
  40% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  to {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform-origin: center bottom;
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}
.zoomOutDown {
  animation-name: zoomOutDown;
}

@keyframes zoomOutLeft {
  40% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
  }
  to {
    opacity: 0;
    transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform-origin: left center;
  }
}
.zoomOutLeft {
  animation-name: zoomOutLeft;
}

@keyframes zoomOutRight {
  40% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
  }
  to {
    opacity: 0;
    transform: scale(0.1) translate3d(2000px, 0, 0);
    transform-origin: right center;
  }
}
.zoomOutRight {
  animation-name: zoomOutRight;
}

@keyframes zoomOutUp {
  40% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  to {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform-origin: center bottom;
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}
.zoomOutUp {
  animation-name: zoomOutUp;
}

@keyframes slideInDown {
  from {
    transform: translate3d(0, -100%, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
.slideInDown {
  animation-name: slideInDown;
}

@keyframes slideInLeft {
  from {
    transform: translate3d(-100%, 0, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
.slideInLeft {
  animation-name: slideInLeft;
}

@keyframes slideInRight {
  from {
    transform: translate3d(100%, 0, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
.slideInRight {
  animation-name: slideInRight;
}

@keyframes slideInUp {
  from {
    transform: translate3d(0, 100%, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
.slideInUp {
  animation-name: slideInUp;
}

@keyframes slideOutDown {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(0, 100%, 0);
  }
}
.slideOutDown {
  animation-name: slideOutDown;
}

@keyframes slideOutLeft {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(-100%, 0, 0);
  }
}
.slideOutLeft {
  animation-name: slideOutLeft;
}

@keyframes slideOutRight {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(100%, 0, 0);
  }
}
.slideOutRight {
  animation-name: slideOutRight;
}

@keyframes slideOutUp {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(0, -100%, 0);
  }
}
.slideOutUp {
  animation-name: slideOutUp;
}

.text-align-left {
  text-align: left;
}

.text-align-center {
  text-align: center;
}

.text-align-right {
  text-align: right;
}

a {
  color: inherit;
  text-decoration: none;
  transition: all 0.3s ease;
}
a:hover {
  color: #be1622;
  text-decoration: none;
}
a i {
  transition: color 0s ease !important;
}

p {
  margin: 0 0 1rem 0;
}
p.smaller {
  font-size: 0.7em;
}

strong {
  font-weight: 700;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  padding: 0;
}

h1,
.h1 {
  margin-bottom: 1.25rem;
  font-size: 1.75rem;
  line-height: 1.5em;
  font-weight: 400;
}

h2,
.h2 {
  margin-bottom: 1.125rem;
  font-size: 1.5rem;
  line-height: 1.5em;
  font-weight: 400;
}

h3,
.h3 {
  margin-bottom: 1rem;
  font-size: 1.25rem;
  line-height: 1.5em;
  font-weight: 400;
}

h4,
.h4 {
  margin-bottom: 1rem;
  font-size: 1.125rem;
  line-height: 1.5em;
  font-weight: 400;
}

h5,
.h5 {
  margin-bottom: 1rem;
  font-size: 1rem;
  line-height: 1.5em;
  font-weight: 400;
}

h6,
.h6 {
  margin-bottom: 0.5rem;
  font-size: 1rem;
  line-height: 1.5em;
  font-weight: 400;
}

/*
 * WYSIWYG lists. Markers are the NATIVE ones recoloured through ::marker rather than a
 * list-style:none + ::before dot - Safari drops list semantics from VoiceOver the moment the
 * list-style is removed, and this content ( the legal pages, and the same markup cloned into
 * templates/legal-modal.php ) is exactly where that matters. ::marker also keeps the nested
 * disc -> circle -> square progression working for free.
 *
 * Indent is a HANGING one: padding on the list, outside markers, so wrapped lines line up with
 * the first line's text instead of running back under the bullet. No `width` here - these are
 * block elements and there is no global border-box, so a width:100% would overflow by exactly
 * the padding.
 */
.user-editable-content ul,
.user-editable-content ol {
  line-height: 1.6;
  margin: 0 0 1rem;
  padding: 0 0 0 1.375rem;
}
.user-editable-content ul li,
.user-editable-content ol li {
  margin: 0 0 0.625rem;
  padding: 0 0 0 0.25rem;
  list-style-position: outside;
}
.user-editable-content ul li:last-child,
.user-editable-content ol li:last-child {
  margin-bottom: 0;
}
.user-editable-content ul li::marker,
.user-editable-content ol li::marker {
  color: #be1622;
}
.user-editable-content ul li > p:last-child,
.user-editable-content ol li > p:last-child {
  margin-bottom: 0;
}
.user-editable-content ul ul,
.user-editable-content ul ol,
.user-editable-content ol ul,
.user-editable-content ol ol {
  margin: 0.625rem 0 0;
}
.user-editable-content ul li {
  list-style-type: disc;
}
.user-editable-content ul ul li {
  list-style-type: circle;
}
.user-editable-content ol li {
  list-style-type: decimal;
}
.user-editable-content ol li::marker {
  font-weight: 600;
}
.user-editable-content {
  /*
   * Headings need air ABOVE them, or a list that ends right before the next <h2> leaves only
   * the list's rem(16) bottom margin between the two. _legal-modal.scss already does this for
   * the popup; without it here the same content is spaced differently on the standalone page.
   */
}
.user-editable-content h2, .user-editable-content h3, .user-editable-content h4 {
  margin-top: 1.75rem;
}
.user-editable-content > :first-child {
  margin-top: 0;
}

/* Default table settings */
table {
  width: 100%;
  margin-bottom: 1.875rem;
  overflow: hidden;
  border: none;
  border-collapse: collapse;
}
table td,
table th {
  padding: 0.375rem 0.1875rem;
}
table td:first-child,
table th:first-child {
  padding-left: 0;
}
table td:last-child,
table th:last-child {
  padding-right: 0;
}
table thead th {
  vertical-align: middle;
  text-align: center;
  font-weight: normal;
  color: #4D4D4D;
  background-color: #F2F2F2;
  font-size: 0.9375rem;
  border-right: 1px solid #ffffff;
}
table thead th:last-child {
  border-right: 0;
}
table tbody tr td {
  vertical-align: middle;
  font-weight: 400;
  line-height: 1.2em;
}
table tbody tr {
  /*
  &:not(.no_hover,.floor_divider):hover td {
  	background-color: $color-primary;
  	color: #ffffff;
  }
  */
}

input[type=button]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]),
input[type=submit]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]),
button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]),
.button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]) {
  display: inline-block;
  min-width: 16.125rem;
  max-width: 100%;
  padding: 1.25rem 0.625rem;
  color: #222222;
  font-size: 1.0625rem;
  font-family: "Mukta";
  font-weight: 700;
  background-color: transparent;
  border: 1px solid #222222;
  border-shadow: none;
  cursor: pointer;
  border-radius: 0.5rem;
  transform: scale(1);
  letter-spacing: 0.12em;
  transition: all 0.3s ease;
  box-sizing: border-box;
  user-select: none;
}
input[type=button]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]):hover, input[type=button]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).active,
input[type=submit]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]):hover,
input[type=submit]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).active,
button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]):hover,
button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).active,
.button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]):hover,
.button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).active {
  color: rgb(23.8011204482%, 23.8011204482%, 22.1596638655%);
  transform: scale(0.95);
}
input[type=button]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).mw-276,
input[type=submit]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).mw-276,
button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).mw-276,
.button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).mw-276 {
  min-width: 17.25rem !important;
}
input[type=button]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).smaller,
input[type=submit]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).smaller,
button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).smaller,
.button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).smaller {
  padding: 0.75rem 0.625rem;
}
input[type=button]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).margin-bottom,
input[type=submit]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).margin-bottom,
button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).margin-bottom,
.button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).margin-bottom {
  margin-bottom: 1rem;
}
input[type=button]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]) i,
input[type=submit]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]) i,
button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]) i,
.button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]) i {
  display: block;
  padding-left: 0.75rem;
  opacity: 0.27;
  font-size: 0.875rem;
}
input[type=button]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]) i.ct-icon-arrow-next-3,
input[type=submit]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]) i.ct-icon-arrow-next-3,
button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]) i.ct-icon-arrow-next-3,
.button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]) i.ct-icon-arrow-next-3 {
  font-size: 1.375rem;
}
input[type=button]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).add_shadow,
input[type=submit]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).add_shadow,
button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).add_shadow,
.button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).add_shadow {
  box-shadow: 0px 10px 20px 0px rgba(0, 0, 0, 0.16);
}
input[type=button]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).full-width,
input[type=submit]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).full-width,
button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).full-width,
.button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).full-width {
  display: block;
  width: 100%;
  min-width: 0 !important;
  padding-left: 0;
  padding-right: 0;
  text-align: center;
  box-sizing: border-box;
}
@media (max-width: 479px) {
  input[type=button]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).bp0-full-width,
  input[type=submit]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).bp0-full-width,
  button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).bp0-full-width,
  .button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).bp0-full-width {
    display: block;
    width: 100%;
    min-width: 0 !important;
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
  }
}
@media (min-width: 480px) and (max-width: 730px) {
  input[type=button]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).bp1-full-width,
  input[type=submit]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).bp1-full-width,
  button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).bp1-full-width,
  .button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).bp1-full-width {
    display: block;
    width: 100%;
    min-width: 0 !important;
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
  }
}
@media (max-width: 730px) {
  input[type=button]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).mobile-full-width,
  input[type=submit]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).mobile-full-width,
  button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).mobile-full-width,
  .button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).mobile-full-width {
    display: block;
    width: 100%;
    min-width: 0 !important;
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
  }
}
@media (min-width: 731px) {
  input[type=button]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).hide_on_desktop,
  input[type=submit]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).hide_on_desktop,
  button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).hide_on_desktop,
  .button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).hide_on_desktop {
    display: none;
  }
}
@media (max-width: 730px) {
  input[type=button]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).hide_on_mobile,
  input[type=submit]:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).hide_on_mobile,
  button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).hide_on_mobile,
  .button:not(.fancybox-button):not(.b-tl):not(.c-hamburger):not(.slider-button):not(.pm):not(.swal2-styled):not(.newsletter-submit):not(.comp_04-submit):not(.comp_10-submit):not(.comp_07-submit):not(.comp_08-tab):not(.comp_09-tab):not(.comp_09-print):not(.comp_13-print):not(.comp_12-submit):not(.po_signup-submit):not(.legal-modal-close):not(.kiosk-fullscreen):not(.soldout-reset):not([class^=vjs-]).hide_on_mobile {
    display: none;
  }
}

/*
form {
	input[type="button"],
	input[type="submit"],
	button,
	.button {
		float: right;
	}
}
*/
label:not(.b-tg):not(.soldout-item) {
  display: block;
  width: 100%;
  margin: 0 0 0.5rem;
  padding: 0;
  line-height: 1.4;
  font-weight: 400;
  font-size: 0.875rem;
  color: #222222;
  cursor: pointer;
}
label:not(.b-tg):not(.soldout-item).form-disclaimer {
  margin-bottom: 0 !important;
  font-size: 0.9375rem;
  color: #222222;
  line-height: 1.2em;
}
label:not(.b-tg):not(.soldout-item).form-disclaimer.smaller {
  font-size: 0.8125rem;
}
label:not(.b-tg):not(.soldout-item).form-disclaimer a {
  color: #222222;
  text-decoration: underline;
}
label:not(.b-tg):not(.soldout-item).form-disclaimer a:hover {
  text-decoration: none;
}
label:not(.b-tg):not(.soldout-item).text_decoration_none {
  text-decoration: none !important;
}

p.form-disclaimer {
  margin-bottom: 0 !important;
  font-size: 0.9375rem;
  color: #222222;
}
p.form-disclaimer a {
  color: #222222;
  text-decoration: underline;
}
p.form-disclaimer a:hover {
  text-decoration: none;
}

input[type=email],
input[type=number],
input[type=password],
input[type=tel],
input[type=text],
input[type=url],
textarea {
  width: 100%;
  padding: 0.75rem 0.75rem;
  margin-bottom: 1.375rem !important;
  background-color: #ffffff;
  font-size: 1.125rem;
  text-align: left;
  color: #222222;
  line-height: 1.2em;
  font-family: "Mukta", sans-serif;
  font-weight: 400;
  border: 1px solid #222222;
  border-radius: 6px;
  transition: all 0.4s ease;
  box-sizing: border-box;
}
input[type=email].required.error,
input[type=number].required.error,
input[type=password].required.error,
input[type=tel].required.error,
input[type=text].required.error,
input[type=url].required.error,
textarea.required.error {
  border: 1px solid #FF4949;
  box-shadow: #000000 0px 0px 0px, inset 0px 5px 6px -0px rgba(255, 73, 73, 0.4);
}
input[type=email].valid,
input[type=number].valid,
input[type=password].valid,
input[type=tel].valid,
input[type=text].valid,
input[type=url].valid,
textarea.valid {
  border: 1px solid #1d1d1b;
  box-shadow: #000000 0px 0px 0px, inset 0px 5px 6px -0px rgba(29, 29, 27, 0.4);
}

textarea {
  min-height: 3em;
  line-height: 1.4;
  resize: none;
}

::-webkit-input-placeholder {
  color: #666666;
  text-align: left;
}

:-moz-placeholder { /* Firefox 18- */
  color: #666666;
  text-align: left;
}

::-moz-placeholder { /* Firefox 19+ */
  color: #666666;
  text-align: left;
}

:-ms-input-placeholder {
  color: #666666;
  text-align: left;
}

input.error::-webkit-input-placeholder {
  color: #ffffff;
}

input.error:-moz-placeholder {
  color: #ffffff;
}

input.error::-moz-placeholder {
  color: #ffffff;
}

input.error:-ms-input-placeholder {
  color: #ffffff;
}

/* iCheck skins
----------------------------------- */
.icheckbox,
.iradio {
  position: relative; /*top:2px;*/
  display: inline-block;
  width: 24px;
  height: 24px;
  margin: 0 0.75rem 0 0;
  line-height: normal;
  vertical-align: baseline;
  background-image: none;
  background-repeat: repeat;
  border: 1px solid #1d1d1b;
  cursor: pointer;
  background-color: #ffffff;
  box-sizing: border-box;
}
.icheckbox.disabled,
.iradio.disabled {
  opacity: 0.6 !important;
}
.icheckbox:before,
.iradio:before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 12px;
  height: 12px;
  background-color: #1d1d1b;
  opacity: 0;
  transition: all 0.4s ease;
  transform: translate(-50%, -50%);
}
.icheckbox.checked:before,
.iradio.checked:before {
  opacity: 1;
}

.iradio {
  border-radius: 50%;
}
.iradio:before {
  border-radius: 50%;
}

.field-checkbox-wrapper {
  margin-bottom: 0.75rem !important;
}
.field-checkbox-wrapper label {
  cursor: pointer;
}

.google-map-wrapper {
  position: relative;
  width: 100%;
  height: 200px;
  background-color: #ffffff;
  /*
  border:5px solid #ffffff;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  */
}
.google-map-wrapper .google-map {
  width: 100%;
  height: 100%;
}
.google-map-wrapper .google-map-markers {
  display: none;
}
.google-map-wrapper img {
  max-width: none !important;
}
.google-map-wrapper .gm-style-mtc button {
  border-radius: 0;
}

/*
 * COMP_01 - HERO SLIDESHOW
 *
 * Markup: templates/comp_01.php
 * Behaviour: js/scripts-parts/comp_01.js ( Slick, fade mode )
 *
 * THE WHOLE BLOCK IS ONE VIEWPORT. Header + slides + the four points bar have to be visible
 * without scrolling, so the points bar lives inside this section and is part of the height
 * calculation - it is not a section of its own.
 *
 * --header-h is declared in scss/layouts/_header.scss, right next to the bar's own height and
 * from the same $header-height variable, so the header, the .dummy_header spacer and this
 * section can never disagree. It is deliberately CSS rather than a JS measurement - see the
 * comment there for what that cost.
 *
 * min-height, never height: on a short landscape phone the section has to be allowed to grow
 * rather than clip the buttons.
 */
.comp_01-wrapper {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: calc(100vh - var(--header-h));
  min-height: calc(100svh - var(--header-h));
  background-color: #f4f2ef;
  overflow: hidden;
  box-sizing: border-box;
}

/*
 * SLIDES
 */
.comp_01-slides {
  position: relative;
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
}
.comp_01-slides:not(.slick-initialized) .comp_01-slide + .comp_01-slide {
  display: none;
}

/*
 * SLIDE HEIGHT
 *
 * Deliberately NOT height:100% down the chain from the wrapper. .comp_01-slides takes its
 * height from flex-grow, which leaves its SPECIFIED height at auto, so a percentage height on
 * .slick-list resolves to auto and the whole stack collapses to the height of the text - the
 * photo then fills a ~350px band with the rest of the section left empty. Measured, not
 * theorised.
 *
 * So the slide states its own minimum instead and everything above it grows from content.
 * min-height, not height, so a slide whose text is taller than the viewport - a long headline
 * on a narrow phone - pushes the section taller rather than being clipped.
 *
 * --comp_01-features-h is published by js/scripts-parts/comp_01.js from the measured points
 * bar; the fallback below only has to be close enough for the first paint.
 */
.comp_01-slide {
  position: relative;
  align-items: center;
  overflow: hidden;
  box-sizing: border-box;
}

/*
 * TWO PROPERTIES THAT NEED THE EXTRA CLASS. vendor/_slick.scss is imported AFTER the modules and
 * carries `.slick-initialized .slick-slide { display: block }` and `.slick-slide { min-height:
 * 1px }` - both beat anything written at normal specificity above, and both were caught in the
 * browser rather than in review. Everything else on .comp_01-slide is uncontested.
 */
.comp_01-wrapper .comp_01-slides .comp_01-slide {
  display: flex;
  min-height: calc(100vh - var(--header-h) - var(--comp_01-features-h, 6rem));
  min-height: calc(100svh - var(--header-h) - var(--comp_01-features-h, 6rem));
}

/*
 * PHOTO
 *
 * Both source images are ~2.4:1 with the food hard right and clean empty table on the left -
 * that empty area is where the text sits, so object-position stays right of centre and must
 * not be moved to the middle.
 */
.comp_01-media {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: 1;
  width: auto;
  height: auto;
}
.comp_01-media picture {
  display: block;
  width: 100%;
  height: 100%;
}
.comp_01-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 78% center;
  transform: scale(1.02);
  will-change: transform;
}
.comp_01-media::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  background: linear-gradient(to right, rgba(244, 242, 239, 0.92) 0%, rgba(244, 242, 239, 0.72) 26%, rgba(244, 242, 239, 0) 56%);
  pointer-events: none;
}

/*
 * TEXT COLUMN
 *
 * Sized like .main_header-inner ( rem(1280) cap, rem(48) sides ) rather than
 * .default_content-wrapper, so the headline starts on the same left edge as the header logo.
 */
.comp_01-inner {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  padding: 0 3rem;
  box-sizing: border-box;
}

.comp_01-content {
  max-width: 35rem;
}

.comp_01-title {
  margin: 0 0 1.625rem 0;
  color: #1d1d1b;
  font-size: 4rem;
  font-weight: 200;
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: 0.005em;
}

.comp_01-rule {
  display: block;
  width: 4.5rem;
  height: 0.25rem;
  margin: 0 0 1.875rem 0;
  background-color: #be1622;
}

.comp_01-lead {
  max-width: 26.875rem;
  margin: 0 0 2.5rem 0;
  color: #222222;
  font-size: 1.1875rem;
  font-weight: 400;
  line-height: 1.55;
}

.comp_01-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 1rem;
}

/*
 * Deliberately NOT reusing .button - that chain forces min-width rem(258) and an rem(8) radius.
 * Same reasoning as the header CTA, and these match its treatment.
 */
.comp_01-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.625rem;
  padding: 1.0625rem 1.875rem;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  transition: all 0.3s ease;
  box-sizing: border-box;
}
.comp_01-button.primary {
  background-color: #be1622;
  color: #ffffff;
}
.comp_01-button.primary:hover, .comp_01-button.primary:focus-visible {
  background-color: rgb(60.1701812801%, 6.9670736219%, 10.7672955975%);
  color: #ffffff;
}
.comp_01-button.secondary {
  background-color: transparent;
  color: #1d1d1b;
  border: 1px solid rgba(29, 29, 27, 0.4);
}
.comp_01-button.secondary:hover, .comp_01-button.secondary:focus-visible {
  background-color: #1d1d1b;
  border-color: #1d1d1b;
  color: #ffffff;
}
.comp_01-button:focus-visible {
  outline: 2px solid #1d1d1b;
  outline-offset: 3px;
}

/*
 * DOTS
 *
 * Slick appends ul.slick-dots to .comp_01-slides, its default target. The pills carry a fill
 * that runs the length of one autoplay interval, so the timing is visible instead of the slide
 * changing out of nowhere. Keep the animation duration in step with autoplaySpeed in
 * js/scripts-parts/comp_01.js.
 *
 * customPaging emits a button carrying .slider-button - that class is already excluded from the
 * global button chain in _buttons.scss, which would otherwise give each dot min-width rem(258).
 */
.comp_01-slides ul.slick-dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2.5rem;
  z-index: 6;
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  padding: 0 3rem;
  list-style: none;
  box-sizing: border-box;
}
.comp_01-slides ul.slick-dots li {
  margin: 0 0.75rem 0 0;
  padding: 0;
  list-style: none;
}
.comp_01-slides ul.slick-dots li:last-child {
  margin-right: 0;
}
.comp_01-slides ul.slick-dots button.slider-button {
  position: relative;
  display: block;
  width: 3.375rem;
  height: 0.25rem;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: rgba(29, 29, 27, 0.2);
  border: 0;
  border-radius: 0;
  font-size: 0;
  cursor: pointer;
  appearance: none;
  transition: background-color 0.3s ease;
}
.comp_01-slides ul.slick-dots button.slider-button::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: #be1622;
  transform: scaleX(0);
  transform-origin: left center;
}
.comp_01-slides ul.slick-dots button.slider-button:hover {
  background-color: rgba(29, 29, 27, 0.38);
}
.comp_01-slides ul.slick-dots button.slider-button:focus-visible {
  outline: 2px solid #1d1d1b;
  outline-offset: 4px;
}
.comp_01-slides ul.slick-dots li.slick-active button.slider-button::after {
  animation: comp_01-dot-progress 7s linear forwards;
}
.comp_01-slides.is-paused ul.slick-dots li.slick-active button.slider-button::after {
  animation-play-state: paused;
}

@keyframes comp_01-dot-progress {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}
/*
 * THE FOUR POINTS
 *
 * Dark bar, inside the section. Background must stay $color-primary to match the header bar and
 * the footer.
 */
.comp_01-features {
  position: relative;
  z-index: 4;
  flex: 0 0 auto;
  width: 100%;
  background-color: #1d1d1b;
  color: #ffffff;
}

.comp_01-features-inner {
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  padding: 2.6875rem 3rem;
  box-sizing: border-box;
}

.comp_01-feature {
  display: flex;
  align-items: center;
  padding-right: 1.875rem;
}
.comp_01-feature:last-child {
  padding-right: 0;
}

.comp_01-feature-icon {
  flex: 0 0 auto;
  display: block;
  width: 2.375rem;
  height: 2.375rem;
  margin-right: 1rem;
  color: #ffffff;
}
.comp_01-feature-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.comp_01-feature-text {
  display: block;
  min-width: 0;
}

.comp_01-feature-title {
  display: block;
  margin-bottom: 0.1875rem;
  color: #ffffff;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

.comp_01-feature-note {
  display: block;
  color: rgba(255, 255, 255, 0.66);
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.35;
}

/*
 * ANIMATION
 *
 * All of it hangs off Slick's own .slick-current class - no JS timers, so the text can never
 * drift out of step with the slide it belongs to.
 */
@keyframes comp_01-kenburns-in {
  from {
    transform: scale(1.02) translate3d(0, 0, 0);
  }
  to {
    transform: scale(1.15) translate3d(-1.6%, -1.2%, 0);
  }
}
@keyframes comp_01-kenburns-out {
  from {
    transform: scale(1.15) translate3d(1.6%, 0.8%, 0);
  }
  to {
    transform: scale(1.02) translate3d(0, 0, 0);
  }
}
/*
 * THE ANIMATION IS DECLARED ON EVERY SLIDE AND ONLY PAUSED - it is never added and removed.
 *
 * It used to live on .slick-current alone. The moment a slide stopped being current the animation
 * was gone, its transform snapped back to the resting scale, and because the outgoing slide is
 * still fading out for another 900ms you watched the photo jump back to its start position on
 * every single change.
 *
 * Paused instead, the outgoing photo holds exactly where it got to and simply fades away. The
 * slides are re-armed afterwards by comp_01.js on Slick's afterChange, once they are invisible.
 */
.comp_01-media img {
  animation: comp_01-kenburns-in 14s ease-out forwards;
  animation-play-state: paused;
}

.comp_01-slide:nth-child(even) .comp_01-media img {
  animation-name: comp_01-kenburns-out;
}

.comp_01-slide.slick-current .comp_01-media img {
  animation-play-state: running;
}

.comp_01-slide.is-kenburns-reset .comp_01-media img {
  animation: none;
}

.comp_01-rule {
  transform-origin: left center;
}

/*
 * THE HEADLINE IS TYPED OUT, CHARACTER BY CHARACTER, WITH A CARET.
 *
 * Every character is its own span carrying --comp_01-char-step, its place in the typing order -
 * see templates/comp_01.php. One number, $type-step below, turns that into a delay, so the speed
 * of the whole headline is a single value in a single place.
 *
 * Nothing is clipped or masked here. The characters simply switch on, which is what typing
 * actually looks like, and it sidesteps the problem every masked approach on this component ran
 * into: Czech accents - Á, Ě, Í, Ř, Ž - paint above the line box at this line-height and get
 * sliced by any horizontal mask tight enough to be useful.
 *
 * The cost, and it is worth knowing: splitting text into spans breaks the text run, so kerning
 * between characters is lost. At this size, in uppercase, it is not perceptible - but do not
 * copy this pattern onto body copy.
 */
.comp_01-title-row {
  display: block;
  white-space: pre-wrap;
}

.comp_01-title-char {
  display: inline-block;
}

@keyframes comp_01-type-in {
  to {
    opacity: 1;
  }
}
/*
 * Resting state, gated on .js-anim, which comp_01.js adds to the wrapper before it initialises
 * Slick. The entrance is driven by .slick-current, so without that gate a JS failure would leave
 * the headline permanently invisible instead of merely unanimated.
 *
 * The short duration with no delay is what makes the OUTGOING slide tidy itself away during the
 * cross-fade instead of unwinding the full staggered entrance backwards.
 */
.comp_01-wrapper.js-anim .comp_01-title-char {
  opacity: 0;
  transition: opacity 0.25s ease;
}
.comp_01-wrapper.js-anim .comp_01-rule,
.comp_01-wrapper.js-anim .comp_01-lead,
.comp_01-wrapper.js-anim .comp_01-buttons {
  opacity: 0;
  transform: translateY(1.75rem);
  transition: opacity 0.3s ease, transform 0.3s ease;
  transition-delay: 0s;
}
.comp_01-wrapper.js-anim .comp_01-rule {
  transform: translateY(1.75rem) scaleX(0);
}

/*
 * Entrance. Every delay below is measured from the number of rows the headline actually has
 * ( --comp_01-rows, set in the template ), so the rule, the lead and the buttons always start
 * after the LAST line has gone - two line and three line headlines both behave.
 */
.comp_01-slide.slick-current .comp_01-title-char {
  animation: comp_01-type-in 0.001s linear forwards;
  animation-delay: calc(0.1s + var(--comp_01-char-step, 0) * 0.042s);
}
.comp_01-slide.slick-current .comp_01-rule,
.comp_01-slide.slick-current .comp_01-lead,
.comp_01-slide.slick-current .comp_01-buttons {
  opacity: 1;
  transform: none;
  transition: opacity 0.8s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.comp_01-slide.slick-current .comp_01-rule {
  transform: translateY(0) scaleX(1);
  transition-delay: calc(0.14s + var(--comp_01-type-steps, 20) * 0.042s);
}
.comp_01-slide.slick-current .comp_01-lead {
  transition-delay: calc(0.26s + var(--comp_01-type-steps, 20) * 0.042s);
}
.comp_01-slide.slick-current .comp_01-buttons {
  transition-delay: calc(0.4s + var(--comp_01-type-steps, 20) * 0.042s);
}

/*
 * FIRST PAINT HOLD - this is what makes the FIRST slide animate on page load.
 *
 * Slick applies .slick-current during its own init, and at that point the slide is still going
 * through `.slick-slide { display: none }` on its way to `.slick-initialized .slick-slide
 * { display: block }`. A property that changes while an element is display:none does not
 * transition - the headline simply appeared, fully formed, while every later slide animated
 * properly. Flushing the style before init does not help, because the problem is the display
 * switch inside init, not the ordering around it.
 *
 * So .is-holding pins the current slide's entrance back to its resting state, with the
 * transitions off so the pin itself is instant, and comp_01.js removes it a frame later - once
 * the slide is genuinely laid out and can transition. Five classes deep on purpose: it has to
 * outrank the .slick-current entrance above.
 */
.comp_01-wrapper.js-anim.is-holding .comp_01-slide.slick-current .comp_01-title-char {
  animation: none;
  opacity: 0;
}
.comp_01-wrapper.js-anim.is-holding .comp_01-slide.slick-current .comp_01-rule,
.comp_01-wrapper.js-anim.is-holding .comp_01-slide.slick-current .comp_01-lead,
.comp_01-wrapper.js-anim.is-holding .comp_01-slide.slick-current .comp_01-buttons {
  opacity: 0;
  transform: translateY(1.75rem);
  transition: none;
}
.comp_01-wrapper.js-anim.is-holding .comp_01-slide.slick-current .comp_01-rule {
  transform: translateY(1.75rem) scaleX(0);
}

@keyframes comp_01-feature-in {
  from {
    opacity: 0;
    transform: translateY(1rem);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.comp_01-feature {
  opacity: 0;
  animation: comp_01-feature-in 0.7s ease forwards;
  animation-delay: calc(0.55s + var(--comp_01-feature-index, 0) * 0.11s);
}

/*
 * RESPONSIVE
 */
@media (max-width: 1239px) {
  .comp_01-title {
    font-size: 3.5rem;
  }
}
@media (max-width: 979px) {
  .comp_01-media img {
    object-position: 82% center;
  }
  .comp_01-media::after {
    background: linear-gradient(to right, rgba(244, 242, 239, 0.96) 0%, rgba(244, 242, 239, 0.86) 34%, rgba(244, 242, 239, 0.1) 68%);
  }
  .comp_01-inner {
    padding: 0 2rem;
  }
  .comp_01-content {
    max-width: 30rem;
  }
  .comp_01-title {
    font-size: 3.125rem;
  }
  .comp_01-slides ul.slick-dots {
    bottom: 2rem;
    padding: 0 2rem;
  }
  .comp_01-features-inner {
    padding: 1.5rem 2rem;
  }
  .comp_01-feature {
    padding-right: 1.5rem;
  }
  .comp_01-feature:nth-child(odd) {
    padding-right: 1.5rem;
  }
  .comp_01-feature:nth-child(even) {
    padding-right: 0;
  }
  .comp_01-feature:nth-child(1), .comp_01-feature:nth-child(2) {
    margin-bottom: 1.25rem;
  }
}
/*
 * STACKED LAYOUT - the photo becomes a band under the text.
 *
 * KEYED ON SHAPE, NOT ON WIDTH, and that distinction was earned in the browser. Both source
 * images are ~2.4:1 with the food hard right; object-fit: cover in a portrait box crops the empty
 * left side away entirely and scales the bowl up until it fills the frame. At 820x1180 the
 * headline, the lead and both buttons were sitting directly on the food with no clean area left
 * anywhere - no scrim rescues that. A width-only breakpoint at 730px missed it, because a
 * portrait tablet is not a phone but has exactly the same problem.
 *
 * 4/3 is the cutoff: 1024x768 ( 4:3 exactly ) still has usable empty table on the left and keeps
 * the overlay layout; anything taller than it stacks. column-reverse, because the photo comes
 * first in the markup and has to end up second here.
 */
@media (max-width: 979px) and (max-aspect-ratio: 4/3) {
  .comp_01-slide {
    flex-direction: column-reverse;
    align-items: stretch;
  }
  .comp_01-media {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    flex: 1 1 auto;
    width: 100%;
    height: auto;
    min-height: 7.1875rem;
  }
  .comp_01-media img {
    position: absolute;
    left: 0;
    top: 0;
    object-position: 72% center;
  }
  .comp_01-media::after {
    display: none;
  }
  /*
   * The top padding is NOT arbitrary. The header's logo badge deliberately overhangs the bottom
   * of the bar - rem(150) tall at rem(10) from the top of a rem(120) bar, so rem(40) of it hangs
   * into whatever is below. In the overlay layout the headline is vertically centred and clears
   * it by a mile; stacked, the text starts at the top of the slide and the badge lands straight
   * on the first line. This is that overhang plus breathing room.
   */
  .comp_01-inner {
    flex: 0 0 auto;
    padding: 4.25rem 2rem 2.5rem;
  }
  .comp_01-content {
    max-width: none;
  }
  .comp_01-lead {
    max-width: 35rem;
  }
  .comp_01-slides ul.slick-dots {
    bottom: 1.25rem;
  }
}
/*
 * PHONE HERO - PHOTO IN FLOW UNDER THE TEXT, SECTION SIZED TO CONTENT.
 *
 * The mobile crops ( images/comp_01-0x-mobile.webp, served by the <picture> <source> at this same
 * 730px ) are composed to be shown WHOLE, not cropped. So on a portrait phone the photo stops being
 * the cover-filled band from the stacking block above and becomes a full-width image at its own
 * natural height, sitting in flow a fixed gap below the headline / lead / buttons on the white field.
 *
 * The one-viewport rule is also dropped here ( see the min-height:0 notes below ): on a tall phone it
 * ballooned the hero to the whole screen with a dead band of empty height inside, so the section is
 * left to size to its content and read compact instead - the next section is free to show beneath it.
 *
 * Scoped to portrait ( max-aspect-ratio: 4/3 ), the same key the stacking block uses, so it never
 * reaches the landscape-phone block below - that one keeps the cover treatment on purpose. Every
 * property here has to answer one the stacking block set on the same element, because that block
 * still runs on a phone.
 */
@media (max-width: 730px) and (max-aspect-ratio: 4/3) {
  .comp_01-wrapper {
    background-color: #ffffff;
    min-height: 0;
  }
  .comp_01-wrapper .comp_01-slides .comp_01-slide {
    min-height: 0;
  }
  .comp_01-slide {
    flex-direction: column;
    justify-content: flex-start;
  }
  .comp_01-wrapper .comp_01-inner {
    padding-bottom: 1rem;
  }
  .comp_01-media {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    order: 2;
    flex: 0 0 auto;
    margin-top: auto;
    width: 100%;
    aspect-ratio: 10/3;
    height: auto;
    min-height: 0;
    overflow: hidden;
  }
  .comp_01-media picture {
    display: block;
    width: 100%;
    height: 100%;
  }
  .comp_01-media img {
    position: static;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center bottom;
  }
  .comp_01-media img,
  .comp_01-slide:nth-child(even) .comp_01-media img {
    animation: none;
    transform: none;
  }
}
/*
 * PHONES - typography and the compacted points bar. Layout stacking is handled above.
 */
@media (max-width: 730px) {
  .comp_01-inner {
    padding: 4rem 1.5rem 2.125rem;
  }
  .comp_01-title {
    margin-bottom: 1.125rem;
    font-size: 2.25rem;
    font-weight: 400;
    line-height: 1.1;
  }
  .comp_01-rule {
    width: 3.5rem;
    height: 0.1875rem;
    margin-bottom: 1.25rem;
  }
  .comp_01-lead {
    max-width: none;
    margin-bottom: 1.625rem;
    font-size: 1.0625rem;
  }
  .comp_01-buttons {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }
  .comp_01-button {
    width: 100%;
    min-height: 3.25rem;
    padding: 0.9375rem 1.25rem;
    font-size: 0.8125rem;
  }
  .comp_01-slides ul.slick-dots {
    bottom: 1rem;
    padding: 0 1.5rem;
  }
  .comp_01-features-inner {
    padding: 1.25rem 1.5rem;
  }
  .comp_01-feature {
    align-items: flex-start;
    padding-right: 0.875rem;
  }
  .comp_01-feature:nth-child(odd) {
    padding-right: 0.875rem;
  }
  .comp_01-feature:nth-child(1), .comp_01-feature:nth-child(2) {
    margin-bottom: 1rem;
  }
  .comp_01-feature-icon {
    width: 1.625rem;
    height: 1.625rem;
    margin-right: 0.625rem;
  }
  .comp_01-feature-title {
    font-size: 0.75rem;
  }
  .comp_01-feature-note {
    font-size: 0.75rem;
    line-height: 1.3;
  }
}
@media (max-width: 479px) {
  .comp_01-inner {
    padding: 3.75rem 1.5rem 1.875rem;
  }
  .comp_01-title {
    font-size: 2rem;
  }
  .comp_01-lead {
    font-size: 1rem;
  }
  .comp_01-slides ul.slick-dots {
    padding: 0 1.5rem;
  }
  .comp_01-features-inner {
    padding: 1.125rem 1.5rem;
  }
}
/*
 * LANDSCAPE PHONES
 *
 * 844x390 leaves ~306px once the bar is off, for a headline, a lead, two buttons and a four
 * point bar. Nothing makes all of that fit, and pretending otherwise is what breaks it - so the
 * one-viewport rule is dropped here on purpose and the section is allowed to scroll. The photo
 * goes back behind the text ( a band plus text in 306px would give each about 150px ).
 *
 * The two paddings below are doing real work, both found by looking at it:
 *
 * - padding-left clears the logo badge SIDEWAYS. Everywhere else the headline is centred in a
 *   tall slide and passes well under the badge; here the slide is short, the text sits near the
 *   top, and the badge - rem(48) from the left and rem(150) across - lands on the first line.
 *   Moving the text to its right is the only fix that does not shrink the type further.
 * - padding-bottom reserves a lane for the dots. They are positioned from the bottom of the
 *   slide, and with a slide this short they otherwise sit on top of the second button.
 */
@media (max-width: 979px) and (max-height: 520px) {
  .comp_01-wrapper {
    min-height: 0;
  }
  .comp_01-slide {
    flex-direction: row;
    align-items: center;
  }
  .comp_01-wrapper .comp_01-slides .comp_01-slide {
    min-height: 0;
  }
  .comp_01-media {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    width: auto;
    height: auto;
  }
  .comp_01-media::after {
    display: block;
  }
  .comp_01-inner {
    padding: 1.875rem 1.75rem 4rem 14rem;
  }
  .comp_01-content {
    max-width: 38.75rem;
  }
  .comp_01-title {
    margin-bottom: 1rem;
    font-size: 1.75rem;
  }
  .comp_01-rule {
    margin-bottom: 1rem;
  }
  .comp_01-lead {
    max-width: 28.75rem;
    margin-bottom: 1.25rem;
  }
  .comp_01-buttons {
    flex-direction: row;
  }
  .comp_01-button {
    width: auto;
    min-height: 3rem;
  }
  .comp_01-slides ul.slick-dots {
    bottom: 1.25rem;
    padding-left: 14rem;
  }
}
/*
 * REDUCED MOTION - no Ken Burns, no stagger. The cross-fade stays: it is what makes the slide
 * change legible, and it does not move anything.
 */
@media (prefers-reduced-motion: reduce) {
  .comp_01-media img {
    animation: none;
    transform: scale(1.02);
  }
  .comp_01-wrapper.js-anim .comp_01-title-char,
  .comp_01-wrapper.js-anim .comp_01-rule,
  .comp_01-wrapper.js-anim .comp_01-lead,
  .comp_01-wrapper.js-anim .comp_01-buttons {
    opacity: 1;
    transform: none;
    transition: none;
    animation: none;
  }
  .comp_01-wrapper.js-anim .comp_01-rule {
    transform: scaleX(1);
  }
  .comp_01-feature {
    opacity: 1;
    animation: none;
  }
  .comp_01-slides ul.slick-dots li.slick-active button.slider-button::after {
    animation: none;
    transform: scaleX(1);
  }
}
/*
 * COMP_02 - SHORT INTRODUCTION
 *
 * Markup: templates/comp_02.php
 * Behaviour: none - the reveal is WOW.js, initialised inline in header.php.
 *
 * Photo left, bleeding to the viewport edge; text right, its right edge landing on the same
 * line as the header logo and the footer. The hero above is text-left over a photo-right, so
 * the mirror is deliberate - it reads as a rhythm rather than as the same layout twice.
 *
 * THE SECTION'S HEIGHT COMES FROM THE TEXT and the photo stretches to it, which is why there
 * are no percentage heights anywhere below - see the note on .comp_02-media.
 */
.comp_02-wrapper {
  position: relative;
  display: flex;
  align-items: stretch;
  width: 100%;
  background-color: #f4f2ef;
  box-sizing: border-box;
}

/*
 * PHOTO
 *
 * The source is comp_02-04, 1600x1200, 4:3 - NOT the 16:9 comp_02-03 it replaced, and all three
 * crops in this file changed with it. Read this before touching a ratio here.
 *
 * DESKTOP: the text column decides the height, so the box runs about 0.74:1 at 1281px and about
 * 1.11:1 at 1920px. Both are narrower than 4:3, so HEIGHT BINDS AND THE CROP IS HORIZONTAL - the
 * photo is scaled to the box height and loses width off both sides, keeping the middle 55% of the
 * frame at 1281px and 83% at 1920px. That is a good deal more of the photograph than the 16:9
 * source could give ( 42% and 62% ). Checked at the tightest of those: the drinks fridge, the
 * ordering kiosk, the serving counter with its extraction hoods and the planting are all in frame.
 *
 * CENTRE HOLDS ON THE X AXIS. The room reads right across the frame with no single subject, so
 * there is nothing to bias towards - and the 55% window, the tightest this section can produce,
 * still spans fridge to counter.
 *
 * THE 48% IN THE STACKED BAND IS LIVE NOW ( see the note there ). The 45% below is still inert:
 * nothing is trimmed vertically at desktop sizes. It stays as the guard it always was, and biasing
 * up remains right - the top of the frame is ceiling, the bottom is foreground floor.
 *
 * EVERY CHILD IS ABSOLUTE, no height:100% chain. This element has no content in flow, so its
 * own height comes entirely from the flex stretch; a percentage height resolved against that is
 * the exact trap comp_01 fell into ( see the note in _comp_01.scss ). Insets sidestep it.
 */
.comp_02-media {
  position: relative;
  flex: 0 0 46%;
  min-height: 32.5rem;
  overflow: hidden;
}
.comp_02-media picture {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  display: block;
}
.comp_02-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 45%;
}

/*
 * TEXT COLUMN
 */
.comp_02-body {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  min-width: 0;
  padding: 7.5rem 3rem 7.5rem 5.5rem;
  box-sizing: border-box;
}

.comp_02-content {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 35rem;
  /*
   * RIGHT ALIGNED IN ITS COLUMN, and this is what actually lands the text on the shared content
   * edge - the padding-right below only sets where that edge is.
   *
   * The body's content box is wider than the rem(560) cap at a good many widths, not just the
   * large ones ( measured 520.7 against 504 at 1151px, and 581 against 560 at 1920px ), and a
   * flex item parks at the START of the space it is given. Left as-is the text sat 17-21px
   * short of the header's content edge. Pushing the slack to the left instead puts it in the
   * gap to the photo, where nothing lines up against it.
   *
   * Reset in the stacked layout at 979px, where it would shove the text to the right of its
   * own full width column.
   */
  margin-left: auto;
}

/*
 * Lines the text's RIGHT edge up with the rem(1280) container the header, the hero and the
 * footer all share. 100vw and not 100%, because this column is only 54% of the viewport.
 *
 * The media query is what keeps it safe. Below the width at which rem(1280) stops filling the
 * viewport the calc goes negative, and a negative padding computes to 0 - the text would run
 * flat into the screen edge. 1152px is that width: html { font-size } is 90% between 1025 and
 * 1280px, so rem(1280) is 1152px there, and 1280px from 1281px up. One query covers both,
 * because rem() is resolved against whichever step is live.
 *
 * The scrollbar sits inside 100vw, so the padding runs about 7px generous. It is padding and
 * not width, so it cannot overflow.
 */
@media (min-width: 1152px) {
  .comp_02-body {
    padding-right: calc((100vw - 80rem) / 2 + 3rem);
  }
}
.comp_02-title {
  margin: 0 0 1.5rem 0;
  color: #1d1d1b;
  font-size: 2.875rem;
  font-weight: 200;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: 0.005em;
}

.comp_02-rule {
  display: block;
  width: 4.5rem;
  height: 0.25rem;
  margin: 0 0 1.875rem 0;
  background-color: #be1622;
}

.comp_02-text {
  margin: 0 0 1.25rem 0;
  color: #222222;
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.7;
}

/*
 * THE SIGN-OFF. Three sentence fragments, not a third paragraph, and the red flag is what says
 * so - it also gives the section its second accent mark now that there is no kicker.
 *
 * Weight 400 rather than the title's 200: _comp_01.scss records that Mukta 200 goes thin and
 * weak below about rem(40), and this is half that size.
 */
.comp_02-claim {
  max-width: 29.375rem;
  margin: 1.25rem 0 0 0;
  padding: 0 0 0 1.375rem;
  border-left: 0.25rem solid #be1622;
  color: #1d1d1b;
  font-size: 1.4375rem;
  font-weight: 400;
  line-height: 1.45;
  text-wrap: balance;
}

/*
 * Deliberately NOT reusing .button - that chain forces min-width rem(258) and an rem(8) radius.
 * Matched to .comp_01-button.secondary so the two sections' buttons are the same object.
 *
 * align-self is required: a flex item stretches across the column by default, and this one has
 * to shrink to its label.
 */
.comp_02-button {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.625rem;
  margin: 2.25rem 0 0 0;
  padding: 1.0625rem 1.875rem;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  transition: all 0.3s ease;
  box-sizing: border-box;
}
.comp_02-button.secondary {
  background-color: transparent;
  color: #1d1d1b;
  border: 1px solid rgba(29, 29, 27, 0.4);
}
.comp_02-button.secondary:hover, .comp_02-button.secondary:focus-visible {
  background-color: #1d1d1b;
  border-color: #1d1d1b;
  color: #ffffff;
}
.comp_02-button:focus-visible {
  outline: 2px solid #1d1d1b;
  outline-offset: 3px;
}

/*
 * RESPONSIVE
 *
 * READ THIS BEFORE CHANGING A NUMBER BELOW. rem() is not physical px here: html { font-size }
 * steps 100 / 90 / 70 / 80 / 90 / 100% across the _base.scss breakpoints, and those breakpoints
 * are not the ones used here. Between 731 and 979px everything renders at 0.7x, so rem(18) body
 * copy would be 12.6px on a tablet. The type in the 979px block is therefore SCALED UP in rem
 * terms purely to come out the same physical size as everywhere else - it is not "bigger on
 * tablet". Physical sizes across the whole range are listed against each block.
 */
@media (max-width: 1239px) {
  .comp_02-body {
    padding-left: 4rem;
  }
}
/*
 * THE 80% BAND. Exactly the range where _base.scss puts html { font-size } at 80%, which is why
 * the query is 980-1024 and not a round number. Landscape iPad ( 1024x768 ) sits in it, so it is
 * not the empty sliver it looks like: measured before this block, body copy rendered at 14.4px
 * and the button label at 11.2px.
 *
 * Physical sizes after: title 42px, body 16.8px, sign-off 20.8px, button 12.8px in a 53px target.
 */
@media (min-width: 980px) and (max-width: 1024px) {
  .comp_02-body {
    padding: 6.25rem 3rem 6.25rem 3.5rem;
  }
  .comp_02-content {
    max-width: 37.5rem;
  }
  .comp_02-title {
    font-size: 3.25rem;
  }
  .comp_02-rule {
    width: 5.25rem;
  }
  .comp_02-text {
    font-size: 1.3125rem;
  }
  .comp_02-claim {
    max-width: 32.5rem;
    padding-left: 1.625rem;
    font-size: 1.625rem;
  }
  .comp_02-button {
    min-height: 4.125rem;
    padding: 1.1875rem 2.125rem;
    font-size: 1rem;
  }
}
/*
 * STACKED - photo becomes a band above the text.
 *
 * 979px, matching where the header collapses to the hamburger. A 46% photo column beside a text
 * column at 70% type is cramped well before phone widths.
 *
 * Physical sizes here ( html 70% ): title 35px, body 16.8px, sign-off 21px, button 13.3px in a
 * 53px tall target.
 */
@media (max-width: 979px) {
  .comp_02-wrapper {
    flex-direction: column;
  }
  .comp_02-media {
    flex: 0 0 auto;
    min-height: 0;
    aspect-ratio: 3/2;
  }
  .comp_02-media img {
    object-position: center 48%;
  }
  .comp_02-body {
    padding: 4.5rem 2rem;
  }
  .comp_02-content {
    max-width: 47.5rem;
    margin-left: 0;
  }
  .comp_02-title {
    margin-bottom: 1.875rem;
    font-size: 3.125rem;
    font-weight: 400;
  }
  .comp_02-rule {
    width: 6rem;
    height: 0.3125rem;
    margin-bottom: 2.375rem;
  }
  .comp_02-text {
    margin-bottom: 1.625rem;
    font-size: 1.5rem;
  }
  .comp_02-claim {
    max-width: 40rem;
    margin-top: 1.625rem;
    padding-left: 1.875rem;
    border-left-width: 0.25rem;
    font-size: 1.875rem;
  }
  .comp_02-button {
    min-height: 4.75rem;
    margin-top: 2.875rem;
    padding: 1.375rem 2.5rem;
    font-size: 1.1875rem;
  }
}
/*
 * PHONES. Physical sizes ( html 90% ): title 30.6px, body 16.2px, sign-off 18.9px, button
 * 11.7px in a 47px tall target.
 */
@media (max-width: 730px) {
  /*
   * Taller crop than the tablet band - a 3:2 strip on a 390px screen is only 260px of photo.
   *
   * 4/3 IS THE SOURCE'S OWN RATIO AGAIN, as it was when comp_02-02 was 1448x1086. The 16:9
   * comp_02-03 in between needed a hand-cut mobile file, pre-cropped to exactly the region this
   * box showed; comp_02-04 is 4:3, so comp_02-04-mobile.webp is a plain 1000x750 downscale of the
   * whole frame. Nothing crops at this width - object-position is a genuine no-op here, and the
   * phone is the one place the photograph is seen entire.
   *
   * That makes the ratio load-bearing in the opposite direction from before: it is not cut to fit
   * a pre-cropped file, it MATCHES the file. Change it and the box starts cropping a picture that
   * was never cut for it. The client original is not kept in the repo - see _CHANGELOG.md for the
   * pipeline if these ever need re-cutting.
   */
  .comp_02-media {
    aspect-ratio: 4/3;
  }
  .comp_02-body {
    padding: 3.5rem 1.5rem;
  }
  .comp_02-title {
    margin-bottom: 1.25rem;
    font-size: 2.125rem;
    line-height: 1.15;
  }
  .comp_02-rule {
    width: 3.5rem;
    height: 0.1875rem;
    margin-bottom: 1.5rem;
  }
  .comp_02-text {
    margin-bottom: 1.125rem;
    font-size: 1.125rem;
    line-height: 1.65;
  }
  .comp_02-claim {
    max-width: none;
    margin-top: 1.125rem;
    padding-left: 1.25rem;
    border-left-width: 0.1875rem;
    font-size: 1.3125rem;
  }
  .comp_02-button {
    width: 100%;
    min-height: 3.25rem;
    margin-top: 1.875rem;
    padding: 0.9375rem 1.25rem;
    font-size: 0.8125rem;
  }
}
@media (max-width: 479px) {
  .comp_02-body {
    padding: 3rem 1.5rem;
  }
  .comp_02-title {
    font-size: 1.875rem;
  }
  .comp_02-text {
    font-size: 1.0625rem;
  }
  .comp_02-claim {
    font-size: 1.25rem;
  }
}
/*
 * REDUCED MOTION
 *
 * WOW.js writes animation-name as an INLINE style, so nothing but !important reaches it. The
 * visibility does not need the same treatment: header.php's .wow { visibility: hidden } is a
 * single class and loses to the two below on specificity.
 */
@media (prefers-reduced-motion: reduce) {
  .comp_02-media.wow,
  .comp_02-content.wow {
    visibility: visible;
    animation: none !important;
  }
}
/*
 * COMP_03 - CONTACT
 *
 * Markup: templates/comp_03.php
 * Behaviour: js/scripts-parts/comp_03.js ( styled Google Map, guarded ). The reveal is
 * WOW.js, initialised inline in header.php.
 *
 * Contact info LEFT on cream, map RIGHT, a dark card overlaid on the map's bottom-right.
 * This is the MIRROR of comp_02 ( photo-left / text-right ) - text on the left this time -
 * so the three top sections alternate side to side instead of repeating one split.
 *
 * THE SECTION'S HEIGHT COMES FROM THE LEFT COLUMN and the map stretches to it, which is why
 * there are no percentage heights on the map: .comp_03-mapcol has nothing in flow, its height
 * is the flex stretch, and .comp_03-map is inset:0 against it. A height:100% chain would
 * resolve against nothing - the exact trap comp_01 / comp_02 documented. Insets sidestep it.
 */
.comp_03-wrapper {
  position: relative;
  display: flex;
  align-items: stretch;
  width: 100%;
  background-color: #f4f2ef;
  min-height: 35rem;
  box-sizing: border-box;
}

/*
 * LEFT - CONTACT COLUMN
 *
 * 46%, the mirror of comp_02's 46% photo. The map column ( flex:1 1 auto ) takes the rest.
 */
.comp_03-body {
  flex: 0 0 46%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 7.5rem 4.5rem 7.5rem 5.5rem;
  box-sizing: border-box;
}

.comp_03-content {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 32.5rem;
}

/*
 * Lands the text's LEFT edge on the rem(1280) container the header, the hero and the footer
 * all share. The mirror of comp_02, which aligned its RIGHT edge - here the aligned edge is
 * the one the padding sits on, so no margin trick is needed, the padding is the whole story.
 *
 * The 1152px guard is the one documented in _comp_02.scss: html { font-size } is 90% between
 * 1025 and 1280px, so rem(1280) is 1152px there and the calc stays positive from 1152 up. The
 * +rem(48) floor keeps it positive across the 1240-1279 sliver where html steps back to 100%.
 * Below 1152 the base rem(88) padding-left is left in place.
 */
@media (min-width: 1152px) {
  .comp_03-body {
    padding-left: calc((100vw - 80rem) / 2 + 3rem);
  }
}
.comp_03-title {
  margin: 0 0 1.5rem 0;
  color: #1d1d1b;
  font-size: 2.875rem;
  font-weight: 200;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: 0.005em;
}

.comp_03-rule {
  display: block;
  width: 4.5rem;
  height: 0.25rem;
  margin: 0 0 2.5rem 0;
  background-color: #be1622;
}

/*
 * THE CONTACT LIST
 *
 * <address> in the markup - reset the italic here.
 */
.comp_03-list {
  font-style: normal;
}

.comp_03-item {
  display: flex;
  align-items: flex-start;
  margin: 0 0 1.625rem 0;
}
.comp_03-item:last-child {
  margin-bottom: 0;
}

.comp_03-item-icon {
  flex: 0 0 auto;
  margin: 0.125rem 1.25rem 0 0;
  color: #1d1d1b;
}
.comp_03-item-icon svg {
  display: block;
  width: 1.625rem;
  height: 1.625rem;
}

.comp_03-item-body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.comp_03-item-name {
  color: #1d1d1b;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.35;
}

.comp_03-item-sub,
.comp_03-item-label {
  margin-top: 0.1875rem;
  color: rgba(29, 29, 27, 0.55);
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.4;
}

.comp_03-item-line {
  color: #222222;
  font-size: 1.0625rem;
  font-weight: 400;
  line-height: 1.5;
}
.comp_03-item-line.strong {
  color: #1d1d1b;
  font-weight: 600;
}

a.comp_03-item-line {
  text-decoration: none;
  transition: color 0.25s ease;
}
a.comp_03-item-line:hover, a.comp_03-item-line:focus-visible {
  color: #be1622;
}
a.comp_03-item-line:focus-visible {
  outline: 2px solid #be1622;
  outline-offset: 3px;
}

/*
 * THE CATERING NOTE. The .comp_02-claim red-flag treatment, one step smaller so it reads as a
 * note under the list rather than as a heading competing with the title.
 */
.comp_03-note {
  max-width: 27.5rem;
  margin: 2.5rem 0 0 0;
  padding: 0 0 0 1.375rem;
  border-left: 0.25rem solid #be1622;
  color: #1d1d1b;
  font-size: 1.0625rem;
  font-weight: 400;
  line-height: 1.6;
  text-wrap: pretty;
}

.comp_03-operator {
  margin: 1.875rem 0 0 0;
  padding: 1.5rem 0 0 0;
  border-top: 1px solid rgba(29, 29, 27, 0.12);
  color: rgba(29, 29, 27, 0.6);
  font-size: 0.875rem;
  line-height: 1.5;
}

/*
 * RIGHT - MAP COLUMN
 *
 * The map fills the column via inset:0 ( see the wrapper note ). The grey background is what
 * the slot shows before Google paints, and permanently if no API key is set in Ava Options -
 * the section must never look broken while it waits for the key.
 */
.comp_03-mapcol {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 35rem;
}

.comp_03-map {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background-color: #e8e6e2;
}
.comp_03-map img {
  max-width: none;
}
.comp_03-map button {
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  letter-spacing: normal !important;
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  transform: none !important;
}

/*
 * THE DARK CARD
 *
 * A direct child of .comp_03-wrapper, absolutely positioned over the map's bottom-right. Its
 * RIGHT edge lands on the same rem(1280) content line as the text on the left ( and the header
 * and footer ), so the whole section sits on one grid and the button is never clipped off the
 * screen edge. 1152px guard as above.
 */
.comp_03-box {
  position: absolute;
  z-index: 2;
  right: 3rem;
  bottom: 4.5rem;
  width: 22.5rem;
  padding: 2.875rem 2.75rem;
  background-color: #1d1d1b;
  color: #ffffff;
  box-sizing: border-box;
}

@media (min-width: 1152px) {
  .comp_03-box {
    right: calc((100vw - 80rem) / 2 + 3rem);
  }
}
.comp_03-box-title {
  margin: 0 0 1.25rem 0;
  color: #ffffff;
  font-size: 1.875rem;
  font-weight: 400;
  line-height: 1.15;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.comp_03-box-rule {
  display: block;
  width: 3rem;
  height: 0.1875rem;
  margin: 0 0 1.375rem 0;
  background-color: #be1622;
}

.comp_03-box-text {
  margin: 0 0 1.875rem 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.6;
  text-wrap: pretty;
}

/*
 * Deliberately NOT .button. The dark-inverted mirror of .comp_02-button.secondary: outlined
 * white on the dark card, filling to white on hover.
 */
.comp_03-box-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  padding: 1rem 1.75rem;
  color: #ffffff;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.45);
  transition: all 0.3s ease;
  box-sizing: border-box;
}
.comp_03-box-button:hover, .comp_03-box-button:focus-visible {
  background-color: #ffffff;
  border-color: #ffffff;
  color: #1d1d1b;
}
.comp_03-box-button:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

/*
 * RESPONSIVE
 *
 * READ THIS BEFORE CHANGING A NUMBER BELOW. rem() is not physical px here: html { font-size }
 * steps 100 / 90 / 70 / 80 / 90 / 100% across the _base.scss breakpoints, and those are not the
 * breakpoints used here. Type is scaled in rem terms per band purely to come out the same
 * physical size - it is not "bigger on tablet". Physical sizes are noted against each block.
 * Same approach, and the same reasoning, as _comp_02.scss.
 */
/*
 * THE 80% BAND. Exactly where _base.scss puts html { font-size } at 80%, which is why the query
 * is 980-1024 and not round. Landscape iPad ( 1024x768 ) sits in it. Type scaled up in rem so
 * it lands at the same physical size as elsewhere.
 */
@media (min-width: 980px) and (max-width: 1024px) {
  .comp_03-body {
    padding: 6.25rem 3.5rem 6.25rem 3.5rem;
  }
  .comp_03-title {
    font-size: 3.25rem;
  }
  .comp_03-rule {
    width: 5.25rem;
  }
  .comp_03-item-name {
    font-size: 1.3125rem;
  }
  .comp_03-item-sub,
  .comp_03-item-label {
    font-size: 1rem;
  }
  .comp_03-item-line {
    font-size: 1.25rem;
  }
  .comp_03-note {
    font-size: 1.25rem;
  }
  .comp_03-operator {
    font-size: 1rem;
  }
  .comp_03-box {
    right: 2.5rem;
    width: 21.25rem;
    padding: 2.5rem 2.375rem;
  }
  .comp_03-box-title {
    font-size: 2.125rem;
  }
  .comp_03-box-text {
    font-size: 1.0625rem;
  }
  .comp_03-box-button {
    min-height: 3.75rem;
    font-size: 0.9375rem;
  }
}
/*
 * STACKED - text on top, map below it as a band, dark card as a solid block under the map.
 *
 * 979px, matching where the header collapses to the hamburger and where comp_02 stacks. The
 * card LEAVES the overlay here: overlaid on a ~300px-tall map band it would hide most of it, so
 * it becomes position:static and flows as the third item, a full-width dark block. This is why
 * it is a child of .comp_03-wrapper and not of .comp_03-mapcol.
 *
 * Physical sizes ( html 70% ): title 35px, item value 16.8px, note 15.4px, card title 24.5px.
 */
@media (max-width: 979px) {
  .comp_03-wrapper {
    flex-direction: column;
    min-height: 0;
  }
  .comp_03-body {
    flex: 0 0 auto;
    padding: 4.5rem 2rem;
  }
  .comp_03-content {
    max-width: 40rem;
  }
  .comp_03-title {
    margin-bottom: 1.875rem;
    font-size: 3.125rem;
    font-weight: 400;
  }
  .comp_03-rule {
    width: 6rem;
    height: 0.3125rem;
    margin-bottom: 2.375rem;
  }
  .comp_03-item {
    margin-bottom: 2.125rem;
  }
  .comp_03-item-icon {
    margin-right: 1.625rem;
  }
  .comp_03-item-icon svg {
    width: 2.125rem;
    height: 2.125rem;
  }
  .comp_03-item-name {
    font-size: 1.5rem;
  }
  .comp_03-item-sub,
  .comp_03-item-label {
    font-size: 1.1875rem;
  }
  .comp_03-item-line {
    font-size: 1.5rem;
  }
  .comp_03-note {
    max-width: 35rem;
    margin-top: 3rem;
    font-size: 1.375rem;
  }
  .comp_03-operator {
    margin-top: 2.375rem;
    padding-top: 1.875rem;
    font-size: 1.1875rem;
  }
  .comp_03-mapcol {
    flex: 0 0 auto;
    min-height: 0;
    aspect-ratio: 16/10;
  }
  .comp_03-box {
    position: static;
    right: auto;
    bottom: auto;
    width: 100%;
    padding: 3.5rem 2rem;
  }
  .comp_03-box-title {
    font-size: 2.5rem;
  }
  .comp_03-box-rule {
    width: 4rem;
    height: 0.25rem;
    margin-bottom: 1.875rem;
  }
  .comp_03-box-text {
    max-width: 35rem;
    font-size: 1.3125rem;
  }
  .comp_03-box-button {
    min-height: 4.5rem;
    padding: 1.375rem 2.5rem;
    font-size: 1.125rem;
  }
}
/*
 * PHONES. Physical sizes ( html 90% ): title 30.6px, item value 15.3px, card title 27px.
 */
@media (max-width: 730px) {
  .comp_03-body {
    padding: 3.5rem 1.5rem;
  }
  .comp_03-title {
    margin-bottom: 1.25rem;
    font-size: 2.125rem;
    line-height: 1.15;
  }
  .comp_03-rule {
    width: 3.5rem;
    height: 0.1875rem;
    margin-bottom: 1.5rem;
  }
  .comp_03-item {
    margin-bottom: 1.5rem;
  }
  .comp_03-item-icon {
    margin-right: 1.125rem;
  }
  .comp_03-item-icon svg {
    width: 1.625rem;
    height: 1.625rem;
  }
  .comp_03-item-name {
    font-size: 1.125rem;
  }
  .comp_03-item-sub,
  .comp_03-item-label {
    font-size: 0.875rem;
  }
  .comp_03-item-line {
    font-size: 1.0625rem;
  }
  .comp_03-note {
    max-width: none;
    margin-top: 2.125rem;
    font-size: 1.0625rem;
  }
  .comp_03-operator {
    margin-top: 1.75rem;
    padding-top: 1.375rem;
    font-size: 0.875rem;
  }
  .comp_03-mapcol {
    aspect-ratio: 4/3;
  }
  .comp_03-box {
    padding: 2.5rem 1.5rem;
  }
  .comp_03-box-title {
    font-size: 1.875rem;
  }
  .comp_03-box-rule {
    width: 3rem;
    height: 0.1875rem;
    margin-bottom: 1.375rem;
  }
  .comp_03-box-text {
    font-size: 1rem;
  }
  .comp_03-box-button {
    width: 100%;
    min-height: 3.25rem;
    padding: 1rem 1.25rem;
    font-size: 0.8125rem;
  }
}
@media (max-width: 479px) {
  .comp_03-body {
    padding: 3rem 1.5rem;
  }
  .comp_03-title {
    font-size: 1.875rem;
  }
  .comp_03-item-line {
    font-size: 1rem;
  }
  .comp_03-note {
    font-size: 1rem;
  }
}
/*
 * REDUCED MOTION
 *
 * WOW.js writes animation-name as an INLINE style, so nothing but !important reaches it. The
 * visibility does not need the same treatment: header.php's .wow { visibility: hidden } is a
 * single class and loses to the rule below on specificity.
 */
@media (prefers-reduced-motion: reduce) {
  .comp_03-content.wow,
  .comp_03-box.wow {
    visibility: visible;
    animation: none !important;
  }
}
/*
 * COMP_05 - O NÁS: ABOUT HERO
 *
 * Markup: templates/comp_05.php
 * Behaviour: none - the reveal is WOW.js, initialised inline in header.php.
 *
 * Text left on the cream ground, photo right bleeding to the viewport edge - the MIRROR of the
 * homepage comp_02 ( photo-left / text-right ). The text's LEFT edge lands on the same rem(1280)
 * container line the header logo and the footer share, the way comp_02's text lands on the right
 * edge of it.
 *
 * THE SECTION'S HEIGHT COMES FROM THE TEXT and the photo stretches to it - no percentage heights
 * anywhere ( same reasoning as comp_02: a % height resolved against a flex-stretched box is the
 * trap comp_01 fell into ). The photo box uses absolute insets instead.
 */
.comp_05-wrapper {
  position: relative;
  display: flex;
  align-items: stretch;
  width: 100%;
  background-color: #f4f2ef;
  box-sizing: border-box;
}

/*
 * TEXT COLUMN - left.
 */
.comp_05-body {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  min-width: 0;
  padding: 7.5rem 5.5rem 7.5rem 3rem;
  box-sizing: border-box;
}

/*
 * Lines the text's LEFT edge up with the rem(1280) container. Mirror of comp_02's padding-right
 * calc, and safe for the same reason: below the width where rem(1280) stops filling the viewport
 * the calc would go negative ( computes to 0 ), so it is gated to min-width 1152px - the width at
 * which rem(1280) is 1152px ( html { font-size } is 90% between 1025 and 1280px ) and 1280px above.
 */
@media (min-width: 1152px) {
  .comp_05-body {
    padding-left: calc((100vw - 80rem) / 2 + 3rem);
  }
}
.comp_05-content {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 35rem;
}

/*
 * KICKER - the client's tagline as an eyebrow. Not uppercase: the three fragments keep their
 * sentence case and periods, which read better than shouting them. Accent red, spaced, semibold.
 */
.comp_05-kicker {
  display: block;
  margin: 0 0 1.125rem 0;
  color: #be1622;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.06em;
}

.comp_05-title {
  margin: 0 0 1.5rem 0;
  color: #1d1d1b;
  font-size: 3.75rem;
  font-weight: 200;
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: 0.005em;
}

.comp_05-rule {
  display: block;
  width: 4.5rem;
  height: 0.25rem;
  margin: 0 0 1.875rem 0;
  background-color: #be1622;
}

.comp_05-text {
  margin: 0 0 1.25rem 0;
  color: #222222;
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.7;
}

/*
 * THE SIGN-OFF - the client's closer, red-flag treatment. Same object as comp_02's .comp_02-claim
 * ( weight 400, not the title's 200 - Mukta 200 goes thin below about rem(40) ).
 */
.comp_05-claim {
  max-width: 29.375rem;
  margin: 1.25rem 0 0 0;
  padding: 0 0 0 1.375rem;
  border-left: 0.25rem solid #be1622;
  color: #1d1d1b;
  font-size: 1.4375rem;
  font-weight: 400;
  line-height: 1.45;
  text-wrap: balance;
}

/*
 * Deliberately NOT .button - that chain forces min-width rem(258) and a rem(8) radius. Matched to
 * .comp_02-button.secondary so the About blocks' buttons are the same object. align-self shrinks
 * it to its label ( a flex item stretches the column otherwise ).
 */
.comp_05-button {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.625rem;
  margin: 2.25rem 0 0 0;
  padding: 1.0625rem 1.875rem;
  background-color: transparent;
  color: #1d1d1b;
  border: 1px solid rgba(29, 29, 27, 0.4);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  transition: all 0.3s ease;
  box-sizing: border-box;
}
.comp_05-button:hover, .comp_05-button:focus-visible {
  background-color: #1d1d1b;
  border-color: #1d1d1b;
  color: #ffffff;
}
.comp_05-button:focus-visible {
  outline: 2px solid #1d1d1b;
  outline-offset: 3px;
}

/*
 * PHOTO - right, bleeding to the viewport edge. Every child is absolute, no height:100% chain -
 * this element has no content in flow, so its height comes entirely from the flex stretch.
 */
.comp_05-media {
  position: relative;
  flex: 0 0 48%;
  min-height: 35rem;
  overflow: hidden;
}
.comp_05-media picture {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  display: block;
}
.comp_05-media img {
  width: 100%;
  height: 100%;
  /*
   * comp_05-04 is 4:3 ( 1600x1200 ), so the crop direction now depends on the breakpoint. With
   * the 16:9 comp_05-03 it was horizontal everywhere.
   *
   * DESKTOP: the text drives the height, so the box runs about 0.77:1 at 1281px and about
   * 1.15:1 at 1920px. Both are narrower than 4:3, so HEIGHT binds and the crop is horizontal -
   * the middle 58% of the frame at 1281px, 86% at 1920px. The 16:9 source only gave 43% and
   * 65%, so noticeably more of the photograph survives now.
   *
   * CENTRE ON THE X AXIS. The pots sit at roughly 30-58% across, so even the 58% window holds
   * them clear of both edges, with the out-of-focus ficus filling the right of the frame.
   *
   * THE 40% IS LIVE IN THE STACKED BAND ONLY, where 3:2 is wider than the source and 11% comes
   * off the height. It is inert here - nothing crops vertically at desktop sizes. 40% rather
   * than `top` because it trims a little more off the empty tabletop below than off the blurred
   * room above, which is the right way round for this photograph.
   */
  object-fit: cover;
  object-position: center 40%;
}

/*
 * THERE IS NO LOGO IN THIS SECTION ANY MORE, and the reason is history rather than intent. A
 * .comp_05-badge CSS decal used to sit over the photo; it was dropped when comp_05-02 landed,
 * because that photo carried the "Na talíři" logo inside it twice and the decal would have made
 * three. No photo since - not comp_05-03, not comp_05-04 - has carried a mark at all, so the
 * removal has long outlived its reason.
 * Left as-is deliberately - putting a mark back is a design call on the O nás hero, not a revert.
 */
/*
 * RESPONSIVE
 *
 * READ THIS BEFORE CHANGING A NUMBER BELOW. rem() is not physical px here: html { font-size } steps
 * 100 / 90 / 70 / 80 / 90 / 100% across the _base.scss breakpoints, and those breakpoints are not
 * the ones used here. Between 731 and 979px everything renders at 0.7x, so type in that band is
 * SCALED UP in rem terms purely to come out the same physical size - the same approach as comp_02.
 */
@media (max-width: 1239px) {
  .comp_05-body {
    padding: 7.5rem 4rem 7.5rem 4rem;
  }
}
/*
 * THE 80% BAND - exactly where _base.scss puts html { font-size } at 80% ( landscape iPad sits in
 * it ), which is why the query is 980-1024 and not round. Type scaled up in rem to land the same
 * physical size as elsewhere. Physical: kicker ~12px, title 48px, body 16.8px, claim 20.8px.
 */
@media (min-width: 980px) and (max-width: 1024px) {
  .comp_05-body {
    padding: 6.25rem 3.5rem 6.25rem 3.5rem;
  }
  .comp_05-content {
    max-width: 37.5rem;
  }
  .comp_05-kicker {
    font-size: 1.0625rem;
  }
  .comp_05-title {
    font-size: 4.125rem;
  }
  .comp_05-rule {
    width: 5.25rem;
  }
  .comp_05-text {
    font-size: 1.3125rem;
  }
  .comp_05-claim {
    max-width: 32.5rem;
    padding-left: 1.625rem;
    font-size: 1.625rem;
  }
  .comp_05-button {
    min-height: 4.125rem;
    padding: 1.1875rem 2.125rem;
    font-size: 1rem;
  }
}
/*
 * STACKED - photo becomes a band above the text. 979px, matching where the header collapses and
 * comp_02 / comp_03 stack. Physical sizes ( html 70% ): title 42px, body 16.8px, claim 21px.
 */
@media (max-width: 979px) {
  .comp_05-wrapper {
    flex-direction: column-reverse;
  }
  .comp_05-media {
    flex: 0 0 auto;
    min-height: 0;
    aspect-ratio: 3/2;
  }
  .comp_05-media img {
    object-position: center 40%;
  }
  .comp_05-body {
    padding: 4.5rem 2rem;
  }
  .comp_05-content {
    max-width: 47.5rem;
  }
  .comp_05-kicker {
    margin-bottom: 1.375rem;
    font-size: 1.25rem;
  }
  .comp_05-title {
    margin-bottom: 1.875rem;
    font-size: 4.125rem;
    font-weight: 400;
  }
  .comp_05-rule {
    width: 6rem;
    height: 0.3125rem;
    margin-bottom: 2.375rem;
  }
  .comp_05-text {
    margin-bottom: 1.625rem;
    font-size: 1.5rem;
  }
  .comp_05-claim {
    max-width: 40rem;
    margin-top: 1.625rem;
    padding-left: 1.875rem;
    font-size: 1.875rem;
  }
  .comp_05-button {
    min-height: 4.75rem;
    margin-top: 2.875rem;
    padding: 1.375rem 2.5rem;
    font-size: 1.1875rem;
  }
}
/*
 * PHONES. Physical sizes ( html 90% ): title 32.4px, body 16.2px, claim 18.9px, button 11.7px.
 */
@media (max-width: 730px) {
  /*
   * 4/3 IS THE SOURCE'S OWN RATIO. comp_05-04-mobile.webp is a plain 1000x750 downscale of the
   * whole frame, not the hand-cut region comp_05-03-mobile.webp had to be - that file existed
   * because a 16:9 source needed pre-cropping to keep the QR sign legible, and there is no sign
   * and no text of any kind in this photograph to protect.
   *
   * So the ratio is load-bearing in the opposite direction from before: it is not cut to fit a
   * pre-cropped file, it MATCHES the file, and nothing crops at this width. Change it and the box
   * starts cropping a picture that was never cut for it. The client original is not kept in the
   * repo - see _CHANGELOG.md for the pipeline if these ever need re-cutting.
   */
  .comp_05-media {
    aspect-ratio: 4/3;
  }
  .comp_05-body {
    padding: 3.5rem 1.5rem;
  }
  .comp_05-kicker {
    margin-bottom: 1rem;
    font-size: 0.9375rem;
  }
  .comp_05-title {
    margin-bottom: 1.25rem;
    font-size: 2.25rem;
    line-height: 1.1;
  }
  .comp_05-rule {
    width: 3.5rem;
    height: 0.1875rem;
    margin-bottom: 1.5rem;
  }
  .comp_05-text {
    margin-bottom: 1.125rem;
    font-size: 1.125rem;
    line-height: 1.65;
  }
  .comp_05-claim {
    max-width: none;
    margin-top: 1.125rem;
    padding-left: 1.25rem;
    border-left-width: 0.1875rem;
    font-size: 1.3125rem;
  }
  .comp_05-button {
    width: 100%;
    min-height: 3.25rem;
    margin-top: 1.875rem;
    padding: 0.9375rem 1.25rem;
    font-size: 0.8125rem;
  }
}
@media (max-width: 479px) {
  .comp_05-body {
    padding: 3rem 1.5rem;
  }
  .comp_05-title {
    font-size: 2rem;
  }
  .comp_05-text {
    font-size: 1.0625rem;
  }
  .comp_05-claim {
    font-size: 1.25rem;
  }
}
/*
 * REDUCED MOTION - WOW.js writes animation-name inline, so only !important reaches it.
 */
@media (prefers-reduced-motion: reduce) {
  .comp_05-media.wow,
  .comp_05-content.wow {
    visibility: visible;
    animation: none !important;
  }
}
/*
 * COMP_06 - O NÁS: VALUES STRIP
 *
 * Markup: templates/comp_06.php
 * Behaviour: none - WOW.js reveal, initialised inline in header.php.
 *
 * Four centred, icon-led values on a white band between the cream comp_05 and comp_07. It reuses
 * the homepage comp_01 feature-bar treatment ( the irej-grid, the inline-SVG glyphs stroked with
 * currentColor ) so the two pages share a mark, but stands alone on white as its own section here
 * rather than sitting inside a hero.
 *
 * The grid columns come from _grid-irej.scss ( col-1-4 -> bp2/bp1/bp0-col-1-2 ), so four across on
 * desktop become two across from 979px down. The row gap for that wrapped state is the values'
 * own vertical padding plus the margin added in the stacked band below.
 */
.comp_06-wrapper {
  width: 100%;
  padding: 6rem 3rem;
  background-color: #ffffff;
  box-sizing: border-box;
}

.comp_06-inner {
  max-width: 80rem;
  margin: 0 auto;
}

.comp_06-value {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1rem 1.5rem;
  text-align: center;
  box-sizing: border-box;
}

.comp_06-value-icon {
  display: block;
  margin: 0 0 1.25rem 0;
  color: #1d1d1b;
}
.comp_06-value-icon svg {
  display: block;
  width: 3.5rem;
  height: 3.5rem;
}

.comp_06-value-text {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.comp_06-value-title {
  margin: 0 0 0.625rem 0;
  color: #1d1d1b;
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.comp_06-value-note {
  max-width: 15rem;
  color: #222222;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.6;
  text-wrap: balance;
}

/*
 * RESPONSIVE
 *
 * Same html { font-size } scaling caveat as the other comps: type is scaled up in rem in the low
 * bands purely to hold its physical size. From 979px the grid is two across, so the values need a
 * row gap - added as a bottom margin, cleared on the last row.
 */
/*
 * THE 80% BAND ( landscape iPad ). Physical: icon 48px, title ~13.6px, note ~12.8px. Four across
 * still fits, so no row margin yet.
 */
@media (min-width: 980px) and (max-width: 1024px) {
  .comp_06-value-icon svg {
    width: 4rem;
    height: 4rem;
  }
  .comp_06-value-title {
    font-size: 1.1875rem;
  }
  .comp_06-value-note {
    max-width: 16.25rem;
    font-size: 1.125rem;
  }
}
/*
 * TWO ACROSS - 979px, where the grid drops to bp2/bp1/bp0-col-1-2. Physical sizes ( html 70% ):
 * title ~14px, note ~13px. The bottom margin is the row gap; the last two cells clear it.
 */
@media (max-width: 979px) {
  .comp_06-wrapper {
    padding: 4.5rem 2rem;
  }
  .comp_06-value {
    margin-bottom: 3rem;
    padding: 1rem 1.25rem;
  }
  .comp_06-value:nth-last-child(-n+2) {
    margin-bottom: 0;
  }
  .comp_06-value-icon {
    margin-bottom: 1.5rem;
  }
  .comp_06-value-icon svg {
    width: 5rem;
    height: 5rem;
  }
  .comp_06-value-title {
    font-size: 1.25rem;
  }
  .comp_06-value-note {
    max-width: 18.75rem;
    font-size: 1.1875rem;
  }
}
/*
 * PHONES ( html 90% ). Physical: title ~14.4px, note ~14.4px. Still two across ( bp0-col-1-2 ).
 */
@media (max-width: 730px) {
  .comp_06-wrapper {
    padding: 3.5rem 1.5rem;
  }
  .comp_06-value {
    margin-bottom: 2.25rem;
    padding: 0.75rem 0.625rem;
  }
  .comp_06-value-icon {
    margin-bottom: 1.125rem;
  }
  .comp_06-value-icon svg {
    width: 3.25rem;
    height: 3.25rem;
  }
  .comp_06-value-title {
    font-size: 1rem;
    letter-spacing: 0.04em;
  }
  .comp_06-value-note {
    max-width: none;
    font-size: 1rem;
  }
}
/*
 * REDUCED MOTION - WOW.js writes animation-name inline, so only !important reaches it. The
 * data-wow-delay stagger is inert once animation is off.
 */
@media (prefers-reduced-motion: reduce) {
  .comp_06-value.wow {
    visibility: visible;
    animation: none !important;
  }
}
/*
 * COMP_07 - O NÁS: FEEDBACK + CONTACT FORM
 *
 * Markup: templates/comp_07.php
 * Behaviour: js/scripts-parts/comp_07.js ( AJAX submit ). The reveal is WOW.js, initialised
 * inline in header.php.
 *
 * Client copy LEFT on the cream ground, the contact form in a DARK card RIGHT. text-left /
 * card-right echoes comp_03 ( contact info left / media right ), so the two contact moments across
 * the site read the same way.
 *
 * THE CARD IS DELIBERATELY NOT A WHITE BOXED FORM. It is a near-black $color-primary card with
 * light text and UNDERLINE fields ( no boxes ) - a strong inversion so it does not read like a
 * generic contact form. The fields still inherit _inputs.scss but override it heavily under the
 * .comp_07-form scope: transparent ground, a single bottom hairline that turns red on focus, light
 * text, plus autofill masking and a red-underline .error state that beats _inputs' full-border one.
 * The consent checkbox is the iCheck-skinned wrapper ( light border on the dark card, red fill on
 * check ). The red submit is the .comp_04-submit / .comp_01-button.primary object ( excluded from
 * the global .button chain via :not(.comp_07-submit) in _buttons.scss ).
 */
.comp_07-wrapper {
  width: 100%;
  background-color: #f4f2ef;
  box-sizing: border-box;
}

.comp_07-inner {
  display: flex;
  align-items: stretch;
  max-width: 80rem;
  margin: 0 auto;
  padding: 7.5rem 3rem;
  gap: 5rem;
  box-sizing: border-box;
}

/*
 * LEFT - the feedback copy.
 */
.comp_07-body {
  flex: 1 1 48%;
  display: flex;
  align-items: center;
  min-width: 0;
}

.comp_07-content {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 32.5rem;
}

.comp_07-title {
  margin: 0 0 1.5rem 0;
  color: #1d1d1b;
  font-size: 2.875rem;
  font-weight: 200;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: 0.005em;
}

.comp_07-rule {
  display: block;
  width: 4.5rem;
  height: 0.25rem;
  margin: 0 0 1.875rem 0;
  background-color: #be1622;
}

.comp_07-text {
  margin: 0 0 1.25rem 0;
  color: #222222;
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.7;
}

/*
 * "KRÁTKÁ VÝZVA" - the two prompt/answer fragments, red-flag treatment ( same mark as comp_02's
 * claim ). Its own block so the fragments read as a callout, not another paragraph.
 */
.comp_07-challenge {
  margin: 1.75rem 0 0 0;
  padding: 0 0 0 1.375rem;
  border-left: 0.25rem solid #be1622;
}

.comp_07-challenge-title {
  display: block;
  margin: 0 0 0.75rem 0;
  color: #be1622;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.comp_07-challenge-line {
  display: block;
  color: #1d1d1b;
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.5;
}
.comp_07-challenge-line + .comp_07-challenge-line {
  margin-top: 0.375rem;
}

/*
 * RIGHT - the form card.
 */
.comp_07-formcol {
  flex: 1 1 52%;
  display: flex;
  min-width: 0;
}

/*
 * SINGLE-COLUMN STATE. The left copy column is commented out in templates/comp_07.php, so the form
 * is the only child of .comp_07-inner and would otherwise stretch the full rem(1184) of it - which
 * reads as a page, not as a form.
 *
 * :only-child rather than a modifier class on the markup: uncommenting that <div> restores the
 * two-column layout on its own, with nothing here left stale behind it. ( 0,2,0 ), so it also beats
 * the plain .comp_07-formcol flex in the stacked band below.
 */
.comp_07-formcol:only-child {
  flex: 0 1 auto;
  width: 100%;
  max-width: 45rem;
  margin: 0 auto;
}

/*
 * DARK CARD - a deliberate inversion so the contact form does NOT read as a plain white boxed
 * form. Near-black $color-primary ( the logo-disc colour ) floating on the cream ground, with
 * light text and underline fields inside. Echoes comp_03's dark card, here as a form. The shadow
 * lifts it off the cream.
 */
.comp_07-card {
  width: 100%;
  padding: 3.25rem 3.25rem;
  background-color: #1d1d1b;
  box-shadow: 0 1.875rem 4.375rem rgba(29, 29, 27, 0.22);
  box-sizing: border-box;
}

.comp_07-form-title {
  margin: 0 0 1.875rem 0;
  color: #ffffff;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.2;
}
.comp_07-form-title:after {
  content: "";
  display: block;
  width: 3rem;
  height: 0.1875rem;
  margin: 1rem 0 0 0;
  background-color: #be1622;
}

.comp_07-field {
  margin: 0 0 1.25rem 0;
}

.comp_07-formcol .comp_07-form .comp_07-label {
  margin: 0 0 0.375rem 0;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.comp_07-req {
  color: #be1622;
}

/*
 * UNDERLINE FIELDS on the dark card. Overrides _inputs.scss ( white bg, full 1px border, 6px
 * radius ) scoped under .comp_07-form ( 0,2,0 > 0,1,1 ): transparent ground, a single hairline
 * bottom border that turns red on focus, light text, no side padding. margin-bottom 0 hands the
 * spacing to .comp_07-field; font-size is set here so the responsive bands can override it from
 * the same scope.
 */
.comp_07-form .comp_07-input {
  margin-bottom: 0 !important;
  padding: 0.625rem 0;
  background-color: transparent;
  color: #ffffff;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 0;
  font-size: 1.125rem;
  transition: border-color 0.25s ease;
}
.comp_07-form .comp_07-input:focus, .comp_07-form .comp_07-input:focus-visible {
  outline: none;
  border-bottom-color: #be1622;
}

/*
 * Autofill on a dark field: browsers force a light background + dark text and offer no transparent
 * option. Pin the text light and mask the yellow box with a card-coloured inset shadow.
 */
.comp_07-form .comp_07-input:-webkit-autofill,
.comp_07-form .comp_07-input:-webkit-autofill:focus {
  -webkit-text-fill-color: #ffffff;
  -webkit-box-shadow: inset 0 0 0 6.25rem #1d1d1b;
  caret-color: #ffffff;
  transition: background-color 9999s ease;
}

/*
 * Error state - JS adds .error. Made FOR the underline field, not _inputs' bordered inputs: the
 * bottom hairline goes red and one step thicker, with a soft red under-glow so it reads on the
 * dark card. No full box, no inset shadow.
 *
 * Scoped 0,4,0 ( via .required.error ) on purpose: _inputs' own `input[type="email"].required.error`
 * is 0,3,1 and would otherwise WIN on the e-mail input, painting it with the full red box + inset
 * glow that suits a bordered input but not this one. Both errored fields ( e-mail, zpráva ) carry
 * .required, so this matches them and beats it.
 */
.comp_07-form .comp_07-input.required.error {
  border: 0;
  border-bottom: 0.125rem solid #be1622;
  box-shadow: 0 0.375rem 0.625rem -0.375rem rgba(190, 22, 34, 0.55);
}

.comp_07-textarea {
  min-height: 7.5rem;
  line-height: 1.5;
}

/*
 * CONSENT - same construction as comp_04's: iCheck hides the native box and wraps it in
 * <div class="icheckbox">, so the box we style is that WRAPPER. Scoped to .comp_07-consent so
 * nothing else is touched; a brand-red fill with a white tick, the base skin repurposed.
 */
.comp_07-consent {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin: 0.5rem 0 0 0;
}

.comp_07-consent .icheckbox {
  flex: 0 0 auto;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0.125rem 0 0 0;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 0;
  background-color: transparent;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
  box-sizing: border-box;
}
.comp_07-consent .icheckbox:before {
  content: "";
  position: absolute;
  left: 50%;
  top: 46%;
  width: 0.3125rem;
  height: 0.625rem;
  background: none;
  border: solid #ffffff;
  border-width: 0 0.125rem 0.125rem 0;
  transform: translate(-50%, -55%) rotate(45deg);
  opacity: 0;
  transition: opacity 0.15s ease;
}
.comp_07-consent .icheckbox.checked {
  background-color: #be1622;
  border-color: #be1622;
}
.comp_07-consent .icheckbox.checked:before {
  opacity: 1;
}

.comp_07-formcol .comp_07-consent .comp_07-consent-label {
  width: auto;
  margin: 0 !important;
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
}
.comp_07-formcol .comp_07-consent .comp_07-consent-label a {
  color: #ffffff;
  text-decoration: underline;
}
.comp_07-formcol .comp_07-consent .comp_07-consent-label a:hover {
  text-decoration: none;
}

.comp_07-consent.error .comp_07-consent-label {
  color: #be1622;
}
.comp_07-consent.error .icheckbox {
  border-color: #be1622;
}

/*
 * THE RED SUBMIT - the .comp_04-submit / .comp_01-button.primary object. Excluded from the global
 * .button chain via :not(.comp_07-submit) in _buttons.scss ( same precedent as .comp_04-submit ).
 */
.comp_07-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 3.625rem;
  margin: 1.75rem 0 0 0;
  padding: 1.0625rem 1.875rem;
  background-color: #be1622;
  color: #ffffff;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border: 0;
  cursor: pointer;
  transition: all 0.3s ease;
  box-sizing: border-box;
}
.comp_07-submit:hover, .comp_07-submit:focus-visible {
  background-color: rgb(60.1701812801%, 6.9670736219%, 10.7672955975%);
  color: #ffffff;
}
.comp_07-submit:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

.comp_07-form.working {
  opacity: 0.6;
  pointer-events: none;
}

/*
 * RESPONSIVE
 *
 * Same html { font-size } scaling caveat as the other comps: type is scaled up in rem in the low
 * bands purely to hold its physical size. Form controls are scaled from the .comp_07-form scope so
 * they keep winning over _inputs.scss.
 */
@media (max-width: 1239px) {
  .comp_07-inner {
    gap: 3.5rem;
    padding: 7.5rem 3rem;
  }
  .comp_07-card {
    padding: 2.5rem 2.5rem;
  }
}
/*
 * THE 80% BAND ( landscape iPad ). Physical: title 42px, body 16.8px, controls ~16px in ~52px targets.
 */
@media (min-width: 980px) and (max-width: 1024px) {
  .comp_07-title {
    font-size: 3.25rem;
  }
  .comp_07-rule {
    width: 5.25rem;
  }
  .comp_07-text {
    font-size: 1.3125rem;
  }
  .comp_07-challenge-line {
    font-size: 1.4375rem;
  }
  .comp_07-form-title {
    font-size: 1.75rem;
  }
  .comp_07-formcol .comp_07-form .comp_07-label {
    font-size: 0.9375rem;
  }
  .comp_07-form .comp_07-input {
    font-size: 1.25rem;
  }
  .comp_07-submit {
    min-height: 4.125rem;
    font-size: 1rem;
  }
  .comp_07-formcol .comp_07-consent .comp_07-consent-label {
    font-size: 1rem;
  }
}
/*
 * STACKED - copy above, form below. 979px, matching where the header collapses and comp_03 stacks.
 * Physical sizes ( html 70% ): title 35px, body 16.8px, controls ~16.8px in ~53px targets.
 */
@media (max-width: 979px) {
  .comp_07-inner {
    flex-direction: column;
    gap: 3.5rem;
    padding: 5rem 2rem;
  }
  .comp_07-body,
  .comp_07-formcol {
    flex: 0 0 auto;
  }
  .comp_07-content {
    max-width: 47.5rem;
  }
  .comp_07-title {
    margin-bottom: 1.875rem;
    font-size: 3.125rem;
    font-weight: 400;
  }
  .comp_07-rule {
    width: 6rem;
    height: 0.3125rem;
    margin-bottom: 2.375rem;
  }
  .comp_07-text {
    margin-bottom: 1.625rem;
    font-size: 1.5rem;
  }
  .comp_07-challenge {
    margin-top: 2.25rem;
    padding-left: 1.875rem;
  }
  .comp_07-challenge-title {
    font-size: 1.25rem;
  }
  .comp_07-challenge-line {
    font-size: 1.75rem;
  }
  .comp_07-card {
    padding: 3rem 2.75rem;
  }
  .comp_07-form-title {
    font-size: 2.125rem;
  }
  .comp_07-field {
    margin-bottom: 1.625rem;
  }
  .comp_07-formcol .comp_07-form .comp_07-label {
    font-size: 1.0625rem;
  }
  .comp_07-form .comp_07-input {
    font-size: 1.5rem;
  }
  .comp_07-textarea {
    min-height: 11.875rem;
  }
  .comp_07-submit {
    min-height: 4.75rem;
    padding: 1.375rem 2.5rem;
    font-size: 1.1875rem;
  }
  .comp_07-consent {
    gap: 0.875rem;
  }
  .comp_07-consent .icheckbox {
    width: 1.625rem;
    height: 1.625rem;
    margin-top: 0.1875rem;
  }
  .comp_07-formcol .comp_07-consent .comp_07-consent-label {
    font-size: 1.1875rem;
  }
}
/*
 * PHONES ( html 90% ). Physical: title 30.6px, body 16.2px, controls ~16px in ~47px targets.
 */
@media (max-width: 730px) {
  .comp_07-inner {
    gap: 2.5rem;
    padding: 4rem 1.5rem;
  }
  .comp_07-title {
    margin-bottom: 1.25rem;
    font-size: 2.125rem;
    line-height: 1.15;
  }
  .comp_07-rule {
    width: 3.5rem;
    height: 0.1875rem;
    margin-bottom: 1.5rem;
  }
  .comp_07-text {
    margin-bottom: 1.125rem;
    font-size: 1.125rem;
    line-height: 1.65;
  }
  .comp_07-challenge {
    margin-top: 1.75rem;
    padding-left: 1.25rem;
    border-left-width: 0.1875rem;
  }
  .comp_07-challenge-title {
    font-size: 0.9375rem;
  }
  .comp_07-challenge-line {
    font-size: 1.25rem;
  }
  .comp_07-card {
    padding: 2rem 1.5rem;
  }
  .comp_07-form-title {
    font-size: 1.5rem;
  }
  .comp_07-field {
    margin-bottom: 1.25rem;
  }
  .comp_07-formcol .comp_07-form .comp_07-label {
    font-size: 0.8125rem;
  }
  .comp_07-form .comp_07-input {
    font-size: 1.125rem;
  }
  .comp_07-textarea {
    min-height: 9.375rem;
  }
  .comp_07-submit {
    min-height: 3.25rem;
    padding: 0.9375rem 1.25rem;
    font-size: 0.8125rem;
  }
  .comp_07-consent {
    gap: 0.625rem;
  }
  .comp_07-consent .icheckbox {
    width: 1.125rem;
    height: 1.125rem;
    margin-top: 0.125rem;
  }
  .comp_07-formcol .comp_07-consent .comp_07-consent-label {
    font-size: 0.875rem;
  }
}
@media (max-width: 479px) {
  .comp_07-inner {
    padding: 3rem 1.5rem;
  }
  .comp_07-card {
    padding: 1.75rem 1.25rem;
  }
  .comp_07-title {
    font-size: 1.875rem;
  }
}
/*
 * REDUCED MOTION - WOW.js writes animation-name inline, so only !important reaches it.
 */
@media (prefers-reduced-motion: reduce) {
  .comp_07-content.wow,
  .comp_07-formcol.wow {
    visibility: visible;
    animation: none !important;
  }
}
/*
 * COMP_08 - MENU: TABBED CATEGORY LIST + DENNÍ MENU TEASER
 *
 * Markup: templates/comp_08.php
 * Behaviour: js/scripts-parts/comp_08.js ( ARIA tabs + the shared sliding underline ). The reveal
 * is WOW.js, initialised inline in header.php.
 *
 * Split section on the cream ground: the food menu ( heading + category tabs + dish list ) on the
 * LEFT, a dark "Denní menu" teaser column on the RIGHT that bleeds to the viewport edge and whose
 * content sticks under the header. Same machinery as comp_03 / comp_05 - flex, align-items:stretch,
 * height from the LEFT content, no percentage-height chains - and the dark column is the comp_03 /
 * comp_07 dark-card family.
 *
 * THE MENU CONTENT'S LEFT EDGE lands on the rem(1280) container the header / hero / footer share
 * ( the documented min-width:1152px calc ), and the teaser's text RIGHT edge lands on the same
 * container's right edge - so the whole section sits on one grid.
 *
 * TABS. The active tab is marked by the shared sliding underline ( js/cookie-sliding_indicator.js )
 * ON DESKTOP. Below 980px the tab bar scrolls horizontally, where that plugin's offset() maths
 * drifts, so the indicator is hidden there and a static ::after underline marks the active tab
 * instead - the same trade the header makes when it hides .nav-indicator under the hamburger. The
 * sliding transition MUST live here ( the plugin clears its inline transition after init ), and
 * .comp_08-tabs must stay position:relative ( the plugin's `left` maths depends on it ).
 *
 * The menu + panel row is capped to the rem(1280) container ( .comp_08-inner ) and centred.
 *
 * READ THE RESPONSIVE NOTE before changing a number: rem() is not physical px here - html{font-size}
 * steps 100/90/70/80/90/100% across the _base.scss breakpoints, which are NOT the ones used below.
 * Type is scaled in rem per band purely to land the same physical size, exactly like comp_02/03/05.
 */
.comp_08-wrapper {
  position: relative;
  width: 100%;
  background-color: #f4f2ef;
  box-sizing: border-box;
}

.comp_08-inner {
  display: flex;
  align-items: stretch;
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  box-sizing: border-box;
}

/*
 * LEFT - THE MENU
 */
.comp_08-body {
  flex: 1 1 auto;
  display: flex;
  min-width: 0;
  padding: 7rem 4.5rem 7.5rem 3rem;
  box-sizing: border-box;
}

.comp_08-menu {
  width: 100%;
  min-width: 0;
}

.comp_08-title {
  margin: 0 0 1.25rem 0;
  color: #1d1d1b;
  font-size: 3.75rem;
  font-weight: 200;
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: 0.005em;
}

.comp_08-rule {
  display: block;
  width: 4.5rem;
  height: 0.25rem;
  margin: 0 0 2.5rem 0;
  background-color: #be1622;
}

/*
 * TAB BAR
 *
 * position:relative is the positioning context the sliding indicator writes `left` against.
 * overflow-x:auto contains the row on narrow widths so it can never overflow the page ( sized to
 * fit without scrolling on desktop ). The hairline is the baseline the underline sits on.
 */
.comp_08-tabs {
  position: relative;
  display: flex;
  align-items: flex-end;
  gap: 1.875rem;
  margin: 0 0 2.125rem 0;
  border-bottom: 1px solid rgba(29, 29, 27, 0.12);
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.comp_08-tabs::-webkit-scrollbar {
  display: none;
}

.comp_08-tab {
  position: relative;
  flex: 0 0 auto;
  margin: 0;
  padding: 0 0 1rem 0;
  background: transparent;
  border: 0;
  color: rgba(29, 29, 27, 0.5);
  font-family: "Mukta";
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  white-space: nowrap;
  cursor: pointer;
  transition: color 0.25s ease;
}
.comp_08-tab > span {
  display: block;
  pointer-events: none;
}
.comp_08-tab:hover {
  color: #1d1d1b;
}
.comp_08-tab[aria-selected=true] {
  color: #1d1d1b;
}
.comp_08-tab:focus-visible {
  outline: 2px solid #be1622;
  outline-offset: 3px;
}

/*
 * The sliding underline, injected by slidingIndicator() as .comp_08-tab-indicator. The plugin sets
 * only left / width; the rest - and crucially the transition - is here. Desktop only: hidden below
 * 980px, where the bar scrolls and a static ::after underline ( further down ) takes over.
 */
.comp_08-tab-indicator {
  position: absolute;
  bottom: -1px;
  height: 0.1875rem;
  background-color: #be1622;
  border-radius: 0.09375rem;
  pointer-events: none;
  transition: left 0.25s cubic-bezier(0.4, 0, 0.2, 1), width 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
@media (max-width: 979px) {
  .comp_08-tab-indicator {
    display: none !important;
  }
}

/*
 * PANELS + DISH LIST
 */
.comp_08-panel[hidden] {
  display: none;
}

.comp_08-panel-heading {
  margin: 0 0 1.25rem 0;
  color: #1d1d1b;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.comp_08-panel + .comp_08-panel {
  margin-top: 3rem;
}

.comp_08-menu.tabs-ready .comp_08-panel + .comp_08-panel {
  margin-top: 0;
}
.comp_08-menu.tabs-ready .comp_08-panel-heading {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.comp_08-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.comp_08-item {
  display: flex;
  align-items: center;
  gap: 1.75rem;
  padding: 1.375rem 0;
  border-bottom: 1px solid rgba(29, 29, 27, 0.1);
}
.comp_08-item:first-child {
  padding-top: 0.375rem;
}
.comp_08-item:last-child {
  border-bottom: 0;
}

.comp_08-item-media {
  flex: 0 0 auto;
  width: 5.75rem;
  height: 5.75rem;
  overflow: hidden;
  border-radius: 0.125rem;
}
.comp_08-item-media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  mix-blend-mode: darken;
}

.comp_08-item-body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.comp_08-item-name {
  margin: 0 0 0.25rem 0;
  color: #1d1d1b;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.3;
}

.comp_08-item-desc {
  margin: 0;
  color: rgba(29, 29, 27, 0.6);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.5;
}

.comp_08-item-price {
  flex: 0 0 auto;
  margin-left: 1.25rem;
  color: #1d1d1b;
  font-size: 1.1875rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
}

.comp_08-item-allergens {
  margin: 0.3125rem 0 0 0;
  color: rgba(29, 29, 27, 0.45);
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

/*
 * THE ALLERGEN LEGEND
 *
 * Sits under the tab panels, so it belongs to the page rather than to one category. Lists only the
 * numbers the menu actually uses, each with its full legal wording - the client's rule is that the
 * answer is on the menu and nobody has to ask the staff, so there is no "zeptejte se obsluhy" line.
 *
 * Two columns from bp3 up via CSS columns, not the grid: the items are a single <ul> of uneven-length
 * rows, and columns let the browser balance them without wrapping every item in grid markup.
 */
.comp_08-allergens {
  margin-top: 3rem;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(29, 29, 27, 0.12);
}

.comp_08-allergens-heading {
  margin: 0 0 1rem 0;
  color: #1d1d1b;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.comp_08-allergens-list {
  margin: 0;
  padding: 0;
  list-style: none;
  columns: 2;
  column-gap: 2.5rem;
}

.comp_08-allergens-item {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin: 0 0 0.4375rem 0;
  break-inside: avoid;
  color: rgba(29, 29, 27, 0.6);
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.45;
}

.comp_08-allergens-num {
  flex: 0 0 auto;
  min-width: 1.125rem;
  color: #be1622;
  font-weight: 600;
}

.comp_08-allergens-name {
  flex: 1 1 auto;
  min-width: 0;
}

/*
 * RIGHT - THE DENNÍ MENU TEASER
 *
 * A dark column that bleeds to the viewport edge; its content sticks under the header as the dish
 * list scrolls. Dark-card family ( comp_03-box / comp_07 ).
 */
.comp_08-panelcol {
  flex: 0 0 44%;
  position: relative;
  margin: 5rem 0;
  min-width: 0;
  background-color: #1d1d1b;
  box-sizing: border-box;
}

.comp_08-teaser {
  position: sticky;
  top: 2.5rem;
  display: flex;
  flex-direction: column;
  padding: 7rem 3.5rem 4.5rem 3.5rem;
  color: #ffffff;
  box-sizing: border-box;
}

.comp_08-teaser-icon {
  position: absolute;
  left: 50%;
  bottom: 3.5rem;
  z-index: 0;
  transform: translateX(-50%);
  display: block;
  width: 15.625rem;
  color: #ffffff;
  opacity: 0.06;
  pointer-events: none;
}
.comp_08-teaser-icon svg {
  display: block;
  width: 100%;
  height: auto;
}

.comp_08-teaser-title {
  position: relative;
  z-index: 1;
  margin: 0 0 1.5rem 0;
  color: #ffffff;
  font-size: 2.75rem;
  font-weight: 200;
  line-height: 1.12;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.comp_08-teaser-rule {
  position: relative;
  z-index: 1;
  display: block;
  width: 3rem;
  height: 0.1875rem;
  margin: 0 0 1.75rem 0;
  background-color: #be1622;
}

.comp_08-teaser-text {
  position: relative;
  z-index: 1;
  max-width: 21.25rem;
  margin: 0 0 2.5rem 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: 1.0625rem;
  font-weight: 400;
  line-height: 1.65;
  text-wrap: pretty;
}

/*
 * Deliberately NOT .button. The dark-inverted ghost CTA - outlined white on the dark ground,
 * filling to white on hover. Same object as .comp_03-box-button. align-self shrinks it to its
 * label ( a flex item would stretch the column otherwise ).
 */
.comp_08-teaser-button {
  position: relative;
  z-index: 1;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.5rem;
  padding: 1rem 1.875rem;
  color: #ffffff;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.45);
  transition: all 0.3s ease;
  box-sizing: border-box;
}
.comp_08-teaser-button:hover, .comp_08-teaser-button:focus-visible {
  background-color: #ffffff;
  border-color: #ffffff;
  color: #1d1d1b;
}
.comp_08-teaser-button:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

/*
 * RESPONSIVE
 */
@media (max-width: 1239px) {
  .comp_08-body {
    padding: 6.25rem 3.5rem 6.5rem 3.5rem;
  }
  .comp_08-teaser {
    padding: 6.25rem 3rem 4.5rem 3rem;
  }
}
/*
 * THE 80% BAND ( 980-1024px, landscape iPad ). Type scaled up in rem so it lands the same physical
 * size. Physical: title 48px, tab 12.8px, dish name 18.4px, teaser title 36.8px.
 */
@media (min-width: 980px) and (max-width: 1024px) {
  .comp_08-title {
    font-size: 4.125rem;
  }
  .comp_08-rule {
    width: 5.25rem;
  }
  .comp_08-tab {
    font-size: 1rem;
  }
  .comp_08-panel-heading {
    font-size: 1.6875rem;
  }
  .comp_08-item-name {
    font-size: 1.4375rem;
  }
  .comp_08-item-desc {
    font-size: 1.0625rem;
  }
  .comp_08-item-price {
    font-size: 1.375rem;
  }
  .comp_08-item-allergens {
    font-size: 0.9375rem;
  }
  .comp_08-allergens-heading {
    font-size: 1.125rem;
  }
  .comp_08-allergens-item {
    font-size: 0.9375rem;
  }
  .comp_08-item-media {
    width: 6.5rem;
    height: 6.5rem;
  }
  .comp_08-teaser-title {
    font-size: 2.875rem;
  }
  .comp_08-teaser-text {
    max-width: 22.5rem;
    font-size: 1.125rem;
  }
  .comp_08-teaser-button {
    min-height: 4rem;
    font-size: 0.9375rem;
  }
}
/*
 * STACKED - the teaser leaves the sidebar and becomes a full-width dark block UNDER the menu.
 * 979px, matching where the header collapses and comp_03/05 stack. The tab bar now scrolls
 * ( the sliding indicator is hidden above; the static ::after underline below takes over ).
 * Physical sizes ( html 70% ): title 46px, tab 12.6px, dish name 16.8px, teaser title 32.9px.
 */
@media (max-width: 979px) {
  .comp_08-inner {
    flex-direction: column;
  }
  .comp_08-body {
    flex: 0 0 auto;
    padding: 4.5rem 2rem;
  }
  .comp_08-menu {
    max-width: 51.25rem;
  }
  .comp_08-title {
    margin-bottom: 1.5rem;
    font-size: 4rem;
    font-weight: 400;
  }
  .comp_08-rule {
    width: 6rem;
    height: 0.3125rem;
    margin-bottom: 2.75rem;
  }
  .comp_08-tabs {
    gap: 2.5rem;
    margin-bottom: 2.5rem;
  }
  .comp_08-tab {
    font-size: 1.125rem;
    padding-bottom: 1.25rem;
  }
  .comp_08-menu.tabs-ready .comp_08-tab[aria-selected=true]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 0.25rem;
    background-color: #be1622;
    border-radius: 0.125rem;
  }
  .comp_08-panel-heading {
    font-size: 2.125rem;
  }
  .comp_08-item {
    gap: 2rem;
    padding: 1.75rem 0;
  }
  .comp_08-item-media {
    width: 7.5rem;
    height: 7.5rem;
  }
  .comp_08-item-name {
    font-size: 1.5rem;
  }
  .comp_08-item-desc {
    font-size: 1.1875rem;
  }
  .comp_08-item-price {
    margin-left: 1.5rem;
    font-size: 1.5rem;
  }
  .comp_08-item-allergens {
    font-size: 1rem;
  }
  .comp_08-allergens-heading {
    font-size: 1.25rem;
  }
  .comp_08-allergens-item {
    font-size: 1rem;
  }
  .comp_08-panelcol {
    flex: 0 0 auto;
    width: 100%;
    margin: 0;
    overflow: hidden;
  }
  .comp_08-teaser {
    position: static;
    padding: 4.5rem 2rem;
  }
  .comp_08-teaser-icon {
    bottom: 2.5rem;
    width: 13.75rem;
  }
  .comp_08-teaser-title {
    font-size: 2.9375rem;
    font-weight: 400;
  }
  .comp_08-teaser-rule {
    width: 4rem;
    height: 0.25rem;
    margin-bottom: 2.125rem;
  }
  .comp_08-teaser-text {
    max-width: 32.5rem;
    font-size: 1.3125rem;
  }
  .comp_08-teaser-button {
    min-height: 4.5rem;
    padding: 1.375rem 2.5rem;
    font-size: 1.125rem;
  }
}
/*
 * PHONES. Physical sizes ( html 90% ): title 34.2px, tab 13.5px, dish name 16.2px, teaser 27.9px.
 */
@media (max-width: 730px) {
  .comp_08-body {
    padding: 4.375rem 1.5rem 3.5rem;
  }
  .comp_08-title {
    margin-bottom: 1.125rem;
    font-size: 2.375rem;
    line-height: 1.1;
  }
  .comp_08-rule {
    width: 3.5rem;
    height: 0.1875rem;
    margin-bottom: 1.875rem;
  }
  .comp_08-tabs {
    gap: 1.75rem;
    margin-bottom: 1.75rem;
  }
  .comp_08-tab {
    font-size: 0.9375rem;
    padding-bottom: 0.875rem;
  }
  .comp_08-panel-heading {
    font-size: 1.375rem;
  }
  .comp_08-item {
    gap: 1.125rem;
    padding: 1.125rem 0;
  }
  .comp_08-item-media {
    width: 4.75rem;
    height: 4.75rem;
  }
  .comp_08-item-name {
    font-size: 1.125rem;
  }
  .comp_08-item-desc {
    font-size: 0.9375rem;
  }
  .comp_08-item-price {
    margin-left: 0.875rem;
    font-size: 1.0625rem;
  }
  .comp_08-item-allergens {
    font-size: 0.8125rem;
  }
  .comp_08-allergens {
    margin-top: 2.25rem;
    padding-top: 1.5rem;
  }
  .comp_08-allergens-heading {
    font-size: 0.9375rem;
  }
  .comp_08-allergens-list {
    columns: 1;
  }
  .comp_08-allergens-item {
    font-size: 0.8125rem;
  }
  .comp_08-teaser {
    padding: 3.5rem 1.5rem;
  }
  .comp_08-teaser-icon {
    width: 10.625rem;
  }
  .comp_08-teaser-title {
    font-size: 1.9375rem;
  }
  .comp_08-teaser-rule {
    width: 3rem;
    height: 0.1875rem;
    margin-bottom: 1.5rem;
  }
  .comp_08-teaser-text {
    max-width: none;
    font-size: 1rem;
  }
  .comp_08-teaser-button {
    width: 100%;
    min-height: 3.25rem;
    padding: 1rem 1.25rem;
    font-size: 0.8125rem;
  }
}
@media (max-width: 479px) {
  .comp_08-body {
    padding: 3.875rem 1.5rem 3rem;
  }
  .comp_08-title {
    font-size: 2.125rem;
  }
  .comp_08-item-media {
    width: 4rem;
    height: 4rem;
  }
  .comp_08-item-name {
    font-size: 1.0625rem;
  }
  .comp_08-item-desc {
    font-size: 0.875rem;
  }
  .comp_08-item-allergens {
    font-size: 0.75rem;
  }
  .comp_08-allergens-item {
    font-size: 0.75rem;
  }
  .comp_08-teaser {
    padding: 3rem 1.5rem;
  }
  .comp_08-teaser-title {
    font-size: 1.875rem;
  }
}
/*
 * REDUCED MOTION - WOW.js writes animation-name inline, so only !important reaches it.
 */
@media (prefers-reduced-motion: reduce) {
  .comp_08-title.wow,
  .comp_08-teaser.wow {
    visibility: visible;
    animation: none !important;
  }
}
/*
 * COMP_09 - DENNÍ MENU: DAY TABS + STACKED CATEGORY LIST
 *
 * Markup: templates/comp_09.php
 * Behaviour: js/scripts-parts/comp_09.js ( ARIA tabs + the shared sliding underline ). The reveal is
 * WOW.js, initialised inline in header.php.
 *
 * The rotating daily menu on the cream ground - the sibling of the permanent Menu page ( comp_08 ),
 * built TEXT ONLY: a typographic list ( name · dotted leader · price, description under the name ) with
 * no dish photos. Categories are NOT tabbed here - all five stack as headed sections. The tab bar
 * switches the DAY ( Dnes / Zítra / a weekday ), reusing comp_08's exact machinery on the day axis, so
 * the numbers below are tuned the same way and _comp_08.scss is the reference for anything shared.
 *
 * The heading + tabs + day panels live in a centred reading column ( .comp_09-menu, capped rem(900) ),
 * and the whole thing is bounded by the site's rem(1280) container ( .comp_09-inner ).
 *
 * TABS. The active DAY is marked by the shared sliding underline ( js/cookie-sliding_indicator.js ) ON
 * DESKTOP. Below 980px the tab bar scrolls horizontally, where that plugin's offset() maths drifts, so
 * the indicator is hidden there and a static ::after underline marks the active tab instead - the same
 * trade comp_08 / the header make. The slide transition MUST live here ( the plugin clears its inline
 * transition after init ), and .comp_09-tabs must stay position:relative ( the plugin's `left` maths
 * depends on it ).
 *
 * READ THE RESPONSIVE NOTE before changing a number: rem() is not physical px here - html{font-size}
 * steps 100/90/70/80/90/100% across the _base.scss breakpoints, which are NOT the ones used below.
 * Type is scaled in rem per band purely to land the same physical size, exactly like comp_02/03/08.
 */
.comp_09-wrapper {
  position: relative;
  width: 100%;
  background-color: #f4f2ef;
  box-sizing: border-box;
}

.comp_09-inner {
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  padding: 7rem 3rem 7.5rem 3rem;
  box-sizing: border-box;
}

/*
 * HEADER + MENU COLUMN
 */
.comp_09-menu {
  position: relative;
  width: 100%;
  max-width: 56.25rem;
  margin: 0 auto;
}

.comp_09-print-logo {
  display: none;
}

.comp_09-print {
  position: absolute;
  top: 0.25rem;
  right: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  padding: 0.5625rem 1.125rem;
  background: transparent;
  border: 1px solid rgba(29, 29, 27, 0.18);
  border-radius: 62.4375rem;
  color: #1d1d1b;
  font-family: "Mukta";
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}
.comp_09-print svg {
  display: block;
  width: 1rem;
  height: 1rem;
}
.comp_09-print:hover {
  color: #be1622;
  border-color: #be1622;
}
.comp_09-print:focus-visible {
  outline: 2px solid #be1622;
  outline-offset: 3px;
}

.comp_09-eyebrow {
  display: block;
  margin: 0 0 0.875rem 0;
  color: #be1622;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.06em;
}

.comp_09-title {
  margin: 0 0 1.25rem 0;
  color: #1d1d1b;
  font-size: 3.75rem;
  font-weight: 200;
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: 0.005em;
}

.comp_09-rule {
  display: block;
  width: 4.5rem;
  height: 0.25rem;
  margin: 0 0 2.5rem 0;
  background-color: #be1622;
}

/*
 * THE LUNCH SERVICE WINDOWS ( "Výdej obědů" )
 *
 * Standing information, printed once above the day tabs - the times are the same every day. See
 * templates/comp_09.php for why it is not repeated inside each day panel.
 *
 * A HAIRLINE BOX, NOT A FILL. The page is one flat cream ground with red used only for the rule and the
 * category marks; a filled or coloured panel here would read as a promotion sitting on top of the menu.
 * The box is the lightest thing that still says "this is not part of the list": the same
 * rgba(29, 29, 27, 0.14) hairline as the allergen legend, and the rem(8) radius from comp_12's bands.
 *
 * The rows are the allergen legend's two-column shape - a fixed narrow left column, the wording in the
 * rest - so the page has ONE way of setting a small reference list. The times keep a min-width instead of
 * a set width so a longer window ( "11:30-12:00" vs "9:00-10:00" ) still lines the audiences up.
 *
 * SCREEN ONLY - it is stripped in @media print with the rest of the site chrome ( see the print block ).
 */
.comp_09-serving {
  margin: 0 0 2.75rem 0;
  padding: 1.375rem 1.75rem 1.5rem 1.75rem;
  border: 1px solid rgba(29, 29, 27, 0.14);
  border-radius: 0.5rem;
}

.comp_09-serving-heading {
  margin: 0 0 0.875rem 0;
  color: #1d1d1b;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.comp_09-serving-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.comp_09-serving-item {
  display: flex;
  align-items: baseline;
  gap: 0.5rem 1.25rem;
  flex-wrap: wrap;
  margin: 0;
  color: rgba(29, 29, 27, 0.72);
  font-size: 1.0625rem;
  line-height: 1.6em;
}

.comp_09-serving-item + .comp_09-serving-item {
  margin-top: 0.375rem;
}

.comp_09-serving-time {
  flex: 0 0 auto;
  min-width: 7rem;
  color: #1d1d1b;
  font-weight: 600;
  white-space: nowrap;
}

.comp_09-serving-who {
  flex: 1 1 auto;
  min-width: 0;
}

.comp_09-empty {
  margin: 0;
  font-size: 1.125rem;
  line-height: 1.6em;
  color: rgba(29, 29, 27, 0.7);
}

/*
 * DAY TAB BAR
 *
 * position:relative is the positioning context the sliding indicator writes `left` against.
 * overflow-x:auto contains the row on narrow widths so it can never overflow the page ( sized to fit
 * without scrolling on desktop ). The hairline is the baseline the underline sits on.
 */
.comp_09-tabs {
  position: relative;
  display: flex;
  align-items: flex-end;
  gap: 2.125rem;
  margin: 0 0 2.5rem 0;
  border-bottom: 1px solid rgba(29, 29, 27, 0.12);
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.comp_09-tabs::-webkit-scrollbar {
  display: none;
}

.comp_09-tab {
  position: relative;
  flex: 0 0 auto;
  margin: 0;
  padding: 0 0 1rem 0;
  background: transparent;
  border: 0;
  color: rgba(29, 29, 27, 0.5);
  font-family: "Mukta";
  cursor: pointer;
  transition: color 0.25s ease;
}
.comp_09-tab > span {
  display: block;
  pointer-events: none;
}
.comp_09-tab .comp_09-tab-label {
  display: block;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  white-space: nowrap;
}
.comp_09-tab .comp_09-tab-date {
  display: block;
  margin-top: 0.1875rem;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.comp_09-tab:hover {
  color: #1d1d1b;
}
.comp_09-tab[aria-selected=true] {
  color: #1d1d1b;
}
.comp_09-tab:focus-visible {
  outline: 2px solid #be1622;
  outline-offset: 3px;
}

/*
 * The sliding underline, injected by slidingIndicator() as .comp_09-tab-indicator. The plugin sets
 * only left / width; the rest - and crucially the transition - is here. Desktop only: hidden below
 * 980px, where the bar scrolls and a static ::after underline ( further down ) takes over.
 */
.comp_09-tab-indicator {
  position: absolute;
  bottom: -1px;
  height: 0.1875rem;
  background-color: #be1622;
  border-radius: 0.09375rem;
  pointer-events: none;
  transition: left 0.25s cubic-bezier(0.4, 0, 0.2, 1), width 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
@media (max-width: 979px) {
  .comp_09-tab-indicator {
    display: none !important;
  }
}

/*
 * DAY PANELS + THE STACKED CATEGORIES
 */
.comp_09-panel[hidden] {
  display: none;
}

.comp_09-panel-heading {
  margin: 0 0 1.875rem 0;
  color: #1d1d1b;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.comp_09-panel + .comp_09-panel {
  margin-top: 4rem;
}

.comp_09-menu.tabs-ready .comp_09-panel + .comp_09-panel {
  margin-top: 0;
}
.comp_09-menu.tabs-ready .comp_09-panel-heading {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.comp_09-category + .comp_09-category {
  margin-top: 2.75rem;
}

.comp_09-category-heading {
  position: relative;
  margin: 0 0 0.375rem 0;
  padding: 0 0 0.75rem 0;
  color: #1d1d1b;
  font-size: 1.375rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.comp_09-category-heading::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 4.5rem;
  height: 0.25rem;
  background-color: #be1622;
}

.comp_09-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.comp_09-item {
  padding: 0.875rem 0;
}
.comp_09-item:last-child {
  padding-bottom: 0;
}

.comp_09-item-head {
  display: flex;
  align-items: baseline;
}

.comp_09-item-name {
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
  color: #1d1d1b;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.3;
}

.comp_09-item-badge {
  flex: 0 0 auto;
  margin-left: 0.5625rem;
  padding: 0.125rem 0.4375rem;
  background-color: rgba(29, 29, 27, 0.07);
  color: rgba(29, 29, 27, 0.62);
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  white-space: nowrap;
  transform: translateY(-0.12em);
}

.comp_09-item-allergens {
  flex: 0 0 auto;
  margin-left: 0.4375rem;
  color: rgba(29, 29, 27, 0.45);
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.comp_09-item-dots {
  flex: 1 1 auto;
  min-width: 1rem;
  margin: 0 0.5rem;
  border-bottom: 2px dotted rgba(29, 29, 27, 0.28);
  transform: translateY(-0.28em);
}

.comp_09-item-price {
  flex: 0 0 auto;
  color: #1d1d1b;
  font-size: 1.1875rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
}

.comp_09-item-desc {
  margin: 0.25rem 0 0 0;
  color: rgba(29, 29, 27, 0.6);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.5;
  max-width: 38.75rem;
}

/*
 * THE ALLERGEN LEGEND
 *
 * One per DAY PANEL, at the foot of that day's categories - inside the panel, because @media print only
 * outputs the active one and the printed sheet is exactly where a guest needs the wording. Lists only
 * the numbers that day uses, each spelled out in full: the client's rule is that the answer is on the
 * menu, so there is deliberately no "zeptejte se obsluhy" line.
 *
 * Two columns via CSS columns rather than the grid - the items are one <ul> of uneven-length rows and
 * the browser can balance them without per-item markup.
 */
.comp_09-allergens {
  margin-top: 2.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(29, 29, 27, 0.14);
}

.comp_09-allergens-heading {
  margin: 0 0 0.875rem 0;
  color: #1d1d1b;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.comp_09-allergens-list {
  margin: 0;
  padding: 0;
  list-style: none;
  columns: 2;
  column-gap: 2.5rem;
}

.comp_09-allergens-item {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin: 0 0 0.4375rem 0;
  break-inside: avoid;
  color: rgba(29, 29, 27, 0.6);
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.45;
}

/*
 * THE STAFF-PRICE FOOTNOTE - what the asterisk beside a discounted price means.
 *
 * Sits under the allergen legend, inside the day panel, for the same print reason the legend does.
 * Quieter than the legend on purpose: it explains a mark rather than carrying information a guest has
 * to read, so it is set at the legend's own small size and lighter still.
 *
 * The asterisk is a separate span, hanging in the left margin, so the sentence's own lines align with
 * each other instead of the second line starting under the mark.
 */
.comp_09-price-note {
  position: relative;
  margin: 1.25rem 0 0 0;
  padding-left: 0.875rem;
  color: rgba(29, 29, 27, 0.5);
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.5;
}

.comp_09-price-note-mark {
  position: absolute;
  left: 0;
  top: 0;
  color: #be1622;
  font-weight: 600;
}

.comp_09-allergens-num {
  flex: 0 0 auto;
  min-width: 1.125rem;
  color: #be1622;
  font-weight: 600;
}

.comp_09-allergens-name {
  flex: 1 1 auto;
  min-width: 0;
}

/*
 * RESPONSIVE
 */
@media (max-width: 1239px) {
  .comp_09-inner {
    padding: 6.25rem 3.5rem 6.5rem 3.5rem;
  }
}
/*
 * THE 80% BAND ( 980-1024px, landscape iPad ). Type scaled up in rem so it lands the same physical
 * size. Physical: title 48px, tab label 12.8px, category 17.6px, dish name 18.4px.
 */
@media (min-width: 980px) and (max-width: 1024px) {
  .comp_09-eyebrow {
    font-size: 1.125rem;
  }
  .comp_09-title {
    font-size: 4.125rem;
  }
  .comp_09-rule {
    width: 5.25rem;
  }
  .comp_09-serving-heading {
    font-size: 1.125rem;
  }
  .comp_09-serving-item {
    font-size: 1.1875rem;
  }
  .comp_09-serving-time {
    min-width: 7.8125rem;
  }
  .comp_09-tab .comp_09-tab-label {
    font-size: 1.0625rem;
  }
  .comp_09-tab .comp_09-tab-date {
    font-size: 0.875rem;
  }
  .comp_09-panel-heading {
    font-size: 1.6875rem;
  }
  .comp_09-category-heading {
    font-size: 1.5625rem;
  }
  .comp_09-item-name {
    font-size: 1.4375rem;
  }
  .comp_09-item-price {
    font-size: 1.375rem;
  }
  .comp_09-item-desc {
    font-size: 1.0625rem;
  }
  .comp_09-item-allergens {
    font-size: 0.9375rem;
  }
  .comp_09-item-badge {
    font-size: 0.75rem;
  }
  .comp_09-allergens-heading {
    font-size: 1.125rem;
  }
  .comp_09-allergens-item {
    font-size: 0.9375rem;
  }
}
/*
 * STACKED - 979px, matching where the header collapses and comp_08 stacks. The tab bar now scrolls
 * ( sliding indicator hidden above; the static ::after underline below takes over ). html is 70%
 * here, so type is scaled up hard.
 * Physical ( x0.7 ): title 44.8px, tab label 12.6px, category 16.8px, dish name 16.8px.
 */
@media (max-width: 979px) {
  .comp_09-inner {
    padding: 4.5rem 2rem;
  }
  .comp_09-menu {
    max-width: 47.5rem;
  }
  .comp_09-eyebrow {
    font-size: 1.25rem;
  }
  .comp_09-title {
    margin-bottom: 1.5rem;
    font-size: 4rem;
    font-weight: 400;
  }
  .comp_09-rule {
    width: 6rem;
    height: 0.3125rem;
    margin-bottom: 2.75rem;
  }
  .comp_09-serving {
    margin-bottom: 3rem;
    padding: 1.625rem 1.875rem 1.75rem 1.875rem;
  }
  .comp_09-serving-heading {
    font-size: 1.25rem;
  }
  .comp_09-serving-item {
    font-size: 1.3125rem;
  }
  .comp_09-serving-time {
    min-width: 8.625rem;
  }
  .comp_09-tabs {
    gap: 2.75rem;
    margin-bottom: 2.75rem;
  }
  .comp_09-tab {
    padding-bottom: 1.25rem;
  }
  .comp_09-tab .comp_09-tab-label {
    font-size: 1.25rem;
  }
  .comp_09-tab .comp_09-tab-date {
    font-size: 1rem;
  }
  .comp_09-menu.tabs-ready .comp_09-tab[aria-selected=true]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 0.25rem;
    background-color: #be1622;
    border-radius: 0.125rem;
  }
  .comp_09-panel-heading {
    font-size: 2.125rem;
  }
  .comp_09-category + .comp_09-category {
    margin-top: 3.25rem;
  }
  .comp_09-category-heading {
    font-size: 1.5rem;
    padding-bottom: 0.875rem;
  }
  .comp_09-item {
    padding: 1.125rem 0;
  }
  .comp_09-item-name {
    font-size: 1.5rem;
  }
  .comp_09-item-price {
    font-size: 1.5rem;
  }
  .comp_09-item-desc {
    font-size: 1.1875rem;
    max-width: none;
  }
  .comp_09-item-allergens {
    font-size: 1rem;
  }
  .comp_09-item-badge {
    font-size: 0.8125rem;
  }
  .comp_09-allergens-heading {
    font-size: 1.25rem;
  }
  .comp_09-allergens-item {
    font-size: 1rem;
  }
}
/*
 * PHONES. html is 90% here. Physical ( x0.9 ): title 34.2px, tab label 13.5px, category 19.8px,
 * dish name 16.2px.
 */
@media (max-width: 730px) {
  .comp_09-inner {
    padding: 4.375rem 1.5rem 3.5rem;
  }
  .comp_09-eyebrow {
    font-size: 0.9375rem;
  }
  .comp_09-title {
    margin-bottom: 1.125rem;
    font-size: 2.375rem;
    line-height: 1.1;
  }
  .comp_09-rule {
    width: 3.5rem;
    height: 0.1875rem;
    margin-bottom: 1.875rem;
  }
  .comp_09-serving {
    margin-bottom: 1.875rem;
    padding: 1rem 1.125rem 1.125rem 1.125rem;
  }
  .comp_09-serving-heading {
    margin-bottom: 0.625rem;
    font-size: 0.9375rem;
  }
  .comp_09-serving-item {
    font-size: 1rem;
  }
  .comp_09-serving-time {
    min-width: 6.5625rem;
  }
  .comp_09-tabs {
    gap: 1.875rem;
    margin-bottom: 1.875rem;
  }
  .comp_09-tab .comp_09-tab-label {
    font-size: 0.9375rem;
  }
  .comp_09-tab .comp_09-tab-date {
    font-size: 0.75rem;
  }
  .comp_09-panel-heading {
    font-size: 1.375rem;
  }
  .comp_09-panel + .comp_09-panel {
    margin-top: 3rem;
  }
  .comp_09-category + .comp_09-category {
    margin-top: 2.25rem;
  }
  .comp_09-category-heading {
    font-size: 1.375rem;
    padding-bottom: 0.625rem;
  }
  .comp_09-item {
    padding: 0.8125rem 0;
  }
  .comp_09-item-name {
    font-size: 1.125rem;
  }
  .comp_09-item-price {
    font-size: 1.0625rem;
  }
  .comp_09-item-desc {
    font-size: 0.9375rem;
  }
  .comp_09-item-allergens {
    margin-left: 0.375rem;
    font-size: 0.8125rem;
  }
  .comp_09-item-badge {
    margin-left: 0.4375rem;
    padding: 0.0625rem 0.3125rem;
    font-size: 0.625rem;
  }
  .comp_09-allergens {
    margin-top: 2.125rem;
    padding-top: 1.25rem;
  }
  .comp_09-allergens-heading {
    font-size: 0.9375rem;
  }
  .comp_09-allergens-list {
    columns: 1;
  }
  .comp_09-allergens-item {
    font-size: 0.8125rem;
  }
}
@media (max-width: 479px) {
  .comp_09-inner {
    padding: 3.875rem 1.5rem 3rem;
  }
  .comp_09-print {
    padding: 0.5625rem;
  }
  .comp_09-print span {
    display: none;
  }
  .comp_09-title {
    font-size: 2.125rem;
  }
  .comp_09-serving-item {
    gap: 0.125rem 0.875rem;
    font-size: 0.9375rem;
  }
  .comp_09-serving-time {
    min-width: 5.75rem;
  }
  .comp_09-item-dots {
    min-width: 0.75rem;
    margin: 0 0.375rem;
  }
  .comp_09-item-name {
    font-size: 1.0625rem;
  }
  .comp_09-item-desc {
    font-size: 0.875rem;
  }
  .comp_09-item-allergens {
    font-size: 0.75rem;
  }
  .comp_09-item-badge {
    font-size: 0.5625rem;
  }
  .comp_09-allergens-item {
    font-size: 0.75rem;
  }
}
/*
 * REDUCED MOTION - WOW.js writes animation-name inline, so only !important reaches it.
 */
@media (prefers-reduced-motion: reduce) {
  .comp_09-eyebrow.wow,
  .comp_09-title.wow,
  .comp_09-serving.wow {
    visibility: visible;
    animation: none !important;
  }
}
/*
 * PRINT - "VYTISKNOUT" ( the .comp_09-print button )
 *
 * Turns the daily-menu page into a clean one-sheet menu card. The whole site chrome is stripped
 * ( header, footer, sign-up band, tabs, the print button itself ) and ONLY the active day prints:
 * inactive day panels already carry [hidden] from comp_09.js, so nothing extra is needed to pick the
 * day - the visitor prints exactly the day they are looking at. The sr-only day heading is brought
 * back so the sheet names the day ( "Dnes · pondělí 22. 7. 2026" ).
 *
 * BLACK AND WHITE FIRST. No colour is relied on. Text is near-black already; the two red marks
 * ( .comp_09-rule and the category underline ) are redrawn as BLACK BORDERS - not background fills,
 * because browsers drop background-colour in print unless print-color-adjust is forced. Borders always
 * print, so the rules survive on a mono laser with no colour-adjust hacks. The logo SVG is line/text
 * art and reads fine in greyscale.
 *
 * UNITS ARE PHYSICAL ( pt / mm ), NOT rem(). rem() here is tied to html{font-size}, which _base.scss
 * steps 70-100% on VIEWPORT breakpoints - meaningless for paper and unpredictable in the print context.
 * Physical units map straight to the page, so the sheet looks the same whatever the print engine.
 */
@media print {
  .main_header-wrapper,
  .dummy_header,
  .comp_03-wrapper,
  .main_footer-wrapper,
  .mobile-menu-overlay,
  .comp_10-wrapper,
  .comp_09-print,
  .comp_09-tabs,
  .comp_09-tab-indicator,
  .comp_09-serving {
    display: none !important;
  }
  .wow {
    visibility: visible !important;
    animation: none !important;
  }
  @page {
    margin: 12mm 15mm;
  }
  html,
  body,
  .comp_09-wrapper {
    background: #ffffff !important;
  }
  .comp_09-inner {
    max-width: none;
    margin: 0;
    padding: 0 !important;
  }
  .comp_09-menu {
    position: static;
    max-width: none;
  }
  /*
   * ONE SHEET. Spacing below is deliberately tight so the active day's five categories fit on a single
   * A4 page. It is smaller than the on-screen rhythm on purpose - a printed menu wants to be compact and
   * whole, not spread across two pages. break-inside:avoid keeps a category from splitting if the day
   * ever grows past one page.
   */
  .comp_09-print-logo {
    display: block !important;
    width: 17mm;
    height: 17mm;
    margin: 0 auto 3.5mm auto;
  }
  .comp_09-eyebrow {
    margin: 0 0 1.5mm 0;
    color: #000000 !important;
    font-size: 9pt;
    letter-spacing: 0.08em;
    text-align: center;
  }
  .comp_09-title {
    margin: 0 0 2.5mm 0;
    color: #000000 !important;
    font-size: 22pt;
    font-weight: 400;
    line-height: 1.05;
    text-align: center;
  }
  .comp_09-rule {
    width: 14mm;
    height: 0;
    margin: 0 auto 4mm auto;
    background: none !important;
    border-top: 1.5pt solid #000000;
  }
  .comp_09-menu.tabs-ready .comp_09-panel-heading {
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 0 5mm 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    clip: auto !important;
    color: #000000 !important;
    font-size: 11pt;
    letter-spacing: 0.06em;
    text-align: center;
  }
  .comp_09-category {
    break-inside: avoid;
  }
  .comp_09-category + .comp_09-category {
    margin-top: 4.5mm;
  }
  .comp_09-category-heading {
    margin: 0 0 2.5mm 0;
    padding: 0 0 2mm 0;
    color: #000000 !important;
    font-size: 12pt;
    break-after: avoid;
  }
  .comp_09-category-heading::after {
    width: 14mm;
    height: 0;
    background: none !important;
    border-top: 1.5pt solid #000000;
  }
  .comp_09-item {
    padding: 1.3mm 0;
    break-inside: avoid;
  }
  .comp_09-item-name,
  .comp_09-item-price {
    color: #000000 !important;
    font-size: 10.5pt;
  }
  .comp_09-item-dots {
    border-bottom-color: rgba(0, 0, 0, 0.5) !important;
  }
  .comp_09-item-badge {
    padding: 0;
    background-color: transparent !important;
    color: rgba(0, 0, 0, 0.6) !important;
    font-size: 7.5pt;
    transform: none;
  }
  .comp_09-item-badge::before {
    content: "(";
  }
  .comp_09-item-badge::after {
    content: ")";
  }
  .comp_09-item-desc {
    margin-top: 0.5mm;
    max-width: none;
    color: rgba(0, 0, 0, 0.72) !important;
    font-size: 8.5pt;
    line-height: 1.35;
  }
  .comp_09-item-allergens {
    margin-left: 1.5mm;
    color: rgba(0, 0, 0, 0.72) !important;
    font-size: 8pt;
  }
  /*
   * THE LEGEND ON PAPER. It prints because it lives INSIDE the day panel ( see templates/comp_09.php );
   * anything after the panels would be dropped with the inactive days. Kept small and in two columns so
   * the sheet stays one page - which is also why the legend only lists the numbers the day actually
   * uses rather than all fourteen.
   */
  .comp_09-allergens {
    margin-top: 5mm;
    padding-top: 3mm;
    border-top: 0.5pt solid rgba(0, 0, 0, 0.45) !important;
    break-inside: avoid;
  }
  .comp_09-allergens-heading {
    margin: 0 0 2mm 0;
    color: #000000 !important;
    font-size: 9pt;
    letter-spacing: 0.06em;
  }
  .comp_09-allergens-list {
    column-gap: 6mm;
  }
  .comp_09-allergens-item {
    gap: 1.5mm;
    margin-bottom: 1mm;
    color: rgba(0, 0, 0, 0.78) !important;
    font-size: 7.5pt;
    line-height: 1.3;
  }
  .comp_09-allergens-num {
    min-width: 4mm;
    color: #000000 !important;
  }
  /*
   * The staff-price footnote has to survive onto paper. An asterisk beside a price with nothing
   * explaining it is worse on a printed sheet than on screen: there is no tab to click and no rest of
   * the site to go looking in. Mono like everything else here.
   */
  .comp_09-price-note {
    margin-top: 3mm;
    padding-left: 3mm;
    color: rgba(0, 0, 0, 0.78) !important;
    font-size: 7.5pt;
    line-height: 1.3;
    break-inside: avoid;
  }
  .comp_09-price-note-mark {
    color: #000000 !important;
  }
}
/*
 * COMP_10 - DAILY MENU SIGN-UP ( horizontal photo band )
 *
 * Markup: templates/comp_10.php
 * Behaviour: js/scripts-parts/comp_04.js ( shared AJAX sign-up, .comp_10-form binding ). The
 * reveal is WOW.js, initialised inline in header.php.
 *
 * REDESIGN OF comp_04. Same sign-up, rebuilt horizontal: a full-bleed moody food photo, the
 * editorial heading + red rule + lead over a left-anchored scrim on the LEFT, and a solid
 * $color-primary form panel floating on the RIGHT. comp_04 is kept as a backup ( its import is
 * commented out in style.scss ).
 *
 * THE PANEL / SCRIM DARK IS $color-primary ( #1d1d1b ), NOT #000000 - the documented brand rule.
 * The footer directly below is already a full dark sign-up; a photo band with a CONTAINED dark
 * panel reads as a photograph while the panel still melts into the footer's dark family, so the
 * panel REUSES the footer's dark form skin ( translucent white outline input, red submit, white-
 * tick consent ), re-declared locally under .comp_10-* per the theme's per-component convention.
 *
 * Objects shared with the rest of the page are re-declared here, not extracted: .comp_10-title is
 * the comp_02 / comp_04 display object and .comp_10-rule the shared red mark. There is no section
 * module yet and the theme duplicates these deliberately ( see the comp_02 / comp_03 notes ).
 */
.comp_10-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 35rem;
  padding: 6rem 0;
  background-color: #1d1d1b;
  overflow: hidden;
  box-sizing: border-box;
}

/*
 * THE PHOTO - full-bleed, absolutely positioned so the band's height comes from the content
 * ( the panel / intro ) and the min-height floor, never from the image. object-fit cover crops it.
 */
.comp_10-photo {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  display: block;
}
.comp_10-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform-origin: center;
  animation: comp_10-kenburns 22s ease-in-out infinite alternate;
  will-change: transform;
}

/*
 * KEN BURNS - a slow, ambient zoom-and-drift on the background photo so the band feels alive without
 * motion loud enough to fight the form. The photo is object-fit: cover, which leaves ZERO overflow to
 * pan into at scale 1 - any drift there would expose an edge of the band's dark fallback ground. So
 * every keyframe stays scaled up ( 1.10 -> 1.26 ): at the smaller end the image already overhangs the
 * box by ~5% each side, more than the drift ever travels there ( it starts at 0 and only grows as the
 * zoom - and so the overhang - grows with it ), so no edge is ever revealed.
 * `alternate` + the long ease-in-out makes the reverse leg read as one continuous breathing motion.
 * Disabled under prefers-reduced-motion below.
 */
@keyframes comp_10-kenburns {
  from {
    transform: scale(1.1) translate(0, 0);
  }
  to {
    transform: scale(1.26) translate(-3.5%, -2%);
  }
}
/*
 * THE SCRIM - left-anchored gradient that lands the white heading legibly over the photo and
 * clears toward the panel side. The photo is art-directed dark, so it can stay this light.
 */
.comp_10-scrim {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(29, 29, 27, 0.82) 0%, rgba(29, 29, 27, 0.55) 40%, rgba(29, 29, 27, 0.25) 68%, rgba(29, 29, 27, 0.12) 100%);
  pointer-events: none;
}

.comp_10-inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4rem;
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  padding: 0 3rem;
  box-sizing: border-box;
}

/*
 * LEFT - editorial intro over the photo.
 */
.comp_10-intro {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 35rem;
}

.comp_10-title {
  margin: 0 0 1.5rem 0;
  color: #ffffff;
  font-size: 2.875rem;
  font-weight: 200;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: 0.005em;
  text-wrap: balance;
}

.comp_10-rule {
  display: block;
  width: 4.5rem;
  height: 0.25rem;
  margin: 0 0 1.875rem 0;
  background-color: #be1622;
}

.comp_10-lead {
  max-width: 31.25rem;
  margin: 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.7;
  text-wrap: pretty;
}

/*
 * RIGHT - the dark form panel. Solid $color-primary; a soft shadow lifts it off the photo so it
 * never dissolves into the scrim.
 */
.comp_10-panel {
  flex: 0 0 27.5rem;
  padding: 2.75rem 3rem;
  background-color: #1d1d1b;
  box-shadow: 0 1.875rem 3.75rem rgba(0, 0, 0, 0.35);
  box-sizing: border-box;
}

.comp_10-panel-heading {
  margin: 0 0 1.375rem 0;
  color: #ffffff;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/*
 * THE FORM - stacked in the narrow panel: e-mail field, then consent, then the submit, then the
 * reassurance line.
 */
.comp_10-form {
  display: flex;
  flex-direction: column;
  width: 100%;
}

/*
 * THE E-MAIL FIELD - the footer's dark outline treatment. Scoped .comp_10-form .comp_10-input
 * ( 0,2,0 ) so it beats _inputs' `input[type="email"]` ( 0,1,1 ): transparent ground, translucent
 * white edge ( same weight as the consent box ), white text, SQUARE corners. margin-bottom carries
 * !important only because _inputs' does ( the consent's margin-top owns the spacing under it ).
 */
.comp_10-form .comp_10-input {
  width: 100%;
  min-height: 3.5rem;
  margin: 0 !important;
  padding: 0 1.125rem;
  background-color: transparent;
  color: #ffffff;
  font-size: 1rem;
  line-height: 1.2;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 0;
  box-shadow: none;
  transition: border-color 0.2s ease;
  box-sizing: border-box;
}
.comp_10-form .comp_10-input:focus, .comp_10-form .comp_10-input:focus-visible {
  outline: none;
  border-color: #ffffff;
}
.comp_10-form .comp_10-input::placeholder {
  color: rgba(255, 255, 255, 0.7);
  opacity: 1;
}

/*
 * ERROR - comp_04.js adds .error to an empty / invalid field. Scoped to .required.error ( 0,4,0 )
 * so it beats _inputs' `input[type="email"].required.error` ( 0,3,1 ) and drops its off-brand
 * #FF4949 border + red inset shadow for a clean accent-red edge.
 */
.comp_10-form .comp_10-input.required.error {
  border: 1px solid #be1622;
  box-shadow: none;
}

/*
 * CONSENT - required, on its own row under the field. Left-aligned so the sentence reads as prose.
 * The <label> uses `for` ( it does not wrap the input ), so the privacy link inside it navigates
 * instead of toggling the box.
 */
.comp_10-consent {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin: 1.5rem 0 0 0;
  text-align: left;
}

/*
 * THE CHECKBOX. scripts-main.js skins every checkbox with iCheck - it hides the native box and
 * wraps it in <div class="icheckbox">, so the box styled here is that WRAPPER, not the input.
 * Scoped .comp_10-consent .icheckbox ( 0,2,0 ) to beat _icheck ( 0,1,0 ), and retinted for the
 * dark panel exactly like the footer: transparent box with a translucent white edge, filling
 * accent-red with a white tick when checked. The native input stays in the DOM and iCheck keeps
 * its :checked in sync, so comp_04.js's validation and the serialized `consent=1` are unaffected.
 */
.comp_10-consent .icheckbox {
  flex: 0 0 auto;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0.125rem 0 0 0;
  background-color: transparent;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 0;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
  box-sizing: border-box;
}
.comp_10-consent .icheckbox:before {
  content: "";
  position: absolute;
  left: 50%;
  top: 46%;
  width: 0.3125rem;
  height: 0.625rem;
  background: none;
  border: solid #ffffff;
  border-width: 0 0.125rem 0.125rem 0;
  transform: translate(-50%, -55%) rotate(45deg);
  opacity: 0;
  transition: opacity 0.15s ease;
}
.comp_10-consent .icheckbox.checked {
  background-color: #be1622;
  border-color: #be1622;
}
.comp_10-consent .icheckbox.checked:before {
  opacity: 1;
}

/*
 * SCOPED UNDER .comp_10-panel, AND IT HAS TO STAY THAT DEEP.
 *
 * The opponent is _inputs.scss's `label:not(.b-tg):not(.soldout-item)`, which forces width:100%, a
 * rem(8) bottom margin, rem(14) and $color-text on every bare <label> on the site. Each :not() carries
 * its argument's weight, so that selector is ( 0,2,1 ) - and the obvious `.comp_10-consent
 * .comp_10-consent-label` is only ( 0,2,0 ) and LOSES. The panel class is what buys the third class.
 *
 * It used to be enough: the rule was one :not() when this was written, and the second was added later
 * for the kiosk. Nothing warned, because the failure is silent and dark-on-dark - $color-text ( #222 )
 * on the $color-primary panel, which reads as "the text has gone" rather than as a cascade problem.
 * The same shift is why .comp_07-consent-label carries .comp_07-formcol. If a third :not() is ever
 * added there, THESE ARE THE RULES THAT BREAK, here and in comp_07 and _preorder-signup.
 *
 * Only the dark panel is targeted, so nothing on a light ground inherits the white.
 */
.comp_10-panel .comp_10-consent .comp_10-consent-label {
  width: auto;
  margin: 0 !important;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  cursor: pointer;
}
.comp_10-panel .comp_10-consent .comp_10-consent-label a {
  color: #ffffff;
  text-decoration: underline;
}
.comp_10-panel .comp_10-consent .comp_10-consent-label a:hover {
  color: #be1622;
  text-decoration: none;
}

.comp_10-consent.error .comp_10-consent-label {
  color: #be1622;
}
.comp_10-consent.error .icheckbox {
  border-color: #be1622;
}

/*
 * THE RED SUBMIT - the panel's single CTA, full width below the consent. A bolder, labelled button
 * than the footer's arrow. Excluded from the global .button chain via :not(.comp_10-submit) in
 * _buttons.scss ( same precedent as .comp_04-submit / .newsletter-submit ). Matched to
 * .comp_04-submit / .comp_01-button.primary.
 */
.comp_10-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 3.625rem;
  margin: 1.75rem 0 0 0;
  padding: 1.0625rem 1.875rem;
  background-color: #be1622;
  color: #ffffff;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border: 0;
  cursor: pointer;
  transition: all 0.3s ease;
  box-sizing: border-box;
}
.comp_10-submit:hover, .comp_10-submit:focus-visible {
  background-color: rgb(60.1701812801%, 6.9670736219%, 10.7672955975%);
  color: #ffffff;
}
.comp_10-submit:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

.comp_10-note {
  margin: 1rem 0 0 0;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.5;
  text-align: center;
}

.comp_10-form.working {
  opacity: 0.6;
  pointer-events: none;
}

/*
 * RESPONSIVE
 *
 * READ THIS BEFORE CHANGING A NUMBER BELOW. rem() is not physical px here: html { font-size }
 * steps 100 / 90 / 70 / 80 / 90 / 100% across the _base.scss breakpoints, and those breakpoints
 * are not the ones used here. Between 731 and 979px everything renders at 0.7x, so rem(18) body
 * copy is 12.6px on a tablet. Type in the bands below is SCALED UP in rem terms purely to come
 * out the same physical size - it is not "bigger on tablet". Same approach and reasoning as
 * _comp_02.scss / _comp_04.scss; physical sizes are noted against each block.
 */
@media (max-width: 1239px) {
  .comp_10-inner {
    gap: 3rem;
    padding: 0 2.5rem;
  }
  .comp_10-panel {
    flex-basis: 26.25rem;
    padding: 2.5rem 2.5rem;
  }
  .comp_10-intro {
    max-width: 32.5rem;
  }
}
/*
 * THE 80% BAND. Exactly where _base.scss puts html { font-size } at 80%, which is why the query is
 * 980-1024 and not round. Landscape iPad ( 1024x768 ) sits in it. Type scaled up in rem so it lands
 * at the same physical size as elsewhere. Physical: title 42px, lead 16.8px, controls 12.8-16px.
 */
@media (min-width: 980px) and (max-width: 1024px) {
  .comp_10-title {
    font-size: 3.25rem;
  }
  .comp_10-rule {
    width: 5.25rem;
  }
  .comp_10-lead {
    max-width: 35rem;
    font-size: 1.3125rem;
  }
  .comp_10-panel {
    flex-basis: 31.25rem;
    padding: 2.75rem 2.75rem;
  }
  .comp_10-panel-heading {
    font-size: 1.125rem;
  }
  .comp_10-form .comp_10-input {
    min-height: 4.125rem;
    font-size: 1.25rem;
  }
  .comp_10-submit {
    min-height: 4.125rem;
    font-size: 1rem;
  }
  .comp_10-panel .comp_10-consent .comp_10-consent-label {
    font-size: 1rem;
  }
  .comp_10-note {
    font-size: 0.9375rem;
  }
}
/*
 * STACKED / TABLET. 979px, matching where the header collapses and comp_02 / comp_04 stack. The
 * intro moves above the panel, both go full width, and the scrim darkens overall now that the panel
 * no longer clears the right side. Type scaled up in rem for the 70% band.
 *
 * Physical sizes ( html 70% ): title 35px, lead 16.8px, controls 13.3-16.8px.
 */
@media (max-width: 979px) {
  .comp_10-wrapper {
    min-height: 0;
    padding: 5rem 0;
  }
  .comp_10-scrim {
    background: linear-gradient(180deg, rgba(29, 29, 27, 0.72) 0%, rgba(29, 29, 27, 0.82) 100%);
  }
  .comp_10-inner {
    flex-direction: column;
    align-items: stretch;
    gap: 3rem;
    padding: 0 2rem;
  }
  .comp_10-intro {
    max-width: 47.5rem;
  }
  .comp_10-title {
    margin-bottom: 1.875rem;
    font-size: 3.125rem;
    font-weight: 400;
  }
  .comp_10-rule {
    width: 6rem;
    height: 0.3125rem;
    margin-bottom: 2.375rem;
  }
  .comp_10-lead {
    max-width: 40rem;
    font-size: 1.5rem;
  }
  .comp_10-panel {
    flex: 0 0 auto;
    width: 100%;
    max-width: 38.75rem;
    padding: 2.75rem 2.75rem;
  }
  .comp_10-panel-heading {
    margin-bottom: 1.625rem;
    font-size: 1.375rem;
  }
  .comp_10-form .comp_10-input {
    min-height: 4.75rem;
    font-size: 1.5rem;
  }
  .comp_10-consent {
    gap: 0.875rem;
    margin-top: 1.625rem;
  }
  .comp_10-consent .icheckbox {
    width: 1.625rem;
    height: 1.625rem;
    margin-top: 0.1875rem;
  }
  .comp_10-panel .comp_10-consent .comp_10-consent-label {
    font-size: 1.1875rem;
  }
  .comp_10-submit {
    min-height: 4.75rem;
    margin-top: 1.875rem;
    padding: 1.375rem 2.5rem;
    font-size: 1.1875rem;
  }
  .comp_10-note {
    font-size: 1.125rem;
  }
}
/*
 * PHONES. The panel goes edge-to-edge of its column and its controls stay full width, matching
 * comp_01 / comp_02 / comp_04 on the same screens. Physical sizes ( html 90% ): title 30.6px,
 * lead 16.2px, controls 11.7-16.2px.
 */
@media (max-width: 730px) {
  .comp_10-wrapper {
    padding: 4rem 0;
  }
  .comp_10-inner {
    gap: 2.25rem;
    padding: 0 1.5rem;
  }
  .comp_10-title {
    margin-bottom: 1.25rem;
    font-size: 2.125rem;
    line-height: 1.15;
  }
  .comp_10-rule {
    width: 3.5rem;
    height: 0.1875rem;
    margin-bottom: 1.5rem;
  }
  .comp_10-lead {
    max-width: none;
    font-size: 1.125rem;
    line-height: 1.65;
  }
  .comp_10-panel {
    max-width: none;
    padding: 2.25rem 1.75rem;
  }
  .comp_10-panel-heading {
    margin-bottom: 1.375rem;
    font-size: 1rem;
  }
  .comp_10-form .comp_10-input {
    min-height: 3.25rem;
    font-size: 1.125rem;
  }
  .comp_10-consent {
    gap: 0.625rem;
    margin-top: 1.25rem;
  }
  .comp_10-consent .icheckbox {
    width: 1.125rem;
    height: 1.125rem;
    margin-top: 0.125rem;
  }
  .comp_10-panel .comp_10-consent .comp_10-consent-label {
    font-size: 0.875rem;
  }
  .comp_10-submit {
    min-height: 3.25rem;
    margin-top: 1.5rem;
    padding: 0.9375rem 1.25rem;
    font-size: 0.8125rem;
  }
  .comp_10-note {
    font-size: 0.8125rem;
  }
}
@media (max-width: 479px) {
  .comp_10-wrapper {
    padding: 3rem 0;
  }
  .comp_10-inner {
    padding: 0 1.5rem;
  }
  .comp_10-title {
    font-size: 1.875rem;
  }
  .comp_10-lead {
    font-size: 1.0625rem;
  }
  .comp_10-panel {
    padding: 2rem 1.25rem;
  }
}
/*
 * REDUCED MOTION
 *
 * WOW.js writes animation-name as an INLINE style, so nothing but !important reaches it. The
 * visibility does not need the same treatment: header.php's .wow { visibility: hidden } is a single
 * class and loses to the rule below on specificity.
 */
@media (prefers-reduced-motion: reduce) {
  .comp_10-intro.wow,
  .comp_10-panel.wow {
    visibility: visible;
    animation: none !important;
  }
  .comp_10-photo img {
    animation: none;
  }
}
/*
 * COMP_11 - AKCE: SEASONAL EVENTS
 *
 * Markup: templates/comp_11.php
 * Behaviour: none - WOW.js reveal, initialised inline in header.php.
 *
 * A left-aligned page header on the cream ground, then three seasonal-event cards, then a centred
 * closing note. Each card splits a food photo against a dark panel ( $color-primary, the comp_03 /
 * comp_07 / comp_08 dark-card family ) inside one clipped unit. The card's HEIGHT COMES FROM THE
 * PANEL TEXT and the photo stretches to it on absolute insets - no percentage-height chains ( same
 * reasoning as comp_05 / comp_08 ). Square corners like the rest of the site - the theme uses no
 * border-radius anywhere, so the guide's rounded cards were squared off to match.
 *
 * The header text, the cards and the closing note all sit inside .comp_11-inner ( capped to the
 * rem(1280) container the header / hero / footer share and centred ), so the whole page lines up on
 * one grid.
 *
 * DESKTOP ALTERNATES the photo side via :nth-child(even) row-reverse, gated to min-width 980px.
 * Below that every card is photo-left, matching the guide's mobile view. Delete that one rule for a
 * uniform layout.
 *
 * READ THE RESPONSIVE NOTE before changing a number: rem() is NOT physical px here - html{font-size}
 * steps 100/90/70/80/90/100% across the _base.scss breakpoints, which are NOT the ones used below.
 * Type is scaled up in rem per band purely to hold its physical size, exactly like comp_05 / comp_08.
 */
.comp_11-wrapper {
  width: 100%;
  padding: 7rem 3rem 7rem;
  background-color: #f4f2ef;
  box-sizing: border-box;
}

.comp_11-inner {
  max-width: 80rem;
  margin: 0 auto;
}

/*
 * HEADER - left-aligned, the page's only <h1>. Same display object as comp_05 / comp_08 titles
 * ( weight 200 is Mukta's lightest and is in the header.php Google Fonts link ).
 */
.comp_11-header {
  margin: 0 0 4.5rem 0;
}

.comp_11-title {
  margin: 0 0 1.75rem 0;
  color: #1d1d1b;
  font-size: 3.75rem;
  font-weight: 200;
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: 0.005em;
  text-wrap: balance;
}

.comp_11-rule {
  display: block;
  width: 4.5rem;
  height: 0.25rem;
  margin: 0 0 2rem 0;
  background-color: #be1622;
}

.comp_11-lead {
  max-width: 37.5rem;
  margin: 0;
  color: #222222;
  font-size: 1.1875rem;
  font-weight: 400;
  line-height: 1.7;
}

/*
 * EVENTS - a vertical stack of photo + dark-panel cards.
 */
.comp_11-events {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

.comp_11-event {
  position: relative;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  background-color: #1d1d1b;
  box-shadow: 0 1.5rem 3.75rem rgba(29, 29, 27, 0.1);
  box-sizing: border-box;
}

@media (min-width: 980px) {
  .comp_11-event:nth-child(even) {
    flex-direction: row-reverse;
  }
}
/*
 * PHOTO - fills its column on absolute insets, no height:100% chain ( the column's height comes from
 * the flex stretch against the panel ). min-height is a floor for the case the panel text is short.
 */
.comp_11-event-media {
  position: relative;
  flex: 0 0 56%;
  min-height: 22.5rem;
  overflow: hidden;
}
.comp_11-event-media img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/*
 * DARK PANEL - the text. Vertically centred; its content is what gives the whole card its height.
 */
.comp_11-event-panel {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 3.5rem 3.75rem;
  box-sizing: border-box;
}

.comp_11-event-title {
  margin: 0 0 1.375rem 0;
  color: #ffffff;
  font-size: 2.125rem;
  font-weight: 400;
  line-height: 1.12;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  text-wrap: balance;
}

.comp_11-event-rule {
  display: block;
  width: 3.5rem;
  height: 0.25rem;
  margin: 0 0 1.375rem 0;
  background-color: #be1622;
}

.comp_11-event-date {
  display: block;
  margin: 0 0 0.875rem 0;
  color: #ffffff;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.comp_11-event-text {
  max-width: 22.5rem;
  margin: 0;
  color: rgba(255, 255, 255, 0.6);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.6;
  text-wrap: balance;
}

/*
 * EMPTY STATE - shown in place of .comp_11-events when the client has no event running. Takes the
 * cards' place on the SAME dark ground and shadow as .comp_11-event, and inherits its min-height from
 * .comp_11-event-media's rem(360) floor, so one notice carries roughly one card's weight and the page
 * keeps its cream / dark rhythm instead of reading as broken.
 *
 * Centred, unlike the left-aligned cards - there is no photo column here to balance the text against.
 */
.comp_11-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 22.5rem;
  padding: 3.5rem 3.75rem;
  background-color: #1d1d1b;
  box-shadow: 0 1.5rem 3.75rem rgba(29, 29, 27, 0.1);
  box-sizing: border-box;
}

.comp_11-empty-text {
  max-width: 35rem;
  margin: 0;
  color: rgba(255, 255, 255, 0.75);
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.7;
  text-align: center;
  text-wrap: balance;
}

/*
 * CLOSING - its own full-width DARK band ( $color-primary, the comp_03 / comp_07 / comp_08 dark-card
 * family ), so the follow-us note + social circles read as a divider that closes the cream events off
 * and leads into the dark footer below - the two dark blocks then flow into one bottom-of-page zone,
 * with the cream -> dark edge doing the dividing. The band supplies the vertical rhythm, so
 * .comp_11-closing itself carries no top margin, and its content is centred inside the shared
 * rem(1280) .comp_11-inner. Follow-us line + socials go white-on-dark ( same currentColor inline-SVG
 * treatment as the event panels and the footer ).
 */
.comp_11-closing-wrapper {
  width: 100%;
  padding: 5rem 3rem;
  background-color: #1d1d1b;
  box-sizing: border-box;
}

.comp_11-closing {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.comp_11-closing-text {
  max-width: 26.25rem;
  margin: 0;
  color: #ffffff;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.5;
  text-wrap: balance;
}

/*
 * SOCIAL - the same circle links as the footer, now on the dark band: a white glyph with a
 * translucent white edge, both filling accent-red with a white glyph on hover ( this matches the
 * footer's white-on-dark set exactly ). Kept in sync with footer-main.php / _footer.scss by hand.
 */
.comp_11-social {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin: 1.75rem 0 0 0;
}

.comp_11-social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 3.25rem;
  height: 3.25rem;
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 50%;
  transition: all 0.3s ease;
  box-sizing: border-box;
}
.comp_11-social-link:hover, .comp_11-social-link:focus-visible {
  color: #ffffff;
  background-color: #be1622;
  border-color: #be1622;
}
.comp_11-social-link:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 0.1875rem;
}
.comp_11-social-link svg {
  display: block;
  width: 1.375rem;
  height: 1.375rem;
}

/*
 * RESPONSIVE
 *
 * The cascade mirrors comp_05: broad padding tweaks at 1239px, then the 80% iPad band, then the 70%
 * band at 979px ( where alternation is already off ), then phones. Physical targets are held by
 * scaling rem up in the lower-percentage bands.
 */
@media (max-width: 1239px) {
  .comp_11-wrapper {
    padding: 6.25rem 2.5rem 6.25rem;
  }
  .comp_11-closing-wrapper {
    padding: 4.75rem 2.5rem;
  }
  .comp_11-header {
    margin-bottom: 3.75rem;
  }
  .comp_11-event-panel {
    padding: 3rem 3rem;
  }
  .comp_11-empty {
    padding: 3rem 3rem;
  }
}
/*
 * THE 80% BAND - landscape iPad ( html 80% ). Type scaled up in rem to land the same physical size.
 * Physical: title ~57px, lead ~18px; event title ~33px, event text ~15px.
 */
@media (min-width: 980px) and (max-width: 1024px) {
  .comp_11-title {
    font-size: 4.375rem;
  }
  .comp_11-rule {
    width: 5.25rem;
  }
  .comp_11-lead {
    max-width: 40rem;
    font-size: 1.375rem;
  }
  .comp_11-event-panel {
    padding: 3.25rem 3.25rem;
  }
  .comp_11-event-title {
    font-size: 2.625rem;
  }
  .comp_11-event-rule {
    width: 4rem;
  }
  .comp_11-event-date {
    font-size: 1.1875rem;
  }
  .comp_11-event-text {
    max-width: 23.75rem;
    font-size: 1.1875rem;
  }
  .comp_11-empty {
    padding: 3.25rem 3.25rem;
  }
  .comp_11-empty-text {
    font-size: 1.5rem;
  }
  .comp_11-closing-text {
    font-size: 1.375rem;
  }
}
/*
 * THE 70% BAND - 731-979px ( html 70% ). Alternation is already off here ( gated >=980 ), so every
 * card is photo-left. Type scaled up hard to hold size. Physical: title ~46px; event title ~32px.
 */
@media (max-width: 979px) {
  .comp_11-wrapper {
    padding: 6rem 2rem 6rem;
  }
  .comp_11-closing-wrapper {
    padding: 4.5rem 2rem;
  }
  .comp_11-header {
    margin-bottom: 3.5rem;
  }
  .comp_11-title {
    font-size: 4.125rem;
    font-weight: 400;
  }
  .comp_11-rule {
    width: 6rem;
    height: 0.3125rem;
  }
  .comp_11-lead {
    max-width: 45rem;
    font-size: 1.5rem;
  }
  .comp_11-events {
    gap: 2.5rem;
  }
  .comp_11-event-media {
    min-height: 18.75rem;
  }
  .comp_11-event-panel {
    padding: 3.5rem 3.5rem;
  }
  .comp_11-event-title {
    font-size: 2.875rem;
  }
  .comp_11-event-rule {
    width: 4.75rem;
    height: 0.3125rem;
  }
  .comp_11-event-date {
    font-size: 1.3125rem;
  }
  .comp_11-event-text {
    max-width: 27.5rem;
    font-size: 1.3125rem;
  }
  .comp_11-empty {
    min-height: 18.75rem;
    padding: 3.5rem 3.5rem;
  }
  .comp_11-empty-text {
    max-width: 38.75rem;
    font-size: 1.625rem;
  }
  .comp_11-closing-text {
    max-width: 35rem;
    font-size: 1.5rem;
  }
}
/*
 * PHONES - 480-730px ( html 90% ). The card stays photo-left / panel-right side-by-side, as in the
 * guide; the panel gets tight, so padding and type drop and the photo column narrows to give the
 * text room. Physical: header title ~32px; event title ~20px, event text ~13.5px.
 */
@media (max-width: 730px) {
  .comp_11-wrapper {
    padding: 4.875rem 1.5rem 4rem;
  }
  .comp_11-closing-wrapper {
    padding: 3.5rem 1.5rem;
  }
  .comp_11-header {
    margin-bottom: 2.5rem;
  }
  .comp_11-title {
    font-size: 2.25rem;
    line-height: 1.1;
  }
  .comp_11-rule {
    width: 3.5rem;
    height: 0.1875rem;
    margin-bottom: 1.5rem;
  }
  .comp_11-lead {
    max-width: none;
    font-size: 1.125rem;
    line-height: 1.65;
  }
  .comp_11-events {
    gap: 1.75rem;
  }
  .comp_11-event {
    box-shadow: 0 0.875rem 2.125rem rgba(29, 29, 27, 0.1);
  }
  .comp_11-event-media {
    flex-basis: 54%;
    min-height: 12.5rem;
  }
  .comp_11-event-panel {
    padding: 1.875rem 1.75rem;
  }
  .comp_11-event-title {
    margin-bottom: 1rem;
    font-size: 1.375rem;
    line-height: 1.15;
  }
  .comp_11-event-rule {
    width: 2.75rem;
    height: 0.1875rem;
    margin-bottom: 1rem;
  }
  .comp_11-event-date {
    margin-bottom: 0.75rem;
    font-size: 0.9375rem;
  }
  .comp_11-event-text {
    max-width: none;
    font-size: 0.9375rem;
  }
  .comp_11-empty {
    min-height: 12.5rem;
    padding: 2.5rem 1.75rem;
    box-shadow: 0 0.875rem 2.125rem rgba(29, 29, 27, 0.1);
  }
  .comp_11-empty-text {
    max-width: 25rem;
    font-size: 1.125rem;
  }
  .comp_11-closing-text {
    max-width: 21.25rem;
    font-size: 1.125rem;
  }
  .comp_11-social {
    margin-top: 1.375rem;
    gap: 0.875rem;
  }
  .comp_11-social-link {
    width: 3rem;
    height: 3rem;
  }
  .comp_11-social-link svg {
    width: 1.25rem;
    height: 1.25rem;
  }
}
/*
 * SMALL PHONES - <=479px ( html 100% ). Still side-by-side; the photo narrows once more and the panel
 * padding tightens so the two-line event title fits.
 */
@media (max-width: 479px) {
  .comp_11-wrapper {
    padding: 4.125rem 1.5rem 3.25rem;
  }
  .comp_11-closing-wrapper {
    padding: 3rem 1.5rem;
  }
  .comp_11-title {
    font-size: 1.875rem;
  }
  .comp_11-lead {
    font-size: 1.0625rem;
  }
  .comp_11-event-media {
    flex-basis: 50%;
    min-height: 11.125rem;
  }
  .comp_11-event-panel {
    padding: 1.375rem 1.25rem;
  }
  .comp_11-event-title {
    font-size: 1.1875rem;
  }
  .comp_11-event-date {
    font-size: 0.8125rem;
  }
  .comp_11-event-text {
    font-size: 0.875rem;
  }
  .comp_11-empty {
    min-height: 11.125rem;
    padding: 2rem 1.25rem;
  }
  .comp_11-empty-text {
    font-size: 1.0625rem;
  }
  .comp_11-closing-text {
    font-size: 1.0625rem;
  }
}
/*
 * REDUCED MOTION - WOW.js writes animation-name inline, so only !important reaches it. The
 * data-wow-delay stagger is inert once animation is off.
 */
@media (prefers-reduced-motion: reduce) {
  .comp_11-header.wow,
  .comp_11-event.wow,
  .comp_11-empty.wow,
  .comp_11-closing.wow {
    visibility: visible;
    animation: none !important;
  }
}
/*
 * COMP_12 - PŘEDOBJEDNÁVKA OBĚDŮ: ONE DAY, ONE CHOICE PER CATEGORY
 *
 * Markup: templates/comp_12.php
 * Behaviour: js/scripts-parts/comp_12.js ( validation + AJAX submit ). The reveal is WOW.js,
 * initialised inline in header.php.
 *
 * The ordering page for the reconstruction period. _comp_09.scss is the reference for everything
 * shared - the cream ground, the centred reading column, the light uppercase title / 72x4 red rule, and
 * the name · dotted leader · price dish row are all the same objects at the same sizes, so the two pages
 * read as one family. There is no eyebrow: a strapline above the title only pushed the one thing that
 * matters ( which day you are ordering for ) further down. What is new here is that the list is a FORM.
 *
 * THE RADIO IS NOT WHERE YOU THINK IT IS. scripts-main.js runs iCheck over jQuery('input') - every
 * input on the site, unconditionally - so by the time anyone sees this page each radio has been moved
 * inside a generated <div class="iradio"> and the real input is hidden. That is why:
 *   - the label uses `for` and does not wrap the input ( iCheck binds label[for] );
 *   - the checked state is styled off `.iradio.checked`, NOT `input:checked`;
 *   - `input:checked + .comp_12-option` is written alongside it as the pre-iCheck / no-JS fallback.
 * The circle itself comes from the shared skin in _icheck.scss and is only sized / spaced here.
 *
 * READ THE RESPONSIVE NOTE before changing a number: rem() is not physical px here - html{font-size}
 * steps 100/90/70/80/90/100% across the _base.scss breakpoints, which are NOT the ones used below.
 * Type is scaled in rem per band purely to land the same physical size, exactly like comp_09.
 */
.comp_12-wrapper {
  position: relative;
  width: 100%;
  background-color: #f4f2ef;
  box-sizing: border-box;
}

.comp_12-inner {
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  padding: 7rem 3rem 7.5rem 3rem;
  box-sizing: border-box;
}

.comp_12-order {
  position: relative;
  width: 100%;
  max-width: 56.25rem;
  margin: 0 auto;
}

/*
 * HEADER
 */
.comp_12-title {
  margin: 0 0 1.25rem 0;
  color: #1d1d1b;
  font-size: 3.75rem;
  font-weight: 200;
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: 0.005em;
}

.comp_12-rule {
  display: block;
  width: 4.5rem;
  height: 0.25rem;
  margin: 0 0 2.5rem 0;
  background-color: #be1622;
}

.comp_12-empty {
  margin: 0;
  font-size: 1.125rem;
  line-height: 1.6em;
  color: rgba(29, 29, 27, 0.7);
}

.comp_12-intro {
  margin: 0 0 0.875rem 0;
  max-width: 42.5rem;
  color: rgba(29, 29, 27, 0.72);
  font-size: 1.0625rem;
  line-height: 1.6em;
}

.comp_12-notice {
  margin: 0 0 2.25rem 0;
  max-width: 42.5rem;
  color: rgba(29, 29, 27, 0.72);
  font-size: 1.0625rem;
  line-height: 1.6em;
}

/*
 * The one sentence people will skim for. Underlined rather than coloured or boxed: red would collide
 * with the deadline line just below and with the selected-row state, and a box would reintroduce the
 * card look this page deliberately avoids. text-decoration-color keeps the accent as a mark under the
 * words while the words themselves stay readable body text.
 */
.comp_12-notice-key {
  color: #1d1d1b;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: #be1622;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

/*
 * THE DAY + DEADLINE
 *
 * The single most important line on the page: people arrive from an e-mail and must not have to work
 * out which day they are ordering for. Given the full-width dark band treatment so it cannot be missed.
 */
.comp_12-day {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.25rem 0.875rem;
  margin: 0 0 0.625rem 0;
  padding: 1.25rem 1.75rem;
  background-color: #1d1d1b;
  border-radius: 0.5rem;
}

.comp_12-day-label {
  color: #ffffff;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.comp_12-day-date {
  color: rgba(255, 255, 255, 0.66);
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.02em;
}

.comp_12-deadline {
  margin: 0 0 2.75rem 0;
  color: #be1622;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.02em;
}

/*
 * CATEGORY GROUPS
 *
 * A real <fieldset> / <legend>, so each set of dishes is announced as one named choice. The fieldset's
 * UA border / padding / margin are all reset - the visual grouping is the heading rule, as in comp_09.
 */
.comp_12-category {
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
}

.comp_12-category + .comp_12-category,
.comp_12-category + .comp_12-drinks {
  margin-top: 2.75rem;
}

/*
 * <legend> is styled as a plain block. Its UA behaviour ( floating inside the fieldset border, ignoring
 * width ) only bites when the fieldset has a border - there is none here, so display:block is enough
 * and none of the usual legend workarounds are needed.
 */
.comp_12-category-heading {
  position: relative;
  display: block;
  width: 100%;
  margin: 0 0 0.375rem 0;
  padding: 0 0 0.75rem 0;
  color: #1d1d1b;
  font-size: 1.375rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.comp_12-category-heading::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 4.5rem;
  height: 0.25rem;
  background-color: #be1622;
}

.comp_12-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

/*
 * THE DISH ROWS
 *
 * Each row is [ iCheck circle ][ label ]. The label is the flexible part and carries the whole visual
 * row, so the hit area is the entire dish, not just the circle.
 */
/*
 * THE RADIO'S VERTICAL POSITION is the fiddly part of this component, so the rule is written down once
 * here and every band below just re-applies it:
 *
 *     margin-top = label padding-top + ( first line box - circle ) / 2
 *
 * which centres the circle on the DISH NAME rather than on the whole label ( the label is two lines tall
 * whenever a dish has a description ). Two things have to be true for that to hold in every band, and
 * both are arranged for below: the circle has to be sized in rem like everything else, and the
 * "Neobjednávám" row has to keep the same line box as a dish name.
 */
.comp_12-item {
  display: flex;
  align-items: flex-start;
  /*
   * Pulled out and padded back in by the same amount, so the wash and the separator extend a little
   * past the text on both sides while the CIRCLE still lines up with the category rule on the left and
   * the PRICE still lines up with the day band on the right. Padding alone would have indented both.
   */
  margin: 0 -0.75rem;
  padding: 0 0.75rem;
  border-bottom: 1px solid rgba(29, 29, 27, 0.1);
  border-radius: 0.375rem;
  transition: background-color 0.2s ease;
}
.comp_12-item:last-child {
  border-bottom: 0;
}
.comp_12-item {
  /*
   * THE WHOLE ROW is the hover / selected surface, circle included. Putting it on the label instead
   * left the circle sitting outside its own highlight, which read as though the two were unrelated.
   * :has() is what makes the row-level version possible - the radio comes BEFORE the label in source
   * order, so no sibling combinator can reach back to it from the label.
   *
   * `.iradio.checked` is the live state ( iCheck moves the input into that wrapper and hides it );
   * `:checked` is the fallback for the moment before iCheck initialises and for a no-JS render.
   */
}
.comp_12-item:hover {
  background-color: rgba(29, 29, 27, 0.04);
}
.comp_12-item:has(.iradio.checked), .comp_12-item:has(.comp_12-radio:checked) {
  background-color: rgba(190, 22, 34, 0.06);
}
.comp_12-item:has(.iradio.checked) .comp_12-item-name, .comp_12-item:has(.comp_12-radio:checked) .comp_12-item-name {
  color: #be1622;
}
.comp_12-item:has(.iradio.checked) .comp_12-item-dots, .comp_12-item:has(.comp_12-radio:checked) .comp_12-item-dots {
  border-bottom-color: rgba(190, 22, 34, 0.3);
}
.comp_12-item {
  /*
   * The iCheck wrapper ( and the bare input before iCheck has run ). _icheck.scss draws the circle at
   * a RAW 24px, which does not scale with html{font-size} - at the 70% band that is a 24px circle
   * beside 17px text, and it breaks the centring formula above. Re-sized in rem here so the whole row
   * scales as one unit and a single margin-top per band is correct.
   */
}
.comp_12-item .iradio,
.comp_12-item > .comp_12-radio {
  flex: 0 0 auto;
  width: 1.375rem;
  height: 1.375rem;
  margin: 1rem 0.875rem 0 0;
}
.comp_12-item .iradio::before,
.comp_12-item > .comp_12-radio::before {
  width: 0.625rem;
  height: 0.625rem;
}

/*
 * Row hover - a whole-row wash rather than a colour change on the name, so the target reads as clickable.
 *
 * QUALIFIED WITH .comp_12-item ON PURPOSE. _inputs.scss styles bare labels with `label:not(.b-tg)`,
 * which is specificity (0,1,1) and so beats a lone class - it forces padding:0, width:100% and a bottom
 * margin on every label in the theme. A plain `.comp_12-option` (0,1,0) loses to it, the padding below
 * silently never lands, and the radio sits ~19px under the dish name. (0,2,0) wins cleanly.
 */
.comp_12-item .comp_12-option {
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  margin: 0;
  padding: 0.875rem 0;
  cursor: pointer;
}

.comp_12-item:has(.comp_12-radio:focus-visible) {
  outline: 2px solid #be1622;
  outline-offset: 2px;
}

.comp_12-item-head {
  display: flex;
  align-items: baseline;
}

.comp_12-item-name {
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
  color: #1d1d1b;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.3;
  transition: color 0.2s ease;
}

/*
 * The EU allergen numbers, set between the dish name and the dot leader the way comp_09 sets them.
 * flex: 0 0 auto so the leader keeps absorbing the slack; the numbers never wrap away from the name
 * they belong to. Every number is spelled out in .comp_12-allergens below the Nápoje row.
 *
 * NO transition and no state colour, unlike the name above: this span sits inside the option's <label>,
 * and an allergen declaration that brightens when a row is selected would read as part of the selection
 * rather than as a fact about the food.
 *
 * The same class carries the numbers on the confirmation panel's rows ( .comp_12-done-row ), which is
 * why the rule is not scoped to .comp_12-item-head - one set of numbers, one appearance.
 */
.comp_12-item-allergens {
  flex: 0 0 auto;
  margin-left: 0.4375rem;
  color: rgba(29, 29, 27, 0.45);
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.comp_12-item-dots {
  flex: 1 1 auto;
  min-width: 1rem;
  margin: 0 0.5rem;
  border-bottom: 2px dotted rgba(29, 29, 27, 0.28);
  transform: translateY(-0.28em);
  transition: border-color 0.2s ease;
}

.comp_12-item-price {
  flex: 0 0 auto;
  color: #1d1d1b;
  font-size: 1.1875rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
}

.comp_12-item-desc {
  display: block;
  margin: 0.25rem 0 0 0;
  max-width: 38.75rem;
  color: rgba(29, 29, 27, 0.6);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.5;
}

/*
 * The "Neobjednávám" opt-out. Quieter than a dish and never accented when selected - it is the default,
 * so highlighting it would make an untouched category look like a decision.
 *
 * IT KEEPS THE DISH NAME'S FONT-SIZE, and is set apart by weight / italic / colour instead. A smaller
 * size here would give the row a shorter line box than every other row, which means the circle would
 * need its own margin-top - a second set of numbers to keep in step across four breakpoints, and the
 * reason this row was visibly out of line before. Same line box, same offset, one rule.
 */
.comp_12-item-none .comp_12-item-name {
  color: rgba(29, 29, 27, 0.45);
  font-weight: 400;
  font-style: italic;
}
.comp_12-item-none {
  /*
   * Checked, this row gets NO wash and NO accent - it is the default state of every group, so
   * highlighting it would make an untouched category look like a decision someone had made.
   *
   * Has to mirror the row-level :has() form used for the wash above; when that lived on the label
   * this was written as `.iradio.checked + .comp_12-option` and quietly stopped matching. Same
   * specificity as the rule it cancels, so it wins on source order - it must stay below it.
   */
}
.comp_12-item-none:has(.iradio.checked), .comp_12-item-none:has(.comp_12-radio:checked) {
  background-color: transparent;
}
.comp_12-item-none:has(.iradio.checked) .comp_12-item-name, .comp_12-item-none:has(.comp_12-radio:checked) .comp_12-item-name {
  color: rgba(29, 29, 27, 0.45);
}

/*
 * NÁPOJE - THE FIXED INFORMATION ROW
 *
 * One hardcoded line, not a choice ( see templates/comp_12.php ). It borrows the dish row's insides
 * wholesale - .comp_12-item-head / -name / -dots / -price - so it tracks every type size and the
 * phone-band stacking on its own, and everything that needs saying here is what it does NOT have:
 *
 *   no hover wash and no cursor:pointer   nothing happens when you click it
 *   no border-bottom                      a single row has nothing to be separated from
 *   no left indent                        dish names clear their circle; with no circle this lines up
 *                                         with the category rule instead, which is what makes it read
 *                                         as a statement rather than a broken option
 *
 * Only the vertical padding is repeated, and it is repeated because it has to equal the dish rows' -
 * see .comp_12-item .comp_12-option, which carries the same value in each band.
 */
.comp_12-drinks-row {
  margin: 0;
  padding: 0.875rem 0;
}

/*
 * THE ALLERGEN LEGEND
 *
 * One per page, closing the MENU half of the form - above the identity box, because past that box the
 * reader has stopped choosing food and is filling fields in. Lists only the numbers the day actually
 * uses, each spelled out in full: the client's rule is that the answer is in the menu, so there is
 * deliberately no "zeptejte se obsluhy" line anywhere.
 *
 * Two columns via CSS columns rather than the grid - the items are one <ul> of uneven-length rows and
 * the browser can balance them without per-item markup.
 *
 * THE SAME BLOCK SERVES THE CONFIRMATION PANEL, where comp_12.js clones this element in whole. Nothing
 * here may be scoped to the form, and the top margin is written to work in both places: it matches the
 * spacing between two categories, so it reads as one more block of the menu after the Nápoje row and
 * as a closing note after the confirmation's total.
 */
.comp_12-allergens {
  margin-top: 2.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(29, 29, 27, 0.14);
}

.comp_12-allergens-heading {
  margin: 0 0 0.875rem 0;
  color: #1d1d1b;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.comp_12-allergens-list {
  margin: 0;
  padding: 0;
  list-style: none;
  columns: 2;
  column-gap: 2.5rem;
}

.comp_12-allergens-item {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin: 0 0 0.4375rem 0;
  break-inside: avoid;
  color: rgba(29, 29, 27, 0.6);
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.45;
}

.comp_12-allergens-num {
  flex: 0 0 auto;
  min-width: 1.125rem;
  color: #be1622;
  font-weight: 600;
}

.comp_12-allergens-name {
  flex: 1 1 auto;
  min-width: 0;
}

/*
 * IDENTITY + SUBMIT
 */
.comp_12-identity {
  margin: 3rem 0 0 0;
  padding: 2rem 2rem 1.5rem 2rem;
  background-color: rgba(29, 29, 27, 0.03);
  border-radius: 0.5rem;
}

.comp_12-identity-known {
  margin: 0 0 1rem 0;
  color: rgba(29, 29, 27, 0.7);
  font-size: 1rem;
  line-height: 1.5;
}
.comp_12-identity-known strong {
  display: block;
  margin-top: 0.125rem;
  color: #1d1d1b;
  font-weight: 600;
}

/*
 * FIELD LABELS. Both fields in the identity box carry one, and each needs TWO classes to exist:
 * _inputs.scss styles bare `label:not(.b-tg)` at specificity (0,1,1) with `display:block; width:100%`
 * and its own font, and a single class would lose to it. `.comp_12-identity .comp_12-field-label` is
 * (0,2,0) and wins - the same trap that made the radio rows misalign earlier in this build.
 */
.comp_12-identity .comp_12-field-label {
  display: block;
  margin: 0 0 0.5rem 0;
  color: rgba(29, 29, 27, 0.55);
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/*
 * JÍDLO S SEBOU - the ano / ne pair.
 *
 * Two radios side by side rather than a select: it is a two-way answer, both options are worth seeing
 * without opening anything, and it reuses the iCheck circles the dish rows already use ( scripts-main.js
 * applies iCheck to every input on the page, so these get the wrapper for free ).
 *
 * SCOPED UNDER .comp_12-identity, all of it. `label:not(.b-tg)` in _inputs.scss is specificity (0,1,1)
 * and forces display:block, width:100% and a bottom margin onto every label in the theme - a lone
 * .comp_12-toggle-label would lose to it and the two options would stack full-width instead of sitting
 * as a pair. (0,2,0) wins. This is the same trap the select and the field labels above document.
 *
 * The bottom margin matches the select's rem(22), so the three fields in the box keep one rhythm.
 */
.comp_12-identity .comp_12-toggle {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem 1.75rem;
  margin: 0 0 1.375rem 0;
}

.comp_12-identity .comp_12-toggle-option {
  display: flex;
  align-items: center;
}
.comp_12-identity .comp_12-toggle-option .iradio,
.comp_12-identity .comp_12-toggle-option > .comp_12-toggle-radio {
  flex: 0 0 auto;
  width: 1.375rem;
  height: 1.375rem;
  margin: 0 0.625rem 0 0;
}
.comp_12-identity .comp_12-toggle-option .iradio::before,
.comp_12-identity .comp_12-toggle-option > .comp_12-toggle-radio::before {
  width: 0.625rem;
  height: 0.625rem;
}

/*
 * rem(18) matches the select below and the e-mail input beside it ( _inputs.scss sizes every input at
 * rem(18) ), so the three answers in this box read as one set of controls.
 *
 * NOT RE-SCALED PER BAND, for the same reason the select is not - see the long note under it. The
 * moment one of the three gets its own per-band size the box stops matching itself.
 */
.comp_12-identity .comp_12-toggle-label {
  display: inline-block;
  width: auto;
  margin: 0;
  padding: 0;
  color: #1d1d1b;
  font-family: "Mukta";
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.3;
  cursor: pointer;
}

/*
 * The refused state. Only ever set by comp_12.js after the SERVER rejects the answer - "Ne" ships
 * pre-selected, so there is nothing a person filling the form in can do to reach it. It exists so that
 * a tampered or truncated POST gets pointed at the field rather than at a generic error.
 */
.comp_12-identity .comp_12-toggle.error {
  margin: 0 -0.625rem 1.375rem -0.625rem;
  padding: 0.5rem 0.625rem;
  background-color: rgba(190, 22, 34, 0.06);
  border-radius: 0.375rem;
  box-shadow: inset 0 0 0 1px rgba(190, 22, 34, 0.45);
}

/*
 * THE FIRMA SELECT. There is no select styling anywhere else in this theme - _inputs.scss has none -
 * so this is built from scratch to sit beside .comp_12-input as a matching pair. The font size and
 * vertical padding are copied from the `input[type="email"]` rule in _inputs.scss rather than chosen:
 * two boxes stacked in one panel have to be the same height, and eyeballing them apart is exactly the
 * sort of 3px drift nobody notices until the client does.
 *
 * appearance:none drops the platform control, which otherwise ignores the border radius on Safari and
 * renders at its own height regardless of padding. The arrow is then ours: an inline SVG data URI
 * rather than a pseudo-element, because a <select> cannot carry ::after.
 *
 * iCheck never touches this - scripts-main.js applies it to jQuery('input') only - so unlike the
 * radios there is no wrapper element to style around.
 */
.comp_12-identity .comp_12-select {
  display: block;
  width: 100%;
  margin: 0 0 1.375rem 0;
  padding: 0.75rem 2.75rem 0.75rem 0.75rem;
  background-color: #ffffff;
  border: 1px solid rgba(29, 29, 27, 0.2);
  border-radius: 0.375rem;
  color: #222222;
  font-family: "Mukta";
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.2em;
  cursor: pointer;
  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  /*
   * DELIBERATELY NOT RE-SCALED PER BAND, unlike almost everything else in this file. The e-mail input
   * is sized once by _inputs.scss and never overridden here, so the moment this select gets its own
   * per-band font-size the pair stops matching - which is exactly what happened: a rem(16) override
   * at <=730 rendered at 14.4px, because html{font-size} is 90% in that band and rem() is not
   * physical px. It was also below the 16px at which iOS Safari zooms the page on focus, so the
   * "safe" number was doing the opposite of what its comment claimed.
   */
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath fill='none' stroke='%231d1d1b' stroke-width='2' d='M1 1l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.875rem center;
  background-size: 0.875rem 0.5625rem;
}
.comp_12-identity .comp_12-select:focus {
  outline: none;
  border-color: rgba(29, 29, 27, 0.5);
}
.comp_12-identity .comp_12-select.error {
  border-color: #be1622;
}

/*
 * SCOPED TO .comp_12-identity FOR ONE REASON: the border. `input[type="email"]` in _inputs.scss is
 * specificity (0,1,1) and sets `border: 1px solid $color-text` - a near-black #222 - which quietly
 * beat the soft border this rule has always asked for while it was a single class. Nobody spotted it
 * until the select landed beside the field with the border it actually intended and the two did not
 * match. (0,2,0) settles it.
 */
.comp_12-identity .comp_12-input {
  margin-bottom: 1.375rem !important;
  border: 1px solid rgba(29, 29, 27, 0.2);
  border-radius: 0.375rem;
}
.comp_12-identity .comp_12-input:focus {
  border-color: rgba(29, 29, 27, 0.5);
}
.comp_12-identity .comp_12-input.error {
  border-color: #be1622;
}
.comp_12-identity .comp_12-input[readonly] {
  background-color: rgba(29, 29, 27, 0.05);
  color: rgba(29, 29, 27, 0.6);
  cursor: not-allowed;
}

.comp_12-identity-note {
  margin: 0;
  color: rgba(29, 29, 27, 0.55);
  font-size: 0.875rem;
  line-height: 1.5;
}

/*
 * THE NO-SHOW CLAUSE ( cookie_preorder_noshow_note() ), between the identity box and the submit button.
 *
 * Full primary colour and semibold, deliberately NOT the muted grey of .comp_12-identity-note directly
 * above it: a term of the order and a footnote about e-mail must not merge into one grey block, the
 * second half of which nobody reads. It sits outside .comp_12-identity for the same reason - that box
 * is about who is ordering.
 *
 * No underline and no box. The page has exactly one marked sentence ( .comp_12-notice-key, the "+2 days"
 * rule ) and boxes are the card look this component avoids throughout; weight and colour are enough at
 * this position, where there is nothing else left to read.
 */
.comp_12-terms {
  margin: 1.875rem 0 0 0;
  max-width: 38.75rem;
  color: #1d1d1b;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.6;
}

/*
 * The submit button. Excluded from the shared chain in _buttons.scss ( see the :not() list there ) so
 * it can be a solid red block rather than the theme's outlined default - the same arrangement
 * .comp_04-submit / .comp_10-submit / .comp_07-submit have.
 */
.comp_12-submit {
  display: block;
  width: fit-content;
  margin: 2rem 0 0 auto;
  padding: 1.25rem 3rem;
  background-color: #be1622;
  border: 0;
  border-radius: 0.5rem;
  color: #ffffff;
  font-family: "Mukta";
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 0.25s ease, transform 0.25s ease;
}
.comp_12-submit:hover {
  background-color: rgb(60.1701812801%, 6.9670736219%, 10.7672955975%);
  transform: scale(0.97);
}
.comp_12-submit:focus-visible {
  outline: 2px solid #1d1d1b;
  outline-offset: 3px;
}

.comp_12-form.working .comp_12-submit {
  opacity: 0.6;
  pointer-events: none;
}

/*
 * ALREADY ORDERED
 *
 * The terminal state - orders are one per address per day and locked, so this replaces the form
 * entirely rather than showing a disabled one.
 */
/*
 * NO CARD, DELIBERATELY. This used to be a white rounded panel with a red left border sitting on the
 * cream - a generic notice-box shape that appears nowhere else on this site and read as bolted on.
 * Everything here is made of parts the ordering page already owns: the dark day band verbatim, and the
 * dish rows in the same name · dotted leader · price arrangement as the menu itself. The result is that
 * the confirmation looks like the thing that was ordered from, settled - not an alert about it.
 */
.comp_12-done .comp_12-day {
  margin-bottom: 2.25rem;
}

.comp_12-done-intro {
  margin: 0 0 1.5rem 0;
  max-width: 42.5rem;
  color: rgba(29, 29, 27, 0.72);
  font-size: 1.0625rem;
  line-height: 1.6em;
}

/*
 * The firma on the confirmation panel. A label / value pair rather than a sentence, because it is a
 * field being echoed back rather than something being said - and it reads as one line at every width,
 * so it needs none of the wrapping care the dish rows do.
 */
.comp_12-done-company,
.comp_12-done-takeaway {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin: 0 0 1.25rem 0;
}

.comp_12-done-company:has(+ .comp_12-done-takeaway) {
  margin-bottom: 0.5rem;
}

.comp_12-done-company-label {
  color: rgba(29, 29, 27, 0.5);
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.comp_12-done-company-value {
  color: #1d1d1b;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.3;
}

.comp_12-done-lead {
  margin: 0 0 0.375rem 0;
  color: rgba(29, 29, 27, 0.6);
  font-size: 1rem;
  line-height: 1.6;
}

.comp_12-done-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.comp_12-done-item {
  padding: 1.125rem 0;
  border-bottom: 1px solid rgba(29, 29, 27, 0.1);
}

.comp_12-done-cat {
  display: block;
  margin-bottom: 0.25rem;
  color: rgba(29, 29, 27, 0.45);
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.comp_12-done-row {
  display: flex;
  align-items: baseline;
}

.comp_12-done-name {
  flex: 0 1 auto;
  min-width: 0;
  color: #1d1d1b;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.3;
}

.comp_12-done-price {
  flex: 0 0 auto;
  color: #1d1d1b;
  font-size: 1.1875rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
}

.comp_12-done-total {
  display: flex;
  align-items: baseline;
  padding: 1.125rem 0 0 0;
}
.comp_12-done-total .comp_12-item-dots {
  border-bottom-color: rgba(190, 22, 34, 0.25);
}

.comp_12-done-total-label {
  flex: 0 0 auto;
  color: rgba(29, 29, 27, 0.5);
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.comp_12-done-total-value {
  flex: 0 0 auto;
  color: #be1622;
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.3;
  white-space: nowrap;
}

/*
 * The same clause in the confirmation panel - printed by comp_12.php on a revisit, cloned into place by
 * comp_12.js after a submit. Identical type to .comp_12-terms on the form, so what someone agreed to and
 * what they are shown afterwards look like the same sentence rather than a restatement of it.
 */
.comp_12-done-terms {
  margin: 2rem 0 0 0;
  max-width: 38.75rem;
  color: #1d1d1b;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.6;
}

.comp_12-done-note {
  margin: 2rem 0 0 0;
  max-width: 38.75rem;
  color: rgba(29, 29, 27, 0.55);
  font-size: 0.9375rem;
  line-height: 1.6;
}
.comp_12-done-note strong {
  color: #1d1d1b;
  font-weight: 600;
}
.comp_12-done-note a {
  color: #1d1d1b;
  text-decoration: underline;
  transition: color 0.2s ease;
}
.comp_12-done-note a:hover {
  color: #be1622;
}

.comp_12-done-terms + .comp_12-done-note {
  margin-top: 0.375rem;
}

/*
 * THE SUCCESS POP-UP'S BODY COPY
 *
 * RENDERED OUTSIDE THIS COMPONENT. SweetAlert appends its modal to <body>, so these two paragraphs are
 * nowhere near .comp_12-wrapper and nothing here may be nested under it. They are named for the
 * component anyway because that is what owns the words - scss/vendor/_sweetalert2.scss styles the modal
 * itself and has no business knowing about an order confirmation.
 *
 * The same two sentences as the confirmation panel above, in the same order and the same relationship:
 * the clause first, its remedy under it. Type is a touch smaller than the panel's - a modal is read at
 * once rather than scanned - and centred, which .swal2-content already does for everything inside it.
 */
.comp_12-swal-terms {
  margin: 0;
  color: #1d1d1b;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.5;
}

.comp_12-swal-note {
  margin: 0.75rem 0 0 0;
  color: rgba(29, 29, 27, 0.6);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.55;
}
.comp_12-swal-note strong {
  color: #1d1d1b;
  font-weight: 600;
}
.comp_12-swal-note a {
  color: #be1622;
  text-decoration: underline;
  white-space: nowrap;
}

/*
 * RESPONSIVE
 */
@media (max-width: 1239px) {
  .comp_12-inner {
    padding: 6.25rem 3.5rem 6.5rem 3.5rem;
  }
}
/*
 * THE 80% BAND ( 980-1024px, landscape iPad ). Type scaled up in rem so it lands the same physical
 * size. Physical: title 48px, category 17.6px, dish name 18.4px.
 */
@media (min-width: 980px) and (max-width: 1024px) {
  .comp_12-title {
    font-size: 4.125rem;
  }
  .comp_12-rule {
    width: 5.25rem;
  }
  .comp_12-intro,
  .comp_12-notice,
  .comp_12-done-intro {
    font-size: 1.1875rem;
  }
  .comp_12-day-label {
    font-size: 1.4375rem;
  }
  .comp_12-day-date {
    font-size: 1.3125rem;
  }
  .comp_12-deadline {
    font-size: 1.0625rem;
  }
  .comp_12-terms,
  .comp_12-done-terms {
    font-size: 1.0625rem;
  }
  .comp_12-category-heading {
    font-size: 1.5625rem;
  }
  .comp_12-item-name {
    font-size: 1.4375rem;
  }
  .comp_12-item .iradio,
  .comp_12-item > .comp_12-radio {
    margin-top: 1.125rem;
  }
  .comp_12-item-price {
    font-size: 1.375rem;
  }
  .comp_12-item-desc {
    font-size: 1.0625rem;
  }
  .comp_12-item-allergens {
    font-size: 0.9375rem;
  }
  .comp_12-allergens-heading {
    font-size: 1.125rem;
  }
  .comp_12-allergens-item {
    font-size: 0.9375rem;
  }
  .comp_12-done-name {
    font-size: 1.4375rem;
  }
  .comp_12-done-price {
    font-size: 1.375rem;
  }
  .comp_12-done-total-value {
    font-size: 1.5625rem;
  }
}
/*
 * STACKED - 979px, matching where the header collapses and comp_09 stacks. html is 70% here, so type
 * is scaled up hard. Physical ( x0.7 ): title 44.8px, category 16.8px, dish name 16.8px.
 */
@media (max-width: 979px) {
  .comp_12-inner {
    padding: 4.5rem 2rem;
  }
  .comp_12-order {
    max-width: 47.5rem;
  }
  .comp_12-title {
    margin-bottom: 1.5rem;
    font-size: 4rem;
    font-weight: 400;
  }
  .comp_12-rule {
    width: 6rem;
    height: 0.3125rem;
    margin-bottom: 2.75rem;
  }
  .comp_12-intro {
    margin-bottom: 1rem;
    font-size: 1.3125rem;
  }
  .comp_12-notice {
    margin-bottom: 2.75rem;
    font-size: 1.3125rem;
  }
  .comp_12-day {
    padding: 1.625rem 2rem;
  }
  .comp_12-day-label {
    font-size: 1.625rem;
  }
  .comp_12-day-date {
    font-size: 1.4375rem;
  }
  .comp_12-deadline {
    margin-bottom: 3.25rem;
    font-size: 1.1875rem;
  }
  .comp_12-category + .comp_12-category,
  .comp_12-category + .comp_12-drinks {
    margin-top: 3.25rem;
  }
  .comp_12-category-heading {
    font-size: 1.5rem;
    padding-bottom: 0.875rem;
  }
  .comp_12-item .iradio,
  .comp_12-item > .comp_12-radio {
    margin-top: 1.4375rem;
  }
  .comp_12-item .comp_12-option,
  .comp_12-drinks-row {
    padding: 1.125rem 0;
  }
  .comp_12-item-name {
    font-size: 1.5rem;
  }
  .comp_12-item-price {
    font-size: 1.5rem;
  }
  .comp_12-item-desc {
    font-size: 1.1875rem;
    max-width: none;
  }
  .comp_12-item-allergens {
    font-size: 1rem;
  }
  .comp_12-allergens-heading {
    font-size: 1.25rem;
  }
  .comp_12-allergens-item {
    font-size: 1rem;
  }
  .comp_12-identity {
    padding: 2.25rem;
  }
  .comp_12-identity .comp_12-field-label {
    font-size: 0.9375rem;
  }
  .comp_12-identity-known {
    font-size: 1.25rem;
  }
  .comp_12-identity-note {
    font-size: 1.0625rem;
  }
  .comp_12-done-company-label {
    font-size: 0.9375rem;
  }
  .comp_12-done-company-value {
    font-size: 1.3125rem;
  }
  .comp_12-terms,
  .comp_12-done-terms {
    font-size: 1.1875rem;
  }
  .comp_12-submit {
    font-size: 1.3125rem;
  }
  .comp_12-done-intro {
    font-size: 1.3125rem;
  }
  .comp_12-done-lead {
    font-size: 1.25rem;
  }
  .comp_12-done-name {
    font-size: 1.5rem;
  }
  .comp_12-done-price {
    font-size: 1.5rem;
  }
  .comp_12-done-total-value {
    font-size: 1.6875rem;
  }
  .comp_12-done-note {
    font-size: 1.1875rem;
  }
}
/*
 * PHONES. html is 90% here. Physical ( x0.9 ): title 34.2px, category 19.8px, dish name 16.2px.
 */
@media (max-width: 730px) {
  .comp_12-inner {
    padding: 4.375rem 1.5rem 3.5rem;
  }
  .comp_12-title {
    margin-bottom: 1.125rem;
    font-size: 2.375rem;
    line-height: 1.1;
  }
  .comp_12-rule {
    width: 3.5rem;
    height: 0.1875rem;
    margin-bottom: 1.875rem;
  }
  .comp_12-intro {
    margin-bottom: 0.75rem;
    font-size: 1rem;
  }
  .comp_12-notice {
    margin-bottom: 1.875rem;
    font-size: 1rem;
  }
  .comp_12-notice-key {
    text-underline-offset: 3px;
  }
  .comp_12-day {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
    padding: 1.125rem 1.25rem;
  }
  .comp_12-day-label {
    font-size: 1.1875rem;
  }
  .comp_12-day-date {
    font-size: 1.0625rem;
  }
  .comp_12-deadline {
    margin-bottom: 2.25rem;
    font-size: 0.9375rem;
  }
  .comp_12-category + .comp_12-category,
  .comp_12-category + .comp_12-drinks {
    margin-top: 2.25rem;
  }
  .comp_12-category-heading {
    font-size: 1.375rem;
    padding-bottom: 0.625rem;
  }
  .comp_12-item .iradio,
  .comp_12-item > .comp_12-radio {
    margin: 0.8125rem 0.75rem 0 0;
  }
  .comp_12-item .comp_12-option,
  .comp_12-drinks-row {
    padding: 0.75rem 0;
  }
  .comp_12-item-head {
    flex-wrap: wrap;
  }
  .comp_12-item-dots {
    display: none;
  }
  .comp_12-item-name {
    flex: 1 1 100%;
    font-size: 1.125rem;
  }
  .comp_12-item-price {
    margin-top: 0.125rem;
    font-size: 1rem;
  }
  /*
   * The numbers take a line of their own at this width, the way the price does above - .comp_12-item-head
   * and .comp_12-done-row both wrap here and the leader is gone, so left inline they would end up sitting
   * against the price with nothing between them.
   *
   * ABOVE the price rather than reordered below it: they annotate the dish name, and name / price /
   * numbers would attach them to the wrong thing. white-space back to normal because a dish carrying six
   * or seven allergens is now on a line it is allowed to wrap on.
   */
  .comp_12-item-allergens {
    flex: 1 1 100%;
    margin-top: 0.125rem;
    margin-left: 0;
    font-size: 0.8125rem;
    white-space: normal;
  }
  .comp_12-item-desc {
    font-size: 0.875rem;
    max-width: none;
  }
  .comp_12-allergens {
    margin-top: 2.125rem;
    padding-top: 1.25rem;
  }
  .comp_12-allergens-heading {
    font-size: 0.9375rem;
  }
  .comp_12-allergens-list {
    columns: 1;
  }
  .comp_12-allergens-item {
    font-size: 0.8125rem;
  }
  .comp_12-identity {
    margin-top: 2.25rem;
    padding: 1.5rem 1.25rem 1.25rem 1.25rem;
  }
  .comp_12-identity .comp_12-field-label {
    font-size: 0.75rem;
  }
  .comp_12-identity-known {
    font-size: 0.9375rem;
  }
  .comp_12-identity-note {
    font-size: 0.8125rem;
  }
  .comp_12-done-company-label {
    font-size: 0.75rem;
  }
  .comp_12-done-company-value {
    font-size: 1rem;
  }
  .comp_12-terms,
  .comp_12-done-terms {
    margin-top: 1.5rem;
    font-size: 0.875rem;
  }
  .comp_12-submit {
    display: block;
    width: 100%;
    margin-top: 1.5rem;
    padding: 1.125rem 1.25rem;
    font-size: 1rem;
  }
  .comp_12-done .comp_12-day {
    margin-bottom: 1.75rem;
  }
  .comp_12-done-intro {
    margin-bottom: 1.25rem;
    font-size: 1rem;
  }
  .comp_12-done-lead {
    font-size: 0.9375rem;
  }
  .comp_12-done-item {
    padding: 0.875rem 0;
  }
  .comp_12-done-row {
    flex-wrap: wrap;
  }
  .comp_12-done-row .comp_12-item-dots {
    display: none;
  }
  .comp_12-done-name {
    flex: 1 1 100%;
    font-size: 1.125rem;
  }
  .comp_12-done-price {
    margin-top: 0.125rem;
    font-size: 1rem;
  }
  .comp_12-done-total {
    justify-content: space-between;
  }
  .comp_12-done-total-value {
    font-size: 1.1875rem;
  }
  .comp_12-done-note {
    margin-top: 1.5rem;
    font-size: 0.875rem;
  }
}
/*
 * COMP_13 - SNÍDANĚ: SERVING WINDOW + STACKED CATEGORY LIST
 *
 * Markup: templates/comp_13.php
 * Behaviour: none of its own. The print button reuses the delegated handler at the foot of
 * js/scripts-parts/comp_09.js. The reveal is WOW.js, initialised inline in header.php.
 *
 * comp_09's page WITHOUT THE DAY AXIS. Breakfast is static, so there are no tabs, no panels and no
 * sliding underline - which removes the three most delicate things in _comp_09.scss and leaves the
 * cream ground, the shared head ( eyebrow · title · rem(72)x4 rule ), the typographic dish row and the
 * allergen legend. Every number below is lifted from _comp_09.scss on purpose: the two pages are read
 * one after the other and must feel like one menu set in one hand.
 *
 * THE WINDOW BAND IS THE EXCEPTION, and the one place this file deliberately departs from comp_09.
 * comp_09's "Výdej obědů" box is a quiet hairline panel that @media print STRIPS. This one is louder on
 * screen and is KEPT on paper: /snidane/ is reachable at any hour of any day, so the band is the only
 * thing standing between the page and a visitor who walks over on a Monday. It earns the emphasis.
 *
 * READ THE RESPONSIVE NOTE before changing a number: rem() is not physical px here - html{font-size}
 * steps 100/90/70/80/90/100% across the _base.scss breakpoints, which are NOT the ones used below.
 * Type is scaled in rem per band purely to land the same physical size, exactly like comp_09.
 */
.comp_13-wrapper {
  position: relative;
  width: 100%;
  background-color: #f4f2ef;
  box-sizing: border-box;
}

.comp_13-inner {
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  padding: 7rem 3rem 7.5rem 3rem;
  box-sizing: border-box;
}

.comp_13-menu {
  position: relative;
  width: 100%;
  max-width: 56.25rem;
  margin: 0 auto;
}

/*
 * HEAD - print logo, print button, eyebrow, title, rule
 */
.comp_13-print-logo {
  display: none;
}

.comp_13-print {
  position: absolute;
  top: 0.25rem;
  right: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  padding: 0.5625rem 1.125rem;
  background: transparent;
  border: 1px solid rgba(29, 29, 27, 0.18);
  border-radius: 62.4375rem;
  color: #1d1d1b;
  font-family: "Mukta";
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}
.comp_13-print svg {
  display: block;
  width: 1rem;
  height: 1rem;
}
.comp_13-print:hover {
  color: #be1622;
  border-color: #be1622;
}
.comp_13-print:focus-visible {
  outline: 2px solid #be1622;
  outline-offset: 3px;
}

.comp_13-eyebrow {
  display: block;
  margin: 0 0 0.875rem 0;
  color: #be1622;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.06em;
}

.comp_13-title {
  margin: 0 0 1.25rem 0;
  color: #1d1d1b;
  font-size: 3.75rem;
  font-weight: 200;
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: 0.005em;
}

.comp_13-rule {
  display: block;
  width: 4.5rem;
  height: 0.25rem;
  margin: 0 0 2.5rem 0;
  background-color: #be1622;
}

/*
 * THE SERVING WINDOW
 *
 * LOUDER THAN comp_09's EQUIVALENT, and the reason is in templates/comp_13.php: this page does not hide
 * itself outside the window, so the band is what keeps it honest. It gets the accent as a LEFT BORDER
 * rather than a fill - the page is one flat cream ground and a filled panel would read as a promotion
 * sitting on top of the menu, while a 4px accent edge is the same red mark the rule and the category
 * headings already use, turned on its side.
 *
 * The sentence is set at reading size and weight rather than as a label, because it is a sentence
 * somebody has to actually read, not a value to be scanned.
 */
.comp_13-window {
  margin: 0 0 3.25rem 0;
  padding: 1.5rem 1.875rem 1.625rem 1.75rem;
  background-color: rgba(190, 22, 34, 0.04);
  border-left: 0.25rem solid #be1622;
}

.comp_13-window-label {
  display: block;
  margin: 0 0 0.625rem 0;
  color: #be1622;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.comp_13-window-text {
  margin: 0;
  color: #1d1d1b;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.4;
}

.comp_13-window-hours {
  margin: 0.5rem 0 0 0;
  color: rgba(29, 29, 27, 0.6);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.5;
}

/*
 * THE STACKED CATEGORIES
 */
.comp_13-category + .comp_13-category {
  margin-top: 2.75rem;
}

.comp_13-category-heading {
  position: relative;
  margin: 0 0 0.375rem 0;
  padding: 0 0 0.75rem 0;
  color: #1d1d1b;
  font-size: 1.375rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.comp_13-category-heading::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 4.5rem;
  height: 0.25rem;
  background-color: #be1622;
}

.comp_13-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.comp_13-item {
  padding: 0.875rem 0;
}
.comp_13-item:last-child {
  padding-bottom: 0;
}

.comp_13-item-head {
  display: flex;
  align-items: baseline;
}

.comp_13-item-name {
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
  color: #1d1d1b;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.3;
}

.comp_13-item-marks {
  flex: 0 0 auto;
  margin-left: 0.4375rem;
  color: rgba(29, 29, 27, 0.45);
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.comp_13-item-dots {
  flex: 1 1 auto;
  min-width: 1rem;
  margin: 0 0.5rem;
  border-bottom: 2px dotted rgba(29, 29, 27, 0.28);
  transform: translateY(-0.28em);
}

.comp_13-item-price {
  flex: 0 0 auto;
  color: #1d1d1b;
  font-size: 1.1875rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
}

.comp_13-item-desc {
  margin: 0.25rem 0 0 0;
  color: rgba(29, 29, 27, 0.6);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.5;
  max-width: 38.75rem;
}

/*
 * THE ALLERGEN LEGEND
 *
 * Markup from the shared cookie_allergens_legend_html() - the same objects comp_08 and comp_09 style,
 * under this page's prefix. One legend at the foot of the whole list: there are no day panels here, so
 * there is nothing to put it inside and nothing for it to reshuffle against.
 */
.comp_13-allergens {
  margin-top: 2.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(29, 29, 27, 0.14);
}

.comp_13-allergens-heading {
  margin: 0 0 0.875rem 0;
  color: #1d1d1b;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.comp_13-allergens-list {
  margin: 0;
  padding: 0;
  list-style: none;
  columns: 2;
  column-gap: 2.5rem;
}

.comp_13-allergens-item {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin: 0 0 0.4375rem 0;
  break-inside: avoid;
  color: rgba(29, 29, 27, 0.6);
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.45;
}

.comp_13-allergens-num {
  flex: 0 0 auto;
  min-width: 1.125rem;
  color: #be1622;
  font-weight: 600;
}

.comp_13-allergens-name {
  flex: 1 1 auto;
  min-width: 0;
}

/*
 * THE TWO FOOTNOTES
 *
 * Both sit under the legend and are set quieter than it, because they explain a mark rather than carry
 * information a guest has to read. The asterisk hangs in the left margin so the sentence's own lines
 * align with each other instead of the second starting under the mark - the comp_09 price-note shape.
 */
.comp_13-note {
  position: relative;
  margin: 1.25rem 0 0 0;
  padding-left: 0.875rem;
  color: rgba(29, 29, 27, 0.5);
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.5;
}

.comp_13-note-mark {
  position: absolute;
  left: 0;
  top: 0;
  color: #be1622;
  font-weight: 600;
}

.comp_13-note-staff {
  margin-top: 0.5rem;
  padding-left: 0;
}

.comp_13-empty {
  margin: 0;
  color: rgba(29, 29, 27, 0.7);
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.6;
}

/*
 * RESPONSIVE
 *
 * The bands and the rem values in them are comp_09's, for the reason given at the top of this file: the
 * two menus are read one after the other. See the note there about html{font-size} before changing one.
 */
@media (max-width: 1239px) {
  .comp_13-inner {
    padding: 6.25rem 3.5rem 6.5rem 3.5rem;
  }
}
/*
 * THE 80% BAND ( 980-1024px, landscape iPad ). Type scaled up in rem so it lands the same physical size.
 * Physical: title 48px, category 17.6px, dish name 18.4px, window sentence 18.4px.
 */
@media (min-width: 980px) and (max-width: 1024px) {
  .comp_13-eyebrow {
    font-size: 1.125rem;
  }
  .comp_13-title {
    font-size: 4.6875rem;
  }
  .comp_13-window-text {
    font-size: 1.4375rem;
  }
  .comp_13-category-heading {
    font-size: 1.6875rem;
  }
  .comp_13-item-name {
    font-size: 1.4375rem;
  }
  .comp_13-item-price {
    font-size: 1.5rem;
  }
  .comp_13-item-desc {
    font-size: 1.125rem;
  }
}
/*
 * THE 70% BAND ( below 980px ). Everything is scaled up in rem to hold its physical size, and the
 * column padding comes in. Same treatment comp_09 gives this band.
 */
@media (max-width: 979px) {
  .comp_13-inner {
    padding: 7.125rem 2.5rem 7.5rem 2.5rem;
  }
  .comp_13-eyebrow {
    font-size: 1.25rem;
  }
  .comp_13-title {
    font-size: 4.5rem;
    font-weight: 200;
  }
  .comp_13-window {
    padding: 1.75rem 1.875rem 1.875rem 1.875rem;
  }
  .comp_13-window-label {
    font-size: 1.0625rem;
  }
  .comp_13-window-text {
    font-size: 1.625rem;
  }
  .comp_13-window-hours {
    font-size: 1.25rem;
  }
  .comp_13-category-heading {
    font-size: 1.875rem;
  }
  .comp_13-item-name {
    font-size: 1.625rem;
  }
  .comp_13-item-marks {
    font-size: 1.0625rem;
  }
  .comp_13-item-price {
    font-size: 1.625rem;
  }
  .comp_13-item-desc {
    font-size: 1.25rem;
  }
  .comp_13-allergens-heading {
    font-size: 1.3125rem;
  }
  .comp_13-allergens-item {
    font-size: 1.0625rem;
  }
  .comp_13-note {
    font-size: 1rem;
  }
  .comp_13-empty {
    font-size: 1.5rem;
  }
}
/*
 * PHONE. The print button leaves the top-right corner - at this width it would sit on top of the
 * eyebrow - and becomes a normal block under the window band. The allergen legend drops to one column,
 * where two would be a few characters wide.
 */
@media (max-width: 730px) {
  .comp_13-inner {
    padding: 5.625rem 1.75rem 6rem 1.75rem;
  }
  .comp_13-print {
    position: static;
    margin: 0 0 1.75rem 0;
  }
  .comp_13-title {
    font-size: 3.625rem;
  }
  .comp_13-window {
    margin-bottom: 2.75rem;
    padding: 1.5rem 1.5rem 1.625rem 1.5rem;
  }
  .comp_13-window-text {
    font-size: 1.5rem;
  }
  .comp_13-allergens-list {
    columns: 1;
  }
  /*
   * THE DISH ROW STACKS. A leader between a long dish name and its price has nothing left to span at
   * this width - "Míchaná vejce, 2 vejce, 2 ks mini pečiva" is most of the line on its own - so the
   * price drops onto its own line, right-aligned, and the dots go away rather than wrapping to a row
   * of their own.
   */
  .comp_13-item-head {
    flex-wrap: wrap;
  }
  .comp_13-item-name {
    flex: 1 1 100%;
  }
  .comp_13-item-marks {
    margin-left: 0;
    margin-top: 0.25rem;
  }
  .comp_13-item-dots {
    min-width: 0;
    margin: 0 0.375rem;
  }
  .comp_13-item-price {
    margin-top: 0.25rem;
  }
}
/*
 * PRINT
 *
 * A clean black-and-white breakfast card on one sheet. Copied from _comp_09.scss's print block, with
 * the tab machinery removed and ONE deliberate difference: the serving window STAYS. comp_09 strips its
 * "Výdej obědů" box because the printed daily menu goes on a table where the times are already posted;
 * a breakfast sheet that does not say which mornings it applies to is the one version of this page that
 * could genuinely mislead somebody.
 *
 * pt / mm rather than rem() - one of the two documented exceptions to the rem() rule ( the other is the
 * kiosk board ). rem() tracks html{font-size}, which is meaningless on paper.
 */
@media print {
  .main_header-wrapper,
  .dummy_header,
  .comp_03-wrapper,
  .main_footer-wrapper,
  .mobile-menu-overlay,
  .comp_13-print {
    display: none !important;
  }
  .wow {
    visibility: visible !important;
    animation: none !important;
  }
  @page {
    margin: 12mm 15mm;
  }
  html,
  body,
  .comp_13-wrapper {
    background: #ffffff !important;
  }
  .comp_13-inner {
    max-width: none;
    margin: 0;
    padding: 0 !important;
  }
  .comp_13-menu {
    position: static;
    max-width: none;
  }
  .comp_13-print-logo {
    display: block !important;
    width: 17mm;
    height: 17mm;
    margin: 0 auto 3.5mm auto;
  }
  .comp_13-eyebrow {
    margin: 0 0 1.5mm 0;
    color: #000000 !important;
    font-size: 9pt;
    letter-spacing: 0.08em;
    text-align: center;
  }
  .comp_13-title {
    margin: 0 0 2.5mm 0;
    color: #000000 !important;
    font-size: 22pt;
    font-weight: 400;
    line-height: 1.05;
    text-align: center;
  }
  .comp_13-rule {
    width: 14mm;
    height: 0;
    margin: 0 auto 4mm auto;
    background: none !important;
    border-top: 1.5pt solid #000000;
  }
  .comp_13-window {
    margin: 0 auto 6mm auto;
    padding: 2.5mm 4mm 3mm 4mm;
    background: none !important;
    border: 0.8pt solid #000000;
    border-left: 0.8pt solid #000000;
    text-align: center;
    break-inside: avoid;
  }
  .comp_13-window-label {
    margin: 0 0 1mm 0;
    color: #000000 !important;
    font-size: 8pt;
    letter-spacing: 0.08em;
  }
  .comp_13-window-text {
    color: #000000 !important;
    font-size: 11pt;
    line-height: 1.3;
  }
  .comp_13-window-hours {
    margin: 1mm 0 0 0;
    color: #000000 !important;
    font-size: 9pt;
  }
  .comp_13-category {
    break-inside: avoid;
  }
  .comp_13-category + .comp_13-category {
    margin-top: 4.5mm;
  }
  .comp_13-category-heading {
    margin: 0 0 2.5mm 0;
    padding: 0 0 2mm 0;
    color: #000000 !important;
    font-size: 12pt;
    break-after: avoid;
  }
  .comp_13-category-heading::after {
    width: 14mm;
    height: 0;
    background: none !important;
    border-top: 1.5pt solid #000000;
  }
  .comp_13-item {
    padding: 1.4mm 0;
    break-inside: avoid;
  }
  .comp_13-item-name {
    color: #000000 !important;
    font-size: 10.5pt;
  }
  .comp_13-item-marks {
    color: #000000 !important;
    font-size: 8pt;
  }
  .comp_13-item-dots {
    border-bottom: 0.6pt dotted #000000;
  }
  .comp_13-item-price {
    color: #000000 !important;
    font-size: 10.5pt;
  }
  .comp_13-item-desc {
    margin-top: 0.6mm;
    color: #000000 !important;
    font-size: 8.5pt;
    line-height: 1.35;
  }
  .comp_13-allergens {
    margin-top: 5mm;
    padding-top: 2.5mm;
    border-top: 0.6pt solid #000000;
    break-inside: avoid;
  }
  .comp_13-allergens-heading {
    margin: 0 0 1.8mm 0;
    color: #000000 !important;
    font-size: 9pt;
  }
  .comp_13-allergens-list {
    columns: 2;
    column-gap: 8mm;
  }
  .comp_13-allergens-item {
    margin: 0 0 1mm 0;
    color: #000000 !important;
    font-size: 7.5pt;
    line-height: 1.3;
  }
  .comp_13-allergens-num {
    color: #000000 !important;
  }
  .comp_13-note {
    margin-top: 2.5mm;
    padding-left: 3mm;
    color: #000000 !important;
    font-size: 7.5pt;
    line-height: 1.35;
    break-inside: avoid;
  }
  .comp_13-note-mark {
    color: #000000 !important;
  }
  .comp_13-note-staff {
    margin-top: 1mm;
    padding-left: 0;
  }
}
/*
 * PŘEDOBJEDNÁVKY - PUBLIC SIGN-UP
 *
 * Markup: templates/preorder-signup.php
 * Behaviour: js/scripts-parts/preorder-signup.js ( AJAX sign-up ). The reveal is WOW.js, initialised
 * inline in header.php.
 *
 * A SIBLING OF _comp_12.scss, not a new look. Same cream ground, same centred reading column, same
 * light uppercase title over the shared 72x4 red mark, and the same white-on-cream field pair - so
 * someone who lands here off a notice and then follows their reminder link tomorrow arrives on a page
 * that is obviously the same system. What is different is only the width: three controls do not need
 * comp_12's rem(900) column, and a rem(620) one keeps the lead at a readable measure.
 *
 * NO CARD, NO PANEL. comp_04 puts its sign-up in a bordered box because it is one section competing
 * with five others on the homepage. Here the form IS the page, so a frame around it would be a box
 * inside a box with nothing to separate it from.
 *
 * THE SPECIFICITY TRAPS ARE THE SAME TWO comp_12 documents, and both are already sprung here:
 *   - `label:not(.b-tg)` in _inputs.scss is (0,1,1) with `display:block; width:100%` and its own font,
 *     so every label rule below is scoped to (0,2,0) to beat it.
 *   - `input[type="email"]` in _inputs.scss is (0,1,1) and sets `border: 1px solid $color-text` - a
 *     near-black that would quietly win against the soft border this file asks for.
 *
 * READ THE RESPONSIVE NOTE before changing a number: rem() is not physical px here - html{font-size}
 * steps 100/90/70/80/90/100% across the _base.scss breakpoints, which are NOT the ones used below.
 * Type is scaled in rem per band purely to land the same physical size, exactly like comp_12.
 */
.po_signup-wrapper {
  position: relative;
  width: 100%;
  background-color: #f4f2ef;
  box-sizing: border-box;
}

.po_signup-inner {
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  padding: 7rem 3rem 7.5rem 3rem;
  box-sizing: border-box;
}

.po_signup-box {
  position: relative;
  width: 100%;
  max-width: 38.75rem;
  margin: 0 auto;
}

/*
 * HEADER - the same objects as comp_12, at the same sizes.
 */
.po_signup-title {
  margin: 0 0 1.25rem 0;
  color: #1d1d1b;
  font-size: 3.75rem;
  font-weight: 200;
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: 0.005em;
}

.po_signup-rule {
  display: block;
  width: 4.5rem;
  height: 0.25rem;
  margin: 0 0 2.5rem 0;
  background-color: #be1622;
}

.po_signup-lead {
  margin: 0 0 2.5rem 0;
  color: rgba(29, 29, 27, 0.72);
  font-size: 1.0625rem;
  line-height: 1.6em;
  text-wrap: pretty;
}

.po_signup-empty {
  margin: 0;
  color: rgba(29, 29, 27, 0.7);
  font-size: 1.125rem;
  line-height: 1.6em;
}

/*
 * THE FORM - stacked: e-mail, firma, consent, submit.
 */
.po_signup-form {
  width: 100%;
}

/*
 * FIELD LABELS. Two classes each, for the (0,2,0) reason in the file header. Same small uppercase
 * eyebrow as comp_12's identity box, so the two forms read as one pair of fields in two places.
 */
.po_signup-form .po_signup-field-label {
  display: block;
  margin: 0 0 0.5rem 0;
  color: rgba(29, 29, 27, 0.55);
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.po_signup-form .po_signup-input {
  width: 100%;
  margin-bottom: 1.5rem !important;
  border: 1px solid rgba(29, 29, 27, 0.2);
  border-radius: 0.375rem;
}
.po_signup-form .po_signup-input:focus {
  border-color: rgba(29, 29, 27, 0.5);
}
.po_signup-form .po_signup-input.error {
  border-color: #be1622;
}

/*
 * THE FIRMA SELECT. Built from scratch - _inputs.scss has no select styling - with the font size and
 * vertical padding copied from its `input[type="email"]` rule rather than chosen, so it matches the
 * field above it exactly.
 *
 * appearance:none drops the platform control, which otherwise ignores the border radius on Safari and
 * renders at its own height regardless of padding. The arrow is then ours: an inline SVG data URI
 * rather than a pseudo-element, because a <select> cannot carry ::after.
 *
 * iCheck never touches this - scripts-main.js applies it to jQuery('input') only.
 */
.po_signup-form .po_signup-select {
  display: block;
  width: 100%;
  margin: 0 0 1.5rem 0;
  padding: 0.75rem 2.75rem 0.75rem 0.75rem;
  background-color: #ffffff;
  border: 1px solid rgba(29, 29, 27, 0.2);
  border-radius: 0.375rem;
  color: #222222;
  font-family: "Mukta";
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.2em;
  cursor: pointer;
  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  /*
   * DELIBERATELY NOT RE-SCALED PER BAND, and neither is the e-mail field - the same decision, for
   * the same two reasons, as the select in _comp_12.scss. The moment one of the pair gets a
   * per-band font-size they stop matching, and rem(16) in the <=730 band renders at 14.4px, which
   * is under the 16px at which iOS Safari zooms the page on focus.
   */
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath fill='none' stroke='%231d1d1b' stroke-width='2' d='M1 1l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.875rem center;
  background-size: 0.875rem 0.5625rem;
}
.po_signup-form .po_signup-select:focus {
  outline: none;
  border-color: rgba(29, 29, 27, 0.5);
}
.po_signup-form .po_signup-select.error {
  border-color: #be1622;
}

/*
 * CONSENT - between the fields and the submit. The <label> uses `for` ( it does not wrap the input ),
 * so the privacy link inside it navigates instead of toggling the box.
 */
.po_signup-consent {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin: 0.25rem 0 0 0;
}

/*
 * THE CHECKBOX. The theme skins EVERY checkbox with iCheck - scripts-main.js runs
 * jQuery('input').iCheck() globally, which hides the native box ( position:absolute; opacity:0 ) and
 * wraps it in <div class="icheckbox">. So the box styled here is that WRAPPER, not the input; styling
 * the input directly is invisible under the skin. Base skin is _icheck.scss.
 *
 * The native input stays in the DOM and iCheck keeps its :checked in sync, so the JS validation and
 * the serialized `consent=1` are unaffected. Same treatment as .comp_04-consent.
 */
.po_signup-consent .icheckbox {
  flex: 0 0 auto;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0.125rem 0 0 0;
  border: 1px solid rgba(29, 29, 27, 0.35);
  border-radius: 0.1875rem;
  background-color: #ffffff;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
  box-sizing: border-box;
}
.po_signup-consent .icheckbox:before {
  content: "";
  position: absolute;
  left: 50%;
  top: 46%;
  width: 0.3125rem;
  height: 0.625rem;
  background: none;
  border: solid #ffffff;
  border-width: 0 0.125rem 0.125rem 0;
  transform: translate(-50%, -55%) rotate(45deg);
  opacity: 0;
  transition: opacity 0.15s ease;
}
.po_signup-consent .icheckbox.checked {
  background-color: #be1622;
  border-color: #be1622;
}
.po_signup-consent .icheckbox.checked:before {
  opacity: 1;
}

.po_signup-consent .po_signup-consent-label {
  width: auto;
  margin: 0 !important;
  color: rgba(29, 29, 27, 0.7);
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
}
.po_signup-consent .po_signup-consent-label a {
  color: #1d1d1b;
  text-decoration: underline;
}
.po_signup-consent .po_signup-consent-label a:hover {
  text-decoration: none;
}

.po_signup-consent.error .po_signup-consent-label {
  color: #be1622;
}
.po_signup-consent.error .icheckbox {
  border-color: #be1622;
}

/*
 * THE SUBMIT. Excluded from the shared chain in _buttons.scss ( see the :not() list there ) so it can
 * be a solid red block rather than the theme's outlined default - the same arrangement
 * .comp_12-submit / .comp_04-submit have.
 *
 * FULL WIDTH, unlike comp_12's right-aligned button. That one ends a long column of choices, where the
 * eye finishes on the right; this one ends three stacked fields it should line up with.
 */
.po_signup-submit {
  display: block;
  width: 100%;
  margin: 2rem 0 0 0;
  padding: 1.25rem 3rem;
  background-color: #be1622;
  border: 0;
  border-radius: 0.5rem;
  color: #ffffff;
  font-family: "Mukta";
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 0.25s ease, transform 0.25s ease;
}
.po_signup-submit:hover {
  background-color: rgb(60.1701812801%, 6.9670736219%, 10.7672955975%);
  transform: scale(0.99);
}
.po_signup-submit:focus-visible {
  outline: 2px solid #1d1d1b;
  outline-offset: 3px;
}

.po_signup-note {
  margin: 1.375rem 0 0 0;
  color: rgba(29, 29, 27, 0.55);
  font-size: 0.875rem;
  line-height: 1.55;
}

.po_signup-form.working {
  opacity: 0.6;
  pointer-events: none;
}

/*
 * RESPONSIVE
 *
 * Bands and reasoning as _comp_12.scss. Physical sizes are noted against each block; the two fields
 * are deliberately absent from all of them ( see the note on the select above ).
 */
/*
 * THE 80% BAND. Exactly where _base.scss puts html { font-size } at 80%, which is why the query is
 * 980-1024 and not round. Landscape iPad ( 1024x768 ) sits in it. Physical: title 60px, lead 17px.
 */
@media (min-width: 980px) and (max-width: 1024px) {
  .po_signup-inner {
    padding: 7.5rem 3rem 8.125rem 3rem;
  }
  .po_signup-box {
    max-width: 45rem;
  }
  .po_signup-title {
    font-size: 4.6875rem;
  }
  .po_signup-rule {
    width: 5.625rem;
    height: 0.3125rem;
  }
  .po_signup-lead {
    font-size: 1.3125rem;
  }
  .po_signup-consent .po_signup-consent-label {
    font-size: 1.0625rem;
  }
  .po_signup-submit {
    font-size: 1.3125rem;
  }
  .po_signup-note {
    font-size: 1.0625rem;
  }
}
/*
 * STACKED / TABLET. 979px, matching where the header collapses and comp_12 reflows. Type scaled up in
 * rem for the 70% band. Physical ( html 70% ): title 60px, lead 16.8px.
 */
@media (max-width: 979px) {
  .po_signup-inner {
    padding: 8.125rem 2.5rem 8.75rem 2.5rem;
  }
  .po_signup-box {
    max-width: 51.25rem;
  }
  .po_signup-title {
    margin-bottom: 1.5rem;
    font-size: 5.375rem;
    font-weight: 400;
  }
  .po_signup-rule {
    width: 6.4375rem;
    height: 0.375rem;
    margin-bottom: 3rem;
  }
  .po_signup-lead {
    margin-bottom: 3rem;
    font-size: 1.5rem;
  }
  .po_signup-empty {
    font-size: 1.625rem;
  }
  .po_signup-form .po_signup-field-label {
    margin-bottom: 0.625rem;
    font-size: 1.125rem;
  }
  .po_signup-form .po_signup-input {
    margin-bottom: 1.875rem !important;
  }
  .po_signup-form .po_signup-select {
    margin-bottom: 1.875rem;
  }
  .po_signup-consent {
    gap: 1rem;
  }
  .po_signup-consent .icheckbox {
    width: 1.75rem;
    height: 1.75rem;
    margin-top: 0.1875rem;
  }
  .po_signup-consent .po_signup-consent-label {
    font-size: 1.25rem;
  }
  .po_signup-submit {
    margin-top: 2.5rem;
    padding: 1.625rem 3rem;
    font-size: 1.5rem;
  }
  .po_signup-note {
    margin-top: 1.75rem;
    font-size: 1.25rem;
  }
}
/*
 * PHONES. Physical sizes ( html 90% ): title 45px, lead 16.2px.
 */
@media (max-width: 730px) {
  .po_signup-inner {
    padding: 4.5rem 1.5rem 5.25rem 1.5rem;
  }
  .po_signup-box {
    max-width: none;
  }
  .po_signup-title {
    margin-bottom: 1.125rem;
    font-size: 3.125rem;
    line-height: 1.1;
  }
  .po_signup-rule {
    width: 4rem;
    height: 0.25rem;
    margin-bottom: 1.875rem;
  }
  .po_signup-lead {
    margin-bottom: 2.125rem;
    font-size: 1.125rem;
    line-height: 1.65;
  }
  .po_signup-empty {
    font-size: 1.1875rem;
  }
  .po_signup-form .po_signup-field-label {
    margin-bottom: 0.5rem;
    font-size: 0.875rem;
  }
  .po_signup-form .po_signup-input {
    margin-bottom: 1.375rem !important;
  }
  .po_signup-form .po_signup-select {
    margin-bottom: 1.375rem;
  }
  .po_signup-consent {
    gap: 0.75rem;
  }
  .po_signup-consent .icheckbox {
    width: 1.25rem;
    height: 1.25rem;
    margin-top: 0.125rem;
  }
  .po_signup-consent .po_signup-consent-label {
    font-size: 0.9375rem;
  }
  .po_signup-submit {
    margin-top: 1.75rem;
    padding: 1.1875rem 1.875rem;
    font-size: 1.0625rem;
  }
  .po_signup-note {
    margin-top: 1.25rem;
    font-size: 0.9375rem;
  }
}
@media (max-width: 479px) {
  .po_signup-inner {
    padding: 3.5rem 1.25rem 4.25rem 1.25rem;
  }
  .po_signup-title {
    font-size: 2.5rem;
  }
  .po_signup-lead {
    font-size: 1.0625rem;
  }
}
/*
 * REDUCED MOTION
 *
 * WOW.js writes animation-name as an INLINE style, so nothing but !important reaches it. The
 * visibility does not need the same treatment: header.php's .wow { visibility: hidden } is a single
 * class and loses to the rule below on specificity.
 */
@media (prefers-reduced-motion: reduce) {
  .po_signup-title.wow {
    visibility: visible;
    animation: none !important;
  }
}
/*
 * PAGE GATE - "Během rekonstrukce" placeholder + the logged-in owner strip.
 *
 * Markup: templates/page-gate.php ( the placeholder ) and cookie_page_gate_owner_notice() in
 * functions/theme-custom/page-gate.php ( the strip ). No JS.
 *
 * _comp_12.scss is the reference, which takes its own from _comp_09.scss: the cream ground, the centred
 * reading column, the light uppercase title and the shared rem(72) x rem(4) red rule are the same
 * objects at the same sizes, so a gated page reads as this site rather than as an error page.
 *
 * THE SECTION CARRIES A MIN-HEIGHT. It is the only thing on the page - with comp_08's hundred menu
 * rows gone, plain section padding would leave the footer riding up under three lines of text, which
 * looks like a broken page rather than a deliberate one. 70svh is a floor rather than a full screen:
 * enough that the placeholder reads as the page, not so much that a whole empty screen stands between
 * the visitor and the footer's contact block. --header-h is the custom property _header.scss publishes
 * ( see _comp_01.scss, which sizes the hero from the same value ).
 *
 * READ THE RESPONSIVE NOTE in _comp_12.scss before changing a number: rem() is not physical px here -
 * html{font-size} steps 100/90/70/80/90/100% across the _base.scss breakpoints, which are NOT the ones
 * used below, so type is scaled per band purely to land the same physical size.
 */
.page_gate-wrapper {
  position: relative;
  width: 100%;
  background-color: #f4f2ef;
  box-sizing: border-box;
}

.page_gate-inner {
  display: flex;
  align-items: center;
  min-height: calc(70vh - var(--header-h));
  min-height: calc(70svh - var(--header-h));
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  padding: 7rem 3rem 7.5rem 3rem;
  box-sizing: border-box;
}

.page_gate-content {
  position: relative;
  width: 100%;
  max-width: 47.5rem;
  margin: 0 auto;
}

/*
 * HEADER - eyebrow / title / rule, the comp_09 objects verbatim.
 */
.page_gate-eyebrow {
  display: block;
  margin: 0 0 0.875rem 0;
  color: #be1622;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.06em;
}

.page_gate-title {
  margin: 0 0 1.25rem 0;
  color: #1d1d1b;
  font-size: 3.75rem;
  font-weight: 200;
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: 0.005em;
}

.page_gate-rule {
  display: block;
  width: 4.5rem;
  height: 0.25rem;
  margin: 0 0 2.5rem 0;
  background-color: #be1622;
}

/*
 * COPY
 */
.page_gate-lead {
  margin: 0;
  max-width: 40rem;
  color: rgba(29, 29, 27, 0.72);
  font-size: 1.1875rem;
  line-height: 1.65em;
}

.page_gate-extra {
  margin: 1.25rem 0 0 0;
  max-width: 40rem;
  color: #1d1d1b;
  font-size: 1.1875rem;
  font-weight: 600;
  line-height: 1.6em;
}

/*
 * CONTACT
 */
.page_gate-contact {
  margin: 3rem 0 0 0;
  padding: 2rem 0 0 0;
  border-top: 1px solid rgba(29, 29, 27, 0.12);
}

.page_gate-contact-intro {
  margin: 0 0 1.125rem 0;
  color: rgba(29, 29, 27, 0.72);
  font-size: 1.0625rem;
  line-height: 1.6em;
}

.page_gate-contact-items {
  display: flex;
  flex-wrap: wrap;
  gap: 0.875rem 2.5rem;
}

.page_gate-contact-item {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  color: #1d1d1b;
  font-size: 1.3125rem;
  font-weight: 600;
  line-height: 1.3em;
  text-decoration: none;
  transition: color 0.25s ease;
}
.page_gate-contact-item:hover {
  color: #be1622;
}

.page_gate-contact-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 1.625rem;
  height: 1.625rem;
  color: #be1622;
}
.page_gate-contact-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.page_gate-back {
  margin: 2.5rem 0 0 0;
  font-size: 1rem;
}
.page_gate-back a {
  color: rgba(29, 29, 27, 0.6);
  text-decoration: underline;
}
.page_gate-back a:hover {
  color: #be1622;
}

/*
 * OWNER STRIP - shown to a LOGGED-IN user above the real content, so the one group of people who can
 * see past the gate knows the gate is there. Printed by cookie_page_gate_owner_notice().
 *
 * Dark on purpose: it sits directly under the header ( which is $color-primary ) and, for anyone with
 * the WP admin bar on, directly under that too - so it reads as chrome, not as part of the page.
 */
.page_gate-owner {
  width: 100%;
  background-color: #1d1d1b;
  box-sizing: border-box;
}

.page_gate-owner-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1.25rem;
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  padding: 0.875rem 3rem;
  color: #ffffff;
  font-size: 0.9375rem;
  line-height: 1.5em;
  box-sizing: border-box;
}

.page_gate-owner-text strong {
  font-weight: 600;
}

.page_gate-owner-link {
  color: #ffffff;
  font-weight: 600;
  text-decoration: underline;
  transition: color 0.25s ease;
}
.page_gate-owner-link:hover {
  color: #be1622;
}

@media (max-width: 979px) {
  .page_gate-inner {
    padding: 4.5rem 2rem;
  }
  .page_gate-content {
    max-width: 42.5rem;
  }
  .page_gate-eyebrow {
    font-size: 1.125rem;
  }
  .page_gate-title {
    margin-bottom: 1.5rem;
    font-size: 4rem;
    font-weight: 400;
  }
  .page_gate-rule {
    width: 6rem;
    height: 0.3125rem;
    margin-bottom: 2.75rem;
  }
  .page_gate-lead {
    font-size: 1.375rem;
  }
  .page_gate-extra {
    margin-top: 1.5rem;
    font-size: 1.375rem;
  }
  .page_gate-contact {
    margin-top: 3.5rem;
    padding-top: 2.25rem;
  }
  .page_gate-contact-intro {
    font-size: 1.25rem;
  }
  .page_gate-contact-item {
    font-size: 1.5rem;
  }
  .page_gate-contact-icon {
    width: 1.875rem;
    height: 1.875rem;
  }
  .page_gate-back {
    font-size: 1.125rem;
  }
  .page_gate-owner-inner {
    padding: 1rem 2rem;
    font-size: 1.125rem;
  }
}
@media (max-width: 730px) {
  .page_gate-inner {
    min-height: calc(85vh - var(--header-h));
    min-height: calc(85svh - var(--header-h));
    padding: 3.5rem 1.5rem 4rem 1.5rem;
  }
  .page_gate-title {
    font-size: 2.875rem;
  }
  .page_gate-rule {
    width: 4.5rem;
    height: 0.25rem;
    margin-bottom: 2rem;
  }
  .page_gate-lead,
  .page_gate-extra {
    font-size: 1.1875rem;
  }
  .page_gate-contact {
    margin-top: 2.75rem;
    padding-top: 1.75rem;
  }
  .page_gate-contact-items {
    flex-direction: column;
    gap: 1rem;
  }
  .page_gate-contact-item {
    font-size: 1.3125rem;
  }
  .page_gate-owner-inner {
    padding: 0.875rem 1.5rem;
    font-size: 1rem;
  }
}
/*
 * LEGAL MODAL - single-source privacy / terms popup.
 * Markup templates/legal-modal.php, behaviour js/scripts-parts/legal-modal.js.
 *
 * A fixed dark overlay ( above the header, z-index 1000 ) with a centred white card. The body carries
 * .user-editable-content so the cloned page content matches the standalone page's typography. Hidden
 * until legal-modal.js sets .is-open; the fade is a transition on opacity / visibility.
 */
.legal-modal-sources {
  display: none;
}

body.legal-modal-open {
  overflow: hidden;
}

.legal-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2000;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.25s ease, visibility 0s linear 0.25s;
}
.legal-modal.is-open {
  visibility: visible;
  opacity: 1;
  transition: opacity 0.25s ease;
}

.legal-modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(29, 29, 27, 0.72);
  cursor: pointer;
}

.legal-modal-dialog {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: calc(100% - 3rem);
  max-width: 47.5rem;
  max-height: 85vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  background: #ffffff;
  padding: 3.5rem 3.5rem 3rem;
  box-shadow: 0 1.5rem 3.75rem rgba(0, 0, 0, 0.35);
  outline: none;
}

.legal-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 2.75rem;
  height: 2.75rem;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: #1d1d1b;
  transition: color 0.2s ease;
}
.legal-modal-close svg {
  width: 1.375rem;
  height: 1.375rem;
}
.legal-modal-close:hover, .legal-modal-close:focus {
  color: #be1622;
}

.legal-modal-title {
  margin: 0 0 1.75rem;
  padding-right: 2.5rem;
  color: #1d1d1b;
}

@media (max-width: 730px) {
  .legal-modal-dialog {
    width: calc(100% - 1.5rem);
    padding: 3rem 1.5rem 2.25rem;
  }
  .legal-modal-title {
    padding-right: 2rem;
  }
}
/*
 * DAILY MENU - UNSUBSCRIBE CONFIRM PAGE
 *
 * Styles the standalone confirm page rendered by functions/theme-custom/daily-menu-unsubscribe.php
 * ( markup sits in .default_content-wrapper inside #main-wrapper, like a normal page ). Deliberately
 * light: a centred, narrow column so the single decision - stay or leave - is the only thing on screen.
 * The action itself is a SweetAlert ( js/scripts-parts/daily-menu-unsubscribe.js ); the .button here is
 * only the trigger / fallback.
 */
.dm-unsub {
  max-width: 45rem;
  padding-top: 4.5rem;
  padding-bottom: 6rem;
  text-align: center;
}
.dm-unsub h1 {
  margin-bottom: 1.5rem;
}
.dm-unsub .dm-unsub-lead {
  font-size: 1.1875rem;
  line-height: 1.6;
  color: #1d1d1b;
  margin-bottom: 2.25rem;
}
.dm-unsub p {
  margin-bottom: 1.25rem;
}
.dm-unsub .button {
  cursor: pointer;
}
.dm-unsub .dm-unsub-done {
  margin-top: 0.5rem;
}

/*
 * KIOSK BOARD - today's denní menu on the display in the restaurant.
 *
 * Markup: templates/kiosk-board.php . Behaviour: js/scripts-parts/kiosk.js
 * Routing + the why: functions/theme-custom/daily-menu-kiosk.php
 * The optional second screen: scss/modules/_kiosk-info.scss
 *
 * The visual language is comp_09's, rebuilt for a 2160 x 3840 portrait panel - the same relationship
 * daily-menu-email.php has to comp_09, and for the same reason: same design, different medium, so
 * nothing is shared but the look.
 *
 *
 * NOTHING HERE IS SIZED IN rem(), ON PURPOSE.
 *
 * rem() resolves against html{font-size}, which scss/base/_base.scss steps 70/80/90/100% on VIEWPORT
 * breakpoints. The kiosk's CSS viewport is 720px wide at Windows' 300% scale and 1080px at 200%, so the
 * whole board would land in the theme's mobile band and change size with a Windows setting. Meaningless
 * for a fixed physical panel - exactly the argument _comp_09.scss's @media print block already makes for
 * using pt / mm on paper.
 *
 * Instead everything is derived from ONE unit:
 *
 *     --k   1/100th of the board's height. min(1vh, 1.7778vw) so it also behaves on a screen that is
 *           not 9:16 - on the real panel the two terms are equal, on a landscape monitor the board
 *           renders as a centred portrait column, which is how it gets designed and reviewed.
 *     --u   --k scaled by --kiosk-fit, the shrink-to-fit factor kiosk.js writes. ALL TYPE USES --u.
 *
 * --kiosk-fit AND --u ARE REDEFINED ON EVERY SLIDE, not just at the root. The board holds up to two
 * screens with very different densities - a seven-course day and a four-line notice - and one shared
 * factor would shrink the short one to whatever the long one needed. Both have to be redefined together:
 * children inherit the COMPUTED --u, so a slide that overrode only --kiosk-fit would change nothing.
 *
 * 2160 x 3840 is exactly 9:16, so a --k-based board is pixel-identical at 200% and 300% Windows scale.
 * That is the whole point: the scale setting stops being a design input.
 *
 * .kiosk-html pins the root font-size so _base.scss's stepping cannot reach this document at all. A
 * class on <html> outranks _base.scss's bare `html` selector, so no !important is needed.
 */
.kiosk-html {
  font-size: 16px;
  height: 100%;
  --k: min(1vh, 1.7778vw);
  --kiosk-fit: 1;
  --u: calc( var(--k) * var(--kiosk-fit) );
}

.kiosk-body {
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: #f4f2ef;
  color: #1d1d1b;
  font-family: "Mukta";
  -webkit-font-smoothing: antialiased;
  cursor: none;
}

/*
 * THE BACKGROUND lives in its own partial - scss/modules/_kiosk-bg.scss. It grew three interchangeable
 * variants ( aurora / steam / rings, switchable with ?bg= ) and was crowding out the board itself.
 */
/*
 * THE BOARD
 *
 * Exactly 9:16, centred. On the panel that is the whole screen; on a landscape monitor it renders as a
 * centred portrait column with the background filling the rest - which is how the board is designed and
 * reviewed without a 4K panel on the desk.
 */
.kiosk-board {
  position: relative;
  z-index: 1;
  width: calc(var(--k) * 56.25);
  height: calc(var(--k) * 100);
  margin: 0 auto;
  box-sizing: border-box;
  overflow: hidden;
}

/*
 * THE DECK - the box the slides are stacked in, and the thing that carries the burn-in drift.
 *
 * THE DRIFT LIVES HERE, NOT ON THE SLIDE. It used to be on .kiosk-inner, which is what a slide is now;
 * the turn-over wants the slide's own transform for the cross-fade, and one element cannot run two
 * animations on the same property. On the deck it moves both slides as one object, which is also the
 * truthful thing: it is the whole board that wanders, not the screen that happens to be up.
 */
.kiosk-deck {
  position: relative;
  width: 100%;
  height: 100%;
  animation: kiosk-shift 420s ease-in-out infinite;
}

/*
 * A SLIDE - one whole screen. There is always the menu; there is sometimes a notice beside it
 * ( functions/theme-custom/daily-menu-kiosk-info.php ).
 *
 * Both are absolutely positioned in the same box and BOTH STAY LAID OUT. The one that is not showing is
 * transparent and visibility:hidden - never display:none, because kiosk.js has to measure each of them to
 * auto-fit it, and a display:none slide reports scrollHeight 0, which passes as "fits" and would put an
 * overflowing screen on the board the moment it came round.
 */
.kiosk-slide {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  padding: calc(var(--u) * 5) calc(var(--u) * 5) calc(var(--u) * 3.4);
  box-sizing: border-box;
  --kiosk-fit: 1;
  --u: calc( var(--k) * var(--kiosk-fit) );
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.7s ease, visibility 0s linear 0.7s;
}
.kiosk-slide.is-active {
  z-index: 2;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.7s ease 0.25s, visibility 0s linear 0s;
}

/*
 * THE TURN-OVER
 *
 * THE SLIDE ITSELF ONLY FADES. It carries no transform, and that is the whole design: the logo and the
 * foot bar are identical on both screens, in the same place at the same size, so cross-fading them
 * against each other is invisible - they stand perfectly still while everything between them changes.
 * Move the slide instead and the logo slides too, which is the thing that makes a rotating board look
 * like a slideshow.
 *
 * So everything that actually DIFFERS rises into place on its own small delay: eyebrow, title, the red
 * rule drawing itself open, the date, then the content blocks one after another. The whole entry lands
 * about 1.3s in, well inside the shortest dwell the admin screen allows.
 *
 * Only opacity and transform animate, and there is no will-change: two permanently promoted full-screen
 * layers on a 4K panel is exactly the kind of cost that shows up after a month of uptime, and the
 * compositor promotes these for the second they are moving anyway.
 *
 * Removing .is-active and putting it back is what restarts these - a CSS animation only replays when the
 * rule stops applying and applies again, which is precisely what the class toggle does.
 */
@keyframes kiosk-rise {
  from {
    opacity: 0;
    transform: translate3d(0, calc(var(--u) * 1.6), 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
@keyframes kiosk-draw {
  from {
    opacity: 0;
    transform: scaleX(0);
  }
  to {
    opacity: 1;
    transform: scaleX(1);
  }
}
.kiosk-slide.is-active .kiosk-eyebrow,
.kiosk-slide.is-active .kiosk-title,
.kiosk-slide.is-active .kiosk-day,
.kiosk-slide.is-active .kiosk-closed-lead,
.kiosk-slide.is-active .kiosk-foot > *:not(.kiosk-foot-bar),
.kiosk-slide.is-active .kiosk-stagger > * {
  animation: kiosk-rise 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.kiosk-slide.is-active .kiosk-rule {
  animation: kiosk-draw 0.55s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.kiosk-slide.is-active .kiosk-eyebrow {
  animation-delay: 0.1s;
}
.kiosk-slide.is-active .kiosk-title {
  animation-delay: 0.16s;
}
.kiosk-slide.is-active .kiosk-rule {
  animation-delay: 0.22s;
}
.kiosk-slide.is-active .kiosk-day {
  animation-delay: 0.28s;
}
.kiosk-slide.is-active .kiosk-closed-lead {
  animation-delay: 0.28s;
}
.kiosk-slide.is-active .kiosk-stagger > *:nth-child(1) {
  animation-delay: 0.34s;
}
.kiosk-slide.is-active .kiosk-stagger > *:nth-child(2) {
  animation-delay: 0.41s;
}
.kiosk-slide.is-active .kiosk-stagger > *:nth-child(3) {
  animation-delay: 0.48s;
}
.kiosk-slide.is-active .kiosk-stagger > *:nth-child(4) {
  animation-delay: 0.55s;
}
.kiosk-slide.is-active .kiosk-stagger > *:nth-child(5) {
  animation-delay: 0.62s;
}
.kiosk-slide.is-active .kiosk-stagger > *:nth-child(6) {
  animation-delay: 0.69s;
}
.kiosk-slide.is-active .kiosk-stagger > *:nth-child(7) {
  animation-delay: 0.76s;
}
.kiosk-slide.is-active .kiosk-stagger > *:nth-child(8) {
  animation-delay: 0.83s;
}
.kiosk-slide.is-active .kiosk-stagger > *:nth-child(9) {
  animation-delay: 0.9s;
}
.kiosk-slide.is-active .kiosk-stagger > *:nth-child(10) {
  animation-delay: 0.97s;
}
.kiosk-slide.is-active .kiosk-foot > *:not(.kiosk-foot-bar) {
  animation-delay: 0.9s;
}

/*
 * PARKED. ?slide=menu / ?slide=info opens the board on one screen and never turns it over - how the
 * notice gets reviewed without waiting for it to come round. kiosk.js sets no timer in that case; this
 * only stops the entry animation running on a screen somebody opened deliberately to look at.
 */
.kiosk-board.is-parked .kiosk-slide.is-active .kiosk-eyebrow,
.kiosk-board.is-parked .kiosk-slide.is-active .kiosk-title,
.kiosk-board.is-parked .kiosk-slide.is-active .kiosk-rule,
.kiosk-board.is-parked .kiosk-slide.is-active .kiosk-day,
.kiosk-board.is-parked .kiosk-slide.is-active .kiosk-closed-lead,
.kiosk-board.is-parked .kiosk-slide.is-active .kiosk-foot > *,
.kiosk-board.is-parked .kiosk-slide.is-active .kiosk-stagger > * {
  animation: none !important;
}

@keyframes kiosk-shift {
  0%, 100% {
    transform: translate3d(0, 0, 0);
  }
  25% {
    transform: translate3d(calc(var(--k) * 0.4), calc(var(--k) * -0.3), 0);
  }
  50% {
    transform: translate3d(calc(var(--k) * -0.2), calc(var(--k) * 0.45), 0);
  }
  75% {
    transform: translate3d(calc(var(--k) * -0.45), calc(var(--k) * -0.15), 0);
  }
}
/*
 * HEAD - logo, eyebrow, title, rule, day. comp_09's opening, set for a screen read from four metres.
 */
.kiosk-head {
  flex: 0 0 auto;
  text-align: center;
}

.kiosk-logo {
  display: block;
  width: calc(var(--u) * 9);
  height: auto;
  margin: 0 auto calc(var(--u) * 2.2);
}

.kiosk-eyebrow {
  display: block;
  margin: 0 0 calc(var(--u) * 1);
  color: #be1622;
  font-size: calc(var(--u) * 1.9);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.06em;
}

.kiosk-title {
  margin: 0 0 calc(var(--u) * 1.6);
  color: #1d1d1b;
  font-size: calc(var(--u) * 6.4);
  font-weight: 200;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.005em;
}

.kiosk-rule {
  display: block;
  width: calc(var(--u) * 7);
  height: calc(var(--u) * 0.42);
  margin: 0 auto calc(var(--u) * 1.6);
  background-color: #be1622;
}

.kiosk-day {
  margin: 0;
  color: rgba(29, 29, 27, 0.62);
  font-size: calc(var(--u) * 2.5);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.03em;
}

/*
 * CONTENT - the stacked categories. This is the block kiosk.js measures.
 *
 * flex: 1 1 auto with min-height: 0 lets it be the part that gives, so the head and the legend keep
 * their place while --kiosk-fit does the shrinking.
 */
.kiosk-content {
  flex: 1 1 auto;
  min-height: 0;
  padding: calc(var(--u) * 4) 0 0;
}

.kiosk-category + .kiosk-category {
  margin-top: calc(var(--u) * 3.4);
}

.kiosk-category-heading {
  position: relative;
  margin: 0 0 calc(var(--u) * 1.4);
  padding: 0 0 calc(var(--u) * 1.1);
  color: #1d1d1b;
  font-size: calc(var(--u) * 3);
  font-weight: 600;
  line-height: 1.15;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.kiosk-category-heading::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: calc(var(--u) * 7);
  height: calc(var(--u) * 0.42);
  background-color: #be1622;
}

.kiosk-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.kiosk-item {
  padding: calc(var(--u) * 1.1) 0;
}
.kiosk-item:last-child {
  padding-bottom: 0;
}

.kiosk-item-head {
  display: flex;
  align-items: baseline;
}

.kiosk-item-name {
  flex: 0 1 auto;
  min-width: 0;
  color: #1d1d1b;
  font-size: calc(var(--u) * 2.5);
  font-weight: 600;
  line-height: 1.25;
  text-decoration: line-through;
  text-decoration-thickness: calc(var(--u) * 0.11);
  text-decoration-color: transparent;
}

.kiosk-item-badge {
  flex: 0 0 auto;
  margin-left: calc(var(--u) * 0.9);
  padding: calc(var(--u) * 0.15) calc(var(--u) * 0.6);
  background-color: rgba(29, 29, 27, 0.08);
  color: rgba(29, 29, 27, 0.55);
  font-size: calc(var(--u) * 1.25);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  white-space: nowrap;
  transform: translateY(-0.12em);
}

.kiosk-item-allergens {
  flex: 0 0 auto;
  margin-left: calc(var(--u) * 0.7);
  color: rgba(29, 29, 27, 0.42);
  font-size: calc(var(--u) * 1.35);
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.kiosk-item-dots {
  flex: 1 1 auto;
  min-width: calc(var(--u) * 1.5);
  margin: 0 calc(var(--u) * 0.9);
  border-bottom: calc(var(--u) * 0.14) dotted rgba(29, 29, 27, 0.3);
  transform: translateY(-0.3em);
}

.kiosk-item-price {
  flex: 0 0 auto;
  color: #1d1d1b;
  font-size: calc(var(--u) * 2.4);
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
}

/*
 * NO PRICE -> NO LEADER. The dots exist to carry the eye across to the price, so with nothing on the
 * right they are a row of dots ending in nothing. Prices are currently off site-wide
 * ( cookie_dm_prices_visible() in functions/theme-custom/daily-menu.php ), which makes this every row.
 *
 * DONE IN CSS, NOT BY LEAVING THE ELEMENT OUT OF THE MARKUP. kiosk.js flips is-soldout in place every
 * ten seconds without reloading the board, and a sold-out row swaps its price for the Vyprodáno tag -
 * which still needs the leader running to it. A row rendered without a price and then sold out from
 * the till would have no leader to give back. So the element is always there and these two rules
 * decide, and the JS needs to know nothing about any of it.
 */
.kiosk-item.has-no-price .kiosk-item-dots {
  display: none;
}

.kiosk-item.has-no-price.is-soldout .kiosk-item-dots {
  display: block;
}

.kiosk-item-tag {
  display: none;
  flex: 0 0 auto;
  padding: calc(var(--u) * 0.32) calc(var(--u) * 1.1) calc(var(--u) * 0.42);
  background-color: #be1622;
  border-radius: calc(var(--u) * 99);
  color: #ffffff;
  font-size: calc(var(--u) * 1.5);
  font-weight: 600;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.kiosk-item-desc {
  margin: calc(var(--u) * 0.4) 0 0;
  color: rgba(29, 29, 27, 0.58);
  font-size: calc(var(--u) * 1.65);
  font-weight: 400;
  line-height: 1.45;
}

/*
 * SOLD OUT. Three signals at once - struck through, faded, and tagged in red - because this is read at
 * a glance from across the room and any one of them alone is missable.
 *
 * THE FADE IS ON THE TEXT, NOT ON THE ROW. Dimming the whole .kiosk-item took the red pill down with it
 * and left a pale pink smudge where the loudest signal on the board should be. So the dish recedes and
 * the tag stays at full strength - which is the entire point of having a tag.
 *
 * Everything that moves here is transitioned, because the board updates live: a dish crossed off behind
 * the till has to glide out, not snap, or it reads as a rendering glitch.
 */
.kiosk-item.is-soldout .kiosk-item-name {
  color: rgba(29, 29, 27, 0.38);
  text-decoration-color: currentColor;
}
.kiosk-item.is-soldout .kiosk-item-allergens,
.kiosk-item.is-soldout .kiosk-item-badge,
.kiosk-item.is-soldout .kiosk-item-desc {
  opacity: 0.45;
}
.kiosk-item.is-soldout .kiosk-item-dots {
  border-bottom-color: rgba(29, 29, 27, 0.14);
}
.kiosk-item.is-soldout .kiosk-item-price {
  display: none;
}
.kiosk-item.is-soldout .kiosk-item-tag {
  display: inline-block;
  animation: kiosk-tag-in 0.4s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.kiosk-item-name,
.kiosk-item-allergens,
.kiosk-item-badge,
.kiosk-item-desc,
.kiosk-item-dots {
  transition: color 0.45s ease, opacity 0.45s ease, border-bottom-color 0.45s ease, text-decoration-color 0.4s ease;
}

@keyframes kiosk-tag-in {
  from {
    opacity: 0;
    transform: scale(0.72);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
/*
 * THE FLOOR OF --kiosk-fit. When a day is so long that shrinking alone will not do it, kiosk.js adds
 * .is-dense and the categories break into two columns instead of getting smaller still - past a point,
 * legibility from four metres matters more than keeping one column.
 */
.kiosk-slide.is-dense .kiosk-content {
  columns: 2;
  column-gap: calc(var(--u) * 4);
}

.kiosk-slide.is-dense .kiosk-category {
  break-inside: avoid;
}

/*
 * FOOT - the allergen legend, then the opening hours and the clock.
 *
 * The legend lists only the numbers the day actually uses ( cookie_allergens_collect() ), the same rule
 * the page and the printed sheet follow: every number a guest can see is explained, and nothing else.
 */
.kiosk-foot {
  flex: 0 0 auto;
}

.kiosk-allergens {
  margin-top: calc(var(--u) * 2.4);
  padding-top: calc(var(--u) * 1.6);
  border-top: 1px solid rgba(29, 29, 27, 0.16);
}

.kiosk-allergens-heading {
  margin: 0 0 calc(var(--u) * 0.9);
  color: rgba(29, 29, 27, 0.75);
  font-size: calc(var(--u) * 1.5);
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.kiosk-allergens-list {
  margin: 0;
  padding: 0;
  list-style: none;
  columns: 3;
  column-gap: calc(var(--u) * 2.4);
}

.kiosk-allergens-item {
  display: flex;
  align-items: baseline;
  gap: calc(var(--u) * 0.5);
  margin: 0 0 calc(var(--u) * 0.35);
  break-inside: avoid;
  color: rgba(29, 29, 27, 0.55);
  font-size: calc(var(--u) * 1.15);
  font-weight: 400;
  line-height: 1.35;
}

.kiosk-allergens-num {
  flex: 0 0 auto;
  min-width: calc(var(--u) * 1.5);
  color: #be1622;
  font-weight: 600;
}

.kiosk-allergens-name {
  flex: 1 1 auto;
  min-width: 0;
}

/*
 * THE STAFF-PRICE FOOTNOTE - what the asterisk on a discounted price means.
 *
 * Sized from --u like everything else on this board, never rem(): _base.scss steps html{font-size} to
 * 70% below 980px and at 300% Windows scale the board's viewport is 720px wide, so a rem here would drop
 * this line into the theme's mobile band. See the file header.
 *
 * Deliberately the quietest text on the board. It is a legal-ish note that a guest reads once, competing
 * for space with the dishes on a screen that must never scroll - so it is set below the allergen legend's
 * size and above nothing else's.
 */
.kiosk-price-note {
  position: relative;
  margin: calc(var(--u) * 1.4) 0 0;
  padding-left: calc(var(--u) * 1.2);
  color: rgba(29, 29, 27, 0.5);
  font-size: calc(var(--u) * 1.25);
  font-weight: 400;
  line-height: 1.35;
}

.kiosk-price-note-mark {
  position: absolute;
  left: 0;
  top: 0;
  color: #be1622;
  font-weight: 600;
}

.kiosk-foot-bar {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-top: calc(var(--u) * 1.8);
  padding-top: calc(var(--u) * 1.4);
  border-top: 1px solid rgba(29, 29, 27, 0.16);
  color: rgba(29, 29, 27, 0.55);
  font-size: calc(var(--u) * 1.5);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.03em;
}

.kiosk-clock {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

/*
 * CLOSED - the weekend / holiday / nothing-published card. Centred in the board, deliberately designed
 * rather than an error message: this is what the screen shows all weekend, seen from the street.
 */
.kiosk-closed {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  text-align: center;
}
.kiosk-closed .kiosk-logo {
  width: calc(var(--u) * 14);
  margin-bottom: calc(var(--u) * 3.5);
}
.kiosk-closed .kiosk-title {
  font-size: calc(var(--u) * 7.2);
}

.kiosk-closed-lead {
  max-width: calc(var(--u) * 38);
  margin: 0;
  color: rgba(29, 29, 27, 0.6);
  font-size: calc(var(--u) * 2.2);
  line-height: 1.5;
}

/*
 * THE TWO OVERLAYS
 */
.kiosk-fullscreen {
  position: fixed;
  right: calc(var(--k) * 2);
  top: calc(var(--k) * 2);
  z-index: 20;
  padding: calc(var(--k) * 1) calc(var(--k) * 2.2);
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(29, 29, 27, 0.16);
  border-radius: calc(var(--k) * 99);
  color: #1d1d1b;
  font-family: "Mukta";
  font-size: calc(var(--k) * 1.5);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
}
.kiosk-fullscreen[hidden] {
  display: none;
}

/*
 * The diagnostic strip - bottom left, on devmode or with ?debug=1. Prints the CSS viewport, the device
 * pixel ratio, the physical resolution those two imply, the auto-fit factor and the last poll, so the
 * real panel can be checked at 200% and 300% Windows scale without guessing.
 */
.kiosk-diag {
  position: fixed;
  left: 0;
  bottom: 0;
  z-index: 30;
  max-width: 100%;
  padding: 6px 12px;
  box-sizing: border-box;
  background: rgba(29, 29, 27, 0.86);
  color: #f4f2ef;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.02em;
  pointer-events: none;
}

.kiosk-body.kiosk-debug-on {
  cursor: default;
}

/*
 * REDUCED MOTION. Irrelevant on the panel itself, but the board is opened on laptops during setup and
 * review. The background layers handle themselves in _kiosk-bg.scss.
 */
@media (prefers-reduced-motion: reduce) {
  .kiosk-deck,
  .kiosk-item-tag {
    animation: none !important;
  }
  .kiosk-slide * {
    animation: none !important;
  }
  .kiosk-slide {
    transition: opacity 0.3s ease, visibility 0s linear 0.3s;
  }
  .kiosk-slide.is-active {
    transition: opacity 0.3s ease, visibility 0s linear 0s;
  }
}
/*
 * KIOSK BOARD - THE INFORMATION SCREEN
 *
 * Markup: templates/kiosk-board.php ( the kiosk-slide-info section ).
 * Settings + the why: functions/theme-custom/daily-menu-kiosk-info.php
 * The board itself, the deck and the turn-over: scss/modules/_kiosk.scss
 *
 * A short notice from the kitchen, taking turns with the menu. Everything structural - the box, the
 * padding, the head, the foot bar, the fade - is inherited from .kiosk-slide, so all that is left here is
 * how the notice itself is set.
 *
 * SIZED IN --u LIKE THE REST OF THE BOARD, never rem(). See the header of _kiosk.scss: html{font-size}
 * steps to 70% below 980px and the board's viewport is 720px wide at Windows' 300% scale, so a rem here
 * would drop this screen into the theme's mobile band while the menu beside it stayed correct.
 *
 * ITS OWN --kiosk-fit, WITH A CEILING. kiosk.js fits this slide separately - a four-line notice must not
 * be shrunk to whatever a seven-course day needed - but never larger than the menu slide. Two reasons:
 * the notice is the secondary screen and should never be set bigger than the menu, and matching factors
 * are what keep the logo and the clock exactly the same size on both sides of the cross-fade, which is
 * what makes them appear not to move at all.
 */
/*
 * THE BODY IS CENTRED IN WHAT IS LEFT between the head and the foot bar - the same shape .kiosk-closed
 * already uses, which is the closest thing on this board: a head, a rule, and a couple of lines under it.
 *
 * The auto-fit still works through the centring. When the notice is taller than the box it overflows both
 * ways, so the bottom edge is still past the box's - kiosk.js sees it, shrinks, and the loop exits at the
 * exact point the two heights meet.
 */
.kiosk-slide-info .kiosk-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: calc(var(--u) * 3) 0 calc(var(--u) * 12);
}

/*
 * SET LARGER THAN THE MENU'S DISH NAMES, which looks wrong written down and is right on the board.
 *
 * The notice is four short lines on a screen two metres tall, and the menu's sizes are the wrong
 * reference for it: those are one line each in a list of fifteen, read as a column. This is a paragraph
 * read as a paragraph, with the whole middle of the board to itself - at the menu's 2.5 it sat in the
 * void looking like a footnote to its own headline. It is also the one screen a passer-by reads from
 * further away, because there is no reason to walk up to it.
 */
.kiosk-info-body {
  max-width: calc(var(--k) * 44);
  margin: 0 auto;
  color: rgba(29, 29, 27, 0.72);
  font-size: calc(var(--u) * 3.1);
  font-weight: 400;
  line-height: 1.5;
  text-align: center;
}
.kiosk-info-body p {
  margin: 0 0 calc(var(--u) * 2.6);
  text-wrap: balance;
}
.kiosk-info-body p:last-child {
  margin-bottom: 0;
}
.kiosk-info-body strong,
.kiosk-info-body b {
  color: #1d1d1b;
  font-weight: 600;
}
.kiosk-info-body em,
.kiosk-info-body i {
  font-style: italic;
}

/*
 * THE SIGNATURE. Its own field rather than the last line of the text, so it can be set quietly and sit
 * off on its own - a sign-off, not another sentence to read.
 */
.kiosk-info-body .kiosk-info-signature {
  margin-top: calc(var(--u) * 4);
  color: rgba(29, 29, 27, 0.5);
  font-size: calc(var(--u) * 2.2);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.04em;
}

/*
 * KIOSK BOARD - THE SNÍDANĚ SCREEN
 *
 * Markup: templates/kiosk-board.php ( the kiosk-slide-snidane section ).
 * Settings + the why: functions/theme-custom/daily-menu-kiosk-snidane.php
 * The board itself, the deck and the turn-over: scss/modules/_kiosk.scss
 *
 * THIS FILE IS DELIBERATELY TINY, and that is the point of it. The breakfast screen is a MENU, so its
 * markup reuses .kiosk-category / .kiosk-list / .kiosk-item wholesale and _kiosk.scss already styles
 * every dish row, every dot leader, every price and the allergen legend under them. Duplicating any of
 * that here would be two sets of numbers to keep in step for two screens that must look identical.
 *
 * What is left is the two things the denní menu does not have: the serving window under the rule, and
 * the "zeptejte se obsluhy" line in the foot.
 *
 * SIZED IN --u LIKE THE REST OF THE BOARD, never rem(). See the header of _kiosk.scss: html{font-size}
 * steps to 70% below 980px and the board's viewport is only 720px wide at Windows' 300% scale, so a rem
 * here would drop this screen into the theme's mobile band while the menu beside it stayed correct.
 *
 * NO --kiosk-fit RULES HERE EITHER. kiosk.js writes the factor onto the slide element and every size
 * below is derived from --u, which already carries it - so this screen shrinks with the others for free.
 * It opts into the two-column fallback ( .is-dense ) along with the denní menu, because a long list of
 * short rows is exactly what breaks into columns well - see the `dense` flag in kiosk.js.
 */
/*
 * THE SERVING WINDOW - the line under the rule, where the menu slide puts its weekday and date.
 *
 * IT IS IN THE SAME SLOT BECAUSE IT ANSWERS THE SAME QUESTION: when does this menu apply. That parallel
 * is worth keeping - a guest who has read the board before already knows to look there.
 *
 * SET DARKER AND HEAVIER THAN .kiosk-day, though, and on purpose. The denní menu's date is confirmation
 * of something the reader already assumes ( it is today's menu ); this is a CORRECTION to what they
 * assume - the board shows breakfast every day, including the days it is not served, so this line is the
 * only thing standing between the screen and a guest who turns up on Monday morning. See the note at the
 * head of daily-menu-kiosk-snidane.php for why the slide is not simply day-gated instead.
 */
.kiosk-snidane-window {
  margin: 0;
  color: #1d1d1b;
  font-size: calc(var(--u) * 2.5);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0.02em;
  text-wrap: balance;
}

/*
 * THE STAFF LINE, at the foot under the allergen legend.
 *
 * The site's ONE "zeptejte se obsluhy" sentence, and the board is where it earns its place most easily:
 * the obsluha is four metres away from the person reading it. See cookie_snidane_staff_note() for why
 * the rule it breaks is broken on purpose, and why it must not be deleted as a slip.
 *
 * Set at the price-note's size and colour so the two read as one block of small print rather than as two
 * competing footnotes - on a day when both are printed they sit directly on top of each other. It takes
 * the hanging indent back, because unlike the * note it has no mark to hang.
 */
.kiosk-snidane-staff-note {
  margin: calc(var(--u) * 0.7) 0 0;
  color: rgba(29, 29, 27, 0.5);
  font-size: calc(var(--u) * 1.25);
  font-weight: 400;
  line-height: 1.35;
}

/*
 * KIOSK BOARD - THE BACKGROUND ( "aurora" )
 *
 * Markup: templates/kiosk-board.php . Board itself: scss/modules/_kiosk.scss
 *
 * Four oversized gradient sheets, each a rounded blob rather than a rectangle, rotating and breathing at
 * different speeds and in both directions. Because they overlap under multiply, the colour where they
 * cross is always changing - THAT CROSSING IS THE EFFECT, not the individual shapes. Where the sand
 * sheet passes through the grey-green one the field goes olive for a while, and that intersection
 * wanders continuously across the board.
 *
 * Two other variants ( rising steam, and ripples spreading from the logo ) were built alongside this one
 * and compared on the real panel; this is the one that was kept. They are gone - see the changelog entry
 * if the idea is ever wanted back.
 *
 *
 * THE RULES THIS OBEYS
 *
 * 1. ONLY transform AND opacity ANIMATE. No width/height/left/top, no background-position, and NO
 *    JAVASCRIPT AT ALL. That keeps the whole layer on the compositor, which is what makes it safe to
 *    leave running for months on a machine nobody logs into - an rAF loop is the one thing here that
 *    could actually leak.
 * 2. IT IS A MENU BOARD FIRST. Everything stays within a few percent of the cream ground's luminance, so
 *    the near-black type is always the highest-contrast thing on the screen from four metres away.
 * 3. NO TWO LOOPS SHARE A LENGTH ( 59 / 74 / 91 / 113s ) and every sheet starts on a negative delay, so
 *    the composition never resolves into a beat. On a screen somebody walks past twenty times a day, a
 *    repeating pattern is exactly what gets noticed.
 * 4. EVERYTHING IS SIZED IN --k, the board unit ( see the header of _kiosk.scss ), so the motion scales
 *    with the board rather than with the pixel count.
 */
/*
 * THE LAYER
 *
 * Fixed and behind everything. contain: strict isolates its paint from the document, so none of this can
 * ever trigger layout on the menu above it.
 */
.kiosk-bg {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  contain: strict;
  pointer-events: none;
  z-index: 0;
}

/*
 * THE SHEETS
 *
 * border-radius on a rotating square is what stops this reading as a spinning rectangle: at 44-56% the
 * silhouette is an irregular blob whose own outline appears to morph as it turns.
 *
 * They are 190% of the board and centred, so no edge can swing into view at any angle.
 */
.kiosk-aurora {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 190%;
  height: 190%;
  margin-left: -95%;
  margin-top: -95%;
  filter: blur(calc(var(--k) * 6));
  mix-blend-mode: multiply;
  will-change: transform;
}

.kiosk-aurora-1 {
  border-radius: 44% 56% 52% 48%;
  background: linear-gradient(128deg, rgba(231, 199, 148, 0.92) 0%, rgba(244, 242, 239, 0) 58%);
  animation: kiosk-aurora-cw 74s linear infinite;
}

.kiosk-aurora-2 {
  border-radius: 52% 48% 44% 56%;
  background: linear-gradient(302deg, rgba(196, 210, 208, 0.85) 0%, rgba(244, 242, 239, 0) 55%);
  animation: kiosk-aurora-ccw 91s linear infinite;
  animation-delay: -23s;
}

.kiosk-aurora-3 {
  border-radius: 48% 52% 56% 44%;
  background: linear-gradient(200deg, rgba(190, 22, 34, 0.3) 0%, rgba(244, 242, 239, 0) 46%);
  animation: kiosk-aurora-cw 113s linear infinite;
  animation-delay: -57s;
}

.kiosk-aurora-4 {
  width: 140%;
  height: 140%;
  margin-left: -70%;
  margin-top: -70%;
  border-radius: 46% 54% 48% 52%;
  background: linear-gradient(24deg, rgba(212, 166, 104, 0.7) 0%, rgba(244, 242, 239, 0) 52%);
  animation: kiosk-aurora-ccw 59s linear infinite;
  animation-delay: -11s;
}

/*
 * Rotation is LINEAR on purpose - an eased spin has a visible stop-and-go at the loop point, and this
 * runs all day. The scale breathing is what gives it life instead.
 */
@keyframes kiosk-aurora-cw {
  0% {
    transform: rotate(0deg) scale(1);
  }
  50% {
    transform: rotate(180deg) scale(1.16);
  }
  100% {
    transform: rotate(360deg) scale(1);
  }
}
@keyframes kiosk-aurora-ccw {
  0% {
    transform: rotate(360deg) scale(1.1);
  }
  50% {
    transform: rotate(180deg) scale(0.94);
  }
  100% {
    transform: rotate(0deg) scale(1.1);
  }
}
/*
 * THE OVERLAYS
 */
/*
 * Grain. One 160px tile of fractal noise baked into a data URI - no request, no image file. It matters
 * more here than it would on a normal page: huge soft gradients band visibly on a big panel, and a
 * little noise is what breaks the bands up.
 */
.kiosk-grain {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.04;
  mix-blend-mode: multiply;
}

.kiosk-vignette {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(ellipse 78% 62% at 50% 42%, rgba(29, 29, 27, 0) 0%, rgba(29, 29, 27, 0.05) 68%, rgba(29, 29, 27, 0.12) 100%);
}

/*
 * REDUCED MOTION. Irrelevant on the panel, but the board gets opened on laptops during setup and review,
 * and a rotating gradient field is exactly what this setting is about. The sheets stay - the composition
 * still looks like itself - they simply stop moving.
 */
@media (prefers-reduced-motion: reduce) {
  .kiosk-aurora {
    animation: none !important;
  }
}
/*
 * "VYPRODÁNO" - the staff form behind the QR code at the till.
 *
 * Markup: templates/kiosk-soldout.php . Behaviour: js/scripts-parts/kiosk-soldout.js
 * Routing + the why: functions/theme-custom/daily-menu-soldout.php
 *
 * One situation only: a phone, one hand, during service. Everything below follows from that - big flat
 * rows, a switch you cannot miss with a thumb, and no navigation to get lost in.
 *
 * UNLIKE THE KIOSK BOARD, this page uses rem() normally - it is an ordinary responsive page and the
 * project rule applies. It does pin html{font-size} the way the board does, for a different reason:
 * _base.scss steps the root size 70-100% across viewport bands, and on a tool where rem(72) is a tap
 * target that has to stay a thumb wide, a size that moves with the viewport is the wrong behaviour.
 * Pinned, rem() means physical pixels here.
 */
.soldout-html {
  font-size: 16px;
  height: 100%;
}

.soldout-body {
  margin: 0;
  padding: 0;
  background-color: #f4f2ef;
  color: #1d1d1b;
  font-family: "Mukta";
  -webkit-font-smoothing: antialiased;
  touch-action: manipulation;
}

.soldout-wrap {
  width: 100%;
  max-width: 35rem;
  margin: 0 auto;
  padding: 1.75rem 1.125rem 3.5rem;
  box-sizing: border-box;
}

/*
 * HEAD
 */
.soldout-head {
  text-align: center;
  margin-bottom: 1.5rem;
}

.soldout-logo {
  display: block;
  width: 4rem;
  height: auto;
  margin: 0 auto 0.875rem;
}

.soldout-title {
  margin: 0 0 0.375rem;
  font-size: 1.875rem;
  font-weight: 200;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.soldout-day {
  margin: 0;
  color: rgba(29, 29, 27, 0.6);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.03em;
}

.soldout-lead,
.soldout-empty {
  margin: 0 0 1.625rem;
  color: rgba(29, 29, 27, 0.65);
  font-size: 0.9375rem;
  line-height: 1.55;
  text-align: center;
}

/*
 * CATEGORIES + ROWS
 */
.soldout-category {
  margin-bottom: 1.625rem;
}

.soldout-category-heading {
  position: relative;
  margin: 0 0 0.625rem;
  padding: 0 0 0.5625rem;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.soldout-category-heading::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 2.75rem;
  height: 0.1875rem;
  background-color: #be1622;
}

.soldout-list {
  background-color: #ffffff;
  border-radius: 0.875rem;
  overflow: hidden;
  box-shadow: 0 0.0625rem 0.1875rem rgba(29, 29, 27, 0.07);
}

/*
 * THE ROW. A <label>, so the whole thing is the tap target - rem(72) tall, which is a comfortable thumb
 * during service rather than a checkbox somebody has to aim at.
 */
.soldout-item {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  position: relative;
  min-height: 4.5rem;
  padding: 0.8125rem 1rem;
  box-sizing: border-box;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 0.2s ease, opacity 0.3s ease;
}
.soldout-item + .soldout-item {
  border-top: 1px solid rgba(29, 29, 27, 0.08);
}
.soldout-item:active {
  background-color: rgba(29, 29, 27, 0.03);
}
.soldout-item.is-saving {
  opacity: 0.5;
}

.soldout-item-text {
  flex: 1 1 auto;
  min-width: 0;
}

.soldout-item-name {
  display: block;
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: line-through;
  text-decoration-thickness: 0.125rem;
  text-decoration-color: transparent;
  transition: text-decoration-color 0.3s ease, color 0.3s ease;
}

.soldout-item-meta {
  display: block;
  margin-top: 0.125rem;
  font-size: 0.875rem;
  line-height: 1.3;
}

.soldout-item-price {
  color: rgba(29, 29, 27, 0.5);
}

.soldout-item-state {
  display: none;
  color: #be1622;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.soldout-item.is-soldout .soldout-item-name {
  color: rgba(29, 29, 27, 0.45);
  text-decoration-color: rgba(29, 29, 27, 0.45);
}
.soldout-item.is-soldout .soldout-item-price {
  display: none;
}
.soldout-item.is-soldout .soldout-item-state {
  display: inline;
}

/*
 * THE SWITCH. The native checkbox stays in the DOM and keeps the keyboard and screen reader working; it
 * is just moved out of sight rather than display:none'd, which would take it out of the tab order.
 */
.soldout-check {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  opacity: 0;
  pointer-events: none;
}

.soldout-switch {
  position: relative;
  flex: 0 0 auto;
  width: 3.625rem;
  height: 2.125rem;
  background-color: rgba(29, 29, 27, 0.16);
  border-radius: 6.1875rem;
  transition: background-color 0.25s ease;
}
.soldout-switch::after {
  content: "";
  position: absolute;
  left: 0.1875rem;
  top: 0.1875rem;
  width: 1.75rem;
  height: 1.75rem;
  background-color: #ffffff;
  border-radius: 50%;
  box-shadow: 0 0.0625rem 0.1875rem rgba(29, 29, 27, 0.28);
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.soldout-check:focus-visible + .soldout-switch {
  outline: 2px solid #be1622;
  outline-offset: 3px;
}

.soldout-item.is-soldout .soldout-switch {
  background-color: #be1622;
}
.soldout-item.is-soldout .soldout-switch::after {
  transform: translateX(1.5rem);
}

/*
 * FOOT - the morning reset and the last-changed line.
 */
.soldout-foot {
  margin-top: 2.125rem;
  text-align: center;
}

.soldout-reset {
  width: 100%;
  margin: 0 0 0.875rem;
  padding: 1rem 1.25rem;
  background: transparent;
  border: 1px solid rgba(29, 29, 27, 0.22);
  border-radius: 6.1875rem;
  color: #1d1d1b;
  font-family: "Mukta";
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.soldout-reset:active {
  color: #be1622;
  border-color: #be1622;
}

.soldout-status {
  margin: 0;
  color: rgba(29, 29, 27, 0.45);
  font-size: 0.8125rem;
  line-height: 1.4;
}
.soldout-status.is-error {
  color: #be1622;
  font-weight: 600;
}

/*
 * Wider phones and tablets - a little more room, nothing structural.
 */
@media (min-width: 600px) {
  .soldout-wrap {
    padding-top: 2.75rem;
  }
  .soldout-title {
    font-size: 2.25rem;
  }
  .soldout-item {
    min-height: 4.875rem;
    padding: 0.9375rem 1.25rem;
  }
  .soldout-item-name {
    font-size: 1.125rem;
  }
}
/*
 * MAIN HEADER
 *
 * Markup: templates/header-main.php
 * Behaviour: js/scripts-parts/header-main.js
 *
 * Fixed bar. Past the scroll offset, cookie_header_change_styling_after_scroll() adds
 * .after-scroll, which switches the bar to white and pulls the logo badge in to sit fully
 * inside it. The bar HEIGHT is deliberately identical in both states - only the badge and the
 * colours change.
 *
 * At rest the badge is larger than the bar and hangs below it, so the bar must never clip its
 * overflow.
 *
 * The bar uses $color-primary ( #1d1d1b ), which is the logo disc colour. Do not change it to
 * pure black: the badge would show as a lighter circle where it overlaps the bar.
 */
/*
 * THE BAR HEIGHT IS A FIXED VALUE, NOT CONTENT DRIVEN, so it is declared once here and everything
 * that has to line up with the header reads it from these two variables: the bar itself, the
 * .dummy_header spacer below, and --header-h, which scss/modules/_comp_01.scss uses to size the
 * full-height hero.
 *
 * It used to be JavaScript that measured the bar and wrote the spacer height. That is wrong in a
 * way that shows: html { font-size } steps between 70% and 100% across the breakpoints in
 * _base.scss, so the bar is a different number of pixels at different widths - and on resize
 * Chrome reports the header's PREVIOUS box, even a frame later. Dragging a window across 1024px
 * left the spacer 24px too tall and put a white band between the bar and the hero. CSS has no
 * such lag, and rem() here is evaluated by the same engine that sizes the bar, so the two can
 * never disagree.
 */
:root {
  --header-h: 7.5rem;
}

.dummy_header {
  height: 7.5rem;
}

@media (max-width: 730px) {
  :root {
    --header-h: 4.5rem;
  }
  .dummy_header {
    height: 4.5rem;
  }
}
header.main_header-wrapper {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 1000;
  width: 100%;
  height: 7.5rem;
  background-color: #1d1d1b;
  overflow: visible;
  transition: background-color 0.3s ease, transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  box-sizing: border-box;
}
body.admin-bar header.main_header-wrapper {
  top: 32px;
}
@media screen and (max-width: 782px) {
  body.admin-bar header.main_header-wrapper {
    top: 46px;
  }
}
@media screen and (max-width: 600px) {
  body.admin-bar header.main_header-wrapper {
    top: 0;
  }
}
header.main_header-wrapper .main_header-inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  max-width: 80rem;
  height: 100%;
  margin: 0 auto;
  padding: 0 3rem 0 15rem;
  box-sizing: border-box;
}
header.main_header-wrapper .main_header-logo {
  position: absolute;
  left: 3rem;
  top: 0.625rem;
  z-index: 2;
  display: block;
  width: 9.375rem;
  height: 9.375rem;
  transition: all 0.3s ease;
}
header.main_header-wrapper .main_header-logo img {
  display: block;
  width: 100%;
  height: auto;
}
header.main_header-wrapper .main_header-nav {
  position: relative;
}
header.main_header-wrapper .main_header-nav .nav-indicator {
  position: absolute;
  top: calc(50% + 0.75rem);
  height: 0.25rem;
  background-color: #be1622;
  border-radius: 0.125rem;
  pointer-events: none;
  transition: left 0.25s cubic-bezier(0.4, 0, 0.2, 1), width 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  transform: translate(0, -50%);
}
@media (max-width: 979px) {
  header.main_header-wrapper .main_header-nav .nav-indicator {
    display: none !important;
  }
}
header.main_header-wrapper .main_header-nav ul.navigation {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
header.main_header-wrapper .main_header-nav ul.navigation li {
  position: relative;
  margin: 0 0 0 2.375rem;
  padding: 0;
  list-style: none;
}
header.main_header-wrapper .main_header-nav ul.navigation li:first-child {
  margin-left: 0;
}
header.main_header-wrapper .main_header-nav ul.navigation li a {
  display: block;
  color: #ffffff;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  white-space: nowrap;
}
header.main_header-wrapper .main_header-nav ul.navigation li.current-menu-item > a, header.main_header-wrapper .main_header-nav ul.navigation li.current_page_item > a, header.main_header-wrapper .main_header-nav ul.navigation li.current-menu-ancestor > a, header.main_header-wrapper .main_header-nav ul.navigation li.active > a {
  color: #be1622;
}
header.main_header-wrapper .main_header-nav ul.navigation li.cta {
  margin-left: 2.875rem;
}
header.main_header-wrapper .main_header-nav ul.navigation li.cta a {
  padding: 1rem 1.75rem;
  background-color: #be1622;
  color: #ffffff;
  transition: all 0.3s ease;
}
header.main_header-wrapper .main_header-nav ul.navigation li.cta a:hover {
  background-color: rgb(60.1701812801%, 6.9670736219%, 10.7672955975%);
  color: #ffffff;
}
header.main_header-wrapper .mobile-menu-trigger {
  display: none;
  flex: 0 0 auto;
  margin-left: 1.5rem;
}
header.main_header-wrapper .c-hamburger span {
  background: #ffffff;
}
header.main_header-wrapper .c-hamburger span::before, header.main_header-wrapper .c-hamburger span::after {
  background-color: #ffffff;
}
header.main_header-wrapper .c-hamburger.is-active span {
  background: none;
}
header.main_header-wrapper.after-scroll {
  background-color: #ffffff;
}
header.main_header-wrapper.after-scroll .main_header-logo {
  top: 0.625rem;
  width: 6.25rem;
  height: 6.25rem;
}
header.main_header-wrapper.after-scroll .main_header-nav ul.navigation li:not(.cta) > a {
  color: #1d1d1b;
}
header.main_header-wrapper.after-scroll .main_header-nav ul.navigation li.current-menu-item:not(.cta) > a, header.main_header-wrapper.after-scroll .main_header-nav ul.navigation li.current_page_item:not(.cta) > a, header.main_header-wrapper.after-scroll .main_header-nav ul.navigation li.current-menu-ancestor:not(.cta) > a, header.main_header-wrapper.after-scroll .main_header-nav ul.navigation li.active:not(.cta) > a {
  color: #be1622;
}
header.main_header-wrapper.after-scroll .c-hamburger span {
  background: #1d1d1b;
}
header.main_header-wrapper.after-scroll .c-hamburger span::before, header.main_header-wrapper.after-scroll .c-hamburger span::after {
  background-color: #1d1d1b;
}
header.main_header-wrapper.after-scroll .c-hamburger.is-active span {
  background: none;
}
body.menu-open header.main_header-wrapper {
  background-color: #1d1d1b;
}
body.menu-open header.main_header-wrapper .c-hamburger span {
  background: #ffffff;
}
body.menu-open header.main_header-wrapper .c-hamburger span::before, body.menu-open header.main_header-wrapper .c-hamburger span::after {
  background-color: #ffffff;
}
body.menu-open header.main_header-wrapper .c-hamburger.is-active span {
  background: none;
}
@media (max-width: 979px) {
  header.main_header-wrapper.header-hidden {
    transform: translateY(calc(-100% - 3rem));
  }
  header.main_header-wrapper .main_header-nav {
    display: none;
  }
  header.main_header-wrapper .mobile-menu-trigger {
    display: block;
  }
  header.main_header-wrapper .main_header-inner {
    padding-left: 11.25rem;
  }
}
@media (max-width: 730px) {
  header.main_header-wrapper, header.main_header-wrapper.after-scroll {
    height: 4.5rem;
  }
  header.main_header-wrapper .main_header-inner, header.main_header-wrapper.after-scroll .main_header-inner {
    padding: 0 1.25rem 0 7.5rem;
  }
  header.main_header-wrapper .main_header-logo, header.main_header-wrapper.after-scroll .main_header-logo {
    left: 1.25rem;
    top: 1.25rem;
    width: 5.75rem;
    height: 5.75rem;
  }
}

.mobile-menu-overlay {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 999;
  width: 100%;
  height: 100%;
  padding: 8.75rem 1.5rem 3rem 1.5rem;
  background-color: #1d1d1b;
  overflow-y: auto;
  overscroll-behavior: contain;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  box-sizing: border-box;
}
.mobile-menu-overlay.is-open {
  opacity: 1;
  visibility: visible;
}
.mobile-menu-overlay .mobile-menu-inner {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 28.75rem;
  margin: 0 auto;
}
.mobile-menu-overlay .mobile-menu-inner > * {
  opacity: 0;
  transform: translateY(1rem);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.mobile-menu-overlay.is-open .mobile-menu-inner > * {
  opacity: 1;
  transform: translateY(0);
}
.mobile-menu-overlay.is-open .mobile-menu-inner > *:nth-child(1) {
  transition-delay: 0.08s;
}
.mobile-menu-overlay.is-open .mobile-menu-inner > *:nth-child(2) {
  transition-delay: 0.14s;
}
.mobile-menu-overlay.is-open .mobile-menu-inner > *:nth-child(3) {
  transition-delay: 0.2s;
}
.mobile-menu-overlay.is-open .mobile-menu-inner > *:nth-child(4) {
  transition-delay: 0.26s;
}
.mobile-menu-overlay .mobile-menu-nav ul.navigation {
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: center;
}
.mobile-menu-overlay .mobile-menu-nav ul.navigation li {
  margin: 0 0 0.8125rem 0;
  padding: 0;
  list-style: none;
}
.mobile-menu-overlay .mobile-menu-nav ul.navigation li:last-child {
  margin-bottom: 0;
}
.mobile-menu-overlay .mobile-menu-nav ul.navigation li a {
  display: inline-block;
  color: #ffffff;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  transition: color 0.2s ease;
}
.mobile-menu-overlay .mobile-menu-nav ul.navigation li a:hover {
  color: #be1622;
}
.mobile-menu-overlay .mobile-menu-nav ul.navigation li.current-menu-item > a, .mobile-menu-overlay .mobile-menu-nav ul.navigation li.current_page_item > a, .mobile-menu-overlay .mobile-menu-nav ul.navigation li.active > a {
  color: #be1622;
}
.mobile-menu-overlay .mobile-menu-daily {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6875rem;
  margin-top: 1.625rem;
  padding: 0.9375rem 1.625rem;
  background-color: #be1622;
  border-radius: 0;
  color: #ffffff;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  transition: background-color 0.25s ease;
}
.mobile-menu-overlay .mobile-menu-daily:hover {
  background-color: rgb(60.1701812801%, 6.9670736219%, 10.7672955975%);
  color: #ffffff;
}
.mobile-menu-overlay .mobile-menu-daily .mobile-menu-daily-icon {
  display: flex;
}
.mobile-menu-overlay .mobile-menu-daily .mobile-menu-daily-icon svg {
  display: block;
  width: 1.25rem;
  height: 1.25rem;
}
.mobile-menu-overlay .mobile-menu-status {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 1.875rem;
  text-align: center;
}
.mobile-menu-overlay .mobile-menu-status::before {
  content: "";
  width: 2.25rem;
  height: 1px;
  margin-bottom: 1.625rem;
  background-color: rgba(255, 255, 255, 0.18);
}
.mobile-menu-overlay .mobile-menu-status .mobile-menu-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5625rem;
  padding: 0.5rem 1rem;
  border-radius: 6.25rem;
  background-color: rgba(255, 255, 255, 0.06);
  transition: background-color 0.25s ease;
}
.mobile-menu-overlay .mobile-menu-status .mobile-menu-status-dot {
  flex: 0 0 auto;
  width: 0.5625rem;
  height: 0.5625rem;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.5);
}
.mobile-menu-overlay .mobile-menu-status .mobile-menu-status-label {
  color: #ffffff;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.09em;
}
.mobile-menu-overlay .mobile-menu-status .mobile-menu-status-detail {
  margin-top: 0.6875rem;
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.3;
}
.mobile-menu-overlay .mobile-menu-status .mobile-menu-status-detail:empty {
  display: none;
}
.mobile-menu-overlay .mobile-menu-status.is-open .mobile-menu-status-pill {
  background-color: rgba(79, 180, 119, 0.14);
}
.mobile-menu-overlay .mobile-menu-status.is-open .mobile-menu-status-dot {
  background-color: #4fb477;
  animation: mobileMenuPulse 2s infinite;
}
.mobile-menu-overlay .mobile-menu-status.is-open .mobile-menu-status-label {
  color: #4fb477;
}
.mobile-menu-overlay .mobile-menu-status.is-closed .mobile-menu-status-pill {
  background-color: rgba(190, 22, 34, 0.14);
}
.mobile-menu-overlay .mobile-menu-status.is-closed .mobile-menu-status-dot {
  background-color: #be1622;
}
.mobile-menu-overlay .mobile-menu-contact {
  align-self: center;
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  margin-top: 1.5rem;
}
.mobile-menu-overlay .mobile-menu-contact .mobile-menu-contact-item {
  display: flex;
  align-items: center;
  gap: 0.6875rem;
  padding: 0.625rem 0.25rem;
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.01em;
  transition: color 0.2s ease;
}
.mobile-menu-overlay .mobile-menu-contact .mobile-menu-contact-item:hover {
  color: #be1622;
}
.mobile-menu-overlay .mobile-menu-contact .mobile-menu-contact-item .mobile-menu-contact-icon {
  flex: 0 0 auto;
  display: flex;
  color: #be1622;
}
.mobile-menu-overlay .mobile-menu-contact .mobile-menu-contact-item .mobile-menu-contact-icon svg {
  display: block;
  width: 1.125rem;
  height: 1.125rem;
}
@media (prefers-reduced-motion: reduce) {
  .mobile-menu-overlay .mobile-menu-inner > *, .mobile-menu-overlay.is-open .mobile-menu-inner > * {
    transition: none;
    transform: none;
  }
  .mobile-menu-overlay .mobile-menu-status.is-open .mobile-menu-status-dot {
    animation: none;
  }
}
@media (max-width: 730px) {
  .mobile-menu-overlay {
    padding-top: 7.5rem;
  }
  .mobile-menu-overlay .mobile-menu-nav ul.navigation li a {
    font-size: 1.125rem;
  }
}

@keyframes mobileMenuPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(79, 180, 119, 0.5);
  }
  70% {
    box-shadow: 0 0 0 0.5rem rgba(79, 180, 119, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(79, 180, 119, 0);
  }
}
.c-hamburger {
  float: none;
  display: block;
  position: relative;
  width: 3.125rem;
  height: 3.125rem;
  margin: 0;
  padding: 0;
  font-size: 0;
  appearance: none;
  box-shadow: none;
  border: none;
  cursor: pointer;
  background-color: transparent;
  text-align: center;
  border-radius: 0;
  transition: background 0.4s ease;
  text-shadow: rgba(255, 255, 255, 0) 0px 0px 0px;
  box-sizing: border-box;
}
.c-hamburger:hover {
  background-color: transparent;
}
.c-hamburger:focus {
  outline: none;
}
.c-hamburger.is-active span {
  background: none;
}
.c-hamburger.is-active span::before {
  top: 0;
  transform: rotate(45deg);
}
.c-hamburger.is-active span::after {
  bottom: 0;
  transform: rotate(-45deg);
}
.c-hamburger.is-active span::before, .c-hamburger.is-active span::after {
  transition-delay: 0s, 0.3s;
}
.c-hamburger span {
  display: block;
  position: absolute;
  top: 50%;
  left: 0rem;
  right: 0rem;
  height: 0.125rem;
  z-index: 10;
  background: #1d1d1b;
  transition: background 0s 0.3s;
  transform: translate(0, -50%);
}
.c-hamburger span::before, .c-hamburger span::after {
  content: "";
  position: absolute;
  display: block;
  left: 0;
  width: 100%;
  height: 0.125rem;
  background-color: #1d1d1b;
  transition-duration: 0.3s, 0.3s;
  transition-delay: 0.3s, 0s;
}
.c-hamburger span::before {
  top: -0.625rem;
  transition-property: top, transform;
}
.c-hamburger span::after {
  bottom: -0.625rem;
  transition-property: bottom, transform;
}
.c-hamburger i {
  display: block;
  position: absolute;
  left: 50%;
  top: 100%;
  color: #1d1d1b;
  font-size: 1rem;
  font-style: normal;
  text-align: center;
  transform: translate(-50%, 0%);
}

/*
 * MAIN FOOTER
 *
 * Markup: templates/footer-main.php
 *
 * The background MUST stay $color-primary. images/logo-bistro-na-taliri.svg has an opaque
 * #1d1d1b disc as its bottom layer, so on any other shade the badge shows as a circle sitting
 * on the background - the same trap the main header has.
 *
 * .main_footer-inner is sized like .main_header-inner ( rem(1280) capped, rem(48) sides ) and
 * NOT like .default_content-wrapper ( rem(1236) ). That is what lines the footer logo up with
 * the header logo on the same left edge, top and bottom of the page.
 *
 * The four columns run on the irej grid with 20 units and .no-gutter. The default 3em gutter
 * would drag the first column rem(24) outside the content edge through .grid-wrap's negative
 * margin, and the logo has to sit flush left.
 */
footer.main_footer-wrapper {
  width: 100%;
  padding: 6rem 0 2.5rem 0;
  background-color: #1d1d1b;
  color: #ffffff;
  box-sizing: border-box;
}
footer.main_footer-wrapper .main_footer-inner {
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  padding: 0 3rem;
  box-sizing: border-box;
}
footer.main_footer-wrapper .main_footer-logo {
  display: block;
  width: 11.25rem;
  max-width: 100%;
  margin-bottom: 1.75rem;
}
footer.main_footer-wrapper .main_footer-logo img {
  display: block;
  width: 100%;
  height: auto;
}
footer.main_footer-wrapper .main_footer-social {
  display: flex;
  align-items: center;
}
footer.main_footer-wrapper .main_footer-social .main_footer-social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 3.5rem;
  height: 3.5rem;
  margin-right: 1.25rem;
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 50%;
  transition: all 0.3s ease;
  box-sizing: border-box;
}
footer.main_footer-wrapper .main_footer-social .main_footer-social-link:last-child {
  margin-right: 0;
}
footer.main_footer-wrapper .main_footer-social .main_footer-social-link:hover, footer.main_footer-wrapper .main_footer-social .main_footer-social-link:focus-visible {
  color: #ffffff;
  background-color: #be1622;
  border-color: #be1622;
}
footer.main_footer-wrapper .main_footer-social .main_footer-social-link:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 0.1875rem;
}
footer.main_footer-wrapper .main_footer-social .main_footer-social-link svg {
  display: block;
  width: 1.375rem;
  height: 1.375rem;
}
footer.main_footer-wrapper .main_footer-heading {
  margin: 0 0 1.875rem 0;
  color: #ffffff;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
footer.main_footer-wrapper .main_footer-col ul.navigation {
  margin: 0;
  padding: 0;
  list-style: none;
}
footer.main_footer-wrapper .main_footer-col ul.navigation li {
  margin: 0 0 1.375rem 0;
  padding: 0;
  list-style: none;
}
footer.main_footer-wrapper .main_footer-col ul.navigation li:last-child {
  margin-bottom: 0;
}
footer.main_footer-wrapper .main_footer-col ul.navigation li a {
  display: inline-block;
  color: rgba(255, 255, 255, 0.85);
  font-size: 1.0625rem;
  font-weight: 400;
  line-height: 1.2;
}
footer.main_footer-wrapper .main_footer-col ul.navigation li a:hover {
  color: #be1622;
}
footer.main_footer-wrapper .main_footer-col ul.navigation li.current-menu-item > a, footer.main_footer-wrapper .main_footer-col ul.navigation li.current_page_item > a {
  color: #be1622;
}
footer.main_footer-wrapper .main_footer-newsletter-lead {
  max-width: 20.625rem;
  margin: 0 0 1.625rem 0;
  color: rgba(255, 255, 255, 0.85);
  font-size: 1.0625rem;
  line-height: 1.6;
  text-wrap: balance;
}
footer.main_footer-wrapper .newsletter-form {
  display: flex;
  flex-direction: column;
  width: 100%;
}
footer.main_footer-wrapper .newsletter-row {
  display: flex;
  align-items: stretch;
  width: 100%;
}
footer.main_footer-wrapper .newsletter-row input[type=email] {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  height: 3.5rem;
  margin: 0 !important;
  padding: 0 1.125rem;
  background-color: transparent;
  color: #ffffff;
  font-size: 1rem;
  line-height: 1.2;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-right: none;
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box;
}
footer.main_footer-wrapper .newsletter-row input[type=email]:focus, footer.main_footer-wrapper .newsletter-row input[type=email]:focus-visible {
  outline: none;
}
footer.main_footer-wrapper .newsletter-row input[type=email]::placeholder {
  color: rgba(255, 255, 255, 0.7);
  opacity: 1;
}
footer.main_footer-wrapper .newsletter-row .newsletter-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 3.5rem;
  height: 3.5rem;
  margin: 0;
  padding: 0;
  background-color: #be1622;
  color: #ffffff;
  border: none;
  border-radius: 0;
  cursor: pointer;
  transition: all 0.3s ease;
  box-sizing: border-box;
}
footer.main_footer-wrapper .newsletter-row .newsletter-submit:hover {
  background-color: rgb(60.1701812801%, 6.9670736219%, 10.7672955975%);
}
footer.main_footer-wrapper .newsletter-row .newsletter-submit:focus {
  outline: none;
}
footer.main_footer-wrapper .newsletter-row .newsletter-submit:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: -0.25rem;
}
footer.main_footer-wrapper .newsletter-row .newsletter-submit svg {
  display: block;
  width: 1.25rem;
  height: 1.25rem;
}
footer.main_footer-wrapper .newsletter-form input[type=email].error {
  border: 1px solid #be1622;
  border-right: none;
  box-shadow: inset 1px 0 0 0 #be1622, inset 0 1px 0 0 #be1622, inset 0 -1px 0 0 #be1622;
}
footer.main_footer-wrapper .newsletter-consent {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-top: 1.125rem;
  text-align: left;
}
footer.main_footer-wrapper .newsletter-consent .icheckbox {
  flex: 0 0 auto;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0.0625rem 0 0 0;
  background-color: transparent;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 0;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
  box-sizing: border-box;
}
footer.main_footer-wrapper .newsletter-consent .icheckbox:before {
  content: "";
  position: absolute;
  left: 50%;
  top: 46%;
  width: 0.3125rem;
  height: 0.625rem;
  background: none;
  border: solid #ffffff;
  border-width: 0 0.125rem 0.125rem 0;
  transform: translate(-50%, -55%) rotate(45deg);
  opacity: 0;
  transition: opacity 0.15s ease;
}
footer.main_footer-wrapper .newsletter-consent .icheckbox.checked {
  background-color: #be1622;
  border-color: #be1622;
}
footer.main_footer-wrapper .newsletter-consent .icheckbox.checked:before {
  opacity: 1;
}
footer.main_footer-wrapper .newsletter-consent .newsletter-consent-label {
  width: auto;
  margin: 0 !important;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  cursor: pointer;
}
footer.main_footer-wrapper .newsletter-consent .newsletter-consent-label a {
  color: #ffffff;
  text-decoration: underline;
}
footer.main_footer-wrapper .newsletter-consent .newsletter-consent-label a:hover {
  color: #be1622;
  text-decoration: none;
}
footer.main_footer-wrapper .newsletter-consent.error .newsletter-consent-label {
  color: #be1622;
}
footer.main_footer-wrapper .newsletter-consent.error .icheckbox {
  border-color: #be1622;
}
footer.main_footer-wrapper .newsletter-form.working {
  opacity: 0.6;
  pointer-events: none;
}
footer.main_footer-wrapper .main_footer-bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}
footer.main_footer-wrapper .main_footer-bottom p {
  margin: 0;
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.875rem;
  line-height: 1.4;
}
footer.main_footer-wrapper .main_footer-bottom .main_footer-tagline:after {
  content: "";
  display: inline-block;
  width: 2.375rem;
  height: 0.125rem;
  margin-left: 0.875rem;
  background-color: #be1622;
  vertical-align: middle;
}
footer.main_footer-wrapper .main_footer-bottom .main_footer-legal {
  order: 1;
  width: 100%;
  margin-top: 1rem;
  color: rgba(255, 255, 255, 0.4);
  font-size: 0.75rem;
  line-height: 1.5;
}
footer.main_footer-wrapper .main_footer-bottom .main_footer-credit {
  order: 2;
  width: 100%;
  margin-top: 0.5rem;
  font-size: 0.75rem;
  line-height: 1.5;
}
footer.main_footer-wrapper .main_footer-bottom .main_footer-credit a {
  color: rgba(255, 255, 255, 0.4);
  text-decoration: none;
  transition: color 0.2s ease;
}
footer.main_footer-wrapper .main_footer-bottom .main_footer-credit a span {
  color: rgba(255, 255, 255, 0.6);
}
footer.main_footer-wrapper .main_footer-bottom .main_footer-credit a:hover {
  color: rgba(255, 255, 255, 0.6);
}
footer.main_footer-wrapper .main_footer-bottom .main_footer-credit a:hover span {
  color: #be1622;
}
@media (max-width: 979px) {
  footer.main_footer-wrapper {
    padding-top: 4.5rem;
  }
  footer.main_footer-wrapper .main_footer-inner {
    padding: 0 2rem;
  }
  footer.main_footer-wrapper .main_footer-brand {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin-bottom: 4rem;
  }
  footer.main_footer-wrapper .main_footer-logo {
    width: 9.375rem;
    margin-right: 2.5rem;
    margin-bottom: 0;
  }
}
@media (max-width: 730px) {
  footer.main_footer-wrapper {
    padding: 3.5rem 0 2rem 0;
  }
  footer.main_footer-wrapper .main_footer-inner {
    padding: 0 1.5rem;
  }
  footer.main_footer-wrapper .grid-col {
    margin-bottom: 3rem;
  }
  footer.main_footer-wrapper .grid-col:last-child {
    margin-bottom: 0;
  }
  footer.main_footer-wrapper .main_footer-brand {
    order: 0;
  }
  footer.main_footer-wrapper .grid-col.main_footer-newsletter {
    order: 1;
    margin-bottom: 3rem;
  }
  footer.main_footer-wrapper .main_footer-col {
    display: none;
  }
  footer.main_footer-wrapper .main_footer-col + .main_footer-col {
    display: block;
    order: 2;
    flex-basis: 100%;
    max-width: 100%;
    width: 100%;
    margin-bottom: 0;
    text-align: left;
  }
  footer.main_footer-wrapper .main_footer-col + .main_footer-col ul.navigation {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    row-gap: 0.375rem;
  }
  footer.main_footer-wrapper .main_footer-col + .main_footer-col ul.navigation li a {
    font-size: 0.875rem;
    line-height: 1.2;
  }
  footer.main_footer-wrapper .main_footer-col + .main_footer-col ul.navigation li {
    margin: 0;
    display: inline-flex;
    align-items: baseline;
    white-space: nowrap;
  }
  footer.main_footer-wrapper .main_footer-col + .main_footer-col ul.navigation li:first-child {
    display: none;
  }
  footer.main_footer-wrapper .main_footer-col + .main_footer-col ul.navigation li:not(:last-child):after {
    content: "·";
    margin: 0 0.375rem;
    font-size: 0.875rem;
    line-height: 1.2;
    color: rgba(255, 255, 255, 0.4);
  }
  footer.main_footer-wrapper .main_footer-brand {
    margin-bottom: 3rem;
  }
  footer.main_footer-wrapper .main_footer-logo {
    width: 7.5rem;
  }
  footer.main_footer-wrapper .main_footer-heading {
    margin-bottom: 1.375rem;
  }
  footer.main_footer-wrapper .main_footer-newsletter-lead {
    max-width: none;
  }
  footer.main_footer-wrapper .newsletter-form input[type=email] {
    height: 3.25rem;
    padding: 0 1rem;
  }
  footer.main_footer-wrapper .newsletter-form .newsletter-submit {
    width: 3.25rem;
    height: 3.25rem;
  }
  footer.main_footer-wrapper .newsletter-consent .newsletter-consent-label {
    font-size: 0.9375rem;
  }
  footer.main_footer-wrapper .main_footer-bottom {
    display: block;
    margin-top: 2.5rem;
    padding-top: 1.5rem;
  }
  footer.main_footer-wrapper .main_footer-bottom p {
    margin-bottom: 0.625rem;
  }
  footer.main_footer-wrapper .main_footer-bottom p:last-child {
    margin-bottom: 0;
  }
}

body.compensate-for-scrollbar {
  /*overflow: hidden;*/
}

.fancybox-active {
  height: auto;
}

.fancybox-is-hidden {
  left: -9999px;
  margin: 0;
  position: absolute !important;
  top: -9999px;
  visibility: hidden;
}

.fancybox-container {
  -webkit-backface-visibility: hidden;
  height: 100%;
  left: 0;
  outline: none;
  position: fixed;
  -webkit-tap-highlight-color: transparent;
  top: 0;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  width: 100%;
  z-index: 99992;
}

.fancybox-container * {
  box-sizing: border-box;
}

.fancybox-outer,
.fancybox-inner,
.fancybox-bg,
.fancybox-stage {
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.fancybox-outer {
  -webkit-overflow-scrolling: touch;
  overflow-y: auto;
}

.fancybox-bg {
  background: #1e1e1e;
  opacity: 0;
  transition-duration: inherit;
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.47, 0, 0.74, 0.71);
}

.fancybox-is-open .fancybox-bg {
  opacity: 0.9;
  transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
}

.fancybox-infobar,
.fancybox-toolbar,
.fancybox-caption,
.fancybox-navigation .fancybox-button {
  direction: ltr;
  opacity: 0;
  position: absolute;
  transition: opacity 0.25s ease, visibility 0s ease 0.25s;
  visibility: hidden;
  z-index: 99997;
}

.fancybox-show-infobar .fancybox-infobar,
.fancybox-show-toolbar .fancybox-toolbar,
.fancybox-show-caption .fancybox-caption,
.fancybox-show-nav .fancybox-navigation .fancybox-button {
  opacity: 1;
  transition: opacity 0.25s ease 0s, visibility 0s ease 0s;
  visibility: visible;
}

.fancybox-infobar {
  color: #ccc;
  font-size: 13px;
  -webkit-font-smoothing: subpixel-antialiased;
  height: 44px;
  left: 0;
  line-height: 44px;
  min-width: 44px;
  mix-blend-mode: difference;
  padding: 0 10px;
  pointer-events: none;
  top: 0;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.fancybox-toolbar {
  right: 0;
  top: 0;
}

.fancybox-stage {
  direction: ltr;
  overflow: visible;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  z-index: 99994;
}

.fancybox-is-open .fancybox-stage {
  overflow: hidden;
}

.fancybox-slide {
  -webkit-backface-visibility: hidden;
  /* Using without prefix would break IE11 */
  display: none;
  height: 100%;
  left: 0;
  outline: none;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  padding: 44px;
  position: absolute;
  text-align: center;
  top: 0;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  white-space: normal;
  width: 100%;
  z-index: 99994;
}

.fancybox-slide::before {
  content: "";
  display: inline-block;
  font-size: 0;
  height: 100%;
  vertical-align: middle;
  width: 0;
}

.fancybox-is-sliding .fancybox-slide,
.fancybox-slide--previous,
.fancybox-slide--current,
.fancybox-slide--next {
  display: block;
}

.fancybox-slide--image {
  overflow: hidden;
  padding: 44px 0;
}

.fancybox-slide--image::before {
  display: none;
}

.fancybox-slide--html {
  padding: 6px;
}

.fancybox-content {
  background: #fff;
  display: inline-block;
  margin: 0;
  max-width: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  padding: 44px;
  position: relative;
  text-align: left;
  vertical-align: middle;
}

.fancybox-slide--image .fancybox-content {
  -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.14, 1);
  animation-timing-function: cubic-bezier(0.5, 0, 0.14, 1);
  -webkit-backface-visibility: hidden;
  background: transparent;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  left: 0;
  max-width: none;
  overflow: visible;
  padding: 0;
  position: absolute;
  top: 0;
  -webkit-transform-origin: top left;
  -ms-transform-origin: top left;
  transform-origin: top left;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  z-index: 99995;
}

.fancybox-can-zoomOut .fancybox-content {
  cursor: -webkit-zoom-out;
  cursor: zoom-out;
}

.fancybox-can-zoomIn .fancybox-content {
  cursor: -webkit-zoom-in;
  cursor: zoom-in;
}

.fancybox-can-swipe .fancybox-content,
.fancybox-can-pan .fancybox-content {
  cursor: -webkit-grab;
  cursor: grab;
}

.fancybox-is-grabbing .fancybox-content {
  cursor: -webkit-grabbing;
  cursor: grabbing;
}

.fancybox-container [data-selectable=true] {
  cursor: text;
}

.fancybox-image,
.fancybox-spaceball {
  background: transparent;
  border: 0;
  height: 100%;
  left: 0;
  margin: 0;
  max-height: none;
  max-width: none;
  padding: 0;
  position: absolute;
  top: 0;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  width: 100%;
}

.fancybox-spaceball {
  z-index: 1;
}

.fancybox-slide--video .fancybox-content,
.fancybox-slide--map .fancybox-content,
.fancybox-slide--pdf .fancybox-content,
.fancybox-slide--iframe .fancybox-content {
  height: 100%;
  overflow: visible;
  padding: 0;
  width: 100%;
}

.fancybox-slide--video .fancybox-content {
  background: #000;
}

.fancybox-slide--map .fancybox-content {
  background: #e5e3df;
}

.fancybox-slide--iframe .fancybox-content {
  background: #fff;
}

.fancybox-video,
.fancybox-iframe {
  background: transparent;
  border: 0;
  display: block;
  height: 100%;
  margin: 0;
  overflow: hidden;
  padding: 0;
  width: 100%;
}

/* Fix iOS */
.fancybox-iframe {
  left: 0;
  position: absolute;
  top: 0;
}

.fancybox-error {
  background: #fff;
  cursor: default;
  max-width: 400px;
  padding: 40px;
  width: 100%;
}

.fancybox-error p {
  color: #444;
  font-size: 16px;
  line-height: 20px;
  margin: 0;
  padding: 0;
}

/* Buttons */
.fancybox-button {
  background: rgba(30, 30, 30, 0.6);
  border: 0;
  border-radius: 0;
  box-shadow: none;
  cursor: pointer;
  display: inline-block;
  height: 44px;
  margin: 0;
  padding: 10px;
  position: relative;
  transition: color 0.2s;
  vertical-align: top;
  visibility: inherit;
  width: 44px;
}

.fancybox-button,
.fancybox-button:visited,
.fancybox-button:link {
  color: #ccc;
}

.fancybox-button:hover {
  color: #fff;
}

.fancybox-button:focus {
  outline: none;
}

.fancybox-button.fancybox-focus {
  outline: 1px dotted;
}

.fancybox-button[disabled],
.fancybox-button[disabled]:hover {
  color: #888;
  cursor: default;
  outline: none;
}

/* Fix IE11 */
.fancybox-button div {
  height: 100%;
}

.fancybox-button svg {
  display: block;
  height: 100%;
  overflow: visible;
  position: relative;
  width: 100%;
}

.fancybox-button svg path {
  fill: currentColor;
  stroke-width: 0;
}

.fancybox-button--play svg:nth-child(2),
.fancybox-button--fsenter svg:nth-child(2) {
  display: none;
}

.fancybox-button--pause svg:nth-child(1),
.fancybox-button--fsexit svg:nth-child(1) {
  display: none;
}

.fancybox-progress {
  background: #ff5268;
  height: 2px;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  -webkit-transform: scaleX(0);
  -ms-transform: scaleX(0);
  transform: scaleX(0);
  -webkit-transform-origin: 0;
  -ms-transform-origin: 0;
  transform-origin: 0;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: linear;
  z-index: 99998;
}

/* Close button on the top right corner of html content */
.fancybox-close-small {
  background: transparent;
  border: 0;
  border-radius: 0;
  color: #ccc;
  cursor: pointer;
  opacity: 0.8;
  padding: 8px;
  position: absolute;
  right: -12px;
  top: -44px;
  z-index: 401;
}

.fancybox-close-small:hover {
  color: #fff;
  opacity: 1;
}

.fancybox-slide--html .fancybox-close-small {
  color: currentColor;
  padding: 10px;
  right: 0;
  top: 0;
}

.fancybox-slide--image.fancybox-is-scaling .fancybox-content {
  overflow: hidden;
}

.fancybox-is-scaling .fancybox-close-small,
.fancybox-is-zoomable.fancybox-can-pan .fancybox-close-small {
  display: none;
}

/* Navigation arrows */
.fancybox-navigation .fancybox-button {
  background-clip: content-box;
  height: 100px;
  opacity: 0;
  position: absolute;
  top: calc(50% - 50px);
  width: 70px;
}

.fancybox-navigation .fancybox-button div {
  padding: 7px;
}

.fancybox-navigation .fancybox-button--arrow_left {
  left: 0;
  padding: 31px 26px 31px 6px;
}

.fancybox-navigation .fancybox-button--arrow_right {
  padding: 31px 6px 31px 26px;
  right: 0;
}

/* Caption */
.fancybox-caption {
  bottom: 0;
  color: #eee;
  font-size: 14px;
  font-weight: 400;
  left: 0;
  line-height: 1.5;
  padding: 25px 44px 25px 44px;
  right: 0;
  text-align: center;
  z-index: 99996;
}

.fancybox-caption::before {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAD6CAQAAADKSeXYAAAAYklEQVQoz42RwQ3AMAgDjfcfup8WoRykfBAK5mQHKSz5rbXJPis1hjiV3CIqgG0hLZPkVkA4p4x5oR1bVeDrdCLrW2Q0D5bcwY3TGMHbdw3mPRuOtaspYP1w//G1OIcW148H0DMCqI/3mMMAAAAASUVORK5CYII=);
  background-repeat: repeat-x;
  background-size: contain;
  bottom: 0;
  content: "";
  display: block;
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: -44px;
  z-index: -1;
}

.fancybox-caption a,
.fancybox-caption a:link,
.fancybox-caption a:visited {
  color: #ccc;
  text-decoration: none;
}

.fancybox-caption a:hover {
  color: #fff;
  text-decoration: underline;
}

/* Loading indicator */
.fancybox-loading {
  -webkit-animation: fancybox-rotate 1s linear infinite;
  animation: fancybox-rotate 1s linear infinite;
  background: transparent;
  border: 4px solid #888;
  border-bottom-color: #fff;
  border-radius: 50%;
  height: 50px;
  left: 50%;
  margin: -25px 0 0 -25px;
  opacity: 0.7;
  padding: 0;
  position: absolute;
  top: 50%;
  width: 50px;
  z-index: 99999;
}

@-webkit-keyframes fancybox-rotate {
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes fancybox-rotate {
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
/* Transition effects */
.fancybox-animated {
  transition-timing-function: cubic-bezier(0, 0, 0.25, 1);
}

/* transitionEffect: slide */
.fancybox-fx-slide.fancybox-slide--previous {
  opacity: 0;
  -webkit-transform: translate3d(-100%, 0, 0);
  transform: translate3d(-100%, 0, 0);
}

.fancybox-fx-slide.fancybox-slide--next {
  opacity: 0;
  -webkit-transform: translate3d(100%, 0, 0);
  transform: translate3d(100%, 0, 0);
}

.fancybox-fx-slide.fancybox-slide--current {
  opacity: 1;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

/* transitionEffect: fade */
.fancybox-fx-fade.fancybox-slide--previous,
.fancybox-fx-fade.fancybox-slide--next {
  opacity: 0;
  transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
}

.fancybox-fx-fade.fancybox-slide--current {
  opacity: 1;
}

/* transitionEffect: zoom-in-out */
.fancybox-fx-zoom-in-out.fancybox-slide--previous {
  opacity: 0;
  -webkit-transform: scale3d(1.5, 1.5, 1.5);
  transform: scale3d(1.5, 1.5, 1.5);
}

.fancybox-fx-zoom-in-out.fancybox-slide--next {
  opacity: 0;
  -webkit-transform: scale3d(0.5, 0.5, 0.5);
  transform: scale3d(0.5, 0.5, 0.5);
}

.fancybox-fx-zoom-in-out.fancybox-slide--current {
  opacity: 1;
  -webkit-transform: scale3d(1, 1, 1);
  transform: scale3d(1, 1, 1);
}

/* transitionEffect: rotate */
.fancybox-fx-rotate.fancybox-slide--previous {
  opacity: 0;
  -webkit-transform: rotate(-360deg);
  -ms-transform: rotate(-360deg);
  transform: rotate(-360deg);
}

.fancybox-fx-rotate.fancybox-slide--next {
  opacity: 0;
  -webkit-transform: rotate(360deg);
  -ms-transform: rotate(360deg);
  transform: rotate(360deg);
}

.fancybox-fx-rotate.fancybox-slide--current {
  opacity: 1;
  -webkit-transform: rotate(0deg);
  -ms-transform: rotate(0deg);
  transform: rotate(0deg);
}

/* transitionEffect: circular */
.fancybox-fx-circular.fancybox-slide--previous {
  opacity: 0;
  -webkit-transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0);
  transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0);
}

.fancybox-fx-circular.fancybox-slide--next {
  opacity: 0;
  -webkit-transform: scale3d(0, 0, 0) translate3d(100%, 0, 0);
  transform: scale3d(0, 0, 0) translate3d(100%, 0, 0);
}

.fancybox-fx-circular.fancybox-slide--current {
  opacity: 1;
  -webkit-transform: scale3d(1, 1, 1) translate3d(0, 0, 0);
  transform: scale3d(1, 1, 1) translate3d(0, 0, 0);
}

/* transitionEffect: tube */
.fancybox-fx-tube.fancybox-slide--previous {
  -webkit-transform: translate3d(-100%, 0, 0) scale(0.1) skew(-10deg);
  transform: translate3d(-100%, 0, 0) scale(0.1) skew(-10deg);
}

.fancybox-fx-tube.fancybox-slide--next {
  -webkit-transform: translate3d(100%, 0, 0) scale(0.1) skew(10deg);
  transform: translate3d(100%, 0, 0) scale(0.1) skew(10deg);
}

.fancybox-fx-tube.fancybox-slide--current {
  -webkit-transform: translate3d(0, 0, 0) scale(1);
  transform: translate3d(0, 0, 0) scale(1);
}

/* Styling for Small-Screen Devices */
@media all and (max-height: 576px) {
  .fancybox-caption {
    padding: 12px;
  }
  .fancybox-slide {
    padding-left: 6px;
    padding-right: 6px;
  }
  .fancybox-slide--image {
    padding: 6px 0;
  }
  .fancybox-close-small {
    right: -6px;
  }
  .fancybox-slide--image .fancybox-close-small {
    background: #4e4e4e;
    color: #f2f4f6;
    height: 36px;
    opacity: 1;
    padding: 6px;
    right: 0;
    top: 0;
    width: 36px;
  }
}
/* Share */
.fancybox-share {
  background: #f4f4f4;
  border-radius: 3px;
  max-width: 90%;
  padding: 30px;
  text-align: center;
}

.fancybox-share h1 {
  color: #222;
  font-size: 35px;
  font-weight: 700;
  margin: 0 0 20px 0;
}

.fancybox-share p {
  margin: 0;
  padding: 0;
}

.fancybox-share__button {
  border: 0;
  border-radius: 3px;
  display: inline-block;
  font-size: 14px;
  font-weight: 700;
  line-height: 40px;
  margin: 0 5px 10px 5px;
  min-width: 130px;
  padding: 0 15px;
  text-decoration: none;
  transition: all 0.2s;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  white-space: nowrap;
}

.fancybox-share__button:visited,
.fancybox-share__button:link {
  color: #fff;
}

.fancybox-share__button:hover {
  text-decoration: none;
}

.fancybox-share__button--fb {
  background: #3b5998;
}

.fancybox-share__button--fb:hover {
  background: #344e86;
}

.fancybox-share__button--pt {
  background: #bd081d;
}

.fancybox-share__button--pt:hover {
  background: #aa0719;
}

.fancybox-share__button--tw {
  background: #1da1f2;
}

.fancybox-share__button--tw:hover {
  background: #0d95e8;
}

.fancybox-share__button svg {
  height: 25px;
  margin-right: 7px;
  position: relative;
  top: -1px;
  vertical-align: middle;
  width: 25px;
}

.fancybox-share__button svg path {
  fill: #fff;
}

.fancybox-share__input {
  background: transparent;
  border: 0;
  border-bottom: 1px solid #d7d7d7;
  border-radius: 0;
  color: #5d5b5b;
  font-size: 14px;
  margin: 10px 0 0 0;
  outline: none;
  padding: 10px 15px;
  width: 100%;
}

/* Thumbs */
.fancybox-thumbs {
  background: #ddd;
  bottom: 0;
  display: none;
  margin: 0;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar;
  padding: 2px 2px 4px 2px;
  position: absolute;
  right: 0;
  -webkit-tap-highlight-color: transparent;
  top: 0;
  width: 212px;
  z-index: 99995;
}

.fancybox-thumbs-x {
  overflow-x: auto;
  overflow-y: hidden;
}

.fancybox-show-thumbs .fancybox-thumbs {
  display: block;
}

.fancybox-show-thumbs .fancybox-inner {
  right: 212px;
}

.fancybox-thumbs__list {
  font-size: 0;
  height: 100%;
  list-style: none;
  margin: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 0;
  position: absolute;
  position: relative;
  white-space: nowrap;
  width: 100%;
}

.fancybox-thumbs-x .fancybox-thumbs__list {
  overflow: hidden;
}

.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar {
  width: 7px;
}

.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-track {
  background: #fff;
  border-radius: 10px;
  box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
}

.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-thumb {
  background: #2a2a2a;
  border-radius: 10px;
}

.fancybox-thumbs__list a {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  background-color: rgba(0, 0, 0, 0.1);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  cursor: pointer;
  float: left;
  height: 75px;
  margin: 2px;
  max-height: calc(100% - 8px);
  max-width: calc(50% - 4px);
  outline: none;
  overflow: hidden;
  padding: 0;
  position: relative;
  -webkit-tap-highlight-color: transparent;
  width: 100px;
}

.fancybox-thumbs__list a::before {
  border: 6px solid #ff5268;
  bottom: 0;
  content: "";
  left: 0;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  z-index: 99991;
}

.fancybox-thumbs__list a:focus::before {
  opacity: 0.5;
}

.fancybox-thumbs__list a.fancybox-thumbs-active::before {
  opacity: 1;
}

/* Styling for Small-Screen Devices */
@media all and (max-width: 576px) {
  .fancybox-thumbs {
    width: 110px;
  }
  .fancybox-show-thumbs .fancybox-inner {
    right: 110px;
  }
  .fancybox-thumbs__list a {
    max-width: calc(100% - 10px);
  }
}
/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  display: block;
  overflow: hidden;
  margin: 0;
  padding: 0;
}

.slick-list:focus {
  outline: none;
}

.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  top: 0;
  left: 0;
  display: block;
}

.slick-track:before,
.slick-track:after {
  display: table;
  content: "";
}

.slick-track:after {
  clear: both;
}

.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px;
}

[dir=rtl] .slick-slide {
  float: right;
}

.slick-slide img {
  display: block;
}

.slick-slide.slick-loading img {
  display: none;
}

.slick-slide.dragging img {
  pointer-events: none;
}

.slick-initialized .slick-slide {
  display: block;
}

.slick-loading .slick-slide {
  visibility: hidden;
}

.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

/*
 * SWEETALERT2 - Bistro Na Talíři theme ( SweetAlert2 v10.15.6 )
 *
 * A ground-up restyle of the SA2 popup so the alerts read as part of THIS site, not a generic
 * blue/green library dialog. Used by the daily-menu sign-up ( js/scripts-parts/comp_04.js:
 * loading -> success / error ) and available to any future swal.fire() modal.
 *
 * BRAND RULES BAKED IN HERE:
 *   - Square corners everywhere. The whole site has no border-radius ( buttons, sections, the
 *     comp_04 card ); the popup matches.
 *   - No frame, no drop shadow. The popup is a plain white card; the darkened, blurred backdrop
 *     ( $color-primary at 0.8 ) is what separates it from the page.
 *   - One red accent. $color-accent ( brand red ) is the CTA / error / loader colour, exactly as
 *     .comp_04-submit uses it. Everything else is $color-primary ( the logo-disc near-black ) on
 *     white. No green success, no pink error, no blue focus rings.
 *   - Mukta throughout ( weights 200/400/600/700, the header.php Google Fonts link ). The title is
 *     uppercase + tracked like the section headings; the buttons match .comp_04-submit.
 *
 * WHY NO JS CHANGES: SA2 only writes an inline button background when confirmButtonColor is passed
 * ( `confirmButtonColor && (btn.style.background = …)` ). comp_04.js passes none, so the stylesheet
 * fully owns the buttons - buttonsStyling stays at its default `true` purely so the .swal2-styled
 * class is present for us to hook.
 *
 * EM vs REM: the icon internals ( ring, tick, cross ) are sized in `em`, proportional to the icon
 * box - that is SA2's own geometry and it must stay em-based or the shapes break. Everything else
 * uses the theme rem() so the popup scales with html { font-size } like the rest of the site.
 *
 * OMITTED ON PURPOSE ( unused in this project ): toasts, RTL, progress-steps, IE high-contrast
 * hacks and the exotic input types ( range/file/select/radio ). Pull them back from the SA2
 * default stylesheet if a future component needs them.
 */
/*
 * OVERLAY - fixed, flex-centred, brand-tinted scrim ( $color-primary, not flat black - the same
 * tone as the header bar ). Dimmed to 0.8 + a 4px blur so the borderless, shadowless popup reads
 * clearly against an obscured page.
 */
.swal2-container {
  display: flex;
  position: fixed;
  z-index: 99992999;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  overflow-x: hidden;
  transition: background-color 0.15s;
  -webkit-overflow-scrolling: touch;
}

.swal2-container.swal2-backdrop-show {
  background: rgba(29, 29, 27, 0.8);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}

.swal2-container.swal2-backdrop-hide {
  background: transparent !important;
}

.swal2-container.swal2-center {
  align-items: center;
}

.swal2-container > .swal2-popup {
  margin: auto;
}

/*
 * THE POPUP - a plain white card, square corners, no frame and no drop shadow ( the darkened
 * backdrop does the separating ). `display: none` is SA2's contract: it stores this and re-applies
 * the shown display itself, so the box stays hidden until SA2 opens it.
 */
.swal2-popup {
  display: none;
  position: relative;
  box-sizing: border-box;
  flex-direction: column;
  justify-content: center;
  width: 32.5rem;
  max-width: 100%;
  padding: 3rem 2.75rem;
  border: 0;
  border-radius: 0;
  background: #ffffff;
  box-shadow: none;
  color: #222222;
  font-family: "Mukta";
  font-size: 1rem;
}

.swal2-popup:focus {
  outline: none;
}

.swal2-popup.swal2-loading {
  overflow-y: hidden;
}

.swal2-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0;
}

/*
 * TITLE - display type in the section-heading idiom: uppercase, tracked, $color-primary. Semibold
 * ( not the headings' 200 ) because a short status line - "Hotovo!", "Něco se pokazilo." - needs
 * more weight than a large banner heading to read as a confident confirmation.
 */
.swal2-title {
  position: relative;
  max-width: 100%;
  margin: 0 0 0.875rem;
  padding: 0;
  color: #1d1d1b;
  font-family: "Mukta";
  font-size: 1.75rem;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  word-wrap: break-word;
}

/*
 * BODY COPY - Mukta regular, $color-text. Styled on .swal2-content ( the wrapper ); .swal2-html-
 * container is the text node inside it and inherits, but is named too so it is covered either way.
 */
.swal2-content {
  z-index: 1;
  margin: 0;
  padding: 0 0.5rem;
  color: #222222;
  font-family: "Mukta";
  font-size: 1.0625rem;
  font-weight: 400;
  line-height: 1.6;
  text-align: center;
  word-wrap: break-word;
}

.swal2-html-container {
  color: #222222;
  font-family: "Mukta";
  font-size: 1.0625rem;
  font-weight: 400;
  line-height: 1.6;
  text-align: center;
}

.swal2-close {
  position: absolute;
  z-index: 2;
  top: 0.375rem;
  right: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(29, 29, 27, 0.4);
  font-family: "Mukta";
  font-size: 2.125rem;
  line-height: 1;
  cursor: pointer;
  transition: color 0.2s ease;
}

.swal2-close:hover {
  color: #be1622;
}

.swal2-close:focus-visible {
  outline: 2px solid #1d1d1b;
  outline-offset: 2px;
}

.swal2-close::-moz-focus-inner {
  border: 0;
}

/*
 * ACTIONS + BUTTONS
 *
 * The confirm button IS .comp_04-submit: red $color-accent, white, uppercase, tracked, square,
 * min-height rem(52). Cancel / deny are the ghost counterparts ( a 1px frame that fills on hover )
 * - primary for a neutral cancel, accent for a destructive deny.
 */
.swal2-actions {
  display: flex;
  z-index: 1;
  box-sizing: border-box;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  width: 100%;
  margin: 2rem 0 0;
  padding: 0;
}

.swal2-actions:not(.swal2-loading) .swal2-styled[disabled] {
  opacity: 0.4;
}

.swal2-styled {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  min-height: 3.25rem;
  padding: 0.9375rem 2.125rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-family: "Mukta";
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  box-shadow: none;
  cursor: pointer;
  transition: all 0.3s ease;
  box-sizing: border-box;
}

.swal2-styled:not([disabled]) {
  cursor: pointer;
}

.swal2-styled.swal2-confirm {
  background-color: #be1622;
  color: #ffffff;
}
.swal2-styled.swal2-confirm:hover, .swal2-styled.swal2-confirm:focus-visible {
  background-color: rgb(60.1701812801%, 6.9670736219%, 10.7672955975%);
  color: #ffffff;
}

.swal2-styled.swal2-cancel {
  background-color: transparent;
  color: #1d1d1b;
  box-shadow: inset 0 0 0 1px #1d1d1b;
}
.swal2-styled.swal2-cancel:hover, .swal2-styled.swal2-cancel:focus-visible {
  background-color: #1d1d1b;
  color: #ffffff;
}

.swal2-styled.swal2-deny {
  background-color: transparent;
  color: #be1622;
  box-shadow: inset 0 0 0 1px #be1622;
}
.swal2-styled.swal2-deny:hover, .swal2-styled.swal2-deny:focus-visible {
  background-color: #be1622;
  color: #ffffff;
}

.swal2-styled:focus-visible {
  outline: 2px solid #1d1d1b;
  outline-offset: 3px;
}

.swal2-styled::-moz-focus-inner {
  border: 0;
}

.swal2-loader {
  display: none;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  margin: 0 auto;
  border-width: 0.25rem;
  border-style: solid;
  border-radius: 50%;
  border-color: #be1622 transparent #be1622 transparent;
  -webkit-animation: swal2-rotate-loading 1s linear 0s infinite normal;
  animation: swal2-rotate-loading 1s linear 0s infinite normal;
}

.swal2-popup.swal2-loading .swal2-loader,
.swal2-actions.swal2-loading .swal2-loader {
  display: flex;
}

.swal2-footer {
  justify-content: center;
  margin: 1.75rem 0 0;
  padding: 1.25rem 0 0;
  border-top: 1px solid rgba(29, 29, 27, 0.12);
  color: #222222;
  font-family: "Mukta";
  font-size: 0.875rem;
  text-align: center;
}

.swal2-timer-progress-bar-container {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 0.25rem;
  overflow: hidden;
}

.swal2-timer-progress-bar {
  width: 100%;
  height: 0.25rem;
  background: #be1622;
}

.swal2-image {
  max-width: 100%;
  margin: 1.25rem auto;
}

/*
 * INPUTS ( for swal.fire() prompts - not used by comp_04, kept minimal + on-brand ). Square, a
 * 1px $color-primary frame that turns accent on focus, matching _inputs.scss / the comp_04 field.
 */
.swal2-input,
.swal2-textarea,
.swal2-select {
  box-sizing: border-box;
  width: 100%;
  margin: 1rem auto 0;
  padding: 0 0.875rem;
  border: 1px solid #1d1d1b;
  border-radius: 0;
  background: #ffffff;
  color: #222222;
  font-family: "Mukta";
  font-size: 1rem;
  transition: border-color 0.2s ease;
}

.swal2-input {
  height: 3.25rem;
}

.swal2-textarea {
  height: 6.75rem;
  padding: 0.75rem 0.875rem;
}

.swal2-input:focus,
.swal2-textarea:focus,
.swal2-select:focus {
  border-color: #be1622;
  outline: none;
}

.swal2-input::placeholder,
.swal2-textarea::placeholder {
  color: rgba(34, 34, 34, 0.4);
}

.swal2-input.swal2-inputerror,
.swal2-textarea.swal2-inputerror {
  border-color: #be1622 !important;
}

.swal2-validation-message {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 1rem 0 0;
  padding: 0.625rem 1rem;
  background: #f4f2ef;
  color: #222222;
  font-family: "Mukta";
  font-size: 0.875rem;
}

.swal2-validation-message::before {
  content: "!";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.375rem;
  height: 1.375rem;
  margin: 0 0.625rem 0 0;
  border-radius: 50%;
  background: #be1622;
  color: #ffffff;
  font-weight: 600;
}

/*
 * ICONS
 *
 * Geometry ( the em positions/sizes below ) is SA2's own and is left untouched - it is what draws
 * the ring, the tick and the cross. Only the COLOURS are rebranded: success is $color-primary
 * ( a dark, restrained tick - the site has no green ), error is $color-accent ( brand red ), and
 * info / warning / question are all $color-primary. The animate-in classes are kept for polish.
 */
.swal2-icon {
  position: relative;
  box-sizing: content-box;
  justify-content: center;
  width: 5em;
  height: 5em;
  margin: 0.5rem auto 1.625rem;
  border: 0.25em solid transparent;
  border-radius: 50%;
  border-color: #1d1d1b;
  font-family: "Mukta";
  line-height: 5em;
  cursor: default;
  user-select: none;
}

.swal2-icon .swal2-icon-content {
  display: flex;
  align-items: center;
  font-size: 3.75em;
}

.swal2-icon.swal2-info,
.swal2-icon.swal2-warning,
.swal2-icon.swal2-question {
  border-color: #1d1d1b;
  color: #1d1d1b;
}

.swal2-icon.swal2-error {
  border-color: #be1622;
  color: #be1622;
}

.swal2-icon.swal2-error .swal2-x-mark {
  position: relative;
  flex-grow: 1;
}

.swal2-icon.swal2-error [class^=swal2-x-mark-line] {
  display: block;
  position: absolute;
  top: 2.3125em;
  width: 2.9375em;
  height: 0.3125em;
  border-radius: 0.125em;
  background-color: #be1622;
}

.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left] {
  left: 1.0625em;
  transform: rotate(45deg);
}

.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right] {
  right: 1em;
  transform: rotate(-45deg);
}

.swal2-icon.swal2-error.swal2-icon-show {
  -webkit-animation: swal2-animate-error-icon 0.5s;
  animation: swal2-animate-error-icon 0.5s;
}

.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark {
  -webkit-animation: swal2-animate-error-x-mark 0.5s;
  animation: swal2-animate-error-x-mark 0.5s;
}

.swal2-icon.swal2-success {
  border-color: #1d1d1b;
  color: #1d1d1b;
}

.swal2-icon.swal2-success [class^=swal2-success-circular-line] {
  position: absolute;
  width: 3.75em;
  height: 7.5em;
  transform: rotate(45deg);
  border-radius: 50%;
}

.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left] {
  top: -0.4375em;
  left: -2.0635em;
  transform: rotate(-45deg);
  transform-origin: 3.75em 3.75em;
  border-radius: 7.5em 0 0 7.5em;
}

.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right] {
  top: -0.6875em;
  left: 1.875em;
  transform: rotate(-45deg);
  transform-origin: 0 3.75em;
  border-radius: 0 7.5em 7.5em 0;
}

.swal2-icon.swal2-success .swal2-success-ring {
  position: absolute;
  z-index: 2;
  top: -0.25em;
  left: -0.25em;
  box-sizing: content-box;
  width: 100%;
  height: 100%;
  border: 0.25em solid rgba(29, 29, 27, 0.2);
  border-radius: 50%;
}

.swal2-icon.swal2-success .swal2-success-fix {
  position: absolute;
  z-index: 1;
  top: 0.5em;
  left: 1.625em;
  width: 0.4375em;
  height: 5.625em;
  transform: rotate(-45deg);
}

.swal2-icon.swal2-success [class^=swal2-success-line] {
  display: block;
  position: absolute;
  z-index: 2;
  height: 0.3125em;
  border-radius: 0.125em;
  background-color: #1d1d1b;
}

.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip] {
  top: 2.875em;
  left: 0.8125em;
  width: 1.5625em;
  transform: rotate(45deg);
}

.swal2-icon.swal2-success [class^=swal2-success-line][class$=long] {
  top: 2.375em;
  right: 0.5em;
  width: 2.9375em;
  transform: rotate(-45deg);
}

.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip {
  -webkit-animation: swal2-animate-success-line-tip 0.75s;
  animation: swal2-animate-success-line-tip 0.75s;
}

.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long {
  -webkit-animation: swal2-animate-success-line-long 0.75s;
  animation: swal2-animate-success-line-long 0.75s;
}

.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right {
  -webkit-animation: swal2-rotate-success-circular-line 4.25s ease-in;
  animation: swal2-rotate-success-circular-line 4.25s ease-in;
}

/*
 * SHOW / HIDE + BODY LOCK
 */
.swal2-show {
  -webkit-animation: swal2-show 0.3s;
  animation: swal2-show 0.3s;
}

.swal2-hide {
  -webkit-animation: swal2-hide 0.15s forwards;
  animation: swal2-hide 0.15s forwards;
}

.swal2-noanimation {
  transition: none;
}

[class^=swal2] {
  -webkit-tap-highlight-color: transparent;
}

body.swal2-shown {
  overflow: hidden;
  padding-right: 0 !important;
}

body.swal2-height-auto {
  height: auto !important;
}

/*
 * REDUCED MOTION - drop the entrance / icon-draw animations; keep a calmer loader spin so the
 * loading state still reads as "working".
 */
@media (prefers-reduced-motion: reduce) {
  .swal2-show,
  .swal2-hide,
  .swal2-icon.swal2-success.swal2-icon-show [class^=swal2-success-line],
  .swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right,
  .swal2-icon.swal2-error.swal2-icon-show,
  .swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark {
    -webkit-animation: none !important;
    animation: none !important;
  }
  .swal2-loader {
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
  }
}
/*
 * KEYFRAMES - SA2's own, kept verbatim so the tick draws, the cross pops and the loader spins.
 */
@keyframes swal2-show {
  0% {
    transform: scale(0.7);
  }
  45% {
    transform: scale(1.05);
  }
  80% {
    transform: scale(0.95);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes swal2-hide {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(0.5);
    opacity: 0;
  }
}
@keyframes swal2-rotate-loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes swal2-animate-success-line-tip {
  0% {
    top: 1.1875em;
    left: 0.0625em;
    width: 0;
  }
  54% {
    top: 1.0625em;
    left: 0.125em;
    width: 0;
  }
  70% {
    top: 2.1875em;
    left: -0.375em;
    width: 3.125em;
  }
  84% {
    top: 3em;
    left: 1.3125em;
    width: 1.0625em;
  }
  100% {
    top: 2.8125em;
    left: 0.8125em;
    width: 1.5625em;
  }
}
@keyframes swal2-animate-success-line-long {
  0% {
    top: 3.375em;
    right: 2.875em;
    width: 0;
  }
  65% {
    top: 3.375em;
    right: 2.875em;
    width: 0;
  }
  84% {
    top: 2.1875em;
    right: 0;
    width: 3.4375em;
  }
  100% {
    top: 2.375em;
    right: 0.5em;
    width: 2.9375em;
  }
}
@keyframes swal2-rotate-success-circular-line {
  0% {
    transform: rotate(-45deg);
  }
  5% {
    transform: rotate(-45deg);
  }
  12% {
    transform: rotate(-405deg);
  }
  100% {
    transform: rotate(-405deg);
  }
}
@keyframes swal2-animate-error-x-mark {
  0% {
    margin-top: 1.625em;
    transform: scale(0.4);
    opacity: 0;
  }
  50% {
    margin-top: 1.625em;
    transform: scale(0.4);
    opacity: 0;
  }
  80% {
    margin-top: -0.375em;
    transform: scale(1.15);
  }
  100% {
    margin-top: 0;
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes swal2-animate-error-icon {
  0% {
    transform: rotateX(100deg);
    opacity: 0;
  }
  100% {
    transform: rotateX(0deg);
    opacity: 1;
  }
}
.tippy-box[data-animation=fade][data-state=hidden] {
  opacity: 0;
}

[data-tippy-root] {
  max-width: calc(100vw - 10px);
}

.tippy-box {
  position: relative;
  white-space: normal;
  transition-property: transform, visibility, opacity;
  background-color: #EFEFEF;
  border: 1px solid #1d1d1b;
  font-size: 0.875rem;
  line-height: 1.4em;
  text-decoration: none;
  text-align: center;
  border-radius: 0.375rem;
  box-shadow: rgba(29, 29, 27, 0.1) 0px 3px 6px;
}
.tippy-box .tippy-content {
  position: relative;
  padding: 0.75rem 0.5rem;
  z-index: 1;
  color: #222222;
}
.tippy-box .tippy-content * {
  color: #1d1d1b !important;
}
.tippy-box .tippy-content *:last-child {
  margin-bottom: 0 !important;
}
.tippy-box .tippy-content h3 {
  margin-bottom: 0.125rem;
}
.tippy-box .tippy-content p {
  margin-bottom: 0.625rem;
}
.tippy-box .tippy-content ol {
  width: 100%;
  line-height: 1.4em;
  margin: 0 0 0.75rem;
  padding: 0;
  color: #767676;
}
.tippy-box .tippy-content ol li {
  width: calc(100% - 26px);
  margin: 0 0 0.5rem 26px;
  list-style-position: outside;
  list-style-type: decimal;
}
.tippy-box .tippy-content strong.gray {
  color: #767676 !important;
  font-size: 1rem;
  font-weight: 700;
}
.tippy-box .tippy-arrow {
  width: 16px;
  height: 16px;
  color: #f8f8f8;
}
.tippy-box[data-theme=inline_popup_2] {
  width: 100%;
  max-width: 17.375rem;
  z-index: 999999;
  background-color: #222222;
  color: #ffffff;
  border: 0;
  border-radius: 0.6875rem;
}
.tippy-box[data-theme=inline_popup_2] .tippy-content {
  max-width: 20rem !important;
  padding: 1.25rem 1.5rem;
  color: #ffffff !important;
}
.tippy-box[data-theme=inline_popup_2] .tippy-content .inner_content-wrapper {
  max-width: 17rem !important;
}
.tippy-box[data-theme=inline_popup_2] .tippy-content * {
  color: #ffffff !important;
}
.tippy-box[data-theme=inline_popup_2] .tippy-content .t {
  display: block;
  margin-bottom: 0.75rem;
  color: #ffffff !important;
  font-size: 0.875rem;
  font-weight: 700;
}
.tippy-box[data-theme=inline_popup_2] .tippy-content .text {
  max-width: 17.875rem;
  color: #ffffff !important;
  font-size: 0.9375rem;
}
.tippy-box[data-theme=inline_popup_2] .tippy-content .text a {
  text-decoration: underline;
  color: #f4f2ef !important;
}
.tippy-box[data-theme=inline_popup_2] .tippy-content .text a:hover {
  text-decoration: none;
}
.tippy-box[data-theme=inline_popup_2] .tippy-content .buttons-wrapper {
  min-width: 18.5rem;
  margin-bottom: 1rem;
}
.tippy-box[data-theme=inline_popup_2] .tippy-content .buttons-wrapper a {
  position: relative;
  display: block;
  width: 100%;
  height: 3.25rem;
  border: 1px solid hsl(0, 0%, 40%);
  border-radius: 0.6875rem;
}
.tippy-box[data-theme=inline_popup_2] .tippy-content .buttons-wrapper a img {
  display: block;
  position: absolute;
  left: 10%;
  top: 10%;
  width: 80%;
  height: 80%;
  object-fit: contain;
  object-position: center center;
}
.tippy-box[data-theme=inline_popup_2] .tippy-content .buttons-wrapper a img.tri_dvory {
  top: 32%;
  height: 36%;
}
.tippy-box[data-theme=inline_popup_2] .tippy-content .buttons-wrapper a:hover {
  border: 1px solid #f4f2ef;
}

.tippy-box[data-placement^=top] > .tippy-arrow {
  bottom: 0;
}

.tippy-box[data-placement^=top] > .tippy-arrow:before {
  bottom: -7px;
  left: 0;
  border-width: 8px 8px 0;
  border-top-color: initial;
  transform-origin: center top;
}

.tippy-box[data-placement^=bottom] > .tippy-arrow {
  top: 0;
}

.tippy-box[data-placement^=bottom] > .tippy-arrow:before {
  top: -7px;
  left: 0;
  border-width: 0 8px 8px;
  border-bottom-color: initial;
  transform-origin: center bottom;
}

.tippy-box[data-placement^=left] > .tippy-arrow {
  right: 0;
}

.tippy-box[data-placement^=left] > .tippy-arrow:before {
  border-width: 8px 0 8px 8px;
  border-left-color: initial;
  right: -7px;
  transform-origin: center left;
}

.tippy-box[data-placement^=right] > .tippy-arrow {
  left: 0;
}

.tippy-box[data-placement^=right] > .tippy-arrow:before {
  left: -7px;
  border-width: 8px 8px 8px 0;
  border-right-color: initial;
  transform-origin: center right;
}

.tippy-box[data-inertia][data-state=visible] {
  transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11);
}

.tippy-arrow:before {
  content: "";
  position: absolute;
  border-color: transparent;
  border-style: solid;
}
