/*
 Theme Name:     Necess
 Theme URI:      https://www.elegantthemes.com/gallery/divi/
 Description:    Necess Webdesign & Marketing
 Author:         Necess
 Template:       Divi
 Version:        1.0.0
*/
/* Beveiligde verbinding onder checkout-knop - gecentreerd */
.woocommerce-cart .cart_totals .dc-secure-checkout-note{
	margin-top:10px;
	width:100%;
	display:flex;
	justify-content:center;   /* horizontaal centreren */
	align-items:center;       /* verticaal centreren */
	gap:8px;
	text-align:center;
	font-size:15px;
	font-weight:600;
	line-height:1.2;
	color:#2b2b2b;
}

.woocommerce-cart .cart_totals .dc-secure-checkout-note svg{
	width:16px;
	height:16px;
	flex:0 0 16px;
	fill:currentColor;
}


/* =========================================
   VEYS TOPROW - VOLLEDIGE GEÏNTEGREERDE CSS
========================================= */

/* Algemene veiligheid tegen Divi clipping */
.veys-toprow,
.veys-toprow.et_pb_row {
  overflow: visible !important;
  position: relative;
}

/* Middenkolom = bol (basis voor alle schermen) */
.veys-toprow .veys-col-middle {
  background: #fff !important;
  border: 10px solid #892a48 !important;
  border-radius: 50% !important;
  overflow: hidden;
  box-sizing: border-box;

  display: flex !important;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.veys-toprow .veys-col-middle .et_pb_image,
.veys-toprow .veys-col-middle .et_pb_image_wrap {
  margin: 0 auto !important;
  display: block;
  width: 100%;
}

.veys-toprow .veys-col-middle img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}

/* =========================
   DESKTOP
========================= */
@media (min-width: 981px) {
  .veys-toprow {
    display: flex !important;
    align-items: center;
    gap: 24px;
  }

  .veys-toprow > .et_pb_column {
    float: none !important;
    margin-right: 0 !important;
    min-width: 0;
  }

  /* Links en rechts vullen resterende ruimte */
  .veys-toprow .veys-col-links,
  .veys-toprow .veys-col-rechts {
    flex: 1 1 0 !important;
    width: auto !important;
    max-width: none !important;
  }

  /* Linkse tekst iets extra naar links (spiegel van knop rechts) */
  .veys-toprow .veys-col-links {
    display: flex !important;
    justify-content: flex-start !important;
  }

  .veys-toprow .veys-col-links .et_pb_text {
    margin-right: auto !important;
    text-align: left !important;
    transform: translateX(-18px);
  }

  /* Middenbol desktop formaat + overlap in hero */
  .veys-toprow .veys-col-middle {
    flex: 0 0 220px !important;
    width: 220px !important;
    aspect-ratio: 1 / 1;
    padding: 22px !important;
    margin: -75px 0 0 0 !important;
    z-index: 10;
  }

  /* Rechter knop meer naar rechts */
  .veys-toprow .veys-col-rechts {
    display: flex !important;
    justify-content: flex-end !important;
  }

  .veys-toprow .veys-col-rechts .et_pb_button_module_wrapper {
    margin-left: auto !important;
    text-align: right !important;
  }

  .veys-toprow .veys-col-rechts .et_pb_button {
    margin-right: 0 !important;
    transform: translateX(18px);
  }
}

/* =========================
   TABLET / MOBIEL
========================= */
@media (max-width: 980px) {
  .veys-toprow {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }

  /* Volgorde: bol eerst */
  .veys-toprow .veys-col-middle {
    order: 1;
    width: 170px !important;
    flex-basis: 170px !important;
    aspect-ratio: 1 / 1;
    padding: 16px !important;
    border-width: 8px !important;
    margin: -68px auto 6px !important; /* overlap in foto */
    z-index: 10;
  }

  .veys-toprow .veys-col-links {
    order: 2;
    width: 100%;
    text-align: center;
  }

  .veys-toprow .veys-col-links .et_pb_text,
  .veys-toprow .veys-col-links .et_pb_text_inner {
    text-align: center !important;
    transform: none !important;
  }

  .veys-toprow .veys-col-rechts {
    order: 3;
    width: 100%;
  }

  /* Knop mobiel gecentreerd */
  .veys-toprow .veys-col-rechts .et_pb_button_module_wrapper {
    width: 100%;
    text-align: center !important;
    margin-left: 0 !important;
  }

  .veys-toprow .veys-col-rechts .et_pb_button {
    transform: none !important;
    margin: 0 auto !important;
    display: inline-block;
  }
}


/* =========================================================
   Gravity Forms nieuwsbrief - Form ID 2
   ========================================================= */

/* Container */
body #gform_wrapper_2{
  max-width: 520px;
  margin: 0 !important;
}

/* Form: links velden, rechts knop */
body #gform_wrapper_2 form#gform_2{
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  gap: 8px !important;
  width: 100% !important;
  margin: 0 !important;
}

/* Linker kolom (velden) */
body #gform_wrapper_2 .gform_body,
body #gform_wrapper_2 .gform-body{
  flex: 1 1 auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Rechter kolom (submit) */
body #gform_wrapper_2 .gform_footer,
body #gform_wrapper_2 .gform-footer{
  flex: 0 0 auto !important;
  width: auto !important;
  clear: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Algemene reset */
body #gform_wrapper_2 .gfield{
  margin: 0 !important;
  padding: 0 !important;
}

/* GF gebruikt vaak grid voor velden; spacing compact maken */
body #gform_wrapper_2 .gform_fields,
body #gform_wrapper_2 #gform_fields_2{
  margin: 0 !important;
  padding: 0 !important;
  row-gap: 2px !important;      /* compacter tussen email en consent */
  grid-row-gap: 2px !important;
}

/* Titel (als HTML veld met class dc-news-title) */
body #gform_wrapper_2 .dc-news-title{
  color: #970949 !important;
  font-weight: 700 !important;
  margin: 0 0 10px !important;
}

/* Email veld (field 1) */
body #gform_wrapper_2 #field_2_1{
  margin: 0 !important;
  padding: 0 !important;
}

body #gform_wrapper_2 #field_2_1 > label{
  display: none !important; /* hidden label forceren */
}

body #gform_wrapper_2 #field_2_1 .ginput_container{
  margin: 0 !important;
}

body #gform_wrapper_2 #input_2_1{
  width: 100% !important;
  min-width: 240px !important;
  height: 36px !important;
  background: #fff !important;
  border: none !important;
  border-radius: 4px !important;
  padding: 0 12px !important;
  outline: none !important;
  box-shadow: none !important;
  line-height: 36px !important;
  color: #333 !important;
}

body #gform_wrapper_2 #input_2_1::placeholder{
  color: #7A7A7A !important;
  opacity: 1 !important;
}

/* Submit button */
body #gform_wrapper_2 #gform_submit_button_2{
  height: 36px !important;
  padding: 0 14px !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 4px !important;
  background: #970949 !important;
  color: #fff !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  text-decoration: none !important;
  box-shadow: none !important;
  white-space: nowrap !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

/* Extra force tegen Orbital/Divi blauwe stijl */
body #gform_wrapper_2 .gform_button.button,
body #gform_wrapper_2 input[type="submit"].gform_button,
body #gform_wrapper_3 #gform_submit_button_3{
  background: #970949 !important;
  color: #fff !important;
  border-color: #970949 !important;
}

/* Consent veld (field 3) */
body #gform_wrapper_2 #field_2_3{
  margin-top: 0 !important;  /* dichter onder email */
  padding-top: 8px !important;
}

/* "Consent" legend weg */
body #gform_wrapper_2 #field_2_3 > legend{
  display: none !important;
}

/* Consent rij compact */
body #gform_wrapper_2 #field_2_3 .ginput_container_consent{
  display: flex !important;
  align-items: flex-start !important;
  gap: 6px !important;
  margin: 0 !important;
}

body #gform_wrapper_2 #field_2_3 input[type="checkbox"]{
  margin: 2px 0 0 0 !important;
  flex: 0 0 auto !important;
}

body #gform_wrapper_2 #field_2_3 .gfield_consent_label{
  margin: 0 !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
  color: #7A7A7A !important;
  font-weight: 400 !important;
}

body #gform_wrapper_2 #field_2_3 .gfield_consent_label a{
  color: #970949 !important;
  text-decoration: underline !important;
}

/* Required legend weg */
body #gform_wrapper_2 .gform_required_legend{
  display: none !important;
}

/* Mobiel */
@media (max-width: 640px){
  body #gform_wrapper_2 form#gform_2{
    flex-wrap: wrap !important;
  }

  body #gform_wrapper_2 .gform_body,
  body #gform_wrapper_2 .gform-body,
  body #gform_wrapper_2 .gform_footer,
  body #gform_wrapper_2 .gform-footer{
    flex: 0 0 100% !important;
    width: 100% !important;
  }

  body #gform_wrapper_2 #input_2_1{
    min-width: 0 !important;
  }

  body #gform_wrapper_2 #gform_submit_button_2{
    width: 100% !important;
  }
}



/* ==============================================
   Base
   ============================================== */
.breadcrumb-item span {
  font-family: 'Open Sans', Helvetica, Arial, Lucida, sans-serif !important;
}

/* ==============================================
   SEOpress Consent
   ============================================== */
#seopress-user-consent-close { color: #000 !important; }
#seopress-user-consent-close:hover { color: #fff !important; }

#seopress-user-consent-edit {
  background: #fff;
  border: 1px solid #f2f2f2;
  color: #000;
  box-shadow: 0 10px 35px 0 rgb(38 41 77 / 10%);
}

.seopress-user-consent button {
  background: #e21a22;
  border: none;
  border-radius: 3px;
  padding: 10px;
  cursor: pointer;
}

#seopress-user-consent-accept { color: #fff; border: 1px solid #ccc; }
#seopress-user-consent-accept:hover { background: #fff; color: #e21a22; }

/* ==============================================
   USP Bar (desktop)
   ============================================== */
.ncss-usp {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  margin: 0 auto !important;
  gap: 10px 18px;
}

.ncss-usp > div { display: flex; align-items: center !important; }
.ncss-usp strong::before,
.ncss-usp strong::after { content: "\00a0"; }

/* ==============================================
   Divi Layout Overrides
   ============================================== */
@media (min-width: 981px) {
  #left-area {
    width: unset !important;
    float: none !important;
    padding-right: 0 !important;
  }

  .et_right_sidebar #main-content .container:before,
  .et_left_sidebar #main-content .container:before { display: none !important; }
}

/* ==============================================
   Veys Components
   ============================================== */
.veys-list {
  list-style: none !important;
  list-style-position: inside !important;
  margin-top: 25px !important;
  padding: 0 !important;
}

.veys-list li {
  position: relative;
  padding-left: 28px;
  margin-bottom: 14px;
}

.veys-list li::before {
  content: "\f00c";
  font-family: FontAwesome;
  position: absolute;
  left: 0;
  top: 0;
  color: #b03361;
}

.veys-list li span { color: #b03361; font-weight: 600; }

.nolist ul { padding: 0 !important; list-style-position: inside !important; }

/* Flex columns */
.veys-col-links,
.veys-col-rechts {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  width: 100%;
}

.veys-col-links .et_pb_text,
.veys-col-rechts .et_pb_text {
  margin: 0 !important;
  padding: 0 !important;
  text-align: center;
  flex: 1;
}

.veys-vcenter { display: flex !important; flex-direction: column; justify-content: center !important; }
.veys-v-end { display: flex !important; flex-direction: column; justify-content: flex-end !important; }
.veys-space-between { display: flex; flex-direction: column; justify-content: space-between; }

/* Buttons */
.veys-button-purple {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 6px;
  text-decoration: none !important;
  line-height: 1.2;
  margin-bottom: 10px;
  background: #970949;
  color: #fff !important;
}

.veys-button-purple i { font-size: 16px; line-height: 1; }
.veys-button-purple:hover { opacity: .92; }

.veys-button-row { margin-top: 15px; display: flex; gap: 18px; flex-wrap: wrap; }

.veys-button-white {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 10px 10px;
  border-radius: 6px;
  background: #fff;
  color: #7a0f4f !important;
  border: 1px solid #fff;
  text-decoration: none !important;
  font-size: 15px;
  font-weight: 500;
  white-space: nowrap;
  line-height: 1;
}

.veys-button-white i { display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
.veys-button-white i::before { position: relative; top: 8px; }
.veys-button-white svg { display: block; transform: translateY(1px); }

.veys-filters-sidebar input[type="checkbox"] { accent-color: #a0004d; }

/* ==============================================
   Payment Logos
   ============================================== */
.payment-logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 4px;
}

.payment-logos img {
  width: 50px;
  height: auto;
  object-fit: contain;
  transition: transform .2s;
  filter: grayscale(10%);
}

.payment-logos img:hover { transform: scale(1.05); filter: grayscale(0%); }

/* ==============================================
   Google Reviews
   ============================================== */
.grw-review-inner.grw-backgnd.grw-round { background: #fff !important; }
.rpi-dot.active { background-color: #333 !important; }
.grw-review-avatar,
.wp-google-reply,
.rpi-thumb { display: none !important; }

/* ==============================================
   Gravity Forms - Image Choice (field_1_26)
   ============================================== */
#gform_wrapper_1 #field_1_26 .gfield-image-choice-wrapper-outer {
  display: flex;
  align-items: center;
  gap: 30px;
  width: 100%;
}

#gform_wrapper_1 #field_1_26 .gfield-image-choice-wrapper-inner { display: contents; }
#gform_wrapper_1 #field_1_26 .gfield-choice-input { order: 1; flex: 0 0 auto; }
#gform_wrapper_1 #field_1_26 .gfield-choice-image-wrapper { order: 2; flex: 0 0 auto; }

#gform_wrapper_1 #field_1_26 img.gfield-choice-image {
  width: 90px;
  height: 90px;
  object-fit: contain;
  display: block;
}

#gform_wrapper_1 #field_1_26 label.gform-field-label {
  order: 3;
  margin: 0 0 0 auto;
  line-height: 1.2;
  flex: 1 1 auto;
  text-align: right;
  font-weight: 700;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
}

#gform_wrapper_1 #field_1_26 .gfield_checkbox {
  display: flex;
  flex-direction: column;
  gap: 0;
}

#gform_wrapper_1 #field_1_26 .gchoice,
#gform_wrapper_1 #field_1_26.gfield--type-image_choice .gchoice {
  width: 100%;
  inline-size: auto;
  max-inline-size: none;
}

#gform_wrapper_1 #field_1_26 .dc-ic-qty { white-space: nowrap; font-weight: normal; }

/* Mobile: smaller images */
@media (max-width: 650px) {
  #gform_wrapper_1 #field_1_26 img.gfield-choice-image { width: 40px; height: 40px; }
  #gform_wrapper_1 #field_1_26 label.gform-field-label { gap: 30px; }
}

@media (max-width: 500px) {
  #gform_wrapper_1 #field_1_26 label.gform-field-label {
    display: block !important;
    text-align: left !important;
  }
  #gform_wrapper_1 #field_1_26 label.gform-field-label .dc-ic-name,
  #gform_wrapper_1 #field_1_26 label.gform-field-label .dc-ic-qty {
    display: block !important;
    width: 100%;
  }
  #gform_wrapper_1 #field_1_26 label.gform-field-label .dc-ic-qty {
    margin-top: 2px;
    white-space: normal !important;
  }
}

/* GF General Styling */
.gform-theme--foundation .gform_fields { row-gap: 12px; }

.ginput_container.ginput_container_checkbox.ginput_container_image_choice.ginput_container_image_choice--label-show.ginput_container_image_choice--input-show {
  background: #fff !important;
  border-radius: 3px;
}

.gchoice,
.gchoice.gchoice_1_26:hover,
.gchoice.gchoice_1_26:focus,
.gchoice.gchoice_1_26:focus-within {
  border: none !important;
  box-shadow: none !important;
}

#gform_wrapper_1 #field_1_26 .gchoice:hover,
#gform_wrapper_1 #field_1_26 .gchoice:focus,
#gform_wrapper_1 #field_1_26 .gchoice:focus-within,
#gform_wrapper_1 #field_1_26 .gchoice:hover .gfield-choice-image-wrapper,
#gform_wrapper_1 #field_1_26 .gchoice:focus-within .gfield-choice-image-wrapper,
#gform_wrapper_1 #field_1_26 .gchoice:hover .gfield-image-choice-wrapper-outer,
#gform_wrapper_1 #field_1_26 .gchoice:focus-within .gfield-image-choice-wrapper-outer,
#gform_wrapper_1 #field_1_26 .gchoice:hover .gfield-image-choice-wrapper-inner,
#gform_wrapper_1 #field_1_26 .gchoice:focus-within .gfield-image-choice-wrapper-inner {
  outline: none !important;
  outline-width: 0 !important;
  outline-color: transparent !important;
}

#gform_wrapper_1 #field_1_26 input.gfield-choice-input[type="checkbox"]::before,
#gform_wrapper_1 #field_1_24 input[type="checkbox"]::before {
  color: #970949 !important;
}

#gform_wrapper_1.gform-theme--framework #field_1_26 .gchoice::after {
  content: none !important;
  display: none !important;
}

.gform_required_legend { display: none !important; }
.gsection_title { margin-top: 30px; }
#gform_wrapper_1 #field_1_29 .gsection_title { margin-top: 0 !important; }

.gform-theme--framework:not(.gform_editor) .gfield--type-section {
  border-block-end: none;
  padding-block-end: 0;
}

/* GF Inputs */
#gform_wrapper_1 input.text,
#gform_wrapper_1 input.title,
#gform_wrapper_1 input[type=email],
#gform_wrapper_1 input[type=password],
#gform_wrapper_1 input[type=tel],
#gform_wrapper_1 input[type=text],
#gform_wrapper_1 select,
#gform_wrapper_1 textarea {
  background-color: #fff !important;
  border: 1px solid #bbb !important;
  color: #4e4e4e !important;
}

#gform_wrapper_1 textarea:focus,
#gform_wrapper_1 input:focus,
#gform_wrapper_1 select:focus {
  border-color: #970949 !important;
  outline: unset !important;
}

#gform_wrapper_1 .gform_footer .gform_button {
  background-color: #970949 !important;
}

/* GF File Upload */
#gform_wrapper_1 .ginput_container_fileupload input[type="file"] {
  border: 1px solid #dee2e6 !important;
  box-shadow: none !important;
  background: #fff !important;
  color: #4e4e4e !important;
}

#gform_wrapper_1 .ginput_container_fileupload input[type="file"]:focus {
  border: 1px solid #970949 !important;
}

#gform_wrapper_1 .ginput_container_fileupload input[type="file"]::file-selector-button,
#gform_wrapper_1 .ginput_container_fileupload input[type="file"]::-webkit-file-upload-button,
#gform_wrapper_1 .ginput_container_fileupload input[type="file"]::file-selector-button:hover,
#gform_wrapper_1 .ginput_container_fileupload input[type="file"]::file-selector-button:focus {
  border-right: 1px solid #dee2e6 !important;
  background-color: #970949 !important;
  color: #fff !important;
}

/* ==============================================
   WooCommerce Blocks Checkout
   ============================================== */
.wc-block-checkout input[type="text"],
.wc-block-checkout input[type="email"],
.wc-block-checkout input[type="tel"],
.wc-block-checkout input[type="password"],
.wc-block-checkout select,
.wc-block-checkout textarea,
.wc-block-checkout .wc-block-components-text-input input,
.wc-block-checkout .wc-blocks-components-select select,
.wc-block-checkout .wc-block-components-textarea textarea {
  background-color: #fff !important;
  border: 1px solid #bbb !important;
  color: #4e4e4e !important;
  box-shadow: none !important;
}

.wc-block-checkout input:focus,
.wc-block-checkout select:focus,
.wc-block-checkout textarea:focus,
.wc-block-checkout .wc-block-components-text-input input:focus,
.wc-block-checkout .wc-blocks-components-select select:focus,
.wc-block-checkout .wc-block-components-textarea textarea:focus {
  border-color: #970949 !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
}

/* Woo Checkbox */
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:focus {
  outline: none !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
  color: #970949;
}

.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:focus + .wc-block-components-checkbox__mark {
  border-color: #970949 !important;
  box-shadow: none !important;
}

.wc-block-components-checkbox .wc-block-components-checkbox__mark {
  fill: #970949 !important;
}

/* Order Summary */
.wp-block-woocommerce-checkout-order-summary-block {
  border: none !important;
  border-radius: 3px;
  background-color: #f7f7f7 !important;
  box-shadow: none !important;
  padding-top: 16px;
}

.wc-block-components-order-summary-item__image img {
  background-color: #fff !important;
  border-radius: 3px !important;
  padding: 4px;
  box-sizing: border-box;
  display: block;
}

.wc-block-components-order-summary-item__quantity {
  box-shadow: none !important;
  border: none !important;
  background-color: #970949 !important;
  color: #fff !important;
}

.wc-block-components-order-summary-item__quantity span { color: #fff !important; }

/* Woo Buttons */
.wc-block-components-totals-coupon__button,
.wc-block-components-totals-coupon__button[disabled],
.wc-block-components-totals-coupon__button[aria-disabled="true"],
.wc-block-components-checkout-place-order-button,
.wc-block-components-checkout-place-order-button:focus,
.wc-block-components-checkout-place-order-button:focus-visible {
  background-color: #970949 !important;
  border-color: #970949 !important;
  color: #fff !important;
  box-shadow: none !important;
  outline: none !important;
  opacity: 1 !important;
}

.wc-block-components-totals-coupon__button .wc-block-components-button__text,
.wc-block-components-checkout-place-order-button .wc-block-components-button__text,
.wc-block-components-checkout-place-order-button .wc-block-components-checkout-place-order-button__text {
  color: #fff !important;
}

.wc-block-components-product-metadata { display: none; }