@font-face {
  font-family: Inderes Heading;
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/GT-America-Condensed-Black.woff2) format("woff2");
}

@font-face {
  font-family: Inderes Heading;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/GT-America-Condensed-Bold.woff2) format("woff2");
}

@font-face {
  font-family: Inderes Heading;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/GT-America-Condensed-Medium.woff2) format("woff2");
}

@font-face {
  font-family: Inderes Heading;
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/GT-America-Condensed-Medium-Italic.woff2) format("woff2");
}

@font-face {
  font-family: Inderes;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/GT-America-Standard-Regular.woff2) format("woff2");
}

@font-face {
  font-family: Inderes;
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/GT-America-Standard-Regular-Italic.woff2) format("woff2");
}

@font-face {
  font-family: Inderes;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/GT-America-Standard-Bold.woff2) format("woff2");
}

@font-face {
  font-family: Inderes;
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/GT-America-Standard-Bold-Italic.woff2) format("woff2");
}

@font-face {
  font-family: Inderes Mono;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/Inconsolata-Regular.woff2) format("woff2"),
    url(/fonts/Inconsolata-Regular.ttf) format("truetype");
}

@font-face {
  font-family: Inderes Mono;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/Inconsolata-SemiBold.woff2) format("woff2"),
    url(/fonts/Inconsolata-SemiBold.ttf) format("truetype");
}

@font-face {
  font-family: Inderes Mono;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ChivoMono-Regular.woff2) format("woff2"),
    url(/fonts/ChivoMono-Regular.ttf) format("truetype");
  unicode-range: u+0030-0039, u+0025, u+002c, u+002d, u+002e, u+003a, u+003b,
    u+003d, u+005c, u+005f, u+007c, u+002f;
}

@font-face {
  font-family: Inderes Mono;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/ChivoMono-Regular.woff2) format("woff2"),
    url(/fonts/ChivoMono-Regular.ttf) format("truetype");
  unicode-range: u+0030-0039, u+0025, u+002c, u+002d, u+002e, u+003a, u+003b,
    u+003d, u+005c, u+005f, u+007c, u+002f;
}

:root {
  --inderes-blue: #3F3EFF;
  --white: #fff;
  --black: #000;
  --light-green: #d4fcb3;
  --light-blue: #bac8ff;
  --grey: #e1dcdc;
  --light-grey: #efefef;
  --light-red: #fccebe;

  --h1-font: 900 clamp(1.5rem, 5vw, 3.25rem) / .9em "Inderes Heading", sans-serif;
  --h2-font: 900 clamp(1.25rem, 3vw, 2.2rem) / 1em "Inderes Heading", sans-serif;
  --h3-font: 700 clamp(1.1rem, 2.5vw, 1.25rem) / 1.1em "Inderes", sans-serif;

  font-size: clamp(16px, 2vw, 18px);
}

html {
  display: flex;
  justify-content: stretch;
}

body {
  margin: 0;
  font-family: "Inderes", sans-serif;
  text-rendering: optimizelegibility;
  font-feature-settings: "calt", "clig", "kern", "liga", "locl", "rlig";
  color: var(--black);
  background-color: var(--white);
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: start;
  align-items: stretch;
}

h1 {
  font: var(--h1-font);
  color: var(--inderes-blue);
  text-transform: uppercase;
  margin: 0 0 .25em;
}

h2 {
  font: var(--h2-font);
}

h3 {
  font: var(--h3-font);
}

h5 {
  font-size: 16px;
}

h6 {
  font-weight: 400;
  line-height: normal;
}

p {
  margin: 1em 0;
}

p.strong {
  font-weight: 700;
}

a {
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

.container {
  width: 100%;
  max-width: 800px;
}

@media screen and (min-width: 768px) {
  .container {
    margin: 0;
  }
}

button {
  font-family: 'Inderes Heading', sans-serif;
  min-height: 2.25em;
  padding: 0 2em;
  font: inherit;
  font-size: 1.1em;
  font-weight: 700;
  color: var(--inderes-blue);
  border-radius: 0;
  border: 1px solid var(--grey);
  cursor: pointer;
  transition: .2s ease-out;
}

button:hover {
  border-color: var(--inderes-blue);
}

button#submit, button.submit {
  background-color: var(--inderes-blue);
  color: var(--white);
  display: flex;
  align-items: center;
  gap: 1em;
  padding: 0 .5em 0 1em;
  margin: 0 0 0 auto;
  border-color: var(--inderes-blue);
}

button#submit::after, button.submit::after {
  content: '';
  background: no-repeat center/cover url(/imgs/icons/arrow-blue-circle.svg);
  display: block;
  width: 1.45em;
  height: 1.45em;
  flex-shrink: 0;
}

button#submit:hover, button.submit:hover {
  border-radius: 40px;
}

td {
  vertical-align: top;
}

.nowrap {
  white-space: nowrap;
}

::selection {
  background-color: var(--light-green);
  color: var(--black);
}

.content {
  max-width: 760px;
}

hr {
  border-top: 1px solid #535259;
  margin-left: 10px;
}


/* Header */
header {
  align-self: stretch;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  background-color: var(--inderes-blue);
}

.header-content {
  display: flex;
  justify-content: space-between;
  align-items: end;
  padding: 4rem 1rem 1.5rem;
}

.header_nav a {
  font-size: 1rem;
  color: var(--white);
}

.language-selector {
  position: relative;
}

.lang-dropdown-btn {
  min-height: 0px;
  background: none;
  color: white;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  font-weight: 500;
}

.lang-dropdown-content {
  display: none;
  position: absolute;
  right: 0;
  background-color: white;
  min-width: 120px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1000;
  border-radius: 4px;
}

.lang-dropdown-content a {
  color: black !important;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.lang-dropdown-content a:hover {
  background-color: #f1f1f1;
}

.lang-dropdown-content a.active {
  font-weight: bold;
  background-color: rgba(0,0,0,0.05);
}

.lang-dropdown:hover .lang-dropdown-content {
  display: block;
}

.header__logo {
  width: 100px;
}

.header_nav li {
  display: inline-block;
}

.header_nav li.not-important {
  display: none;
  @media screen and (min-width: 768px) {
    display: inline-block;
  }
}

ul.no-list {
  list-style-type: none;
  margin: 0;
  display: flex;
  gap: 2rem;
}

/* Main content */
main {
  display: grid;
  grid-template: ". slogan ." auto
                 ". content ." auto / auto max-content auto;
  padding: 4rem 0;
  .inderes {
    background: url(/imgs/illustrations/main-flowers.svg) top right / 20vw auto no-repeat, url(/imgs/illustrations/footer-flowers-top.svg) bottom left / 20vw auto no-repeat;
  }
}

a[name="top"], .slogan {
  grid-area: slogan;
}

.content {
  grid-area: content;
}

.order-form {
  margin-top: 2rem;
}

#error {
  display: none;
  min-height: 15vh;
}

#message-dialog {
  border: none;
  border-radius: 12px;
  padding: 0;
  max-width: min(90vw, 480px);
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.18), 0 4px 12px rgba(0, 0, 0, 0.08);
  font-size: 1.05rem;
  color: var(--black);
  background-color: var(--white);
  border-top: 6px solid #d33b3b;
}

#message-dialog.ok {
  border-top-color: #0078ff;
}

#message-dialog::backdrop {
  background-color: rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(2px);
}

#message-dialog .message {
  padding: 1.75rem 2rem 0.5rem;
  margin: 0;
  font-weight: 500;
  line-height: 1.4;
  white-space: pre-line;
}

#message-dialog form {
  display: flex;
  justify-content: flex-end;
  padding: 1rem 1.5rem 1.25rem;
  margin: 0;
}

#message-dialog button {
  min-width: 5rem;
  padding: 0.5rem 1.25rem;
  border: none;
  border-radius: 6px;
  background-color: #0078ff;
  color: var(--white);
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
}

#message-dialog button:hover,
#message-dialog button:focus-visible {
  background-color: #005ec4;
  outline: none;
}

.form-row {
  display: grid;
  gap: .2rem;
  margin-bottom: .75em;
}

.form-row.rakastan-hunajaa {
  position: absolute;
  left: -9999px;
  opacity: 0;
  pointer-events: none;
}

label {
  font-size: max(16px, .95rem);
}

input,
textarea {
  min-height: 2.25em;
  background-color: var(--light-grey);
  border: 1px solid var(--grey);
  padding: 0 .5em;
  font: inherit;
  transition: all .2s ease, height 0s;
}

textarea {
  padding-top: .5em;
  resize: vertical;
  max-height: 350px;
}

input:is(:hover, :focus) {
  outline: none;
  border-color: var(--black);
}

input:user-invalid,
.is-invalid input {
  border: 1px solid #ff000090;
  background-color: var(--light-red);
}

#toimitusehdot-btn {
  min-height: initial;
}

.shipmode {
  display: flex;
  align-items: center;
}

th {
  text-align: left;
  white-space: nowrap;
}

.overflow {
  overflow: auto;
  max-width: 100vw;
}

table.offer-lines, table.feedbcack-offer-lines  {
  border-collapse: collapse;
  width: 100%;
}

/**
  * These sections are shown/hidden by js. Hiding initially.
  */
#confirm-offer-updated,
#confirmed-offer-content,
#feedback-content,
#order-confirmation,
#order-form,
#order-offer {
  display: none;
}

.offer-lines th, .offer-lines td, .feedbcack-offer-lines th, .feedbcack-offer-lines td {
  padding-right: 0.5em;
  padding-left: 0.5em;
  border-top: 1px solid #efefef;
  vertical-align: middle;
}

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

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

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

.border-strong td {
  border-top: 2px solid #ddd;
}

/** Displayed after offer request is sent */
.flik-data {
  display: grid;
  row-gap: 0.5em;
}

.offer-head-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1em;
  flex-wrap: wrap;
}

#save-offer-pdf {
  padding: 0.4em 1em;
  min-height: 0;
  font-size: 0.9em;
}

.offer-meta {
  display: none;
}

.company-address,
.company-address-separator,
.offer-instance-logo {
  display: none;
}

.offer-meta-row > :first-child {
  font-weight: bold;
}

.offer-status-accepted {
  color: #1a7f37;
  font-weight: bold;
}

.offer-status-unaccepted {
  color: #b54708;
  font-weight: bold;
}

.producer {}

.hidden-option {
  display: none;
}

.flik-logo-image {
  width: 90px;
}

.flik-header {}

.slogan {}

.flik-more-section {}

#order-offer .price, .feedbcack-offer-price .price {
  text-align: right;
}

.element-invisible {
  display: none;
}

#feedback-content, #confirmed-offer-content, #order-offer, #order-form, #order-confirmation  {
  max-width: 95vw;
}

@media screen and (min-width: 768px) {
  #feedback-content {
    max-width: 600px;
  }
}

.feedback-form {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.feedback-options {
  display: flex;
  flex-direction: row;  
  justify-content: space-between;
  align-items: center;
  width: 100%;  
}

.feedback-options input[type="radio"] {
  display: none;
}

.feedback-options label {
  padding: 5px;
  border-radius: 5px;
  cursor: pointer;
  background-color: #f0f0f0;
  margin: 5px;
  text-align: center;
  width: 100%;
}

@media screen and (min-width: 600px) {
  .feedback-options label {
    padding: 10px;
  }
}

.feedback-options input[type="radio"]:checked + label {
  background-color: #007bff;
  color: white;
}

.feedback-form-other-feedback p {
  margin-bottom: 0.5em;
}

.feedback-form-other-feedback,
.feedback-form-other-feedback__input {
  width: 100%;
  box-sizing: border-box;
}

.flik-offer-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px 10px;
  background-color: #0078ff;
  color: #fff;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  font-size: 16px;
  width: max-content;
  min-width: 250px;
}

.flik-offer-btn:hover {
  background-color: #005bb5;
  text-decoration: none;
}

.flik-link {
  text-decoration: none;
  color: #0078ff !important;
}

.flik-offer-description-td {}

.flik-link:hover {}

.flik-offer-btn:hover {}

.light {}

.flik-link-menu:hover {
  cursor: pointer;
}

.header-background {
  background-color: #0666d2;
  color: #fff;
  padding: 10px;
  text-align: center;
}

/* In use by js */
.confirmation-value {}

.confirmation-description {}

.offer-details {
  margin-top: 1em;
  margin-bottom: 1em;
}

.offer-details-row {
  display: grid;
  grid-template-columns: 1fr;
  margin-bottom: .2em;
}

.offer-details-row > :first-child {
  font-weight: bold;
}

@media screen and (min-width: 768px) {
  .offer-details-row {
    grid-template-columns: 2fr 4fr;
  }
}

/* Footer */
/**
 * TODO: Refactor footer together with Flik-footer to have less copied/duplicated styles and classes
 */
.inderes {

footer {
  background-color: var(--inderes-blue);
  align-self: stretch;
  margin: 0 0 0;
  padding: 2rem 0 .5rem;
  position: relative;
  background-image: url(/imgs/illustrations/footer-flowers-btm.svg);
  background-size: 20vw auto;
  background-position: top left;
  background-repeat: no-repeat;
}

.footer-container {
  display: flex;
  flex-direction: column;
  margin-top: 4em;
  max-width: 800px;
}

.footer-content {
  margin-left: 1em;
  margin-right: 1em;
}

@media screen and (min-width: 768px) {
  .footer-container {
    display: grid;
    margin: 0 auto 2rem;
    grid-template-columns: 1fr max-content;
    gap: 4rem;
    justify-content: space-between;
    align-items: start;
    justify-items: end;  
  }

  .footer-content {
    margin: initial;
  }
}

.footer-container h2 {
  margin: 0 0 2rem;
  font: var(--h2-font);
  color: var(--white);
  text-transform: uppercase;
  text-wrap: balance;
}

.footer-links {
  display: flex;
  flex-direction: column;
  align-items: start;
  gap: .5rem;
  max-width: 180px;
  line-height: 1.25rem;
}

.footer-links b {
  font-weight: 700;
  font-family: "Inderes Heading", sans-serif;
  font-size: 1.05rem;
  color: var(--white);
  text-transform: uppercase;
}

.footer-links b:not(:first-of-type) {
  margin-top: .75rem;
}

.footer-links a {
  color: var(--white);
  position: relative;
}

.footer-links a::before {
  content: "\20dd";
  position: absolute;
  left: -2.5em;
  font-size: .75em;
  opacity: 0;
  transition: .2s ease-out;
}

.footer-links a:hover::before {
  opacity: 1;
  left: -1.5em;
}

footer p {
  padding: .75em 0 0;
  color: var(--light-green);
  font-weight: 900;
  font-family: "Inderes Heading", sans-serif;
  text-transform: uppercase;
  text-align: right;
  width: fit-content;
  transform: rotate(90deg) translateX(1em);
  transform-origin: 100% 0;
  position: absolute;
  bottom: 0;
  right: 0;
}
}

/* Print: kept at the bottom so these rules win source-order against any
   earlier ruleset that touches the same element/class. */
@media print {
  /* Use @page margin: 0 so browsers don't add their own header/URL/page-number. */
  @page {
    size: a4;
    margin: 0;
  }

  header,
  footer,
  #save-offer-pdf,
  .flik-offer-btn,
  #toimitusehdot,
  #confirm-offer-button,
  .offer-lines tr.not-accepted {
    display: none;
  }

  /* These siblings are toggled with inline style by jQuery .show()/.hide().
     Inline style beats stylesheet specificity, so !important is required here. */
  #order-confirmation,
  #confirmed-offer-content,
  #confirm-offer-updated,
  #feedback-content {
    display: none !important;
  }

  .offer-meta {
    display: block;
    font-size: 0.9em;
    color: #555;
    margin: 0.5em 0 1em;
  }

  .company-address,
  .company-address-separator {
    display: block;
  }

  .offer-instance-logo {
    display: block;
    max-height: 40px;
    width: auto;
  }

  .offer-meta-row {
    margin: 0.25em 0;
  }

  body {
    background: #fff;
    color: #000;
    padding: 1.5cm;
  }

  main {
    display: block;
    padding: 0;
  }

  a {
    color: inherit;
    text-decoration: none;
  }
}
