:root {
  --max-content-width: 1140px;
  --main-font: "Montserrat", serif;
  --base-font: "Montserrat", serif;
  --content-padding: 30px;
  --section-padding: 120px;
}

.dng-btn-hover > .elementor-button:hover .elementor-button-text {
  text-decoration: underline;
  text-underline-position: under;
}

@media (min-width: 768px) {
  .dng-home-slide .elementor-slide-heading,
  .dng-home-slide .elementor-slide-description {
    max-width: 442px;
  }
}

.dng-home-slide .swiper-pagination-bullet {
  width: 40px !important;
  border-radius: 0;
}

.dng-home-slide .elementor-button {
  padding-left: 0;
}

.dng-home-slide:hover .elementor-button {
  text-decoration: underline;
  text-underline-position: under;
}

.dng-home-slide .elementor-button::after {
  display: inline-block;
  width: 25px;
  height: 18px;
  margin-left: 8px;
  background-image: url("/wp-content/themes/everloom/assets/images/arrow.svg");
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  vertical-align: middle;
}

.dng-home-slide .elementor-button:hover::after {
  width: 49px;
  height: 18px;
  background-image: url("/wp-content/themes/everloom/assets/images/arrow-long.svg");
}

.dng-home-slide .swiper-pagination {
  margin-bottom: -32px;
}

.dng-home-slide .elementor-background-overlay {
  background: linear-gradient(
    270deg,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.4) 100%
  );
}

.dng-product-categories {
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0) 50%,
    rgba(0, 0, 0, 0.72) 100%
  );
}

.dng-product-categories .elementor-widget-icon {
  display: none;
}

.dng-product-categories:hover .elementor-widget-icon {
  display: block;
}

.dng-form-newsletter .elementor-form-fields-wrapper {
  display: grid;
  gap: 0px 0px;
  grid-template-areas:
    "email submit"
    "acceptance acceptance";
  grid-template-columns: 70% 30%;
  grid-template-rows: auto auto;
}

@media (max-width: 767px) {
  .dng-form-newsletter .elementor-form-fields-wrapper {
    grid-template-areas:
      "email"
      "submit"
      "acceptance";
    grid-template-columns: 100%;
    grid-template-rows: auto auto auto;
  }
}

.dng-form-newsletter .elementor-field-type-email {
  grid-area: email;
}

.dng-form-newsletter .elementor-field-type-acceptance {
  grid-area: acceptance;
}

.dng-form-contacts .elementor-field-type-acceptance a {
  color: var(--e-global-color-39fc739) !important;
  text-decoration: underline;
  text-underline-position: under;
}

.dng-form-newsletter .elementor-field-type-acceptance a {
  color: var(--e-global-color-secondary) !important;
  text-decoration: underline;
  text-underline-position: under;
}

.dng-form-contacts .elementor-field-type-acceptance a:hover,
.dng-form-newsletter .elementor-field-type-acceptance a:hover {
  opacity: 0.9;
}

.dng-form-newsletter .elementor-field-type-submit {
  grid-area: submit;
}

.dng-form-contacts input:not([type="checkbox"]),
.dng-form-newsletter input:not([type="checkbox"]),
.dng-form-contacts .elementor-button[type="submit"],
.dng-form-newsletter .elementor-button[type="submit"] {
  padding: 12px 24px;
}

.dng-form-contacts .elementor-button[type="submit"] {
  border: 1px solid var(--e-global-color-39fc739) !important;
}

.dng-form-newsletter .elementor-button[type="submit"] {
  border: 1px solid var(--e-global-color-secondary) !important;
}

/* Contactos form sits on the light #BEAA90 block, unlike the dormant black
   variant in template 188 — scoped so only this one goes dark. */
.dng-form-contacts-light .elementor-field-type-acceptance a {
  color: var(--e-global-color-secondary) !important;
}

.dng-form-contacts-light .elementor-button[type="submit"] {
  border: 1px solid var(--e-global-color-secondary) !important;
}

/* Drawer nav: the pointer marks the current page only, never hover.
   :focus is deliberately left intact so keyboard users keep an indicator.
   The footer is not listed here — it uses pointer:none, so it has no pointer
   to suppress. */
.elementor-92
  .elementor-nav-menu--main
  .elementor-item:not(.elementor-item-active):not(.highlighted):hover:after,
.elementor-92
  .elementor-nav-menu--main
  .elementor-item:not(.elementor-item-active):not(.highlighted):hover:before {
  opacity: 0 !important;
}

.dng-form-newsletter .elementor-field-textual::-moz-placeholder, .dng-form-contacts .elementor-field-textual::-moz-placeholder {
  opacity: 1 !important;
  color: #757575;
  text-transform: uppercase;
}

.dng-form-newsletter .elementor-field-textual::placeholder,
.dng-form-contacts .elementor-field-textual::placeholder {
  opacity: 1 !important;
  color: #757575;
  text-transform: uppercase;
}

.dng-product-price_inner {
  position: relative;
  display: block;
  overflow: hidden;
}

.dng-product-image-hover {
  position: relative;
  width: 100%;
  height: 100%;
  margin-top: -20px;
  aspect-ratio: 1/1;
}

.dng-product-image-hover img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: opacity 0.3s ease-in-out;
}

.dng-product-image-hover .hover {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0;
}

.dng-product-image-hover:hover .hover {
  opacity: 1;
}

.dng-product-image-hover:hover .main {
  opacity: 0;
}

.dng-product-price .dng-product-icon {
  display: none;
  transition: opacity 0.3s ease-in-out;
}

.dng-product-price:hover .dng-product-icon {
  z-index: 3;
  display: block;
}

.dng-product-price .dng-badge {
  position: absolute;
  z-index: 3;
  top: 16px;
  left: 16px;
  display: inline-block;
  width: auto;
  box-sizing: border-box;
  padding: 8px;
  background-color: var(--e-global-color-39fc739);
  color: var(--e-global-color-secondary);
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  white-space: nowrap;
}

.dng-product-price .price {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  margin-top: 0;
}

/* row-reverse exists only to put the sale price before the struck-through
   original (Woo emits <del> first). Scoped to sale prices so it can no longer
   flip a variable product's low-to-high range into high-to-low. */
.dng-product-price .price:has(del) {
  flex-direction: row-reverse;
  justify-content: flex-end;
}

.dng-product-price .price ins {
  text-decoration: none;
}

.woocommerce div.product p.price del {
  margin-left: 15px;
  opacity: 1;
}

.woocommerce div.product p.price bdi,
.dng-product-price .price ins bdi {
  color: var(--e-global-color-secondary) !important;
  font-family: "Montserrat", Sans-serif !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  line-height: 1.5rem !important;
}

.woocommerce div.product p.price del bdi,
.dng-product-price:hover .woocommerce div.product p.price del bdi {
  color: var(--e-global-color-e0e0068) !important;
}

.woocommerce div.product p.price del bdi {
  font-size: 0.75rem !important;
  font-weight: 400 !important;
  line-height: 0.938rem !important;
}

.dng-shop-pagination .jet-filters-pagination__current {
  padding: 4px 13px;
  border: 1px solid var(--e-global-color-secondary);
  border-radius: 50%;
}

.single-product .price {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  margin-top: 16px;
  margin-bottom: 0;
}

/* Same reasoning as the product card: row-reverse is only there to put the
   sale price ahead of the struck-through original, so it must not apply to a
   variable product's low-to-high range. */
.single-product .price:has(del) {
  flex-direction: row-reverse;
  justify-content: flex-end;
}

.single-product .price ins {
  text-decoration: none;
}

.single-product .woocommerce div.product p.price del {
  margin-left: 15px;
  opacity: 1;
}

.single-product .dng-guia-tamanhos__btn .elementor-button:hover {
  text-decoration: underline;
  text-underline-position: under;
}

.single-product .elementor-widget-n-accordion .e-n-accordion-item-title-icon {
  margin-top: -15px;
  margin-right: 20px;
}

.single-product .woocommerce div.product form.cart .variations {
  margin-bottom: 24px;
}

.single-product .woocommerce-variation-add-to-cart,
.single-product table.variations tbody tr:nth-of-type(2) th {
  border-top: 1px solid var(--e-global-color-e0e0068) !important;
}

.single-product table.variations tbody tr:nth-of-type(2) th {
  margin-top: 24px;
}

.single-product .woocommerce-variation-add-to-cart,
.single-product table.variations tbody tr:nth-of-type(2) th label {
  padding-top: 24px;
}

.single-product .reset_variations {
  display: none !important;
}

.single-product .woocommerce-variation-price .price {
  margin-bottom: 24px;
  color: var(--e-global-color-secondary) !important;
}

.single-product .woocommerce-variation-price .price del {
  margin-left: 15px;
}

.woocommerce-cart .woocommerce form .form-row input,
.woocommerce-cart .elementor-widget-woocommerce-cart .woocommerce input {
  border-radius: 0 !important;
}

.woocommerce-cart #coupon_code {
  height: 54px;
}

.woocommerce-cart a:hover {
  text-decoration: underline;
  text-underline-position: under;
}

.woocommerce-cart .elementor-button:hover,
.woocommerce-cart .remove:hover,
.woocommerce-cart .checkout-button:hover {
  text-decoration: none !important;
}

@media (max-width: 767px) {
  .woocommerce-cart
    .elementor-widget-woocommerce-cart
    .woocommerce
    table.cart
    tr {
    padding: 0 !important;
  }
}

.elementor-widget-woocommerce-checkout-page
  .woocommerce
  .woocommerce-checkout-review-order-table
  .cart_item
  td {
  border-bottom: 1px solid transparent !important;
}

.woocommerce-checkout .product-total,
.woocommerce-checkout .shop_table tfoot td {
  text-align: right !important;
}

.woocommerce-checkout
  .woocommerce-checkout-review-order-table
  tfoot
  tr:first-child
  th,
.woocommerce-checkout
  .woocommerce-checkout-review-order-table
  tfoot
  tr:first-child
  td {
  padding: 20px 0;
  border-top: 2px solid var(--e-global-color-e0e0068);
}

.woocommerce-checkout .woocommerce-terms-and-conditions-link:hover,
.woocommerce-checkout .e-show-coupon-form:hover {
  text-decoration: underline;
  text-underline-position: under;
}

.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,
.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,
.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,
.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,
.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,
.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,
.elementor-widget-woocommerce-cart
  .woocommerce
  table.cart
  td.product-thumbnail {
  border-top: 1px solid transparent !important;
}

.woocommerce-MyAccount-navigation {
  padding: 0;
  background-color: var(--e-global-color-39fc739);
}

.woocommerce-MyAccount-navigation ul {
  padding-left: 0;
  margin: 0;
  list-style: none;
}

.woocommerce-MyAccount-navigation ul,
.woocommerce-MyAccount-navigation li a {
  border: none;
}

@media (max-width: 767px) {
  .woocommerce-MyAccount-navigation ul {
    padding-top: 5px;
    padding-bottom: 5px;
    margin-bottom: 30px;
  }
}

.woocommerce-MyAccount-navigation li a {
  display: flex;
  align-items: center;
  padding: 5px 40px 5px 30px;
  margin: 30px 0;
  color: var(--e-global-color-e0e0068) !important;
  font-family: var(--base-font);
  font-size: 1rem;
  font-weight: 400;
  text-decoration: none !important;
}

.woocommerce-MyAccount-navigation li:hover a,
.woocommerce-MyAccount-navigation li.is-active a {
  color: var(--e-global-color-secondary) !important;
}

.woocommerce-MyAccount-navigation-link--customer-logout a {
  font-weight: 700 !important;
}

@media (min-width: 768px) {
  .woocommerce-MyAccount-navigation li a {
    padding: 5px 10px;
    margin: 15px 0;
  }
}

@media (min-width: 1200px) {
  .woocommerce-MyAccount-navigation li a {
    padding: 5px 40px 5px 30px;
    margin: 30px 0;
    font-size: 14px;
  }
}

.woocommerce-MyAccount-navigation-link--my-dashboard a {
  position: relative;
  padding-top: 30px !important;
  color: var(--e-global-color-secondary) !important;
}

@media (min-width: 769px) and (max-width: 1200px) {
  .woocommerce-MyAccount-navigation-link--my-dashboard a {
    padding-top: 22px !important;
  }
}

.woocommerce-MyAccount-navigation-link--customer-logout {
  position: relative;
  overflow: hidden;
  max-width: 100%;
  margin-top: 90px;
}

.woocommerce-MyAccount-navigation-link--customer-logout::after {
  position: absolute;
  top: 0;
  right: 30px;
  left: 30px;
  height: 2px;
  background-color: var(--e-global-color-secondary);
  content: "";
}

.woocommerce-MyAccount-navigation li.is-active a {
  position: relative;
  color: var(--e-global-color-secondary);
  font-weight: 600;
}

.woocommerce-MyAccount-navigation li.is-active a::after {
  position: absolute;
  top: 0;
  right: -1px;
  display: block;
  width: 3px;
  height: 100%;
  background-color: var(--e-global-color-secondary);
  content: "";
}

.woocommerce-MyAccount-navigation li a:hover {
  border: none;
}

.dng-wc-account .site-main {
  max-width: 100% !important;
  padding: var(--section-padding) var(--content-padding) 0
    var(--content-padding) !important;
}

.dng-wc-account.logged-in .site-main {
  background-color: var(--e-global-color-a0defc3);
}

.dng-wc-account .page-content {
  max-width: var(--max-content-width);
  margin: 0 auto;
}

.dng-wc-account .page-header {
  display: none;
}

.dng-wc-account .woocommerce form.login,
.dng-wc-account .woocommerce form.register,
.dng-wc-account .woocommerce-ResetPassword.lost_reset_password {
  padding: 20px;
  border: none !important;
  border-radius: 0 !important;
  background-color: var(--e-global-color-39fc739) !important;
}

.dng-wc-account .woocommerce-ResetPassword {
  max-width: 500px !important;
  margin: auto !important;
}

.dng-wc-account .woocommerce-ResetPassword .form-row-first {
  width: 100%;
}

.dng-wc-account.logged-in .site-main {
  background-color: var(--e-global-color-a0defc3);
}

.dng-wc-account .page-content {
  max-width: var(--max-content-width);
  margin: 0 auto;
}

.dng-wc-account .page-header {
  display: none;
}

.dng-wc-account .woocommerce form.login,
.dng-wc-account .woocommerce form.register,
.dng-wc-account .woocommerce-ResetPassword.lost_reset_password {
  padding: 20px;
  border: none !important;
  border-radius: 0 !important;
  background-color: #ffffffe6 !important;
}

.dng-wc-account .woocommerce-ResetPassword {
  max-width: 500px !important;
  margin: auto !important;
}

.dng-wc-account .woocommerce-ResetPassword .form-row-first {
  width: 100%;
}

.dng-my-account .woocommerce table.shop_table,
.dng-my-account .woocommerce table.shop_table th,
.dng-my-account .woocommerce table.shop_table td {
  border: none !important;
}

.dng-my-account .woocommerce .woocommerce-customer-details address {
  border-radius: 0;
}

.dng-my-account table.shop_table tfoot tr:last-child td:last-child {
  font-weight: 400 !important;
}

.dng-my-account .woocommerce-Addresses .woocommerce-Address-title {
  display: flex;
  flex-direction: column;
  align-items: self-start;
  justify-content: flex-start;
  padding-bottom: 15px;
}

.dng-my-account .woocommerce-MyAccount-content h2 {
  margin-top: 0 !important;
  margin-bottom: 24px !important;
  font-family: var(--main-font);
  font-size: 1.5rem !important;
  font-weight: 500 !important;
  line-height: 2rem !important;
}

.dng-wc-account .woocommerce-MyAccount-content {
  padding: var(--content-padding);
  background-color: var(--e-global-color-39fc739);
}

.logged-in.dng-wc-account .woocommerce::before {
  display: none !important;
}

.logged-in.dng-wc-account .woocommerce {
  display: grid !important;
  gap: 0 !important;
  grid-template-areas: "nav content" !important;
  grid-template-columns: 25% 75% !important;
  grid-template-rows: 1fr !important;
}

@media (max-width: 767px) {
  .logged-in.dng-wc-account .woocommerce {
    gap: 0 !important;
    grid-template-areas:
      "nav"
      "content" !important;
    grid-template-columns: 100% !important;
    grid-template-rows: auto auto !important;
  }
}

.logged-in.dng-wc-account .woocommerce-MyAccount-navigation {
  grid-area: nav !important;
}

.logged-in.dng-wc-account .woocommerce-MyAccount-content {
  padding: var(--content-padding);
  grid-area: content !important;
}

.dng-wc-account .woocommerce-MyAccount-navigation,
.dng-wc-account .woocommerce-MyAccount-content {
  width: auto !important;
  float: none !important;
}

.dng-wc-account .woocommerce-customer-details h2,
.dng-wc-account .woocommerce-Address h3,
.dng-wc-account .woocommerce-edit-address h3,
.dng-wc-account .woocommerce-MyAccount-content form h3 {
  padding: 0;
  margin-bottom: 25px;
}

.dng-wc-account .woocommerce-MyAccount-content h2,
.dng-wc-account .woocommerce-MyAccount-content h3 {
  padding: 0;
  color: var(--e-global-color-secondary);
  font-family: var(--base-font);
  font-size: 24px;
  font-weight: 700;
  line-height: 32px;
  text-align: left;
}

.dng-wc-account .woocommerce-MyAccount-content p {
  background-color: transparent;
  color: var(--e-global-color-secondary);
  font-style: normal;
}

/* Dashboard greeting + description ran on the browser's bare 16px paragraph
   margin (no rule here touched it), so the two collapsed to a single tight
   16px gap — tighter than every other title-to-content gap in this area.
   Give the greeting real breathing room; the last paragraph in any stack
   stays flush since nothing needs to separate it from the panel edge. */
.dng-wc-account .woocommerce-MyAccount-content p:not(:last-child) {
  margin-bottom: 28px;
}

.dng-wc-account .woocommerce-MyAccount-content p:last-child {
  margin-bottom: 0;
}

.dng-wc-account .woocommerce-account table.shop_table {
  padding: 30px;
  border: none;
  background-color: var(--e-global-color-39fc739);
}

/*address section*/

.woocommerce-Addresses .woocommerce-Address-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 20px;
  margin: 0;
}

@media (max-width: 767px) {
  .woocommerce-Addresses .woocommerce-Address-title {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }
}

.woocommerce-account .addresses .title::after,
.woocommerce-account .addresses .title::before {
  display: none !important;
}

@media (max-width: 767px) {
  .col-2.woocommerce-Address {
    padding-top: 40px;
  }
}

.woocommerce-order-received .woocommerce-order {
  padding: var(--content-padding);
  background-color: var(--e-global-color-39fc739);
}

.woocommerce-order-received .woocommerce-order-details__title,
.woocommerce-order-received .woocommerce-column__title {
  color: var(--e-global-color-secondary);
}

.woocommerce-order-pay .woocommerce table.shop_table {
  border-radius: 0 !important;
}

/* Order-pay summary: Woo renders this as a full-width three-column table with
   a Produto/Qtd/Total header and 15px cell padding — 293px tall, mostly air,
   and sitting on nothing. Rebuilt as a receipt-style list: header dropped,
   the table de-tabled to blocks/flex so each row is label-left value-right,
   padding roughly halved, and the whole thing set on the same beige ground as
   the payment panel below — hairline border rather than that panel's 3px rule,
   so the panel stays the louder of the two. */
/* Summary and payment picker are one card, not two. "Método de pagamento" is
   the last row of the summary table but the heading for the radio list that
   follows, and a border running between them cut the label off from the thing
   it labels. The table keeps the top and sides, #payment keeps the bottom, and
   the seam where they meet is removed — so the pair reads as a single section
   inside one 3px outline. */
.woocommerce-order-pay .woocommerce table.shop_table {
  display: block;
  padding: 28px 28px 4px;
  border: 3px solid var(--ever-account-ink-muted);
  border-bottom: none;
  background-color: var(--ever-account-content-bg);
}

.woocommerce-order-pay .woocommerce table.shop_table thead {
  display: none;
}

.woocommerce-order-pay .woocommerce table.shop_table tbody,
.woocommerce-order-pay .woocommerce table.shop_table tfoot {
  display: block;
}

/* The 15px block padding lives on the tr itself, not the cells — zeroing only
   the cell padding still left 65px rows (15 + 7 + 21 + 7 + 15).
   flex-start, not space-between: a value flung to the far edge of a 1140px row
   is column behaviour, which is the table look this was meant to shed. Label
   and value sit together as one line of text. */
.woocommerce-order-pay .woocommerce table.shop_table tr {
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  padding: 0 !important;
  gap: 8px;
}

/* !important on colour: the grey (105,114,125) is set on an ancestor by the
   Elementor checkout widget and beat the plain declaration here. */
.woocommerce-order-pay .woocommerce table.shop_table th,
.woocommerce-order-pay .woocommerce table.shop_table td {
  display: block;
  padding: 7px 0 !important;
  border: none !important;
  color: var(--ever-account-ink-muted) !important;
}

.woocommerce-order-pay .woocommerce table.shop_table small,
.woocommerce-order-pay .woocommerce table.shop_table .woocommerce-Price-amount {
  color: var(--ever-account-ink-muted) !important;
}

/* The amount due is the one number worth finding at a glance. Positional
   because Woo puts no class on these rows here — counted from the end, since
   "Método de pagamento" is always last while a discount row would shift any
   count taken from the top. */
.woocommerce-order-pay .woocommerce table.shop_table tfoot tr:nth-last-child(2) th,
.woocommerce-order-pay .woocommerce table.shop_table tfoot tr:nth-last-child(2) td {
  font-size: 1.125rem;
  font-weight: 700;
}

/* Order-pay payment picker: Woo ships this panel in its default lavender-grey
   (rgba(129,110,153,.14) card, #dcd7e2 description box) — the one screen where
   the customer chooses how to pay, rendered in stock plugin colours against the
   warm palette used everywhere else. Same card treatment as the Multibanco
   reference block: brown rule, beige ground, square corners.
   Scoped to .woocommerce-order-pay on purpose — the main checkout uses the same
   #payment id but is styled by the Elementor checkout widget, and must not
   inherit this. */
.woocommerce-order-pay #payment {
  border: 3px solid var(--ever-account-ink-muted);
  border-top: none;
  border-radius: 0;
  background-color: var(--ever-account-content-bg);
}

/* Only the 3px rule around the panel draws a line here — no divider under the
   list, none between methods. Top padding is tight so "Método de pagamento",
   the last line of the summary card directly above, reads as the heading for
   these options rather than as a stray row of the card. */
.woocommerce-order-pay #payment ul.payment_methods {
  padding: 4px 28px 20px;
  border-bottom: none;
}

/* Rows sit directly on the card ground with hairline rules, like the
   reference block — the stock near-white row fill fought the beige.
   Selector mirrors the plugin's own
   `.woocommerce-order-pay #payment .wc_payment_methods .wc_payment_method`
   (1 id + 3 classes); a shorter one loses on class count no matter the
   source order, which is why the first attempt here had no effect. */
/* All four sides: the plugin puts a 1px #e5e5e5 box round each method (top,
   right and left — not just the bottom), which showed as a stray vertical
   hairline down the list once the bottom rule alone was cleared. */
.woocommerce-order-pay #payment .wc_payment_methods .wc_payment_method {
  padding: 10px 0;
  border: none !important;
  background: transparent;
  color: var(--ever-account-ink-muted) !important;
}

.woocommerce-order-pay #payment .woocommerce-terms-and-conditions {
  border: none !important;
  background: transparent !important;
}

.woocommerce-order-pay #payment ul.payment_methods label,
.woocommerce-order-pay #payment div.payment_box,
.woocommerce-order-pay #payment div.payment_box p,
.woocommerce-order-pay #payment .form-row,
.woocommerce-order-pay #payment .woocommerce-privacy-policy-text,
.woocommerce-order-pay #payment .woocommerce-privacy-policy-text p {
  color: var(--ever-account-ink-muted) !important;
}

/* The chosen method is the one piece of state on this screen — weight tells
   you what you picked without relying on the radio dot alone. */
.woocommerce-order-pay #payment ul.payment_methods li input:checked + label {
  font-weight: 700;
}

.woocommerce-order-pay #payment div.payment_box {
  border-radius: 0;
  background-color: var(--e-global-color-primary);
  color: var(--ever-account-ink-muted);
}

.woocommerce-order-pay #payment div.payment_box::before {
  border-bottom-color: var(--e-global-color-primary) !important;
}

.woocommerce-order-pay #payment .form-row.place-order {
  padding: 20px;
}

.woo-variation-swatches
  .wvs-style-squared.variable-items-wrapper
  .variable-item:not(.radio-variable-item) {
  border-radius: 0px !important;
}

.woocommerce div.product form.cart .variations label {
  padding-bottom: 24px;
  font-family: "Montserrat", Sans-serif !important;
  font-size: 1rem !important;
  line-height: 1.5rem !important;
  text-transform: uppercase !important;
}

.woocommerce div.product form.cart .variations label,
.woo-variation-swatches.wvs-show-label
  .variations
  th
  .woo-selected-variation-item-name,
.woo-variation-swatches.wvs-show-label
  .variations
  td
  .woo-selected-variation-item-name {
  font-weight: 300 !important;
}

.elementor-menu-cart__footer-buttons {
  display: flex !important;
  flex-direction: column !important;
}

.dng-checkout__content a:not(.button),
.dng-wc-account .site-main a:not(.button) {
  text-decoration: underline;
  text-underline-position: under;
}

.dng-wc-account .site-main a:not(.button) {
  color: var(--e-global-color-secondary);
}

.dng-wc-account .site-main a:not(.button):hover {
  color: var(--e-global-color-secondary);
}

/*buttons*/

.button.alt,
.woocommerce-notices-wrapper .button,
.dng-wc-account .woocommerce-MyAccount-content .edit,
.dng-wc-account .woocommerce-MyAccount-content .button,
.dng-wc-account .button.woocommerce-form-login__submit,
.dng-wc-account .button.woocommerce-form-register__submit,
.woocommerce-lost-password .woocommerce-Button.button {
  border-color: var(--ever-account-ink-muted) !important;
  border-radius: 0 !important;
  background-color: var(--ever-account-ink-muted) !important;
  color: var(--e-global-color-39fc739) !important;
  font-size: 1rem !important;
  font-weight: 300 !important;
  line-height: 1.5rem !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  transition: all 0.2s;
}

.dng-wc-account .woocommerce-MyAccount-content .edit,
.dng-wc-account .woocommerce-MyAccount-content .button {
  padding: 8px 12px !important;
  text-decoration: none !important;
}

.button.alt,
.woocommerce-notices-wrapper .button,
.dng-wc-account .button.woocommerce-form-login__submit,
.dng-wc-account .button.woocommerce-form-register__submit,
.woocommerce-lost-password .woocommerce-Button.button {
  padding: 8px 24px 8px 24px !important;
  letter-spacing: 0.125rem !important;
}

.button.alt:hover,
.woocommerce-notices-wrapper .button:hover,
.dng-wc-account .woocommerce-MyAccount-content .edit:hover,
.dng-wc-account .woocommerce-MyAccount-content .button:hover,
.dng-wc-account .button.woocommerce-form-login__submit:hover,
.dng-wc-account .button.woocommerce-form-register__submit:hover,
.woocommerce-lost-password .woocommerce-Button.button:hover {
  border-color: var(--ever-account-ink-muted-dark) !important;
  background-color: var(--ever-account-ink-muted-dark) !important;
  color: var(--e-global-color-39fc739) !important;
}

/* Woocommerce Notices*/

.woocommerce-message {
  border-top-color: var(--e-global-color-2ffba3e) !important;
  color: var(--e-global-color-39fc739);
}

.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
  background-color: var(--ever-account-ink-muted);
}

.woocommerce-message::before {
  color: var(--e-global-color-2ffba3e) !important;
}

.woocommerce-message a.button {
  padding: 0;
  background-color: transparent !important;
  color: var(--e-global-color-39fc739) !important;
  font-family: "Montserrat", Sans-serif !important;
  font-size: 1rem !important;
  font-weight: 300 !important;
  line-height: 1.5rem !important;
  text-transform: uppercase !important;
}

.woocommerce-message a.button:hover {
  background-color: transparent !important;
  text-decoration: underline;
  text-underline-position: under;
}

.woocommerce-error {
  border-top-color: var(--e-global-color-d48dce3) !important;
  color: var(--e-global-color-39fc739);
}

.woocommerce-error::before {
  color: var(--e-global-color-d48dce3) !important;
}

.woocommerce-info {
  border-top-color: var(--e-global-color-a3ebb72) !important;
  color: var(--e-global-color-39fc739);
}

.woocommerce-info::before {
  color: var(--e-global-color-a3ebb72) !important;
}

.woocommerce-message a,
.woocommerce-error a,
.woocommerce-info a {
  text-decoration: none;
}

.woocommerce-message p,
.woocommerce-error p,
.woocommerce-info p,
.woocommerce-message ul,
.woocommerce-info ul {
  margin-top: 0;
  margin-bottom: 0;
}

/* Woo's ::after is a display:table clearfix that sits under the floated
   button and stretches the bar downwards, pushing the text off centre. */
.woocommerce-message::after,
.woocommerce-error::after,
.woocommerce-info::after {
  content: none;
}

/* ::before is re-used as the status icon, pinned at top:1em — centre it */
.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info::before {
  top: 50%;
  transform: translateY(-50%);
}

/* drop the coloured 3px rule Woo draws above every notice */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
  border-top: none;
}

/* Only notices carrying an action button become flex rows. Scoped with
   :has(> .button) on purpose: an .woocommerce-info with an inline link
   mid-sentence ("Tem um cupão? Clique aqui") must stay in normal text flow,
   because flex would split it into separate items and eat the space between. */
.woocommerce-message:has(> .button),
.woocommerce-info:has(> .button),
.woocommerce-error li:has(> .button) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1em;
}

.woocommerce-message > .button,
.woocommerce-info > .button,
.woocommerce-error li > .button {
  float: none;
  flex-shrink: 0;
  margin: 0;
}

/* stack on narrow screens so a long message can't crush the button */
@media (max-width: 767px) {
  .woocommerce-message:has(> .button),
  .woocommerce-info:has(> .button),
  .woocommerce-error li:has(> .button) {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
}

/* --- Order-received alignment ---------------------------------------------

   The page title sits at the container edge (L=150, W=1140) but every piece of
   order content sat 30px right of it, and the order summary a further 40px right
   of that — three different left edges down one page. Two separate causes:

   1. `.woocommerce-order-received .woocommerce-order` (our own rule, above)
      applies `padding: var(--content-padding)` = 30px on all four sides. The
      vertical rhythm is wanted; the horizontal inset is what breaks the
      alignment against the heading. Keep the first, drop the second.

   2. `ul.woocommerce-order-overview` is a <ul> with `list-style: none` but the
      browser's default 40px list indent still intact — nothing in Woo or the
      theme ever resets it, so the summary alone sat at 220 instead of 180.
      `list-style: none` hides the markers; it does not remove the indent. */
.woocommerce-order-received .woocommerce-order {
  padding-left: 0;
  padding-right: 0;
}

.woocommerce-order-received ul.woocommerce-order-overview {
  padding-left: 0;
  margin-left: 0;
}

/* Elementor's checkout widget sets `.elementor-widget-woocommerce-checkout-page
   .woocommerce h3 { margin: var(--sections-title-spacing, 30px) }` at (0,2,1),
   which outranks the Payshop plugin's own `.payshop-references-header h3
   { margin: 0 }` at (0,1,1) — on specificity this time, not just source order.
   The header is a flex row with `align-items: center`, and align-items centres
   the MARGIN box, so a 30px bottom margin lifted the title 15px above the icon.
   (0,3,1) restores the plugin's intent and the two line up. */
.woocommerce .payshop-references-container .payshop-references-header h3 {
  margin: 0;
}

/* Payshop reference block (thank-you page + order details).
   The plugin ships the correct rule — `.payshop-references-header img { height: 40px }`
   in references-dialog.css — but `.elementor img { height: auto }` and
   `.woocommerce img { height: auto }` match at the SAME specificity (0,1,1) and
   Elementor's frontend.css loads last, so source order wins and the Multibanco
   PNG rendered at its natural 555x630. Restoring the plugin's intended size with
   one extra class (0,2,1) rather than !important, so the plugin stays able to
   change its own value later.

   max-height rather than the plugin's flat height:40px on purpose: the two icons
   are wildly different sizes (multibanco-reference.png is 555x630, payshop-reference.png
   is 73x21). A fixed height clamps the big one correctly but UPSCALES the small one
   from 21px to 40px and makes it blurry. max-height clamps only what overflows. */
.payshop-references-container .payshop-references-header img {
  height: auto;
  max-height: 40px;
  width: auto;
  max-width: 100%;
}

/* Payment-reference card (order-received): the plugin ships a thin generic
   blue-on-grey box that reads as a system dialog, not the thing the customer
   most needs to act on. Brand it into the same warm-brown family as the rest
   of the account UI and give it real weight, square corners to match the
   site's shape language instead of the plugin's 8px radius. */
.payshop-references-container {
  border: 3px solid var(--ever-account-ink-muted) !important;
  border-radius: 0 !important;
  background-color: var(--ever-account-content-bg) !important;
  box-shadow: 0 4px 16px rgba(68, 58, 46, 0.12);
}

.payshop-references-header {
  border-bottom: none !important;
  margin-bottom: 28px !important;
}

.payshop-references-header h3 {
  font-family: var(--base-font);
  font-weight: 700 !important;
  color: var(--ever-account-ink-muted) !important;
}

.payshop-reference-item {
  border-bottom-color: rgba(68, 58, 46, 0.15) !important;
}

.payshop-reference-item .label {
  color: var(--ever-account-ink-muted) !important;
  opacity: 0.75;
}

.payshop-reference-item .value {
  color: var(--ever-account-ink-muted) !important;
  font-size: 1.3em !important;
}

.payshop-references-footer {
  color: var(--ever-account-ink-muted) !important;
  opacity: 0.75;
}

/* Order-received section titles: "Detalhes da encomenda" carried its own
   top margin but "Morada de facturação"/"Morada de envio" had none, so the
   gap above them was whatever margin the previous block happened to leave —
   0 to 20px depending on content length. Every section title now opens with
   the same larger gap, so the page reads as a sequence of separated
   sections on scroll instead of an uneven run. */
.woocommerce-order-received .woocommerce-order-details__title,
.woocommerce-order-received .woocommerce-column__title {
  margin-top: 48px !important;
  margin-bottom: 20px !important;
}

/* Every notice sits on the same dark bar, so everything drawn on it is white.
   Woo wraps each error line in <a><strong>…</strong></a>; neither inherits the
   container's colour, so both fell back to the global black link/strong colour
   and the message rendered black-on-black — visible only as the status icon.
   The container colour alone is not enough: it only reaches bare text nodes.
   Scoped to the notice, so it cannot leak into page content. */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info,
.woocommerce-message *,
.woocommerce-error *,
.woocommerce-info * {
  color: var(--e-global-color-39fc739) !important;
}

/* Status icon matches the text rather than carrying its own accent colour. */
.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info::before {
  color: var(--e-global-color-39fc739) !important;
}

/*Forms*/

.woocommerce form .form-row .input-text,
.woocommerce form .form-row select {
  border-radius: 0;
}

.woocommerce-EditAccountForm p:last-of-type {
  padding-top: 20px;
  margin: 0;
}


/* --- Sale price strikethrough -------------------------------------------
   The <del> wrapper renders at a larger font-size than the <bdi> inside it,
   so a line-through declared on <del> is positioned from the wrapper's own
   metrics and lands below the smaller text, reading as an underline.
   Draw the line on the <bdi>, which carries the size actually rendered.
   :has() guards it so a <del> with no <bdi> keeps its native line. */

.woocommerce .price del:has(bdi),
.dng-product-price .price del:has(bdi),
.woocommerce-variation-price .price del:has(bdi) {
  text-decoration: none;
}

.woocommerce .price del bdi,
.dng-product-price .price del bdi,
.woocommerce-variation-price .price del bdi {
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  text-decoration-skip-ink: none;
}

/* --- My Account panels ----------------------------------------------------
   Two tinted columns: the nav takes the newsletter brown (#BEAA90) and the
   content takes a lighter tint of the same hue, so the pair reads as one
   family rather than two unrelated blocks.

   Corners stay square on purpose: buttons and address blocks across the site
   are all `border-radius: 0`, so rounding these would break the shape
   language.

   The active item is marked with an underline on the text itself, drawn with
   text-decoration rather than a positioned bar so it tracks the label's own
   width instead of the full row.

   CONTRAST WARNING: nav text is white on #BEAA90, which measures 2.25:1 —
   below the WCAG AA minimum of 4.5:1 for body text. This is a deliberate,
   requested look, not an oversight. To make it pass while keeping the same
   family, darken the nav ground to about #826C51 (white then clears 4.5:1)
   or revert the text to the previous #443A2E. */

:root {
  --ever-account-nav-bg: #beaa90;
  --ever-account-content-bg: #e5ddd3;
  --ever-account-ink-muted: #443a2e;
  --ever-account-ink-muted-dark: #2e2519;
}

.woocommerce-MyAccount-navigation {
  padding: 16px 0;
  background-color: var(--ever-account-nav-bg);
}

/* Column heights. `align-self: start` was set so a long form could not turn
   the nav into a tall brown slab beside a short list. That trade flipped once
   the 40px column gap went to 0: the two panels now butt together as one
   two-tone card, and a nav that hugs its own content bites a chunk out of it.
   So: stretch to equal height on desktop, keep the hug on mobile, where the
   panels stack and each should end where its content does. */

.logged-in.dng-wc-account .woocommerce-MyAccount-navigation {
  align-self: start;
}

@media (min-width: 768px) {
  .logged-in.dng-wc-account .woocommerce-MyAccount-navigation {
    align-self: stretch;
  }
}

.dng-wc-account .woocommerce-MyAccount-content {
  background-color: var(--ever-account-content-bg);
}

/* Nav rhythm. The 30px link margins were sized around a stray <br> that
   wpautop injected into every link (the shortcode used to sit in a Text
   Editor widget); with that gone the list only needs a compact rhythm. */

.woocommerce-MyAccount-navigation li a,
.woocommerce-MyAccount-navigation-link--my-dashboard a {
  padding: 10px 30px !important;
  margin: 0 !important;
  color: #fff !important;
}

.woocommerce-MyAccount-navigation li:hover a,
.woocommerce-MyAccount-navigation li.is-active a {
  color: #fff !important;
}

/* Underline the label, not the row: the old bar was an absolutely positioned
   ::after spanning the full row height. Suppress it and let text-decoration
   draw the mark so it matches the text width. */

.woocommerce-MyAccount-navigation li.is-active a::after {
  display: none;
}

.woocommerce-MyAccount-navigation li.is-active a {
  text-decoration: underline !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 6px;
}

/* The logout <li> is `overflow: hidden`, so its rule has to sit at top: 0 —
   anything negative is clipped. The gap above it comes from the margin. */

.woocommerce-MyAccount-navigation-link--customer-logout {
  margin-top: 18px;
}

.woocommerce-MyAccount-navigation-link--customer-logout::after {
  top: 0;
  right: 30px;
  left: 30px;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.5);
}

.woocommerce-MyAccount-navigation-link--customer-logout a {
  padding-top: 18px !important;
}

@media (max-width: 767px) {
  .woocommerce-MyAccount-navigation {
    padding: 8px 0 14px;
  }
}

/* Form rhythm. Labels sat flush against their inputs (0px gap) and rows were
   6px apart, so a field and the next field's label were closer than the label
   was to its own input — the grouping read backwards. Separate the two
   distances: small inside a field, larger between fields. */

.dng-wc-account .woocommerce-MyAccount-content .form-row,
.dng-wc-account .woocommerce-MyAccount-content .woocommerce-form-row {
  padding: 0;
  margin: 0 0 20px;
}

.dng-wc-account .woocommerce-MyAccount-content .form-row label,
.dng-wc-account .woocommerce-MyAccount-content .woocommerce-form-row label {
  display: block;
  margin-bottom: 7px;
  line-height: 1.4;
}

.dng-wc-account .woocommerce-MyAccount-content .form-row input.input-text,
.dng-wc-account .woocommerce-MyAccount-content .form-row select,
.dng-wc-account .woocommerce-MyAccount-content .woocommerce-form-row input.input-text,
.dng-wc-account .woocommerce-MyAccount-content .select2-selection {
  padding: 10px 12px;
  border: 1px solid rgba(68, 58, 46, 0.25);
  background-color: #fff;
}

.dng-wc-account .woocommerce-MyAccount-content fieldset {
  padding: 0;
  border: 0;
  margin: 36px 0 0;
}

.dng-wc-account .woocommerce-MyAccount-content fieldset legend {
  padding: 0 0 14px;
  font-weight: 700;
}

/* Field hints ("Isto será como o seu nome será mostrado…") shipped at the same
   16px as the labels, so a note competed with the thing it annotates. */

.dng-wc-account .woocommerce-MyAccount-content em,
.dng-wc-account .woocommerce-MyAccount-content .description,
.dng-wc-account .woocommerce-MyAccount-content span.woocommerce-input-wrapper + em {
  display: inline-block;
  margin-top: 5px;
  font-size: 0.8125rem;
  line-height: 1.45;
  opacity: 0.75;
}

/* Buttons. They were 8px/12px at weight 300 — the footprint of a text link
   with a background, not of a control. Give them a real target and weight.
   `.edit` (the two address links) is listed explicitly: it carries no
   `.button` class of its own, which is why it kept the old cramped styling. */

.dng-wc-account .woocommerce-MyAccount-content .button,
.dng-wc-account .woocommerce-MyAccount-content button.button,
.dng-wc-account .woocommerce-MyAccount-content .woocommerce-Button,
.dng-wc-account .woocommerce-MyAccount-content a.edit,
.dng-wc-account .woocommerce-Address-title a.edit {
  display: inline-block;
  padding: 14px 32px !important;
  border: 1px solid var(--ever-account-ink-muted) !important;
  background-color: var(--ever-account-ink-muted) !important;
  color: #fff !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em;
  line-height: 1.25 !important;
  text-transform: uppercase;
  text-decoration: none !important;
}

.dng-wc-account .woocommerce-MyAccount-content .button:hover,
.dng-wc-account .woocommerce-MyAccount-content button.button:hover,
.dng-wc-account .woocommerce-MyAccount-content .woocommerce-Button:hover,
.dng-wc-account .woocommerce-MyAccount-content a.edit:hover,
.dng-wc-account .woocommerce-Address-title a.edit:hover {
  border-color: var(--ever-account-ink-muted-dark) !important;
  background-color: var(--ever-account-ink-muted-dark) !important;
  color: #fff !important;
}

/* Order row actions are navigation, not commitment — three filled black slabs
   butted together read as one control and shout louder than the order itself.
   Strip them back to spaced text links. This has to come after the button
   block above, which matches them on `.button`. */

.dng-wc-account .woocommerce-orders-table__cell-order-actions a.button,
.dng-wc-account .woocommerce-orders-table__cell-order-actions a.woocommerce-button {
  display: inline;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  color: var(--e-global-color-secondary) !important;
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  letter-spacing: 0;
  text-decoration: underline !important;
  text-underline-offset: 4px;
}

.dng-wc-account .woocommerce-orders-table__cell-order-actions a.button:hover,
.dng-wc-account .woocommerce-orders-table__cell-order-actions a.woocommerce-button:hover {
  background: none !important;
  color: var(--ever-account-ink-muted) !important;
  text-decoration: none !important;
}

/* Separate them with a real gap; they ship with no margin at all. */

.dng-wc-account .woocommerce-orders-table__cell-order-actions a + a {
  margin-left: 18px;
}

/* Rows need a divider. The theme already kills every shop_table border with
   `.dng-my-account .woocommerce table.shop_table td { border: none !important }`
   — (0,3,2) and !important — so !important alone loses this fight. Both body
   classes plus the table's own classes put these at (0,5,4) and they win. */

.dng-wc-account.dng-my-account .woocommerce table.shop_table.woocommerce-orders-table tbody tr td,
.dng-wc-account.dng-my-account .woocommerce table.shop_table.woocommerce-orders-table tbody tr th {
  padding: 16px 8px !important;
  border-bottom: 1px solid rgba(68, 58, 46, 0.2) !important;
}

.dng-wc-account.dng-my-account .woocommerce table.shop_table.woocommerce-orders-table thead tr th {
  padding: 0 8px 12px !important;
  border-bottom: 1px solid rgba(68, 58, 46, 0.35) !important;
  font-weight: 700;
}

.dng-wc-account.dng-my-account .woocommerce table.shop_table.woocommerce-orders-table tbody tr:last-child td,
.dng-wc-account.dng-my-account .woocommerce table.shop_table.woocommerce-orders-table tbody tr:last-child th {
  border-bottom: 0 !important;
}

/* Mobile inverts the meaning of the rules above. Woo stacks every cell onto
   its own line here (shop_table_responsive), so a per-cell bottom border stops
   separating ORDERS and starts drawing lines between Data / Estado / Total /
   Acções inside one order — and `tr:last-child` then strips them from the last
   order completely, which is why the first order showed lines and the second
   showed none. Below the breakpoint the separator belongs on the row (one
   order), not the cell. */
@media (max-width: 767px) {
  .dng-wc-account.dng-my-account .woocommerce table.shop_table.woocommerce-orders-table tbody tr td,
  .dng-wc-account.dng-my-account .woocommerce table.shop_table.woocommerce-orders-table tbody tr th {
    padding: 5px 8px !important;
    border-bottom: 0 !important;
  }

  .dng-wc-account.dng-my-account .woocommerce table.shop_table.woocommerce-orders-table tbody tr {
    padding: 22px 0;
    border-bottom: 1px solid rgba(68, 58, 46, 0.35);
  }

  .dng-wc-account.dng-my-account .woocommerce table.shop_table.woocommerce-orders-table tbody tr:first-child {
    padding-top: 0;
  }

  .dng-wc-account.dng-my-account .woocommerce table.shop_table.woocommerce-orders-table tbody tr:last-child {
    padding-bottom: 0;
    border-bottom: 0;
  }
}

/* The password reveal control is an icon button, not a CTA — keep it bare. */

.dng-wc-account .woocommerce-MyAccount-content button.show-password-input {
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
}
