/* ==========================================================================
   Princesa do Oceano — páginas interiores e loja
   --------------------------------------------------------------------------
   1. Extras globais     5. Cartão de produto    9. Checkout
   2. Cabeçalho página   6. Página de produto   10. Conta de cliente
   3. Texto corrido      7. Formulários         11. Páginas próprias
   4. Listagens          8. Carrinho            12. Responsivo
   ========================================================================== */

:root {
  --tint-1: #fbe2c6;
  --tint-2: #d7e6fa;
  --tint-3: #d8f0e2;
  --tint-4: #f9dbe2;
  --tint-5: #e6e1f6;
  --ok: #1d7a4c;
  --danger: #b42318;
}

/* 1. Extras globais -------------------------------------------------------- */

[hidden] {
  display: none !important;
}

body {
  min-height: 100vh;
}

select,
textarea {
  font: inherit;
  color: inherit;
}

.icon-btn--cart {
  position: relative;
}

.cart-count:not(:empty) {
  position: absolute;
  top: -0.2rem;
  right: -0.25rem;
  display: grid;
  place-items: center;
  min-width: 1.3rem;
  height: 1.3rem;
  padding: 0 0.3rem;
  border: 2px solid var(--paper);
  border-radius: 999px;
  background: var(--coral);
  color: var(--navy-900);
  font: 700 0.6875rem/1 var(--font-body);
}

.cart-count.is-bumped {
  animation: pop 0.5s var(--ease-spring);
}

.search--block {
  width: 100%;
}

.search--block input[type="search"] {
  height: 3.25rem;
}

.section--flush {
  padding-top: clamp(1.5rem, 3vw, 2.5rem);
}

.toast {
  position: fixed;
  bottom: 1.25rem;
  left: 50%;
  z-index: 90;
  display: flex;
  align-items: center;
  gap: 1rem;
  width: max-content;
  max-width: calc(100% - 2rem);
  padding: 0.65rem 0.65rem 0.65rem 1.1rem;
  border-radius: 999px;
  background: var(--navy-900);
  color: var(--white);
  box-shadow: 0 24px 40px -18px rgba(11, 26, 68, 0.6);
  font-size: 0.9375rem;
  transform: translateX(-50%);
  animation: rise 0.5s var(--ease) both;
}

.toast .icon {
  color: var(--coral);
}

.toast a {
  padding: 0.55rem 1rem;
  border-radius: 999px;
  background: var(--coral);
  color: var(--navy-900);
  font-weight: 600;
  white-space: nowrap;
}

/* 2. Cabeçalho das páginas ---------------------------------------------------- */

.page-head {
  padding-block: clamp(2rem, 4vw, 3.25rem) clamp(2.25rem, 5vw, 4rem);
  background:
    radial-gradient(40rem 20rem at 92% 0%, var(--foam) 0%, rgba(230, 237, 250, 0) 70%),
    radial-gradient(24rem 14rem at 0% 100%, rgba(255, 107, 61, 0.07) 0%, rgba(255, 107, 61, 0) 70%);
}

.page-head--compact {
  padding-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

.page-head .eyebrow {
  margin-top: 1.5rem;
}

.page-head .eyebrow b::after {
  display: none;
}

.page-head__title {
  max-width: 52rem;
  font-size: clamp(2.25rem, 1.4rem + 3.4vw, 4.25rem);
  overflow-wrap: anywhere;
}

.page-head--compact .page-head__title {
  font-size: clamp(2rem, 1.4rem + 2.4vw, 3.25rem);
}

.page-head__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  max-width: 40rem;
  margin-top: 2rem;
}

.page-head__actions .search {
  flex: 1 1 18rem;
}

.crumbs {
  font: 500 0.75rem/1.5 var(--font-mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.crumbs a {
  color: var(--navy-700);
  transition: color 0.3s;
}

.crumbs a:hover {
  color: var(--coral-deep);
}

.crumbs__sep {
  margin-inline: 0.5rem;
  opacity: 0.5;
}

/* 3. Texto corrido ------------------------------------------------------------ */

.prose {
  overflow-wrap: anywhere;
  max-width: 50rem;
  padding-top: clamp(1rem, 2vw, 2rem);
  font-size: 1.0625rem;
}

.prose > * + * {
  margin-top: 1.1em;
}

.prose h2,
.prose h3,
.prose h4 {
  margin-top: 2em;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.prose h2 { font-size: 1.75rem !important; }
.prose h3 { font-size: 1.375rem; }

.prose ul,
.prose ol {
  padding-left: 1.25rem;
}

.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }

.prose li + li {
  margin-top: 0.35em;
}

.prose li::marker {
  color: var(--coral-deep);
}

.prose a {
  color: var(--navy-700);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
  overflow-wrap: anywhere;
}

.prose a:hover {
  color: var(--coral-deep);
}

.prose img {
  border-radius: var(--r-md);
}

.prose table {
  width: 100%;
  border-collapse: collapse;
}

.prose th,
.prose td {
  padding: 0.6rem;
  border-bottom: 1px solid var(--line);
  text-align: left;
}

.post-list li {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  align-items: baseline;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
  list-style: none;
}

.post-list small {
  color: var(--muted);
}

/* 4. Listagens -------------------------------------------------------------- */

.shop__layout {
  display: grid;
  grid-template-columns: 16.5rem minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: start;
  padding-top: clamp(1.5rem, 3vw, 2.5rem);
}

.shop__layout > * {
  min-width: 0;
}

.shop__aside {
  position: sticky;
  top: 6rem;
  display: grid;
  gap: 1.25rem;
}

.shop__filter-toggle {
  display: none;
}

.shop__aside-title {
  margin-bottom: 0.75rem;
  font: 500 0.6875rem/1 var(--font-mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--navy-500);
}

.shop__cats,
.shop__help {
  padding: 1.25rem;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  background: var(--white);
}

.cat-tree a {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.45rem 0.65rem;
  border-radius: 0.6rem;
  font-size: 0.9375rem;
  font-weight: 500;
  transition: background-color 0.3s, color 0.3s;
}

.cat-tree a span {
  font: 400 0.75rem/1.6 var(--font-mono);
  color: var(--muted);
}

.cat-tree a:hover {
  background: var(--paper);
}

.cat-tree a.is-current {
  background: var(--navy-900);
  color: var(--white);
}

.cat-tree a.is-current span {
  color: var(--navy-300);
}

.cat-tree ul {
  margin: 0.2rem 0 0.4rem 0.75rem;
  padding-left: 0.5rem;
  border-left: 1px solid var(--line);
}

.cat-tree ul a {
  font-size: 0.875rem;
  font-weight: 400;
}

.shop__help p:last-child {
  font-size: 0.9375rem;
  color: var(--muted);
}

.shop__help a {
  font-weight: 600;
  color: var(--navy-900);
  white-space: nowrap;
}

.chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 1.5rem;
}

.chips a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.85rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  font-size: 0.875rem;
  font-weight: 500;
  transition: background-color 0.3s, border-color 0.3s, color 0.3s;
}

.chips a span {
  font: 400 0.6875rem/1 var(--font-mono);
  color: var(--muted);
}

.chips a:hover {
  border-color: var(--navy-900);
  background: var(--navy-900);
  color: var(--white);
}

.chips a:hover span {
  color: var(--navy-300);
}

.shop__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.woocommerce .shop__bar .woocommerce-result-count,
.woocommerce .shop__bar .woocommerce-ordering {
  float: none;
  margin: 0;
}

.woocommerce-result-count {
  font: 500 0.75rem/1 var(--font-mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.woocommerce-ordering select,
.woocommerce form .form-row select,
.woocommerce select {
  height: 2.75rem;
  padding: 0 2.5rem 0 1rem;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%230b1a44' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E") no-repeat right 1rem center;
  font-size: 0.9375rem;
  appearance: none;
  cursor: pointer;
}

/* A grelha do tema substitui as colunas flutuantes do WooCommerce. */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 0;
  padding: 0;
  overflow: visible;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product {
  float: none;
  clear: none;
  width: auto;
  margin: 0;
  padding: 0;
}

.woocommerce ul.products.columns-4,
.woocommerce .related ul.products,
.woocommerce .upsells ul.products {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.woocommerce nav.woocommerce-pagination {
  margin-top: 2.5rem;
}

.woocommerce nav.woocommerce-pagination ul {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem;
  border: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
  border: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: grid;
  place-items: center;
  min-width: 2.75rem;
  height: 2.75rem;
  padding: 0 0.75rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  font: 500 0.875rem/1 var(--font-mono);
  color: var(--navy-900);
}

.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus {
  border-color: var(--navy-900);
  background: var(--paper);
  color: var(--navy-900);
}

.woocommerce nav.woocommerce-pagination ul li span.current {
  border-color: var(--navy-900);
  background: var(--navy-900);
  color: var(--white);
}

.empty {
  display: grid;
  gap: 1.25rem;
  max-width: 34rem;
  padding: 2rem;
  border: 1px dashed var(--line-strong);
  border-radius: var(--r-xl);
  color: var(--muted);
}

/* 5. Cartão de produto -------------------------------------------------------- */

.p-card {
  position: relative;
  display: flex;
  flex-direction: column;
}

.p-card .product__media img {
  margin: 0 !important;
  mix-blend-mode: multiply;
}

.product__link {
  display: inline;
  height: auto;
}

/* O nome cobre o cartão inteiro; o botão de compra fica por cima. */
.product__link::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

.product__link:focus-visible {
  outline: 0;
}

.product__link:focus-visible::after {
  outline: 2.5px solid var(--coral-deep);
  outline-offset: 3px;
  border-radius: var(--r-lg);
}

.product__name {
  font-size: 0.9688rem;
}

.p-card .product__price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 0.1rem;
}

.product__price del {
  margin-left: 0.35rem;
  font: 400 0.8125rem/1 var(--font-body);
  letter-spacing: 0;
  color: var(--muted);
}

.product__from {
  margin-right: 0.3rem;
  font: 500 0.6875rem/1 var(--font-mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.product__badge {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  padding: 0.35rem 0.6rem;
  border-radius: 999px;
  background: var(--coral);
  font: 500 0.625rem/1 var(--font-mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.product__badge--muted {
  background: var(--paper-deep);
  color: var(--muted);
}

.product__add {
  position: relative;
  z-index: 2;
  flex: none;
  color: var(--navy-900);
}

.woocommerce .product__add.loading {
  opacity: 0.6;
  pointer-events: none;
}

.woocommerce .product__add.loading::after,
.woocommerce .product__add.added::after {
  display: none;
}

.product__add.added {
  border-color: var(--navy-900);
  background: var(--navy-900);
  color: var(--white);
}

.product__add:hover,
.product__add:focus-visible {
  border-color: var(--coral);
  background: var(--coral);
  color: var(--navy-900);
}

.p-card:hover .product__add {
  transform: none;
}

.added_to_cart.wc-forward {
  display: none !important;
}

/* 6. Página de produto ------------------------------------------------------- */

.single > .container > .crumbs {
  padding-top: clamp(1.5rem, 3vw, 2.25rem);
}

.woocommerce div.product {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
  margin-top: 1.75rem;
}

.woocommerce div.product > * {
  grid-column: 1 / -1;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
  float: none;
  width: auto;
  margin: 0;
}

.woocommerce div.product div.images {
  grid-column: 1;
}

.woocommerce div.product div.summary {
  grid-column: 2;
  align-self: start;
  position: sticky;
  top: 6.5rem;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  background: var(--white);
}

.woocommerce div.product div.images img {
  padding: 6%;
  mix-blend-mode: multiply;
}

.woocommerce div.product div.images .flex-control-thumbs {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.woocommerce div.product div.images .flex-control-thumbs li {
  width: 5rem;
}

.woocommerce div.product div.images .flex-control-thumbs li img {
  padding: 0.35rem;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--white);
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
  top: 1rem;
  right: 1rem;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background: var(--paper);
}

.woocommerce span.onsale {
  top: 1rem;
  left: 1rem;
  min-width: 0;
  min-height: 0;
  padding: 0.5rem 0.8rem;
  border-radius: 999px;
  background: var(--coral);
  color: var(--navy-900);
  font: 500 0.6875rem/1 var(--font-mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.woocommerce div.product > span.onsale {
  position: absolute;
  z-index: 3;
}

.summary__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.summary__meta .product__cat:hover {
  color: var(--coral-deep);
}

.product__sku--static {
  position: static;
  background: var(--white);
  border: 1px solid var(--line);
}

.woocommerce div.product .product_title {
  font-size: clamp(1.875rem, 1.3rem + 2vw, 2.75rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.03em;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  margin: 1.25rem 0 0;
  font: 700 clamp(2.25rem, 1.8rem + 1.5vw, 3rem)/1 var(--font-display);
  letter-spacing: -0.035em;
  color: var(--navy-900);
}

.woocommerce div.product p.price del {
  font-size: 0.5em;
  font-weight: 500;
  color: var(--muted);
}

.woocommerce div.product p.price ins {
  text-decoration: none;
}

.woocommerce-product-details__short-description {
  margin-top: 1.25rem;
  color: var(--muted);
}

.woocommerce div.product .stock {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 1.25rem 0 0;
  font: 500 0.75rem/1 var(--font-mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.woocommerce div.product .stock::before {
  content: "";
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: currentColor;
}

.woocommerce div.product p.stock.in-stock {
  color: var(--ok);
}

.woocommerce div.product p.stock.out-of-stock {
  color: var(--danger);
}

.woocommerce div.product form.cart {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 1.75rem 0 0;
  padding-top: 1.75rem;
  border-top: 1px solid var(--line);
}

.woocommerce div.product form.cart::before,
.woocommerce div.product form.cart::after {
  display: none;
}

.woocommerce div.product form.cart div.quantity,
.woocommerce div.product form.cart .button {
  float: none;
  margin: 0;
}

.woocommerce div.product form.cart .button {
  flex: 1 1 14rem;
}

.woocommerce .quantity .qty {
  width: 5.5rem;
  height: 3.375rem;
  border: 1.5px solid var(--line-strong);
  border-radius: 999px;
  background: var(--white);
  font: 600 1.0625rem/1 var(--font-body);
  text-align: center;
}

.woocommerce div.product form.cart .variations {
  width: 100%;
  margin-bottom: 0.5rem;
}

.yith-wcwl-add-to-wishlist {
  margin-top: 1rem;
}

.yith-wcwl-add-to-wishlist a,
.yith-wcwl-add-button a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--navy-900);
}

.perks {
  display: grid;
  gap: 0.6rem;
  margin-top: 1.75rem;
  padding: 1.25rem;
  border-radius: var(--r-lg);
  background: var(--white);
  border: 1px solid var(--line);
  font-size: 0.9375rem;
  color: var(--muted);
}

.perks li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.perks .icon {
  color: var(--coral-deep);
}

.perks b {
  font-weight: 600;
  color: var(--navy-900);
}

.woocommerce div.product .woocommerce-tabs {
  margin-top: clamp(1rem, 3vw, 2rem);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
  display: inline-flex;
  gap: 0.15rem;
  margin: 0 0 1.75rem;
  padding: 0.3rem;
  border-radius: 999px;
  background: rgba(11, 26, 68, 0.07);
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
  display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: 0.7rem 1.15rem;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--muted);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
  background: var(--navy-900);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--white);
}

.woocommerce div.product .woocommerce-tabs .panel {
  max-width: 50rem;
  margin: 0;
}

.woocommerce div.product .woocommerce-tabs .panel > h2:first-child {
  display: none;
}

.woocommerce div.product .woocommerce-tabs .panel > * + * {
  margin-top: 1em;
}

.woocommerce table.shop_attributes {
  border-color: var(--line);
}

.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
  padding: 0.75rem 1rem;
  border-color: var(--line);
  font-style: normal;
}

.woocommerce .star-rating span::before,
.woocommerce p.stars a {
  color: var(--coral-deep);
}

.woocommerce #reviews #comments ol.commentlist li .comment-text {
  border-color: var(--line);
  border-radius: var(--r-md);
}

.related,
.upsells {
  margin-top: clamp(3rem, 7vw, 6rem);
}

.related > h2,
.upsells > h2,
.cross-sells > h2 {
  margin-bottom: 1.75rem;
  font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem);
  font-weight: 700;
  letter-spacing: -0.03em;
}

/* 7. Formulários, botões e avisos ------------------------------------------ */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wpforms-container button[type="submit"],
.wpforms-container .wpforms-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  min-height: 3rem;
  padding: 0 1.4rem;
  border: 1.5px solid var(--line-strong);
  border-radius: 999px;
  background: var(--white);
  color: var(--navy-900);
  font: 600 0.9688rem/1 var(--font-body);
  transition: background-color 0.3s, border-color 0.3s, color 0.3s, transform 0.3s var(--ease);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
  border-color: var(--navy-900);
  background: var(--paper);
  color: var(--navy-900);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce div.product form.cart .button,
.woocommerce .checkout-button,
.woocommerce .woocommerce-form-login__submit,
.woocommerce .woocommerce-form-register__submit,
.woocommerce .woocommerce-Button.button,
.wpforms-container button[type="submit"],
.wpforms-container .wpforms-submit {
  min-height: 3.375rem;
  border-color: var(--navy-900);
  background: var(--navy-900);
  color: var(--white);
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce div.product form.cart .button:hover,
.wpforms-container button[type="submit"]:hover,
.wpforms-container .wpforms-submit:hover {
  border-color: var(--navy-700);
  background: var(--navy-700);
  color: var(--white);
}

.woocommerce a.button:active,
.woocommerce button.button:active {
  transform: scale(0.97);
}

.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] {
  opacity: 0.45;
  padding: 0 1.4rem;
}

.woocommerce form .form-row {
  margin: 0 0 1rem;
  padding: 0;
}

.woocommerce form .form-row label,
.wpforms-container .wpforms-field-label {
  display: block;
  margin-bottom: 0.4rem;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--navy-900);
}

.woocommerce form .form-row .required {
  color: var(--coral-deep);
  text-decoration: none;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce .input-text,
.woocommerce-page .input-text,
.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container input[type="tel"],
.wpforms-container textarea,
#review_form input[type="text"],
#review_form input[type="email"],
#review_form textarea,
.select2-container .select2-selection--single {
  width: 100%;
  min-height: 3rem;
  padding: 0.7rem 1rem;
  border: 1px solid var(--line-strong);
  border-radius: var(--r-md);
  background: var(--white);
  font-size: 1rem;
  line-height: 1.4;
  transition: border-color 0.3s, box-shadow 0.3s;
}

.woocommerce form .form-row textarea,
.wpforms-container textarea {
  min-height: 8rem;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.wpforms-container input:focus,
.wpforms-container textarea:focus {
  outline: 0;
  border-color: var(--navy-700);
  box-shadow: 0 0 0 4px rgba(24, 49, 110, 0.12);
}

.select2-container .select2-selection--single {
  display: flex;
  align-items: center;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 0;
  line-height: 1.4;
  color: var(--navy-900);
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
  top: 50%;
  right: 0.6rem;
  transform: translateY(-50%);
}

.select2-dropdown {
  border-color: var(--line-strong);
  border-radius: var(--r-md);
  overflow: hidden;
}

.woocommerce form .form-row.woocommerce-invalid input.input-text {
  border-color: var(--danger);
}

.woocommerce-error,
.woocommerce-info,
.woocommerce-message,
.wc-block-components-notice-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  margin: 0 0 1.5rem;
  padding: 1rem 1.25rem 1rem 3.25rem;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  background: var(--white);
  color: var(--navy-900);
  font-size: 0.9688rem;
  list-style: none;
}

.woocommerce-error::after,
.woocommerce-info::after,
.woocommerce-message::after {
  display: none;
}

.woocommerce-error::before,
.woocommerce-info::before,
.woocommerce-message::before {
  top: 50%;
  left: 1.25rem;
  transform: translateY(-50%);
}

.woocommerce-message { border-left: 4px solid var(--ok); }
.woocommerce-message::before { color: var(--ok); }
.woocommerce-info { border-left: 4px solid var(--navy-500); }
.woocommerce-info::before { color: var(--navy-500); }
.woocommerce-error { border-left: 4px solid var(--danger); }
.woocommerce-error::before { color: var(--danger); }

.woocommerce-error li {
  width: 100%;
}

.woocommerce-message .button,
.woocommerce-info .button {
  order: 2;
  min-height: 2.5rem;
  margin-left: auto;
  float: none !important;
}

#review_form .comment-form > p {
  margin-bottom: 1rem;
}

#review_form label {
  display: block;
  margin-bottom: 0.4rem;
  font-size: 0.875rem;
  font-weight: 600;
}

#review_form .comment-form-cookies-consent label {
  display: inline;
  font-weight: 400;
}

#review_form #reply-title {
  display: block;
  margin-bottom: 0.75rem;
  font: 700 1.375rem/1.2 var(--font-display);
}

div.wpforms-container-full .wpforms-form button[type="submit"],
div.wpforms-container-full .wpforms-form .wpforms-submit {
  height: auto !important;
  min-height: 3.375rem !important;
  padding: 0 1.6rem !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--navy-900) !important;
  color: var(--white) !important;
  font: 600 1rem/1 var(--font-body) !important;
}

div.wpforms-container-full .wpforms-form button[type="submit"]:hover {
  background: var(--navy-700) !important;
}

div.wpforms-container-full .wpforms-form input[type="text"],
div.wpforms-container-full .wpforms-form input[type="email"],
div.wpforms-container-full .wpforms-form textarea {
  border-radius: var(--r-md) !important;
  border-color: var(--line-strong) !important;
  max-width: 100% !important;
}

.qa__body ul,
.qa__body ol {
  margin-top: 0.5rem;
  padding-left: 1.25rem;
  list-style: disc;
}

.qa__body p + p {
  margin-top: 0.75rem;
}

/* 8. Carrinho ------------------------------------------------------------------ */

.wc-page__body {
  padding-top: clamp(0.5rem, 2vw, 1.5rem);
}

.woocommerce-cart .woocommerce {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: start;
}

.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce > .cart-empty,
.woocommerce-cart .woocommerce > .return-to-shop,
.woocommerce-cart .woocommerce > .wc-empty-cart-message {
  grid-column: 1 / -1;
}

.woocommerce-cart .cart-collaterals {
  position: sticky;
  top: 6.5rem;
}

.woocommerce-cart .cart-collaterals .cart_totals {
  float: none;
  width: 100%;
}

.woocommerce-cart .cart-collaterals .cross-sells {
  display: none;
}

.woocommerce table.shop_table {
  margin: 0;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  background: var(--white);
  border-collapse: separate;
  overflow: hidden;
}

.woocommerce table.shop_table th {
  padding: 1rem;
  font: 500 0.6875rem/1.2 var(--font-mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.woocommerce table.shop_table td {
  padding: 1rem;
  border-top: 1px solid var(--line);
}

.woocommerce table.shop_table td.product-name a {
  font-weight: 600;
}

.woocommerce table.shop_table td.product-name a:hover {
  color: var(--navy-700);
}

.woocommerce-cart table.cart img {
  width: 4.5rem;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  mix-blend-mode: multiply;
}

.woocommerce a.remove {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  color: var(--muted) !important;
  font-weight: 400;
  transition: background-color 0.3s, color 0.3s;
}

.woocommerce a.remove:hover {
  border-color: var(--danger);
  background: var(--danger);
  color: var(--white) !important;
}

.woocommerce-cart table.cart td.actions {
  padding: 1rem;
  background: var(--paper);
}

.woocommerce-cart table.cart td.actions .coupon {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.woocommerce-cart table.cart td.actions .coupon .input-text {
  width: 11rem;
  min-height: 3rem;
  margin: 0;
  padding: 0.7rem 1rem;
  border-radius: 999px;
}

.woocommerce .cart_totals,
.woocommerce-checkout-review-order,
.woocommerce .woocommerce-checkout #order_review {
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border-radius: var(--r-xl);
  background: var(--white);
  border: 1px solid var(--line);
}

.woocommerce .cart_totals h2,
#order_review_heading,
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3 {
  margin-bottom: 1rem;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.woocommerce .cart_totals table.shop_table,
.woocommerce-checkout-review-order table.shop_table {
  border: 0;
  border-radius: 0;
}

.woocommerce .cart_totals table.shop_table th,
.woocommerce .cart_totals table.shop_table td {
  padding: 0.85rem 0;
  border-top: 1px solid var(--line);
  vertical-align: top;
}

.woocommerce .cart_totals .order-total td {
  font: 700 1.5rem/1 var(--font-display);
}

.woocommerce ul#shipping_method li {
  margin-bottom: 0.35rem;
}

.woocommerce .wc-proceed-to-checkout {
  padding: 1.25rem 0 0;
}

.woocommerce .wc-proceed-to-checkout a.checkout-button {
  width: 100%;
  margin: 0;
  font-size: 1rem;
}

.cart-empty.woocommerce-info {
  padding-block: 1.5rem;
  font-size: 1.125rem;
}

.return-to-shop .button {
  margin-top: 0.5rem;
}

/* 9. Checkout ------------------------------------------------------------------ */

.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(20rem, 28rem);
  gap: 0 clamp(1.5rem, 4vw, 3.5rem);
  align-items: start;
}

.woocommerce-checkout form.checkout > * {
  grid-column: 1;
}

.woocommerce-checkout form.checkout #customer_details .col-1,
.woocommerce-checkout form.checkout #customer_details .col-2 {
  float: none;
  width: 100%;
}

.woocommerce-checkout form.checkout #customer_details .col-2 {
  margin-top: 1.5rem;
}

.woocommerce-checkout form.checkout #order_review_heading {
  grid-column: 2;
  grid-row: 1;
  margin-bottom: 1rem;
}

.woocommerce-checkout form.checkout #order_review {
  grid-column: 2;
  grid-row: 2 / span 4;
  position: sticky;
  top: 6.5rem;
}

.woocommerce-checkout #customer_details {
  grid-row: 1 / span 5;
}

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.lost_reset_password {
  margin: 0 0 1.5rem;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  background: var(--white);
}

.woocommerce-checkout #payment {
  margin-top: 1.25rem;
  border-radius: var(--r-lg);
  background: var(--paper);
}

.woocommerce-checkout #payment ul.payment_methods {
  padding: 1rem 1.25rem;
  border-color: var(--line);
}

.woocommerce-checkout #payment ul.payment_methods li {
  padding: 0.35rem 0;
}

.woocommerce-checkout #payment ul.payment_methods li img {
  display: inline-block;
  max-height: 1.5rem;
  margin-left: 0.4rem;
  vertical-align: middle;
}

.woocommerce-checkout #payment div.payment_box {
  border-radius: var(--r-md);
  background: var(--white);
  color: var(--muted);
}

.woocommerce-checkout #payment div.payment_box::before {
  border-bottom-color: var(--white);
}

.woocommerce-checkout #payment div.form-row {
  padding: 1.25rem;
}

.woocommerce-checkout #payment #place_order {
  width: 100%;
  float: none;
  font-size: 1rem;
}

.woocommerce-terms-and-conditions-wrapper {
  font-size: 0.875rem;
  color: var(--muted);
}

.woocommerce-order-overview,
.woocommerce ul.order_details {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin: 1.5rem 0;
  padding: 1.25rem;
  border-radius: var(--r-lg);
  background: var(--white);
  border: 1px solid var(--line);
}

.woocommerce ul.order_details li {
  margin: 0;
  padding-right: 1rem;
  border-right-color: var(--line);
}

/* 10. Conta de cliente ----------------------------------------------------------- */

.woocommerce-account .woocommerce {
  display: grid;
  grid-template-columns: 15rem minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: start;
}

.woocommerce-account:not(.logged-in) .woocommerce {
  display: block;
}

.woocommerce-account .woocommerce > .woocommerce-notices-wrapper {
  grid-column: 1 / -1;
}

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

.woocommerce-MyAccount-navigation ul {
  padding: 0.5rem;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  background: var(--white);
}

.woocommerce-MyAccount-navigation a {
  display: block;
  padding: 0.65rem 0.85rem;
  border-radius: 0.6rem;
  font-weight: 500;
  transition: background-color 0.3s;
}

.woocommerce-MyAccount-navigation a:hover {
  background: var(--paper);
}

.woocommerce-MyAccount-navigation .is-active a {
  background: var(--navy-900);
  color: var(--white);
}

.woocommerce-MyAccount-content > p:first-child {
  font-size: 1.125rem;
}

.woocommerce-MyAccount-content a:not(.button) {
  color: var(--navy-700);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.woocommerce-account .u-columns.col2-set {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2.5rem);
}

.woocommerce-account .u-columns.col2-set::before,
.woocommerce-account .u-columns.col2-set::after {
  display: none;
}

.woocommerce-account .u-columns .u-column1,
.woocommerce-account .u-columns .u-column2 {
  float: none;
  width: auto;
}

.woocommerce-account .u-columns h2 {
  margin-bottom: 1rem;
  font-size: 1.75rem;
  letter-spacing: -0.02em;
}

.woocommerce form .woocommerce-form-login__rememberme {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-right: 1rem;
}

.woocommerce-LostPassword a {
  color: var(--navy-700);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

/* Lista de desejos (YITH) */
.wishlist_table.shop_table {
  width: 100%;
}

.wishlist_table .product-thumbnail img {
  width: 4.5rem;
}

.wishlist-title h2 {
  font-size: 1.5rem;
}

/* 11. Páginas próprias -------------------------------------------------------------- */

.facts--boxed {
  margin-top: 0;
  padding: 0 clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  background: var(--white);
}

.message {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: stretch;
}

.form-card {
  margin-top: 2rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  background: var(--white);
}

.wpforms-container {
  margin: 0 !important;
}

.wpforms-container .wpforms-field {
  padding: 0 0 1rem !important;
}

.wpforms-container .wpforms-required-label {
  color: var(--coral-deep);
}

.wpforms-container .wpforms-error,
.wpforms-container label.wpforms-error {
  color: var(--danger) !important;
  font-size: 0.8125rem;
}

.wpforms-confirmation-container-full {
  border: 0 !important;
  border-left: 4px solid var(--ok) !important;
  border-radius: var(--r-md);
  background: var(--white) !important;
}

.message__map {
  position: relative;
  min-height: 26rem;
  overflow: hidden;
  border-radius: var(--r-2xl);
  background: var(--foam);
}

.message__map iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.message__directions {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  box-shadow: 0 14px 30px -14px rgba(11, 26, 68, 0.5);
}

.directory {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.directory__item {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-height: 15rem;
  padding: 1.5rem;
  border-radius: var(--r-xl);
  background: var(--tint);
}

.directory__title {
  font-size: clamp(1.6rem, 1.25rem + 1vw, 2.125rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.03em;
}

.directory__title a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

.directory .aisle__subs {
  max-width: none;
}

.directory__item:hover .aisle__go {
  background: var(--navy-900);
  color: var(--white);
  transform: rotate(45deg);
}

/* Aviso de cookies (sem plugin) */
.consent {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 95;
  display: grid;
  gap: 1rem;
  width: min(26rem, calc(100% - 2rem));
  padding: 1.25rem;
  border-radius: var(--r-lg);
  background: var(--navy-900);
  color: rgba(255, 255, 255, 0.82);
  box-shadow: 0 30px 50px -20px rgba(6, 16, 43, 0.6);
  font-size: 0.9063rem;
  animation: rise 0.6s var(--ease) both;
}

.consent p a {
  color: var(--white);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.consent__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.consent .btn {
  min-height: 2.75rem;
  padding: 0 1.2rem;
}

.consent .btn--ghost {
  border-color: rgba(255, 255, 255, 0.3);
  color: var(--white);
}

.consent .btn--ghost:hover {
  border-color: var(--white);
  background: transparent;
}

.consent .btn--coral {
  background: var(--coral);
  color: var(--navy-900);
}

/* 12. Responsivo ------------------------------------------------------------------- */

@media (max-width: 71.875rem) {
  .woocommerce ul.products,
  .woocommerce .related ul.products,
  .woocommerce .upsells ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .woocommerce .related ul.products li:nth-child(4) {
    display: none;
  }
}

@media (max-width: 64rem) {
  .shop__layout {
    grid-template-columns: 1fr;
  }

  .shop__aside {
    position: static;
  }

  .shop__filter-toggle {
    display: inline-flex;
    justify-self: start;
  }

  .shop__cats {
    display: none;
  }

  .filters-open .shop__cats {
    display: block;
  }

  .shop__help {
    display: none;
  }

  .woocommerce div.product {
    grid-template-columns: 1fr;
  }

  .woocommerce div.product div.images,
  .woocommerce div.product div.summary {
    grid-column: 1;
  }

  .woocommerce div.product div.summary {
    position: static;
  }

  .woocommerce-cart .woocommerce,
  .woocommerce-checkout form.checkout,
  .woocommerce-account .woocommerce {
    grid-template-columns: 1fr;
  }

  .woocommerce-checkout form.checkout #order_review_heading,
  .woocommerce-checkout form.checkout #order_review,
  .woocommerce-checkout #customer_details {
    grid-column: 1;
    grid-row: auto;
    position: static;
  }

  .woocommerce-checkout form.checkout #order_review_heading {
    margin-top: 2rem;
  }

  .woocommerce-cart .cart-collaterals {
    position: static;
  }

  .message {
    grid-template-columns: 1fr;
  }

  .directory {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 47.5rem) {
  .woocommerce ul.products,
  .woocommerce .related ul.products,
  .woocommerce .upsells ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.6rem;
  }

  .woocommerce .related ul.products li:nth-child(4) {
    display: flex;
  }

  /* No telemóvel a grelha da loja mantém duas colunas (só a homepage usa carrossel). */
  .woocommerce ul.products .p-card {
    flex: initial;
  }

  .p-card .product__media {
    padding: 4%;
  }

  .p-card .product__body {
    padding: 0.75rem;
  }

  .p-card .product__name {
    font-size: 0.875rem;
  }

  .p-card .product__price {
    font-size: 1.375rem;
  }

  .p-card .product__go {
    width: 2.25rem;
    height: 2.25rem;
  }

  .product__sku {
    display: none;
  }

  .woocommerce .shop_table_responsive tr td,
  .woocommerce-page .shop_table_responsive tr td {
    padding: 0.75rem 1rem;
  }

  .woocommerce-cart table.cart td.actions .coupon .input-text {
    flex: 1;
    width: auto;
  }

  .woocommerce-cart table.cart td.actions .button {
    width: 100%;
  }

  .woocommerce div.product .woocommerce-tabs ul.tabs {
    display: flex;
    max-width: 100%;
    overflow-x: auto;
  }

  .woocommerce-account .u-columns.col2-set {
    grid-template-columns: 1fr;
  }

  .directory {
    grid-template-columns: 1fr;
  }

  .message__map {
    min-height: 20rem;
  }

  .toast {
    bottom: 0.75rem;
    border-radius: var(--r-lg);
  }
}
