/* --------------------------------------------------------------------------
   Cabazes de Natal (/cabazes-de-natal/ e /en/christmas-hampers/)

   Segue a linguagem do resto do site: fundo de papel #f2f1ef, Spectral nos
   títulos com espaçamento largo, Lato leve no corpo, etiquetas e botões no
   vermelho da marca #ae2734 (o dos links e da FICHA TÉCNICA do azeite).
   Tudo dentro de .rg-cabazes / .rg-cz-*, para não tocar no tema.
   -------------------------------------------------------------------------- */
.rg-cabazes { --rg-ink: #161922; --rg-mute: #6f6a63; --rg-line: #d9d3ca; --rg-red: #ae2734; --rg-label: #ae2734; --rg-paper: #f2f1ef; }
.rg-cabazes { max-width: 1100px; margin: 0 auto; padding-bottom: 40px; color: #4a4744; }
.rg-cabazes p { font-weight: 300; }

.rg-cz-eyebrow, .rg-cz-label {
  font-family: "Spectral", Georgia, serif; font-weight: 500; text-transform: uppercase;
  letter-spacing: .22em; font-size: 13px; line-height: 1.4; color: var(--rg-label); margin: 0 0 10px;
}

/* abertura ------------------------------------------------------------- */
.rg-cz-intro { max-width: 760px; margin: 88px auto 80px; text-align: center; }
.rg-cz-intro h1 {
  font-family: "Spectral", Georgia, serif; font-weight: 500; font-size: 48px; line-height: 1.15;
  letter-spacing: .02em; text-transform: none; border: 0; padding: 0; margin: 0 0 22px;
}
.rg-cz-intro h1::after { display: none; }
.rg-cz-intro p { font-size: 17px; line-height: 1.7; }
.rg-cz-facts {
  display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; margin: 40px 0 0; padding: 22px 0;
  border-top: 1px solid var(--rg-line); border-bottom: 1px solid var(--rg-line);
}
.rg-cz-facts li { margin: 0; padding: 0 12px; list-style: none; }
.rg-cz-facts li + li { border-left: 1px solid var(--rg-line); }
.rg-cz-facts strong { display: block; font-family: "Spectral", Georgia, serif; font-weight: 500; font-size: 19px; color: var(--rg-ink); letter-spacing: .02em; }
.rg-cz-facts span { display: block; font-size: 13px; color: var(--rg-mute); margin-top: 2px; }

/* cabazes ---------------------------------------------------------------- */
.rg-cz-list { display: flex; flex-direction: column; gap: 88px; }
.rg-cabaz { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.rg-cabaz:nth-child(even) .rg-cabaz-img { order: 2; }
.rg-cabaz-img { display: block; margin: 0; background: #e9e4dc; aspect-ratio: 1 / 1; overflow: hidden; }
.rg-cabaz-img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s ease; }
.rg-cabaz:hover .rg-cabaz-img img { transform: scale(1.025); }
.rg-cabaz-body { max-width: 440px; }
.rg-cabazes .rg-cabaz-name {
  font-family: "Spectral", Georgia, serif; font-weight: 500; font-size: 36px; line-height: 1.1;
  letter-spacing: .03em; color: var(--rg-ink); margin: 0 0 16px;
}
.rg-cabaz-desc { font-size: 17px; line-height: 1.65; margin: 0 0 28px; }
.rg-cabaz-items { list-style: none; margin: 0 0 30px; padding: 0; border-top: 1px solid var(--rg-line); }
.rg-cabaz-items li { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--rg-line); }
.rg-cabaz-items a {
  display: flex; justify-content: space-between; align-items: center; padding: 11px 2px;
  color: var(--rg-ink); text-decoration: none; font-size: 15px;
}
.rg-cabaz-items a::after { content: "→"; color: var(--rg-mute); transition: transform .2s ease, color .2s ease; }
.rg-cabaz-items a:hover { color: var(--rg-red); }
.rg-cabaz-items a:hover::after { transform: translateX(4px); color: var(--rg-red); }
.rg-cabaz-buy { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.rg-cabaz-price { font-family: "Spectral", Georgia, serif; font-weight: 500; font-size: 30px; color: var(--rg-ink); margin: 0; }

.rg-qty { display: inline-flex; align-items: stretch; border: 1px solid var(--rg-ink); background: transparent; }
.rg-qty input {
  width: 46px; margin: 0; padding: 0; border: 0; text-align: center; background: transparent; box-shadow: none;
  font-family: "Spectral", Georgia, serif; font-size: 18px; color: var(--rg-ink);
  -moz-appearance: textfield; appearance: textfield;
}
.rg-qty input:focus { outline: none; background: #fff; }
.rg-qty input::-webkit-outer-spin-button, .rg-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rg-qty-btn {
  width: 44px; height: 46px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent;
  color: var(--rg-ink); font-size: 20px; line-height: 1; cursor: pointer; box-shadow: none;
}
.rg-qty-btn:hover { background: var(--rg-ink); color: #fff; }
.rg-cabaz.has-qty .rg-qty { background: #fff; }

/* encomenda -------------------------------------------------------------- */
.rg-cz-order { margin: 110px 0 0; padding: 48px 56px 52px; background: #fff; scroll-margin-top: 140px; }
.rg-cz-order > h2 {
  font-family: "Spectral", Georgia, serif; font-weight: 500; font-size: 30px; letter-spacing: .03em;
  color: var(--rg-ink); margin: 0 0 28px;
}
.rg-cz-order-grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: 56px; }
.rg-cz-summary { list-style: none; margin: 0 0 32px; padding: 0; border-top: 1px solid var(--rg-line); }
.rg-cz-summary li {
  display: flex; justify-content: space-between; gap: 16px; margin: 0; padding: 12px 0;
  list-style: none; border-bottom: 1px solid var(--rg-line); font-size: 15px; color: var(--rg-ink);
}
.rg-cz-summary li.is-empty { color: var(--rg-mute); font-style: italic; }
.rg-cz-summary .rg-sum-price { font-family: "Spectral", Georgia, serif; white-space: nowrap; }

.rg-cabazes-ship { border: 0; padding: 0; margin: 0; }
.rg-cabazes-ship legend { font-family: "Spectral", Georgia, serif; font-weight: 500; text-transform: uppercase; letter-spacing: .22em; font-size: 13px; color: var(--rg-label); margin-bottom: 10px; padding: 0; }
.rg-cabazes-ship label {
  display: flex; align-items: center; gap: 12px; margin: 0 0 8px; padding: 14px 16px; cursor: pointer;
  border: 1px solid var(--rg-line); color: var(--rg-ink); font-size: 15px; transition: border-color .2s ease;
}
.rg-cabazes-ship label:has(input:checked) { border-color: var(--rg-ink); }
.rg-cabazes-ship input, .rg-cabazes-adult input { margin: 0; accent-color: var(--rg-red); flex: none; }
.rg-ship-price { margin-left: auto; color: var(--rg-mute); font-family: "Spectral", Georgia, serif; }

.rg-cz-checkout { display: flex; flex-direction: column; }
.rg-cabazes-total {
  display: flex; justify-content: space-between; align-items: baseline; margin: 0 0 22px; padding-bottom: 16px;
  border-bottom: 1px solid var(--rg-ink); font-size: 14px; text-transform: uppercase; letter-spacing: .18em; color: var(--rg-ink);
}
.rg-cabazes-total strong { font-family: "Spectral", Georgia, serif; font-weight: 500; font-size: 34px; letter-spacing: 0; text-transform: none; }
.rg-cabazes-adult { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; line-height: 1.5; margin: 0 0 18px; cursor: pointer; }
.rg-cabazes-adult input { margin-top: 3px; }
.rg-cabazes-pay {
  width: 100%; margin: 0; padding: 18px 24px; background: var(--rg-red); color: #fff; border: 0; border-radius: 0;
  font-family: "Spectral", Georgia, serif; font-size: 15px; letter-spacing: .2em; text-transform: uppercase; cursor: pointer;
  transition: background .2s ease;
}
.rg-cabazes-pay:hover { background: #8e1f2a; }
.rg-cabazes-pay[disabled] { background: #b9b1a8; cursor: not-allowed; }
.rg-cabazes-secure { font-size: 12px; line-height: 1.6; color: var(--rg-mute); margin: 14px 0 0; }
.rg-cabazes-error { color: var(--rg-red); font-weight: 400; margin: 0 0 14px; font-size: 14px; }

.rg-cabazes-notice { padding: 18px 22px; margin: 40px 0 0; border-left: 3px solid var(--rg-red); background: #fff; color: var(--rg-ink); }
.rg-cabazes-notice.is-ok { border-left-color: #3d7a3a; }
.rg-cabazes-form.is-closed .rg-qty,
.rg-cabazes-form.is-closed .rg-cz-order { opacity: .5; pointer-events: none; }

/* condições ------------------------------------------------------------- */
.rg-cz-terms { margin: 96px 0 0; columns: 2 380px; column-gap: 56px; }
.rg-cz-terms h3 { column-span: all; margin-bottom: 24px; }
.rg-cz-terms p { font-size: 14px; line-height: 1.7; break-inside: avoid; }
.rg-cz-moderation { margin: 40px 0 0; text-align: right; text-transform: uppercase; color: #808080; font-size: 13px; letter-spacing: .04em; }

/* barra fixa com o total ------------------------------------------------ */
.rg-cz-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990;
  display: flex; align-items: center; justify-content: center; gap: 28px;
  padding: 12px 20px calc(12px + env(safe-area-inset-bottom)); background: #000; color: #fff;
  transform: translateY(100%); transition: transform .3s ease;
}
.rg-cz-bar.is-visible { transform: none; }
.rg-cz-bar[hidden] { display: none; }
.rg-cz-bar-info { font-size: 14px; letter-spacing: .06em; }
.rg-cz-bar-info strong { font-family: "Spectral", Georgia, serif; font-weight: 500; font-size: 20px; margin-left: 4px; }
#Content .rg-cz-bar-cta, .rg-cz-bar-cta {
  color: #fff; text-decoration: none; padding: 9px 20px; background: var(--rg-red);
  font-family: "Spectral", Georgia, serif; font-size: 13px; letter-spacing: .2em; text-transform: uppercase;
}
.rg-cz-bar-cta:hover { background: #8e1f2a; color: #fff; }

/* telemóvel ------------------------------------------------------------- */
@media (max-width: 959px) {
  .rg-cabaz { gap: 36px; }
  .rg-cz-order { padding: 36px 28px; }
  .rg-cz-order-grid { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 767px) {
  .rg-cz-intro { margin: 36px auto 48px; }
  .rg-cz-intro h1 { font-size: 30px; }
  .rg-cz-intro p { font-size: 16px; }
  .rg-cz-facts { grid-template-columns: 1fr; padding: 4px 0; }
  .rg-cz-facts li { padding: 14px 0; }
  .rg-cz-facts li + li { border-left: 0; border-top: 1px solid var(--rg-line); }
  .rg-cz-list { gap: 60px; }
  .rg-cabaz { grid-template-columns: 1fr; gap: 24px; }
  .rg-cabaz:nth-child(even) .rg-cabaz-img { order: 0; }
  .rg-cabaz-body { max-width: none; }
  .rg-cabazes .rg-cabaz-name { font-size: 30px; }
  .rg-cz-order { margin-top: 72px; padding: 28px 20px; margin-left: -10px; margin-right: -10px; }
  .rg-cz-terms { margin-top: 64px; }
  .rg-cz-bar { justify-content: space-between; gap: 12px; }
  .rg-cz-moderation { text-align: left; }
}

/* o tema dá às listas recuo e marcadores; aqui as listas são componentes */
#Content .rg-cabazes ul { margin: 0; padding: 0; list-style: none; background: none; }
#Content .rg-cabazes li { margin-bottom: 0; }
#Content .rg-cabazes .rg-cabaz-items { margin-bottom: 30px; }
#Content .rg-cabazes .rg-cz-summary { margin-bottom: 32px; }
#Content .rg-cabazes .rg-cz-facts { margin-top: 40px; padding: 22px 0; }
#Content .rg-cz-terms h3 { text-transform: none; }
@media (max-width: 767px) { #Content .rg-cabazes .rg-cz-facts { padding: 4px 0; } }

/* o logótipo deixa de estar num <h1> nesta página; mesmas regras que o tema dá a .mhb-logo h1 */
.mhb-logo .rg-logo { margin: 0; font-size: 0; line-height: 0; }

/* nome do cabaz é um link para a página dele */
#Content .rg-cabaz-name a { color: inherit; text-decoration: none; }
#Content .rg-cabaz-name a:hover { color: var(--rg-red); }
#Content .rg-cabaz-more {
  display: inline-block; margin-top: 22px; color: var(--rg-ink); text-decoration: none; font-family: "Spectral", Georgia, serif;
  font-size: 13px; letter-spacing: .2em; text-transform: uppercase; border-bottom: 1px solid var(--rg-ink); padding-bottom: 3px;
}
#Content .rg-cabaz-more::after { content: " →"; }
#Content .rg-cabaz-more:hover { color: var(--rg-red); border-color: var(--rg-red); }
.rg-cz-order > h2 { text-transform: none; }

/* página de cada cabaz -------------------------------------------------- */
.rg-cz-crumbs { margin: 48px 0 28px; font-size: 13px; letter-spacing: .06em; color: var(--rg-mute); }
#Content .rg-cz-crumbs a { color: var(--rg-mute); text-decoration: none; }
#Content .rg-cz-crumbs a:hover { color: var(--rg-red); }
.rg-cz-crumbs span[aria-hidden] { margin: 0 10px; }
.rg-cz-pd { display: grid; grid-template-columns: 1.1fr 1fr; gap: 64px; align-items: start; }
.rg-cz-pd-img { position: sticky; top: 140px; }
.rg-cz-pd-body { max-width: 460px; }
.rg-cz-product .rg-cabaz-name { font-size: 46px; margin-bottom: 18px; text-transform: none; }
.rg-cz-pd-body .rg-cabaz-buy { margin: 0 0 30px; }
.rg-cz-pd-body .rg-cabazes-ship { margin-bottom: 28px; }
.rg-cz-share {
  margin: 18px 0 0; padding: 0; border: 0; background: none; box-shadow: none; cursor: pointer;
  font-family: "Spectral", Georgia, serif; font-size: 13px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--rg-ink); border-bottom: 1px solid var(--rg-ink); padding-bottom: 3px;
}
.rg-cz-share::before { content: "↗ "; }
.rg-cz-share:hover { color: var(--rg-red); border-color: var(--rg-red); }

.rg-cz-inside { margin: 110px 0 0; }
.rg-cz-inside > h2, .rg-cz-more > h2 {
  font-family: "Spectral", Georgia, serif; font-weight: 500; font-size: 32px; letter-spacing: .03em;
  text-transform: none; color: var(--rg-ink); text-align: center; margin: 0 0 48px;
}
.rg-cz-bottles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; }
.rg-cz-bottle { text-align: center; scroll-margin-top: 140px; }
.rg-cz-bottle-img { height: 300px; display: flex; align-items: flex-end; justify-content: center; margin-bottom: 26px; }
.rg-cz-bottle-img img { max-height: 100%; width: auto; filter: drop-shadow(0 14px 14px rgba(40, 25, 10, .18)); }
.rg-cz-bottle h3 {
  font-family: "Spectral", Georgia, serif; font-weight: 500; font-size: 22px; letter-spacing: .03em;
  text-transform: none; color: var(--rg-ink); margin: 0 0 16px; padding: 0; border: 0;
}
.rg-cz-bottle h3::after { display: none; }
.rg-cz-bottle .rg-cz-label { margin: 16px 0 4px; font-size: 11px; }
.rg-cz-bottle p { font-size: 14px; line-height: 1.65; margin: 0; }
#Content .rg-cz-bottle-link {
  display: inline-block; margin-top: 18px; color: var(--rg-ink); text-decoration: none; font-size: 12px;
  letter-spacing: .2em; text-transform: uppercase; font-family: "Spectral", Georgia, serif; border-bottom: 1px solid var(--rg-line);
}
#Content .rg-cz-bottle-link:hover { color: var(--rg-red); border-color: var(--rg-red); }

.rg-cz-more { margin: 110px 0 0; padding-top: 72px; border-top: 1px solid var(--rg-line); }
.rg-cz-more-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; max-width: 900px; margin: 0 auto; }
#Content .rg-cz-more-card { display: block; text-decoration: none; color: var(--rg-ink); }
.rg-cz-more-card img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; background: #e9e4dc; margin-bottom: 16px; }
.rg-cz-more-name { display: block; font-family: "Spectral", Georgia, serif; font-size: 24px; letter-spacing: .03em; }
.rg-cz-more-price { display: block; font-family: "Spectral", Georgia, serif; font-size: 18px; color: var(--rg-mute); margin-top: 2px; }
#Content .rg-cz-more-card:hover .rg-cz-more-name { color: var(--rg-red); }
.rg-cz-terms-short { margin: 80px auto 0; max-width: 720px; text-align: center; font-size: 13px; line-height: 1.7; color: var(--rg-mute); }

@media (max-width: 959px) {
  .rg-cz-pd { grid-template-columns: 1fr; gap: 32px; }
  .rg-cz-pd-img { position: static; }
  .rg-cz-pd-body { max-width: none; }
  .rg-cz-bottles { grid-template-columns: 1fr; gap: 56px; }
}
@media (max-width: 767px) {
  .rg-cz-crumbs { margin: 28px 0 20px; }
  .rg-cz-product .rg-cabaz-name { font-size: 36px; }
  .rg-cz-inside, .rg-cz-more { margin-top: 72px; }
  .rg-cz-more-grid { gap: 20px; }
  .rg-cz-more-name { font-size: 18px; }
}
/* o corpo da página do cabaz tem a classe .rg-cabaz (para o carrinho), mas não a grelha da lista */
.rg-cz-pd .rg-cz-pd-body.rg-cabaz { display: block; }
.rg-cz-bottle h3, .rg-cz-product .rg-cabaz-name { line-height: 1.2; }
/* a garrafa de azeite (500 ml) é mais baixa que as de vinho */
.rg-cz-bottle#garrafa-azeite .rg-cz-bottle-img img { max-height: 74%; }

/* carrinho na página de cada cabaz */
.rg-cz-crumbs { display: flex; align-items: center; flex-wrap: wrap; }
#Content .rg-cz-cart-link {
  margin-left: auto; color: var(--rg-ink); text-decoration: none; font-family: "Spectral", Georgia, serif;
  font-size: 13px; letter-spacing: .14em; text-transform: uppercase; border-bottom: 1px solid var(--rg-ink);
}
#Content .rg-cz-cart-link[hidden] { display: none; }
#Content .rg-cz-cart-link:hover { color: var(--rg-red); border-color: var(--rg-red); }
.rg-cz-pd-body .rg-cabaz-buy { margin: 0 0 22px; }
.rg-cz-in-cart { font-size: 14px; color: var(--rg-ink); margin: 12px 0 0; }
.rg-cz-in-cart::before { content: "✓ "; color: var(--rg-red); }

/* resumo da encomenda: quantidade discreta, edição só quando pedida */
.rg-cz-summary li.rg-sum-item { display: block; padding: 14px 0; }
.rg-sum-main { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; }
.rg-sum-main .rg-sum-name { font-size: 15px; color: var(--rg-ink); }
.rg-sum-meta { display: flex; align-items: center; gap: 18px; margin-top: 6px; min-height: 30px; font-size: 13px; color: var(--rg-mute); }
.rg-cabazes .rg-sum-link {
  margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; cursor: pointer;
  font-size: 13px; color: var(--rg-ink); text-decoration: underline; text-underline-offset: 3px;
  text-decoration-color: var(--rg-line); line-height: 1.4;
}
.rg-cabazes .rg-sum-link:hover { text-decoration-color: currentColor; }
.rg-cabazes .rg-sum-remove { margin-left: auto; color: var(--rg-mute); }
.rg-sum-stepper { display: inline-flex; align-items: center; border: 1px solid var(--rg-ink); }
.rg-cabazes .rg-sum-step {
  width: 32px; height: 30px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent;
  box-shadow: none; cursor: pointer; color: var(--rg-ink); font-size: 16px; line-height: 1;
}
.rg-cabazes .rg-sum-step:hover:not([disabled]) { background: var(--rg-ink); color: #fff; }
.rg-cabazes .rg-sum-step[disabled] { color: #c9c2b8; cursor: default; }
.rg-sum-n { min-width: 26px; text-align: center; font-family: "Spectral", Georgia, serif; font-size: 16px; color: var(--rg-ink); }
.rg-cz-summary li.rg-sum-undo {
  display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 0;
  font-size: 14px; color: var(--rg-mute); font-style: italic;
}
.rg-cz-summary li.rg-sum-undo .rg-sum-link { font-style: normal; color: var(--rg-red); text-decoration-color: currentColor; }
.rg-sum-meta { flex-wrap: wrap; }
.rg-cabazes .rg-sum-link { white-space: nowrap; flex-shrink: 0; }
@media (max-width: 767px) {
  .rg-cabazes .rg-sum-remove { margin-left: 0; flex-basis: 100%; text-align: left; }
}
.rg-cabazes .rg-sum-link { letter-spacing: normal; text-transform: none; font-family: inherit; font-weight: 400; }
@media (max-width: 767px) {
  .rg-cabazes .rg-sum-remove { text-align: left !important; padding: 2px 0; }
}
@media (max-width: 767px) {
  .rg-cabazes .rg-sum-remove { flex-basis: auto; margin-right: 100%; }
}
