/*
 * Gravity Forms 3.0 / Orbital theme integration.
 *
 * Prefer the Gravity Forms CSS API for controls and spacing. Component
 * selectors below handle the surrounding card and layouts not exposed by the
 * API. Shared controls, cards and messages apply to every form on the site;
 * only field-ID-specific quote-form layouts remain scoped to its shell.
 */

.kymenmatkat-site .gform-theme--framework {
  --gf-color-primary: var(--kymenmatkat-teal);
  --gf-ctrl-bg-color: var(--kymenmatkat-white);
  --gf-ctrl-bg-color-hover: var(--kymenmatkat-white);
  --gf-ctrl-bg-color-focus: var(--kymenmatkat-white);
  --gf-ctrl-border-color: #667987;
  --gf-ctrl-border-color-hover: var(--kymenmatkat-blue-dark);
  --gf-ctrl-border-color-focus: var(--kymenmatkat-teal);
  --gf-ctrl-border-style: solid;
  --gf-ctrl-border-width: 1px;
  --gf-ctrl-radius: var(--kymenmatkat-radius);
  --gf-ctrl-outline-color-focus: #ffbf47;
  --gf-ctrl-outline-offset: 2px;
  --gf-ctrl-outline-width-focus: 3px;
  --gf-ctrl-color: var(--kymenmatkat-ink);
  --gf-ctrl-icon-color: var(--kymenmatkat-teal);
  --gf-ctrl-shadow: none;
  --gf-ctrl-accent-color: var(--kymenmatkat-teal);
  --gf-ctrl-size: 56px !important;
  --gf-ctrl-padding-x: 16px;
  --gf-ctrl-font-family: var(--kymenmatkat-font-body);
  --gf-ctrl-font-size: 16px;
  --gf-ctrl-font-weight: 400;
  --gf-ctrl-placeholder-color: #667987;

  --gf-ctrl-label-color-primary: var(--kymenmatkat-ink);
  --gf-ctrl-label-font-family-primary: var(--kymenmatkat-font-body);
  --gf-ctrl-label-font-size-primary: 0.78rem;
  --gf-ctrl-label-font-weight-primary: 750;
  --gf-ctrl-label-line-height-primary: 1.55;
  --gf-ctrl-label-color-secondary: var(--kymenmatkat-ink);
  --gf-ctrl-label-font-family-secondary: var(--kymenmatkat-font-body);
  --gf-ctrl-label-font-size-secondary: 0.78rem;
  --gf-ctrl-label-font-weight-secondary: 750;
  --gf-ctrl-label-line-height-secondary: 1.55;
  --gf-ctrl-label-color-req: var(--kymenmatkat-coral);

  --gf-ctrl-choice-check-color: var(--kymenmatkat-teal);
  --gf-ctrl-choice-size-sm: 18px;
  --gf-ctrl-choice-size-md: 20px;
  --gf-ctrl-choice-size-lg: 22px;
  --gf-ctrl-choice-size-xl: 28px;
  --gf-ctrl-textarea-height: 180px;
  --gf-ctrl-textarea-line-height: 1.55;
  --gf-ctrl-textarea-padding-y: 15px;

  --gf-ctrl-btn-bg-color-primary: var(--kymenmatkat-mint);
  --gf-ctrl-btn-bg-color-hover-primary: #005e54;
  --gf-ctrl-btn-bg-color-focus-primary: var(--kymenmatkat-mint);
  --gf-ctrl-btn-border-color-primary: transparent;
  --gf-ctrl-btn-border-color-hover-primary: transparent;
  --gf-ctrl-btn-color-primary: var(--kymenmatkat-white);
  --gf-ctrl-btn-color-hover-primary: var(--kymenmatkat-white);
  --gf-ctrl-btn-radius: var(--kymenmatkat-radius);
  --gf-ctrl-btn-shadow: none;
  --gf-ctrl-btn-shadow-hover: none;
  --gf-ctrl-btn-size: 48px;
  --gf-ctrl-btn-padding-x: 22px;
  --gf-ctrl-btn-font-family: var(--kymenmatkat-font-body);
  --gf-ctrl-btn-font-size: 0.95rem;
  --gf-ctrl-btn-font-weight: 750;

  --gf-form-gap-x: 24px;
  --gf-form-gap-y: 24px;
  --gf-field-gap-x: 12px;
  --gf-field-gap-y: 8px;
  --gf-form-footer-margin-y-start: 32px;
}

.kymenmatkat-site .gform_wrapper {
  background: var(--kymenmatkat-white);
  border: 1px solid var(--kymenmatkat-line);
  border-radius: var(--kymenmatkat-radius);
  box-shadow: 0 14px 34px rgba(16, 47, 68, 0.07);
  padding: 38px;
}

.kymenmatkat-site .gform_heading {
  margin-bottom: 28px;
}

.kymenmatkat-site .gform_title {
  color: var(--kymenmatkat-ink);
  font-family: var(--kymenmatkat-font-heading);
  font-size: 2rem;
  line-height: 1.15;
  margin-bottom: 6px;
}

.kymenmatkat-site .gform_description,
.kymenmatkat-site .gfield_description {
  color: var(--kymenmatkat-muted);
}

.kymenmatkat-site .gform_description {
  font-size: 1rem;
  line-height: 1.55;
}

.kymenmatkat-site .gsection {
  border-bottom: 1px solid var(--kymenmatkat-line);
  margin-top: 10px;
  padding-bottom: 14px;
}

.kymenmatkat-site .gsection_title {
  color: var(--kymenmatkat-ink);
  font-family: var(--kymenmatkat-font-heading);
  font-size: 1.45rem;
  line-height: 1.55;
}

.kymenmatkat-site .gfield--type-section .gsection_description {
  color: var(--kymenmatkat-muted);
  font-size: 0.86rem;
  line-height: 1.55;
  margin-top: 4px;
}

/* The accommodation field uses the fixed field ID from the generated form. */
.kymenmatkat-form-shell .gfield--type-radio[id$="_6"] .gfield_radio {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.kymenmatkat-form-shell .gfield--type-radio[id$="_6"] .gchoice {
  align-items: center;
  border: 1px solid #667987;
  border-radius: var(--kymenmatkat-radius);
  display: flex;
  gap: 10px;
  min-height: 56px;
  padding: 12px 16px;
}

.kymenmatkat-form-shell .gfield--type-radio[id$="_6"] .gchoice:has(input:checked) {
  background: #eaf7f4;
  border: 2px solid var(--kymenmatkat-teal);
  padding: 11px 15px;
}

.kymenmatkat-form-shell .gfield--type-radio[id$="_6"] .gchoice:has(input:focus-visible) {
  outline: 3px solid #ffbf47;
  outline-offset: 2px;
}

.kymenmatkat-site .gfield--type-consent {
  background: #f3f9fa;
  border: 1px solid #d6e4e9;
  border-radius: var(--kymenmatkat-radius);
  padding: 18px;
}

.kymenmatkat-site .gfield--type-consent .gfield_description {
  font-size: 0.72rem;
  margin-top: 8px;
}

.kymenmatkat-site .gfield--type-consent .gfield_description a {
  font-weight: 700;
}

.kymenmatkat-form-shell .gfield--type-html[id$="_16"] {
  align-items: center;
  display: flex;
  font-size: 0.75rem;
  grid-column: span 4 !important;
  justify-self: start;
  line-height: 1.55;
  max-width: 190px;
  order: 2;
  width: 100%;
}

.kymenmatkat-form-shell .gfield--type-html[id$="_16"] p {
  color: var(--kymenmatkat-muted);
  font-size: 0.75rem;
  line-height: 1.55;
  margin: 0;
}

.kymenmatkat-site .gfield--type-submit {
  align-items: center;
}

.kymenmatkat-form-shell .gfield--type-submit {
  grid-column: span 4 !important;
  order: 1;
}

.kymenmatkat-form-shell .gfield--type-submit .gform-button {
  font-size: 0.95rem !important;
  line-height: 1.2 !important;
  min-height: 48px !important;
  padding: 10px 22px !important;
}

.kymenmatkat-site .gform_confirmation_message {
  background: var(--kymenmatkat-mint-light);
  border: 1px solid var(--kymenmatkat-mint);
  border-radius: var(--kymenmatkat-radius);
  color: var(--kymenmatkat-ink);
  padding: 24px;
}

.kymenmatkat-site .gform_confirmation_message h2 {
  font-family: var(--kymenmatkat-font-heading);
}

.kymenmatkat-site .gform_validation_errors,
.kymenmatkat-site .gfield_validation_message {
  border-radius: var(--kymenmatkat-radius);
}

@media (max-width: 700px) {
  .kymenmatkat-site .gform_wrapper {
    padding: 26px 20px;
  }

  .kymenmatkat-site .gform_title {
    font-size: 1.75rem;
  }

  .kymenmatkat-form-shell .gfield--type-radio[id$="_6"] .gfield_radio {
    grid-template-columns: 1fr;
  }

  .kymenmatkat-form-shell .gfield--type-submit,
  .kymenmatkat-form-shell .gfield--type-html[id$="_16"] {
    grid-column: 1 / -1 !important;
    max-width: none;
  }
}
