/* ==========================================================================
   Easy Digital Downloads front-end reskin — Cart, Checkout, Purchase
   Receipt, My Account / Order History, Download History. Overrides EDD's
   bundled CSS (edd.min.css / block styles), which loads before this file,
   using the theme's existing design tokens (see assets/css/plugins.css)
   so these pages read as part of the same site rather than a bolt-on.
   ========================================================================== */

.intlz-elementor-page{
  font: 16px/1.6 var(--intlz-font);
  color: var(--intlz-text);
}
/* Raw EDD shortcode pages (Cart, Checkout, My Account, Receipt) aren't
   built from full-bleed Elementor sections, so they still need a boxed
   container. Elementor-built pages (About Us, Plugins listing, etc.) skip
   this — their own sections/widgets control width and spacing. */
.intlz-elementor-page.intlz-plain-content{
  max-width: var(--intlz-max);
  margin: 0 auto;
  padding: 56px 24px;
}
:where(.intlz-elementor-page) h1,
:where(.intlz-elementor-page) h2,
:where(.intlz-elementor-page) h3,
:where(.intlz-elementor-page) legend{
  color: var(--intlz-navy);
  font-family: var(--intlz-font);
}
.intlz-elementor-page > h1:first-child{
  font-size: clamp(26px, 3.4vw, 34px);
  margin: 0 0 32px;
}

/* ---------- Shared form field styling (cart/checkout/account/login) ----------
   Bare-tag selectors (input/select/textarea/label/p) are wrapped in :where()
   — dropping their specificity to zero — because they're generic defaults
   for un-styled EDD/WPForms markup, not rules that should ever compete with
   a specific component's own styling. Without this they silently clobber
   unrelated elements that happen to share a tag name on any Elementor-built
   page carrying the .intlz-elementor-page wrapper: this exact bug broke the
   Plugins listing page's search box (<label class="intlz-search">) by
   forcing display:block over its display:flex. .edd-input/.edd-label stay
   at normal specificity since those class names are EDD-specific and can't
   collide with anything else on the site. */
.intlz-elementor-page .edd-input,
:where(.intlz-elementor-page) input[type="text"],
:where(.intlz-elementor-page) input[type="email"],
:where(.intlz-elementor-page) input[type="password"],
:where(.intlz-elementor-page) input[type="number"],
:where(.intlz-elementor-page) input[type="tel"],
:where(.intlz-elementor-page) select,
:where(.intlz-elementor-page) textarea{
  width: 100%;
  font: 15px/1.4 var(--intlz-font);
  color: var(--intlz-text);
  background: var(--intlz-surface);
  border: 1px solid var(--intlz-border);
  border-radius: var(--intlz-radius-sm);
  padding: 12px 14px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.intlz-elementor-page .edd-input:focus,
:where(.intlz-elementor-page) input:focus,
:where(.intlz-elementor-page) select:focus,
:where(.intlz-elementor-page) textarea:focus{
  outline: none;
  border-color: var(--intlz-sky);
  box-shadow: 0 0 0 3px var(--intlz-blue-light);
}
.intlz-elementor-page .edd-label,
:where(.intlz-elementor-page) label{
  display: block;
  font-weight: 600;
  color: var(--intlz-navy);
  margin-bottom: 6px;
  font-size: 14.5px;
}
.intlz-elementor-page .edd-required-indicator{ color: var(--intlz-orange); margin-left: 2px; }
.intlz-elementor-page .edd-description{
  margin: 6px 0 0;
  color: var(--intlz-muted);
  font-size: 13px;
}
.intlz-elementor-page .edd-blocks-form__group,
:where(.intlz-elementor-page) p{ margin-bottom: 20px; }

/* Buttons: any EDD submit-style control gets the theme's pill button. */
.intlz-elementor-page .edd-submit,
.intlz-elementor-page #edd_purchase_submit input[type="submit"],
.intlz-elementor-page #edd_purchase_submit button,
.intlz-elementor-page .edd_download_purchase_form input[type="submit"],
.intlz-elementor-page .edd-blocks-form button[type="submit"]{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 32px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 15px;
  font-family: var(--intlz-font);
  text-decoration: none;
  border: 2px solid transparent;
  cursor: pointer;
  background: linear-gradient(135deg, var(--intlz-navy) 0%, var(--intlz-blue) 100%);
  color: #fff;
  box-shadow: 0 6px 16px rgba(6,49,123,.35);
  transition: transform .15s ease, filter .15s ease;
}
.intlz-elementor-page .edd-submit:hover,
.intlz-elementor-page #edd_purchase_submit input[type="submit"]:hover,
.intlz-elementor-page #edd_purchase_submit button:hover{ transform: translateY(-2px); filter: brightness(1.1); color: #fff; }

/* Error / alert banners */
.intlz-elementor-page .edd-alert,
.intlz-elementor-page .edd_errors{
  background: var(--intlz-orange-light);
  border: 1px solid var(--intlz-orange);
  color: #7a2d0e;
  border-radius: var(--intlz-radius-sm);
  padding: 16px 20px;
  margin: 0 0 24px;
  font-size: 14.5px;
}
.intlz-elementor-page .edd-alert p,
.intlz-elementor-page .edd_errors p{ margin: 0; }
.intlz-elementor-page .edd-alert a,
.intlz-elementor-page .edd_errors a{ color: inherit; font-weight: 700; text-decoration: underline; }
.intlz-elementor-page .edd-alert-success{
  background: var(--intlz-green-light);
  border-color: var(--intlz-green);
  color: #234d13;
}

/* ---------- Cart / Checkout item list ---------- */
.intlz-elementor-page .edd-blocks__checkout,
.intlz-elementor-page .edd-cart{
  border: 1px solid var(--intlz-border);
  border-radius: var(--intlz-radius);
  overflow: hidden;
  margin-bottom: 32px;
  box-shadow: var(--intlz-shadow);
}
.intlz-elementor-page .edd-blocks-cart__row,
.intlz-elementor-page .edd_cart_header_row,
.intlz-elementor-page .edd_cart_item{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 24px;
  border-bottom: 1px solid var(--intlz-border);
  background: var(--intlz-surface);
}
.intlz-elementor-page .edd-blocks-cart__row:last-child{ border-bottom: 0; }
.intlz-elementor-page .edd-blocks-cart__row-header,
.intlz-elementor-page .edd_cart_header_row{
  background: var(--intlz-surface-alt);
  font-weight: 700;
  color: var(--intlz-navy);
  font-size: 13.5px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.intlz-elementor-page .edd_cart_item_name{ font-weight: 600; color: var(--intlz-text); }
.intlz-elementor-page .edd_cart_item_price{
  display: flex;
  align-items: center;
  gap: 14px;
  font-weight: 600;
  color: var(--intlz-navy);
}
.intlz-elementor-page .edd_cart_total{
  font-size: 18px;
  font-weight: 700;
  color: var(--intlz-navy);
  width: 100%;
  text-align: right;
}
.intlz-elementor-page .edd-blocks-cart__action-remove,
.intlz-elementor-page .edd_cart_remove_item_btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: var(--intlz-orange);
  text-decoration: none;
  background: var(--intlz-orange-light);
}
.intlz-elementor-page .edd-blocks-cart__action-remove:hover{ background: var(--intlz-orange); color: #fff; }
/* [download_cart] shortcode — legacy <ul class="edd-cart"> markup (the
   Cart page), distinct from the block-based checkout mini-cart above. */
.intlz-elementor-page ul.edd-cart{
  list-style: none;
  margin: 0 0 32px;
  padding: 0;
  border: 1px solid var(--intlz-border);
  border-radius: var(--intlz-radius);
  overflow: hidden;
  box-shadow: var(--intlz-shadow);
}
.intlz-elementor-page ul.edd-cart li.cart_item{
  padding: 18px 24px;
  border-bottom: 1px solid var(--intlz-border);
  background: var(--intlz-surface);
}
.intlz-elementor-page ul.edd-cart li.cart_item:last-child{ border-bottom: 0; }
.intlz-elementor-page ul.edd-cart li.cart_item.empty{ text-align: center; color: var(--intlz-muted); padding: 40px 24px; }
/* The actual product row(s) — a separate <li class="edd-cart-item"> markup
   from the total/checkout/empty rows above, so it needs its own rule or it
   falls back to an unstyled bare list item inside the styled container. */
.intlz-elementor-page ul.edd-cart li.edd-cart-item{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 16px;
  padding: 18px 24px;
  border-bottom: 1px solid var(--intlz-border);
  background: var(--intlz-surface);
}
.intlz-elementor-page ul.edd-cart li.edd-cart-item .edd-cart-item-title{
  font-weight: 600;
  color: var(--intlz-text);
}
.intlz-elementor-page ul.edd-cart li.edd-cart-item .edd-cart-item-separator{ display: none; }
.intlz-elementor-page ul.edd-cart li.edd-cart-item .edd-cart-item-quantity{ color: var(--intlz-muted); }
.intlz-elementor-page ul.edd-cart li.edd-cart-item .edd-cart-item-price{
  font-weight: 600;
  color: var(--intlz-navy);
  margin-left: auto;
}
.intlz-elementor-page ul.edd-cart li.edd-cart-item .edd-remove-from-cart{
  color: var(--intlz-orange);
  font-weight: 600;
  font-size: 13px;
  text-decoration: none;
  padding: 5px 12px;
  border-radius: 999px;
  background: var(--intlz-orange-light);
}
.intlz-elementor-page ul.edd-cart li.edd-cart-item .edd-remove-from-cart:hover{
  background: var(--intlz-orange);
  color: #fff;
  text-decoration: none;
}
.intlz-elementor-page ul.edd-cart li.edd_total{
  background: var(--intlz-surface-alt);
  font-weight: 700;
  color: var(--intlz-navy);
  text-align: right;
}
.intlz-elementor-page ul.edd-cart li.edd_checkout{ text-align: center; }
.intlz-elementor-page ul.edd-cart a{ color: var(--intlz-sky); text-decoration: none; font-weight: 600; }
.intlz-elementor-page ul.edd-cart a:hover{ text-decoration: underline; }
.intlz-elementor-page ul.edd-cart li.edd_checkout a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 28px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--intlz-navy) 0%, var(--intlz-blue) 100%);
  color: #fff;
  font-weight: 600;
}
.intlz-elementor-page ul.edd-cart li.edd_checkout a:hover{ text-decoration: none; filter: brightness(1.1); }
.intlz-elementor-page .edd-cart-number-of-items{ color: var(--intlz-muted); font-size: 14px; margin-bottom: 12px; }

.intlz-elementor-page .edd_empty_cart{
  display: block;
  padding: 40px 24px;
  text-align: center;
  color: var(--intlz-muted);
  background: var(--intlz-surface-alt);
  border-radius: var(--intlz-radius);
}

/* Checkout layout: cart summary above, personal info + payment below */
.intlz-elementor-page .edd-blocks__checkout{ box-shadow: none; border: 0; }
.intlz-elementor-page .edd-blocks__cart{ margin-bottom: 32px; }
.intlz-elementor-page .edd-blocks__purchase-form fieldset{
  border: 1px solid var(--intlz-border);
  border-radius: var(--intlz-radius);
  padding: 28px;
  margin: 0 0 24px;
  background: var(--intlz-surface);
}
.intlz-elementor-page .edd-blocks__purchase-form legend{
  font-size: 18px;
  font-weight: 700;
  padding: 0 6px;
  margin-left: -6px;
}

/* ---------- Purchase Receipt ---------- */
.intlz-elementor-page .edd_purchase_receipt,
.intlz-elementor-page .purchase_details{
  border: 1px solid var(--intlz-border);
  border-radius: var(--intlz-radius);
  padding: 24px 28px;
  margin-bottom: 24px;
  background: var(--intlz-surface);
}
.intlz-elementor-page .edd_purchase_receipt td,
.intlz-elementor-page .edd_purchase_receipt th{ padding: 10px 0; text-align: left; }
.intlz-elementor-page .edd_purchase_receipt_products{ width: 100%; border-collapse: collapse; }
.intlz-elementor-page .edd_purchase_receipt_products th{
  border-bottom: 2px solid var(--intlz-border);
  color: var(--intlz-navy);
  font-size: 13px;
  text-transform: uppercase;
}
.intlz-elementor-page .edd_purchase_receipt_products td{ border-bottom: 1px solid var(--intlz-border); }
.intlz-elementor-page .edd_download_file_link,
.intlz-elementor-page a.edd_submit{
  color: var(--intlz-sky);
  font-weight: 600;
}

/* ---------- My Account / Order History / Download History tables ---------- */
.intlz-elementor-page table.purchases,
.intlz-elementor-page table.edd_download_history,
.intlz-elementor-page table.edd-table{
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--intlz-border);
  border-radius: var(--intlz-radius);
  overflow: hidden;
  margin-bottom: 32px;
}
.intlz-elementor-page table.purchases th,
.intlz-elementor-page table.edd_download_history th,
.intlz-elementor-page table.edd-table th{
  background: var(--intlz-surface-alt);
  color: var(--intlz-navy);
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .04em;
  text-align: left;
  padding: 14px 18px;
}
.intlz-elementor-page table.purchases td,
.intlz-elementor-page table.edd_download_history td,
.intlz-elementor-page table.edd-table td{
  padding: 14px 18px;
  border-top: 1px solid var(--intlz-border);
}

/* ---------- Login / Register (checkout tabs, or [edd_login]/[edd_register]) ---------- */
.intlz-elementor-page .edd_login_form,
.intlz-elementor-page .edd_register_form,
.intlz-elementor-page .edd-tabs{
  max-width: 460px;
}
.intlz-elementor-page .edd-tabs__nav,
.intlz-elementor-page ul.tabs{
  display: flex;
  gap: 8px;
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  border-bottom: 1px solid var(--intlz-border);
}
.intlz-elementor-page .edd-tabs__nav li,
.intlz-elementor-page ul.tabs li{
  padding: 10px 18px;
  font-weight: 600;
  color: var(--intlz-muted);
  cursor: pointer;
}
.intlz-elementor-page .edd-tabs__nav li.active,
.intlz-elementor-page ul.tabs li.active{
  color: var(--intlz-navy);
  border-bottom: 2px solid var(--intlz-sky);
}

/* Responsive: stack cart/item rows on small screens */
@media (max-width: 640px){
  .intlz-elementor-page.intlz-plain-content{ padding: 40px 20px; }
  .intlz-elementor-page .edd-blocks-cart__row,
  .intlz-elementor-page .edd_cart_header_row,
  .intlz-elementor-page .edd_cart_item{
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }
  .intlz-elementor-page .edd_cart_total{ text-align: left; }
}

li.cart_item.edd-cart-meta {
  text-align: right;
}