/**
Theme Name: Cosion Child
Author: ThemeOri
Author URI: https://themeforest.net/user/themeori/
Description: Child theme for the Cosion theme.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cosion-child
Template: cosion
*/

:root {
  --primary-color: #78b933;

  --primary-blue: #0a3e6f;
  --dark-blue: #030a15;
  --light-blue: #E0F2FF;

  --transition: 0.3s all !important;
}

/* === HEADER === */
.header_nav-menu ul .current-menu-item > a {
  color: var(--primary-color) !important;
}

.top-bar .fa-phone-alt {
  transform: scaleX(-1) !important;
}

/* === BREADCRUMB === */
.flexitype_breadcrumb-area ul li.separator {
  color: #000 !important;
}

/* === HOME === */
.banner-image {
  position: relative;
}

.banner-image::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: rgba(0, 0, 0, 0.5) !important;
  z-index: 1 !important;
}

.banner-content {
  position: relative !important;
  z-index: 2 !important;
}

/* === KARTY === */
.cards-wrapper .icon__box-image img {
  width: 100% !important;
  aspect-ratio: 16 / 10 !important;
  object-fit: cover !important;
  display: block !important;
}

.cards-wrapper .elementor-container {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
}

.cards-wrapper .elementor-column {
  flex: 0 1 33% !important;
  box-sizing: border-box !important;
}

@media (max-width: 1024px) and (min-width: 769px) {
  .cards-wrapper .elementor-column {
    flex: 0 1 50% !important;
  }
}

@media (max-width: 768px) {
  .cards-wrapper .elementor-column {
    flex: 0 1 100% !important;
  }
}

.overlapping-cards > div > div:last-child {
  margin: 0 auto !important;
}

@media (min-width: 769px) {
  .uslugi-cards-wrapper .icon__box-item-icon,
  .uslugi-cards-wrapper .icon__box-item-content {
    margin-top: auto !important;
    margin-bottom: auto !important;
  }
}

.uslugi-cards-wrapper .icon__box-item-content p {
  margin-bottom: 0 !important;
}

/* === KONTAKT === */
.contact-info {
  max-width: 900px;
  margin: 0 auto !important;
}

.contact-info > .elementor-widget-wrap {
  display: grid !important;
  grid-template-columns: minmax(0, 260px) 1fr !important;
  grid-auto-rows: auto !important;
  gap: 20px !important;
  align-items: start !important;
  width: 100% !important;
  box-sizing: border-box !important;
  border: none !important;
}

/* Mail (lewa kolumna, wiersz 1) */
.contact-info > .elementor-widget-wrap > .elementor-element.contact-mail {
  grid-column: 1 / 2 !important;
  grid-row: 1 !important;
  align-self: start !important;
}

/* Telefon (lewa kolumna, wiersz 2) */
.contact-info > .elementor-widget-wrap > .elementor-element.contact-tel {
  grid-column: 1 / 2 !important;
  grid-row: 2 !important;
  align-self: start !important;
}

/* Dane firmowe (prawa kolumna, zajmuje obie wiersze) */
.contact-info > .elementor-widget-wrap > .elementor-element.contact-dane {
  grid-column: 2 / 3 !important;
  grid-row: 1 / span 2 !important;
  align-self: start !important;
}

/* Zapobiega rozpychaniu kolumn przez wewnętrzne elementy */
.contact-info
  > .elementor-widget-wrap
  .elementor-element.contact-mail
  .icon__box-item,
.contact-info
  > .elementor-widget-wrap
  .elementor-element.contact-tel
  .icon__box-item,
.contact-info
  > .elementor-widget-wrap
  .elementor-element.contact-dane
  .icon__box-item {
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Mobile: fallback do pojedynczej kolumny */
@media (max-width: 650px) {
  .contact-info > .elementor-widget-wrap {
    display: block !important;
  }
  .contact-info > .elementor-widget-wrap > .elementor-element {
    width: 100% !important;
    grid-column: auto !important;
    grid-row: auto !important;
  }
}

.contact-info {
  border-radius: 20px !important;
  box-shadow: 0px 0px 80px 0px
    rgba(51.00000000000001, 65.00000000000013, 140, 0.06);
  border: 1px solid var(--e-global-color-6917ca4);
}

.contact-info .contact-tel .icon__box-item {
  padding: 0 !important;
}

.contact-info .icon__box-item {
  border: none !important;
}

.contact-info .icon__box-item::before {
  display: none !important;
}

.contact-form-card {
  border-radius: 20px !important;
  box-shadow: 0px 0px 80px 0px
    rgba(51.00000000000001, 65.00000000000013, 140, 0.06);
  border: 1px solid var(--e-global-color-6917ca4);
}

.contact-form-card .forminator-button-submit {
  border-radius: 12px !important;
}

.contact-form-card .forminator-button-submit:hover {
  background-color: #030a15 !important;
}

.forminator-ui.forminator-custom-form[data-design='material']
  .forminator-checkbox
  .forminator-checkbox-box:before {
  color: var(--primary-color) !important;
}

.forminator-ui#forminator-module-6313.forminator-design--material
  .forminator-consent
  input:checked
  + .forminator-checkbox-box,
#forminator-module-6313.forminator-design--material
  .forminator-checkbox
  span[aria-hidden]:not(.forminator-checkbox-image):hover,
.forminator-select-dropdown-container--open
  .forminator-custom-form-6313.forminator-dropdown--material
  .forminator-checkbox
  span[aria-hidden]:hover {
  border-color: var(--primary-color) !important;
}

@media (max-width: 768px) {
  .contact-info > div {
    flex-direction: column !important;
    gap: 20px !important;
  }

  .contact-info > div > div {
    width: 100% !important;
    margin-bottom: 20px !important;
  }
}

/* === FOOTER === */
.footer-top-container {
  position: relative !important;
  z-index: 1000 !important;
  margin-bottom: -160px !important;
}

.footer-bottom-container > div {
  margin-top: 160px !important;
}

/* === OGÓLNE === */
.page-id-6812 .section-padding,
.page-id-6835 .section-padding,
.page-id-6843 .section-padding,
.page-id-6852 .section-padding,
.page-id-6858 .section-padding,
.page-id-6789 .section-padding,
.page-id-6730 .section-padding {
  padding-bottom: 0 !important;
}

.page-id-6812 footer,
.page-id-6835 footer,
.page-id-6843 footer,
.page-id-6852 footer,
.page-id-6858 footer,
.page-id-6789 footer,
.page-id-6730 footer {
  margin-top: -180px !important;
}

.text-lines h2 {
  position: relative;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}

.text-lines.left h2 {
  margin-left: unset !important;
  margin-right: unset !important;
}

.text-lines h2::before,
.text-lines h2::after {
  background-color: var(--primary-color);
  content: '';
  display: block;
  height: 3px;
  width: 90px;
  transform-origin: right;
}

.text-lines h2::after {
  position: absolute;
  right: 0;
  bottom: 0;
  transform: translateY(12px);
}

.text-background h2 {
  background: var(--primary-color);
  color: #fff !important;
  padding: 10px 20px 10px 10px !important;
  border-radius: 0 20px 0 20px !important;
  width: fit-content !important;
}

.intro-square {
  position: relative;
  padding: 2rem;
  background-color: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  margin-bottom: 5px !important;
}

.intro-square::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 50px;
  height: 50px;
  border-top: 4px solid var(--primary-color);
  border-left: 4px solid var(--primary-color);
}

.intro-square::after {
  content: '';
  position: absolute;
  bottom: 0;
  right: 0;
  width: 50px;
  height: 50px;
  border-bottom: 4px solid var(--primary-color);
  border-right: 4px solid var(--primary-color);
}

.flex-wrapper > div {
  gap: 30px !important;
}

.flex-gap-20 > div {
  gap: 20px !important;
}

.flex-gap-10 > div {
  gap: 10px !important;
}

.margin-auto {
  margin-left: auto !important;
  margin-right: auto !important;
}

.polityka-prywatnosci h3 {
  margin-bottom: 16px !important;
  font-size: 28px !important;
}

.polityka-prywatnosci p {
  margin-bottom: 30px !important;
}

.scenariusze-wrapper h3 {
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  margin-bottom: 16px !important;
  color: #6a726f !important;
}

.scenariusze-wrapper ul {
  margin-bottom: 30px !important;
}

.text-underline {
  text-decoration: underline !important;
}

.with-link a {
  color: var(--primary-color) !important;
  transition: var(--transition) !important;
}

.with-link a:hover {
  color: var(--dark-blue) !important;
}

@media (max-width: 1023px) {
  .flex-rev > div {
    flex-direction: column-reverse !important;
  }
}

html {
  scroll-padding-top: 110px;
}

