/* ==========================================================
   Café São Roque — loja (WooCommerce)
   Paleta enviada pelo cliente + tipografia da landing.
   ========================================================== */

:root{
  /* paleta */
  --cafe:  #3e2320;   /* marrom café escuro — texto, header, botões */
  --vinho: #6e2f38;   /* vinho — destaque, preços, CTAs */
  --rose:  #a8656b;   /* rosé — acentos, hover suave */
  --bege:  #d9c0af;   /* bege — superfícies, bordas */
  --fundo: #f3e9e4;   /* off-white — fundo da página */
  --fundo-2: var(--fundo); /* superfície da paleta */
  --linha: var(--bege);   /* divisores */
  --texto: #3e2320;
  --texto-2: var(--vinho);
  --line: var(--vinho); /* cor da linha ativa (sobrescrita por style="--line") */

  --serif: 'Playfair Display', Georgia, serif;
  --sans: 'Poppins', 'Segoe UI', sans-serif;

  --max: 1320px;
  --gutter: clamp(16px, 5vw, 72px);
  --sec: clamp(3rem, 6vw, 5.5rem);
  --r-sm: 4px; --r-md: 10px; --r-lg: 16px;
  --shadow: 0 18px 40px -22px rgba(62,35,32,.35);
  --ease: cubic-bezier(.4,0,.2,1);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--fundo); color:var(--texto);
  font-family:var(--sans); font-size:15px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img,svg{ display:block; max-width:100%; height:auto; }
h1,h2,h3,h4{ margin:0; font-family:var(--serif); font-weight:500; color:var(--cafe); line-height:1.12; }
p{ margin:0 0 1rem; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font:inherit; cursor:pointer; }
input,select,textarea{ font:inherit; color:inherit; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{ outline:2px solid var(--rose); outline-offset:3px; border-radius:2px; }
.screen-reader-text{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); }
.skip-link:focus{ position:fixed; top:8px; left:8px; width:auto; height:auto; clip:auto; background:var(--cafe); color:var(--fundo); padding:.6rem 1rem; z-index:999; }

/* ---------- utilitários ---------- */
.csr-kicker{
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; font-weight:600;
  color:var(--vinho); margin:0 0 .8rem;
}
.csr-kicker--line a{ color:var(--line); }
.csr-lead{ font-size:1.05rem; color:var(--texto-2); max-width:44ch; }
.csr-title{ font-size:clamp(2rem, 3.6vw, 3rem); }
.csr-link{
  display:inline-block; color:var(--vinho); font-weight:500; font-size:.9rem;
  border-bottom:1px solid currentColor; padding-bottom:2px; transition:color .2s var(--ease);
}
.csr-link:hover{ color:var(--rose); }
.csr-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.9rem 1.8rem; border-radius:var(--r-sm); font-weight:500; font-size:.92rem;
  border:1.5px solid transparent; transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
  line-height:1.2;
}
.csr-btn--primary{ background:var(--vinho); color:var(--fundo); border-color:var(--vinho); }
.csr-btn--primary:hover{ background:var(--cafe); border-color:var(--cafe); }
.csr-btn--outline{ background:transparent; color:var(--vinho); border-color:var(--vinho); }
.csr-btn--outline:hover{ background:var(--vinho); color:var(--fundo); }
.csr-section{ padding:var(--sec) var(--gutter); max-width:calc(var(--max) + var(--gutter)*2); margin:0 auto; }
.csr-section--narrow{ max-width:900px; }
.csr-notice{ color:var(--texto-2); font-size:.9rem; text-align:center; padding:1rem; border:1px dashed var(--bege); border-radius:var(--r-md); }
.csr-prose h2{ margin:2rem 0 .8rem; font-size:1.8rem; }
.csr-prose a{ color:var(--vinho); text-decoration:underline; }
.csr-prose ul, .csr-prose ol{ margin:0 0 1rem; padding-left:1.4rem; }
.csr-prose ul{ list-style:disc; }
.csr-prose ol{ list-style:decimal; }
.csr-prose li{ margin:.35rem 0; }
.csr-prose li::marker{ color:var(--vinho); }

/* ---------- barra superior + header ---------- */
.csr-topbar{
  background:var(--cafe); color:var(--bege); text-align:center;
  font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; padding:.45rem 1rem;
}
.csr-header{
  position:sticky; top:0; z-index:100; background:var(--fundo);
  border-bottom:1px solid var(--linha);
}
.csr-header__inner{
  max-width:calc(var(--max) + var(--gutter)*2); margin:0 auto; padding:.9rem var(--gutter);
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:2rem;
}
.csr-brand img{ height:44px; width:auto; }
.csr-nav__list{ display:flex; gap:2rem; justify-content:center; }
.csr-nav__list a{
  font-size:.86rem; font-weight:500; color:var(--cafe); padding:.3rem 0; position:relative;
}
.csr-nav__list a::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:1.5px; background:var(--vinho);
  transform:scaleX(0); transform-origin:left; transition:transform .25s var(--ease);
}
.csr-nav__list a:hover::after, .csr-nav__list .current-menu-item a::after{ transform:scaleX(1); }
.csr-actions{ display:flex; align-items:center; gap:1.2rem; }
.csr-actions svg{ width:20px; height:20px; color:var(--cafe); }
.csr-search{ display:flex; align-items:center; gap:.5rem; border-bottom:1px solid var(--bege); padding-bottom:.25rem; }
.csr-search input{ border:0; background:transparent; width:140px; font-size:.85rem; padding:.2rem 0; }
.csr-search input::placeholder{ color:var(--texto-2); }
.csr-cart{ display:inline-flex; align-items:center; gap:.4rem; font-size:.86rem; font-weight:500; }
.csr-menu-toggle{ display:none; background:none; border:0; padding:.2rem; }
.csr-menu-toggle svg{ width:24px; height:24px; color:var(--cafe); }

.csr-lines{ border-top:1px solid var(--linha); }
.csr-lines ul{ display:flex; justify-content:center; gap:0; }
.csr-lines a{
  display:block; padding:.55rem 1.6rem; font-size:.78rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--texto-2); border-right:1px solid var(--linha); transition:color .2s var(--ease);
}
.csr-lines li:last-child a{ border-right:0; }
.csr-lines a:hover, .csr-lines a[aria-current]{ color:var(--vinho); }

/* ---------- hero ---------- */
.csr-hero{
  max-width:calc(var(--max) + var(--gutter)*2); margin:0 auto; padding:var(--sec) var(--gutter);
  display:grid; grid-template-columns:1fr 1.1fr; gap:3rem; align-items:center;
}
.csr-hero h1{ font-size:clamp(2.4rem, 4.6vw, 3.9rem); margin-bottom:1.2rem; }
.csr-hero .csr-lead{ margin-bottom:2rem; }
.csr-hero__packs{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; align-items:end; }
.csr-hero__pack{ text-align:center; transition:transform .3s var(--ease); }
.csr-hero__pack:hover{ transform:translateY(-6px); }
.csr-hero__pack img, .csr-hero__pack .csr-bag{ width:100%; margin:0 auto; filter:drop-shadow(0 18px 24px rgba(62,35,32,.22)); }
.csr-hero__pack:nth-child(2) img, .csr-hero__pack:nth-child(2) .csr-bag{ transform:scale(1.08); }
.csr-hero__pack-label{
  display:block; margin-top:1.2rem; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--texto-2);
}

/* ---------- essência ---------- */
.csr-essence{ background:var(--bege); }
.csr-essence__inner{
  max-width:calc(var(--max) + var(--gutter)*2); margin:0 auto; padding:calc(var(--sec)*.8) var(--gutter);
  display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center;
}
.csr-essence h2{ font-size:clamp(1.8rem, 3vw, 2.6rem); }
.csr-essence__text p{ color:var(--cafe); max-width:52ch; }
.csr-essence__text > .csr-link{ display:table; margin:20px auto 0; }
@media (min-width: 961px){
  .csr-essence__text p{ font-size:18px; line-height:1.6; }
}

/* ---------- seções de linha ---------- */
.csr-line{ max-width:calc(var(--max) + var(--gutter)*2); margin:0 auto; padding:var(--sec) var(--gutter); }
.csr-line--alt{ background:var(--fundo-2); max-width:none; }
.csr-line--alt > *{ max-width:var(--max); margin-left:auto; margin-right:auto; }
.csr-line__head{ display:grid; grid-template-columns:1fr 1.4fr; gap:2rem; align-items:start; margin-bottom:2.2rem; }
.csr-line__head h2{ font-size:clamp(1.9rem, 3.2vw, 2.7rem); position:relative; padding-left:1.1rem; }
.csr-line__head h2::before{ content:""; position:absolute; left:0; top:.2em; bottom:.2em; width:4px; border-radius:2px; background:var(--line); }
.csr-line__intro p{ color:var(--texto-2); max-width:58ch; }
.csr-line__meta{ font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color:var(--cafe)!important; font-weight:500; }
.csr-line__more{ margin:2rem 0 0; text-align:right; }

/* ---------- grade e cards ---------- */
.csr-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:1.6rem 1.4rem; }
.csr-grid--shop{ grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); }
.csr-card{ display:flex; flex-direction:column; position:relative; }
.csr-card__media{
  position:relative; background:var(--fundo-2); border-radius:var(--r-md); aspect-ratio:1/1;
  display:flex; align-items:center; justify-content:center; padding:10%; margin-bottom:1rem;
  overflow:hidden; transition:box-shadow .3s var(--ease), transform .3s var(--ease);
}
.csr-card:hover .csr-card__media{ box-shadow:var(--shadow); transform:translateY(-3px); }
.csr-card__media img, .csr-card__media .csr-bag{ width:100%; height:100%; object-fit:contain; }
.csr-badge{
  position:absolute; top:.7rem; left:.7rem; font-size:.66rem; letter-spacing:.1em; text-transform:uppercase;
  font-weight:600; padding:.25rem .55rem; border-radius:2px; background:var(--line); color:var(--fundo);
}
.csr-badge--out{ background:var(--cafe); }
.csr-card__title{ font-family:var(--sans); font-size:.95rem; font-weight:500; color:var(--cafe); line-height:1.35; }
.csr-card__meta{ font-size:.8rem; color:var(--texto-2); margin:.15rem 0 .4rem; }
.csr-card__price{ font-weight:500; margin:0 0 .5rem; }
.csr-card__price .amount, .csr-price{ color:var(--cafe); }
.csr-price--tbd{ color:var(--texto-2); }
.csr-card__price del{ color:var(--texto-2); font-weight:400; margin-right:.4rem; }
.csr-card__price ins{ text-decoration:none; color:var(--vinho); }
.csr-card__cta{ font-size:.82rem; color:var(--vinho); font-weight:500; border-bottom:1px solid currentColor; align-self:flex-start; padding-bottom:1px; }
.csr-card--placeholder{ opacity:.55; }
.csr-card--placeholder .csr-card__media{ border:1px dashed var(--bege); background:transparent; }
.csr-card--placeholder .csr-bag{ opacity:.7; }

/* ---------- clube (home) ----------
   A foto de produtos ocupa o topo e se funde no fundo creme; abaixo, um bloco
   centralizado com selo, título, botão e três benefícios (referência set/2026). */
.csr-club{ --club-ouro:#a8825a; position:relative; background:var(--fundo); color:var(--cafe); text-align:center; }
.csr-club__art{ display:block; position:relative; aspect-ratio:1983/793; overflow:hidden; margin:0; }
.csr-club__art img{ width:100%; height:100%; object-fit:cover; object-position:center; }
/* Esmaecimento só no acabamento: faixa curta na base, com curva suave (ease-in)
   para a foto continuar no creme da página sem lavar os pacotes. */
.csr-club__art::after{
  content:""; position:absolute; inset:auto 0 -1px; height:12%;
  background:linear-gradient(
    rgba(243,233,228,0) 0%, rgba(243,233,228,.06) 22%, rgba(243,233,228,.18) 40%,
    rgba(243,233,228,.38) 56%, rgba(243,233,228,.62) 71%, rgba(243,233,228,.84) 85%, var(--fundo) 100%
  );
}
.csr-club__inner{
  position:relative; max-width:calc(780px + var(--gutter)*2); margin:0 auto;
  padding:clamp(1rem, 2vw, 1.6rem) var(--gutter) clamp(3rem, 5vw, 4.5rem);
}
.csr-club__kicker{
  display:flex; align-items:center; justify-content:center; gap:1rem; margin:0 0 1.1rem;
  font-size:.74rem; letter-spacing:.24em; text-transform:uppercase; color:var(--club-ouro);
}
.csr-club__kicker::before, .csr-club__kicker::after{ content:""; width:clamp(28px, 5vw, 56px); height:1px; background:currentColor; opacity:.6; }
.csr-club h2{ color:var(--vinho); font-size:clamp(2.4rem, 5vw, 4.4rem); line-height:1.04; letter-spacing:-.02em; margin:0 0 1.2rem; }
.csr-club__lead{ max-width:52ch; margin:0 auto 1.8rem; font-size:clamp(.95rem, 1.2vw, 1.08rem); line-height:1.7; color:var(--cafe); }
.csr-club__btn{
  display:inline-flex; align-items:center; gap:.7rem; min-height:48px; padding:.8rem 2rem;
  background:var(--vinho); color:var(--fundo); border-radius:999px;
  font-family:var(--serif); font-size:1.08rem; transition:background .25s var(--ease), transform .25s var(--ease);
}
.csr-club__btn span{ font-size:1.35em; line-height:1; }
.csr-club__btn:hover{ background:var(--cafe); transform:translateY(-1px); }
.csr-club__perks{
  list-style:none; padding:0; margin:clamp(2.4rem, 4vw, 3.2rem) auto 0;
  display:grid; grid-template-columns:repeat(3, 1fr);
}
.csr-club__perks li{ display:flex; flex-direction:column; align-items:center; gap:.35rem; padding:0 clamp(.6rem, 2vw, 1.6rem); }
.csr-club__perks li + li{ border-left:1px solid var(--bege); }
.csr-club__perks svg{ width:34px; height:34px; color:var(--club-ouro); margin-bottom:.5rem; }
.csr-club__perks strong{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:var(--cafe); }
.csr-club__perks span{ font-size:.86rem; line-height:1.5; color:var(--vinho); max-width:18ch; }
.csr-club__ornament{
  display:flex; align-items:center; gap:1rem; margin-top:clamp(2.2rem, 4vw, 3rem); color:var(--club-ouro);
}
.csr-club__ornament::before, .csr-club__ornament::after{ content:""; flex:1; height:1px; background:currentColor; opacity:.45; }
.csr-club__ornament svg{ width:18px; height:18px; }

@media (max-width: 760px){
  .csr-club__art{ aspect-ratio:941/1672; }
  .csr-club__art::after{ height:9%; }
  .csr-club__kicker{ font-size:.66rem; letter-spacing:.2em; }
  .csr-club h2{ font-size:clamp(2rem, 9vw, 2.6rem); }
  .csr-club__lead{ font-size:.92rem; }
  /* No celular os três benefícios viram linhas: ícone à esquerda, título e texto ao lado. */
  .csr-club__perks{ grid-template-columns:1fr; max-width:320px; margin-top:2.2rem; text-align:left; }
  .csr-club__perks li{
    display:grid; grid-template-columns:40px 1fr; column-gap:.9rem; row-gap:.1rem; align-items:center;
    padding:.95rem 0;
  }
  .csr-club__perks li + li{ border-left:0; border-top:1px solid var(--bege); }
  .csr-club__perks svg{ grid-row:span 2; width:30px; height:30px; margin:0 auto; }
  .csr-club__perks strong{ font-size:.66rem; }
  .csr-club__perks span{ font-size:.84rem; max-width:none; }
}

/* ---------- rodapé ---------- */
.csr-footer{ background:var(--fundo); border-top:1px solid var(--linha); margin-top:auto; }
.csr-footer__inner{
  max-width:calc(var(--max) + var(--gutter)*2); margin:0 auto; padding:3.5rem var(--gutter) 2.5rem;
  display:grid; grid-template-columns:1fr 2fr 1fr; gap:3rem;
}
.csr-footer__brand img{ height:40px; width:auto; margin-bottom:.8rem; }
.csr-footer__tagline{ font-family:var(--serif); font-style:italic; color:var(--texto-2); }
.csr-footer__cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.csr-footer__label{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:var(--cafe); margin-bottom:.8rem; }
.csr-footer__cols li{ margin-bottom:.45rem; }
.csr-footer__cols a{ font-size:.88rem; color:var(--texto-2); transition:color .2s var(--ease); }
.csr-footer__cols a:hover{ color:var(--vinho); }
.csr-footer__wa{ display:inline-flex; align-items:center; gap:.4rem; margin-top:.8rem; font-size:.88rem!important; color:var(--cafe)!important; }
.csr-footer__wa svg{ width:18px; height:18px; color:var(--vinho); }
.csr-footer__social{ display:flex; gap:.6rem; margin-top:1rem; }
.csr-footer__social a{
  display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px;
  border:1px solid var(--linha); border-radius:999px; color:var(--vinho);
  transition:background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);
}
.csr-footer__social a:hover{ background:var(--vinho); border-color:var(--vinho); color:var(--fundo); }
.csr-footer__social svg{ width:19px; height:19px; }
/* Lista curta: so aparece no celular, no lugar das tres colunas. */
.csr-footer__quick{ display:none; }
.csr-footer__legal{ text-align:right; font-size:.82rem; color:var(--texto-2); border-left:1px solid var(--linha); padding-left:2rem; }
.csr-footer__credit{ font-size:.72rem; }
/* Selo de site seguro: leva à verificação do Google Safe Browsing. */
.csr-seal{ display:inline-flex; align-items:center; gap:10px; margin:0 0 1rem; padding:8px 14px 8px 10px; border:1px solid var(--linha); border-radius:10px; background:#fffaf7; color:var(--cafe); text-align:left; transition:border-color .2s var(--ease); }
.csr-seal:hover{ border-color:#188a43; }
.csr-seal svg{ width:26px; height:26px; flex:none; color:#188a43; }
.csr-seal span{ display:flex; flex-direction:column; line-height:1.25; }
.csr-seal strong{ font-size:.85rem; font-weight:700; }
.csr-seal small{ font-size:.72rem; color:var(--texto-2); }
.csr-footer__credit a{ text-decoration:underline; text-underline-offset:3px; transition:color .2s var(--ease); }
.csr-footer__credit a:hover{ color:var(--vinho); }

.csr-wa-float{
  position:fixed; right:18px; bottom:18px; z-index:90; width:52px; height:52px; border-radius:50%;
  background:var(--vinho); color:var(--fundo); display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 24px -8px rgba(0,0,0,.4); transition:transform .25s var(--ease);
}
.csr-wa-float:hover{ transform:scale(1.06); }
.csr-wa-float svg{ width:28px; height:28px; }

/* ---------- loja / categoria ---------- */
.csr-breadcrumb{ font-size:.8rem; color:var(--texto-2); margin-bottom:1.6rem; display:flex; flex-wrap:wrap; gap:.4rem; }
.csr-breadcrumb a{ color:var(--texto-2); }
.csr-breadcrumb a:hover{ color:var(--vinho); }
.csr-crumb-sep{ color:var(--bege); }
.csr-shop__head{ display:grid; grid-template-columns:1fr 1.4fr; gap:2rem; align-items:end; margin-bottom:2rem; }
.csr-shop__intro p{ color:var(--texto-2); max-width:58ch; }
.csr-shop__tabs{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:2rem; }
.csr-shop__tabs a{
  padding:.45rem 1rem; border:1px solid var(--bege); border-radius:999px; font-size:.8rem; letter-spacing:.04em;
  color:var(--texto-2); transition:all .2s var(--ease);
}
.csr-shop__tabs a:hover, .csr-shop__tabs a[aria-current]{ background:var(--cafe); border-color:var(--cafe); color:var(--fundo); }
.csr-shop__toolbar{ display:flex; justify-content:flex-end; margin-bottom:1.4rem; }
.woocommerce-ordering select{ border:1px solid var(--bege); background:var(--fundo-2); padding:.45rem 2rem .45rem .8rem; border-radius:var(--r-sm); font-size:.82rem; }
.woocommerce-pagination{ margin-top:2.5rem; }
.woocommerce-pagination ul{ display:flex; justify-content:center; gap:.4rem; }
.woocommerce-pagination a, .woocommerce-pagination span{ display:block; min-width:36px; padding:.4rem .6rem; text-align:center; border:1px solid var(--bege); border-radius:var(--r-sm); font-size:.85rem; }
.woocommerce-pagination .current{ background:var(--cafe); color:var(--fundo); border-color:var(--cafe); }

/* ---------- página do produto ---------- */
.csr-product{ max-width:calc(var(--max) + var(--gutter)*2); margin:0 auto; padding:2rem var(--gutter) var(--sec); }
.csr-product__top{ display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(2rem, 5vw, 5rem); align-items:start; }
.csr-product__gallery{ position:sticky; top:120px; }
.csr-product__placeholder, .woocommerce-product-gallery__image{ background:var(--fundo-2); border-radius:var(--r-lg); }
.csr-product__placeholder{ aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; padding:14%; }
.csr-product__placeholder .csr-bag{ width:100%; height:100%; filter:drop-shadow(0 20px 30px rgba(62,35,32,.22)); }
.woocommerce-product-gallery{ position:relative; }
.woocommerce-product-gallery__image img{ border-radius:var(--r-lg); }
.woocommerce-product-gallery__trigger{ display:none; }
.flex-control-thumbs{ display:flex; gap:.6rem; margin-top:.8rem; }
.flex-control-thumbs li{ width:72px; }
.flex-control-thumbs img{ border-radius:var(--r-sm); border:1.5px solid transparent; cursor:pointer; opacity:.7; }
.flex-control-thumbs img.flex-active, .flex-control-thumbs img:hover{ border-color:var(--vinho); opacity:1; }

.csr-product__title{ font-size:clamp(2rem, 3.6vw, 2.9rem); margin-bottom:.5rem; }
.csr-product__meta{ font-size:1rem; color:var(--cafe); margin-bottom:.9rem; }
.csr-product__notes{ font-size:1.05rem; color:var(--texto-2); margin-bottom:.4rem; }
.csr-product__excerpt{ color:var(--texto-2); font-size:.92rem; }
.csr-product__price{ font-family:var(--serif); font-size:1.9rem; color:var(--cafe); margin:1.2rem 0 1.4rem; }
.csr-product__price del{ font-size:1.1rem; color:var(--texto-2); margin-right:.5rem; }
.csr-product__price ins{ text-decoration:none; color:var(--vinho); }

/* formulário de compra */
.csr-product form.cart{ display:flex; flex-direction:column; gap:1.1rem; }
.variations{ width:100%; border-collapse:collapse; }
.variations th, .variations td{ display:block; text-align:left; padding:0; }
.variations .label label{ display:block; font-size:.85rem; font-weight:500; margin-bottom:.5rem; }
.variations select{ width:100%; border:1px solid var(--bege); background:var(--fundo-2); padding:.7rem .9rem; border-radius:var(--r-sm); }
.variations tr + tr{ display:block; margin-top:1rem; }
/* select convertido em pílulas (assets/js/main.js) */
.csr-pills{ display:grid; grid-template-columns:repeat(auto-fit, minmax(120px,1fr)); gap:.6rem; }
.csr-pill{
  padding:.75rem 1rem; border:1.5px solid var(--vinho); border-radius:var(--r-sm); background:transparent;
  color:var(--vinho); font-size:.88rem; font-weight:500; text-align:center; transition:all .2s var(--ease);
}
.csr-pill[aria-pressed="true"]{ background:var(--vinho); color:var(--fundo); }
.csr-pill:disabled{ opacity:.35; cursor:not-allowed; }
.csr-pills + select{ position:absolute; opacity:0; pointer-events:none; height:0; }
.woocommerce-variation-price{ font-family:var(--serif); font-size:1.4rem; margin-top:.6rem; }
.woocommerce-variation-availability .stock{ font-size:.82rem; color:var(--texto-2); margin:.3rem 0 0; }
.woocommerce-variation-add-to-cart{ display:flex; flex-direction:column; gap:1.1rem; }

.quantity label{ display:block; font-size:.85rem; font-weight:500; margin-bottom:.5rem; }
.quantity{ display:inline-flex; align-self:flex-start; align-items:center; border:1px solid var(--bege); border-radius:var(--r-sm); background:var(--fundo-2); }
.quantity .input-text.qty{ width:56px; border-radius:0; text-align:center; border:0; background:transparent; padding:.65rem 0; -moz-appearance:textfield; }
.quantity .qty::-webkit-inner-spin-button, .quantity .qty::-webkit-outer-spin-button{ -webkit-appearance:none; }
.csr-qty-btn{ width:40px; height:42px; border:0; background:transparent; color:var(--cafe); font-size:1.2rem; }
.csr-qty-btn:hover{ color:var(--vinho); }

.single_add_to_cart_button{
  display:block; width:100%; padding:1rem 1.6rem; background:var(--vinho); color:var(--fundo); border:0;
  border-radius:var(--r-sm); font-weight:500; font-size:.95rem; transition:background .25s var(--ease);
}
.single_add_to_cart_button:hover{ background:var(--cafe); }
.single_add_to_cart_button.disabled{ opacity:.45; cursor:not-allowed; }
.woocommerce-variation-description p{ font-size:.88rem; color:var(--texto-2); }


.csr-related{ margin-top:var(--sec); }
.csr-related h2{ font-size:clamp(1.6rem, 2.6vw, 2.1rem); margin-bottom:1.6rem; }

/* ---------- avisos do Woo ---------- */
.woocommerce-notices-wrapper:empty{ display:none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error{
  list-style:none; margin:0 0 1.5rem; padding:.9rem 1.2rem; border-left:3px solid var(--vinho);
  background:var(--fundo-2); border-radius:var(--r-sm); font-size:.9rem; display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between;
}
.woocommerce-error{ border-color:var(--vinho); }
.woocommerce-message .button, .woocommerce-info .button{ display:inline-block; padding:.5rem 1rem; font-size:.82rem; background:var(--cafe); color:var(--fundo); border-radius:var(--r-sm); }

/* ---------- carrinho / checkout / conta — ajustes mínimos ---------- */
.csr-page{ padding-top:2rem; }
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout{ --wc-primary:var(--vinho); }
.wc-block-components-button, .wc-block-cart__submit-button{ background:var(--vinho)!important; border-radius:var(--r-sm)!important; }
/* O carrinho/checkout usam page.php (.csr-prose): sem isto, a cor de link da prosa pinta o texto do botão de vinho */
.wc-block-components-button.contained, .wc-block-components-button.contained .wc-block-components-button__text, .wc-block-cart__submit-button, .wc-block-cart__submit-button .wc-block-components-button__text{ color:#fff!important; text-decoration:none!important; }
.wc-block-components-button:hover{ background:var(--cafe)!important; }
.woocommerce-MyAccount-navigation ul{ display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1.5rem; }
.woocommerce-MyAccount-navigation a{ display:block; padding:.45rem .9rem; border:1px solid var(--bege); border-radius:999px; font-size:.82rem; }
.woocommerce-MyAccount-navigation .is-active a{ background:var(--cafe); color:var(--fundo); border-color:var(--cafe); }
.woocommerce form .form-row{ margin-bottom:1rem; }
.woocommerce form .form-row label{ display:block; font-size:.85rem; margin-bottom:.35rem; }
.woocommerce .input-text, .woocommerce select, .woocommerce textarea{ width:100%; border:1px solid var(--bege); background:var(--fundo-2); padding:.65rem .9rem; border-radius:var(--r-sm); }
.woocommerce .button, .woocommerce button.button{ display:inline-block; padding:.8rem 1.5rem; background:var(--vinho); color:var(--fundo); border:0; border-radius:var(--r-sm); font-weight:500; }
.woocommerce table.shop_table{ width:100%; border-collapse:collapse; font-size:.9rem; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td{ padding:.8rem .6rem; border-bottom:1px solid var(--linha); text-align:left; }
.csr-bag-wrap{ display:block; width:100%; }

/* ---------- responsivo ---------- */
@media (max-width: 960px){
  .csr-header__inner{ grid-template-columns:auto 1fr auto; gap:1rem; }
  .csr-menu-toggle{ display:block; order:0; position:relative; z-index:100; }
  .csr-brand{ order:1; justify-self:center; }
  .csr-actions{ order:2; gap:.8rem; }
  .csr-search input{ width:0; padding:0; }
  .csr-search:focus-within input{ width:120px; }
  .csr-cart__label{ display:none; }
  .csr-nav{
    position:fixed; inset:0; background:linear-gradient(155deg, var(--vinho), var(--cafe));
    color:var(--fundo); padding:100px max(24px, var(--gutter)) max(32px, env(safe-area-inset-bottom)); z-index:99;
    overflow-y:auto; overscroll-behavior:contain;
    transform:translateX(-100%); transition:transform .3s var(--ease);
  }
  body.nav-open{ overflow:hidden; }
  body.nav-open .csr-nav{ transform:none; }
  .csr-nav .csr-nav__list{ flex-direction:column; gap:12px; max-width:560px; margin:0 auto; }
  .csr-nav .csr-nav__list a{
    display:block; padding:18px 20px; border:1px solid rgba(217,192,175,.22); border-radius:12px;
    font-family:var(--serif); font-size:clamp(21px, 5.5vw, 28px); line-height:1.35;
    color:var(--fundo); white-space:normal; background:rgba(243,233,228,.04);
    transition:background .2s var(--ease), color .2s var(--ease);
  }
  .csr-nav .csr-nav__list a::after{ display:none; }
  .csr-nav .csr-nav__list a:hover,
  .csr-nav .csr-nav__list .current-menu-item a,
  .csr-nav .csr-nav__list a[aria-current="page"]{ background:var(--bege); color:var(--cafe); }
  .csr-nav .csr-nav__list a:focus-visible{ outline-color:var(--bege); }
  body.nav-open .csr-menu-toggle{ background:var(--fundo); border-radius:50%; }
  body.nav-open .csr-menu-toggle svg{ visibility:hidden; }
  body.nav-open .csr-menu-toggle::before,
  body.nav-open .csr-menu-toggle::after{
    content:""; position:absolute; width:22px; height:2px; top:50%; left:50%; background:var(--vinho);
    transform:translate(-50%, -50%) rotate(45deg);
  }
  body.nav-open .csr-menu-toggle::after{ transform:translate(-50%, -50%) rotate(-45deg); }
  .csr-lines ul{ overflow-x:auto; justify-content:flex-start; -webkit-overflow-scrolling:touch; }
  .csr-lines a{ white-space:nowrap; }
  .csr-hero, .csr-essence__inner, .csr-club__inner, .csr-product__top{ grid-template-columns:1fr; }
  .csr-hero__packs{ order:-1; }
  .csr-line__head, .csr-shop__head{ grid-template-columns:1fr; gap:.8rem; }
  .csr-product__gallery{ position:static; }
  .csr-footer__inner{ grid-template-columns:1fr; gap:2rem; }
  .csr-footer__legal{ text-align:left; border-left:0; padding-left:0; border-top:1px solid var(--linha); padding-top:1.5rem; }
}
@media (max-width: 600px){
  .csr-grid{ grid-template-columns:repeat(2, 1fr); gap:1.2rem .9rem; }
  /* Preco alinhado como na linha Ypes: peso a esquerda, valor a direita. */
  .csr-line .csr-card__purchase, .csr-grid--shop .csr-card__purchase, .csr-related .csr-card__purchase{
    display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin:auto 9px 16px;
  }
  .csr-line .csr-card__meta, .csr-grid--shop .csr-card__meta, .csr-related .csr-card__meta{ margin:0; }
  .csr-line .csr-card__price, .csr-grid--shop .csr-card__price, .csr-related .csr-card__price{ margin:0; text-align:right; }
  .csr-hero__pack-label{ font-size:.6rem; }
  /* Rodape enxuto no celular: 11 links em tres blocos viram 6 em duas linhas. */
  .csr-footer__cols{ display:none; }
  .csr-footer__quick{ display:block; }
  .csr-footer__quick ul{ display:flex; flex-wrap:wrap; gap:.5rem 1.1rem; }
  .csr-footer__quick-main a{ font-size:.88rem; font-weight:500; color:var(--cafe); }
  .csr-footer__quick-minor{ margin-top:.55rem; }
  .csr-footer__quick-minor a{ font-size:.74rem; color:var(--texto-2); }
  .csr-footer__quick a:hover{ color:var(--vinho); }
  .csr-footer__inner{ gap:1.6rem; }
  .csr-footer__legal{ padding-top:1.2rem; }
}
@media (prefers-reduced-motion: reduce){
  *{ transition:none!important; animation:none!important; }
}

/* ---------- calculadora de frete (Melhor Envio) ---------- */
.csr-product .containerCalculator{
  margin-top:.4rem; padding:1.2rem 0 0; border-top:1px solid var(--linha); background:transparent!important;
  border-radius:0; font-size:.88rem; color:var(--texto);
}
.csr-product .containerCalculator *{ font-family:var(--sans)!important; }
.csr-product .containerCalculator h3, .csr-product .containerCalculator .titulo, .csr-product .containerCalculator label{
  font-size:.85rem; font-weight:500; color:var(--cafe); margin-bottom:.5rem;
}
.csr-product .containerCalculator input[type="text"], .csr-product .containerCalculator input[type="tel"]{
  width:100%; border:1px solid var(--bege); padding:.7rem .9rem; border-radius:var(--r-sm); background:var(--fundo-2);
}
.csr-product .containerCalculator button, .csr-product .containerCalculator .button, .csr-product .containerCalculator input[type="button"]{
  background:transparent; color:var(--vinho); border:1.5px solid var(--vinho); padding:.6rem 1.2rem; border-radius:var(--r-sm); font-weight:500;
}
.csr-product .containerCalculator button:hover{ background:var(--vinho); color:var(--fundo); }
.csr-product .containerCalculator table{ width:100%; border-collapse:collapse; margin-top:.8rem; }
.csr-product .containerCalculator td, .csr-product .containerCalculator th{ padding:.5rem .3rem; border-bottom:1px solid var(--linha); text-align:left; }

/* ---------- guardas de overflow (mobile) ---------- */
html, body{ overflow-x:hidden; }
.csr-hero__packs > *, .csr-grid > *, .csr-header__inner > *{ min-width:0; }
.csr-hero__pack-label{ overflow-wrap:anywhere; }
@media (max-width: 600px){
  .csr-hero__packs{ gap:.6rem; }
  .csr-hero__pack-label{ display:none; }
  .csr-hero h1{ font-size:2.2rem; }
  .csr-actions{ gap:.6rem; }
  .csr-search{ display:none; }
}

/* ---------- carrossel do hero ---------- */
.csr-slider{ position:relative; background:var(--bege); overflow:hidden; }
.csr-slider__track{
  display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  scrollbar-width:none; -webkit-overflow-scrolling:touch;
}
.csr-slider__track::-webkit-scrollbar{ display:none; }
.csr-slide{ position:relative; flex:0 0 100%; scroll-snap-align:start; scroll-snap-stop:always; }
.csr-slide__media{ display:block; aspect-ratio:1916/821; }
.csr-slide__media img{
  width:100%; height:100%; object-fit:cover; object-position:right center; display:block;
}
.csr-slide__copy{
  position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center;
  padding:0 var(--gutter); max-width:min(46%, 640px);
}
.csr-slide__copy h1, .csr-slide__copy h2{ font-size:clamp(1.6rem, 3.6vw, 3.6rem); margin-bottom:clamp(.4rem, 1vw, 1rem); }
.csr-slide__copy .csr-kicker{ margin-bottom:clamp(.3rem, .8vw, .8rem); }
.csr-slide__copy .csr-lead{ font-size:clamp(.8rem, 1.15vw, 1.05rem); margin-bottom:clamp(.8rem, 1.6vw, 1.8rem); max-width:40ch; }
.csr-slide__copy .csr-btn{ align-self:flex-start; }
.csr-slide__badge{
  position:absolute; z-index:1; left:85.9%; top:84.8%; transform:translate(-50%,-50%);
  width:11%; text-align:center; color:#f8eee9; font-family:var(--serif); font-size:clamp(.8rem, 1.7vw, 2rem);
  font-weight:400; letter-spacing:.025em; line-height:1; white-space:nowrap; text-transform:uppercase;
}
#slide-primeira-compra .csr-slide__copy h2 em{ font-weight:400; }
#slide-primeira-compra .csr-slide__copy .csr-btn::after{ content:" →"; font-size:1.2em; margin-left:.45rem; }

/* setas sutis e transparentes */
.csr-slider__arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:2;
  width:48px; height:48px; border-radius:50%; border:1px solid rgba(62,35,32,.28);
  background:rgba(243,233,228,.32); backdrop-filter:blur(3px); color:var(--cafe);
  display:flex; align-items:center; justify-content:center; opacity:.55;
  transition:opacity .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease);
}
.csr-slider__arrow svg{ width:22px; height:22px; }
.csr-slider__arrow--prev{ left:clamp(10px, 1.6vw, 28px); }
.csr-slider__arrow--next{ right:clamp(10px, 1.6vw, 28px); }
.csr-slider:hover .csr-slider__arrow, .csr-slider__arrow:focus-visible{ opacity:1; }
.csr-slider__arrow:hover{ background:rgba(243,233,228,.75); border-color:rgba(62,35,32,.5); }

/* indicadores */
.csr-slider__dots{ position:absolute; left:0; right:0; bottom:14px; display:flex; justify-content:center; gap:8px; z-index:2; }
.csr-slider__dots button{
  width:8px; height:8px; border-radius:50%; border:0; padding:0;
  background:rgba(62,35,32,.28); transition:transform .25s var(--ease), background .25s var(--ease);
}
.csr-slider__dots button[aria-selected="true"]{ background:var(--vinho); transform:scale(1.35); }

@media (max-width: 760px){
  .csr-slide__media{ aspect-ratio:1122/1402; }
  .csr-slide__media img{ object-position:center bottom; }
  .csr-slide__copy{
    max-width:none; justify-content:flex-start; align-items:center; text-align:center;
    padding:9% var(--gutter) 0;
  }
  .csr-slide__copy h1, .csr-slide__copy h2{ font-size:clamp(1.7rem, 7.5vw, 2.4rem); }
  .csr-slide__copy .csr-lead{ font-size:.9rem; max-width:34ch; }
  .csr-slide__copy .csr-btn{ align-self:center; padding:.75rem 1.4rem; }
  .csr-slider__arrow{ width:38px; height:38px; opacity:.5; }
  .csr-slider__arrow svg{ width:18px; height:18px; }
  .csr-slide__badge{
    left:76.6%; top:82.6%; width:25%; transform:translate(-50%,-50%);
    font-size:clamp(.85rem, 4.5vw, 1.5rem);
  }
}
@media (prefers-reduced-motion: reduce){
  .csr-slider__track{ scroll-behavior:auto; }
}

/* carrossel — mobile: texto no céu livre do topo das artes (948x1659).
   As artes deixam ~40% de cima sem produto, então o bloco pode descer e respirar:
   margem maior no topo, espaço entre os itens e a linha de apoio de volta. */
@media (max-width: 760px){
  .csr-slide__copy{
    align-items:flex-start; text-align:left; max-width:88%;
    padding:clamp(40px, 12vw, 56px) var(--gutter) 0;
  }
  .csr-slide__copy .csr-kicker{ font-size:.62rem; letter-spacing:.14em; line-height:1.5; margin-bottom:14px; }
  .csr-slide__copy h1, .csr-slide__copy h2{ font-size:clamp(1.55rem, 7vw, 2.05rem); line-height:1.16; margin-bottom:14px; }
  .csr-slide__copy .csr-lead{ display:block; font-size:clamp(.82rem, 3.6vw, .92rem); line-height:1.5; max-width:30ch; margin-bottom:22px; }
  .csr-slide__copy .csr-btn{ align-self:flex-start; padding:.8rem 1.35rem; font-size:.78rem; min-height:44px; }
}

/* ---------- cards com foto real (packshots 4:5) ---------- */
.csr-card__media{ aspect-ratio:4/5; }
.csr-card__media--photo{ background:#fff; padding:0; }
.csr-card__media--photo img{ object-fit:cover; }
.csr-product__placeholder{ aspect-ratio:4/5; }
.woocommerce-product-gallery__image{ background:#fff; }

/* ---------- grades da home: cards maiores e centralizados (4 por linha) ---------- */
.csr-line .csr-grid{
  grid-template-columns:repeat(auto-fit, minmax(240px, 300px));
  justify-content:center; gap:2.2rem 2rem;
}
.csr-line .csr-card__title{ font-size:1.05rem; }
.csr-line .csr-card__price{ font-size:1.05rem; }
.csr-line .csr-card__media{ border-radius:var(--r-lg); }
.csr-line .csr-card{ align-items:center; text-align:center; }
.csr-line .csr-card__cta{ align-self:center; }
.csr-line .csr-card__media--photo{ box-shadow:0 12px 30px -18px rgba(62,35,32,.35); }
.csr-line__more{ text-align:center; }
.csr-grid--shop{ grid-template-columns:repeat(auto-fit, minmax(230px, 300px)); justify-content:center; }
@media (max-width: 600px){
  .csr-line .csr-grid, .csr-grid--shop{ grid-template-columns:repeat(2, 1fr); gap:1.4rem 1rem; }
}

/* ==========================================================
   v2 — sistema visual de loja (referência: Moka Clube)
   Fraunces (títulos, serif arredondada) + Barlow (corpo)
   ========================================================== */
:root{
  --serif: 'Bodoni Moda', Didot, 'Times New Roman', serif;
  --sans: 'Manrope', 'Segoe UI', sans-serif;
  --branco: var(--fundo);
  --grid-max: 1180px;
}
body{ font-size:16px; line-height:1.6; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:500; font-variation-settings:'SOFT' 100, 'opsz' 72; letter-spacing:-.01em; }
.csr-kicker{ font-family:var(--sans); font-size:.72rem; letter-spacing:.2em; font-weight:600; }
.csr-btn{ font-family:var(--sans); letter-spacing:.06em; text-transform:uppercase; font-size:.8rem; font-weight:600; padding:.95rem 2rem; border-radius:6px; }
.csr-btn--outline{ border-color:var(--cafe); color:var(--cafe); }
.csr-btn--outline:hover{ background:var(--cafe); border-color:var(--cafe); color:var(--fundo); }
.csr-nav__list a{ font-size:.95rem; font-weight:500; }
.csr-lines a{ font-size:.74rem; letter-spacing:.14em; }
.csr-topbar{ font-size:.7rem; letter-spacing:.16em; }
.csr-slide__copy h1, .csr-slide__copy h2{ font-weight:500; }
.csr-slide__copy .csr-lead{ font-size:clamp(.85rem, 1.15vw, 1.1rem); }
.csr-essence h2{ font-size:clamp(1.9rem, 3vw, 2.8rem); }

/* --- seções de linha: cabeçalho centralizado, fundo branco --- */
.csr-line{ background:var(--branco); max-width:none; padding:calc(var(--sec) * 1.05) var(--gutter); }
.csr-line + .csr-line{ border-top:1px solid var(--linha); }
.csr-line__head{ display:block; text-align:center; max-width:640px; margin:0 auto 2.8rem; }
.csr-line__head h2{ font-size:clamp(2rem, 3.4vw, 2.9rem); padding:0; margin-bottom:.9rem; }
.csr-line__head h2::before{ display:none; }
.csr-line__head .csr-kicker{ color:var(--line); }
.csr-line__desc{ color:var(--texto-2); font-size:1rem; max-width:56ch; margin:0 auto; }
.csr-line__more{ text-align:center; margin:2.8rem 0 0; }

/* --- cards: produto solto, 4 por linha, tamanho comercial --- */
.csr-line .csr-grid, .csr-grid--shop, .csr-related .csr-grid{
  max-width:var(--grid-max); margin:0 auto;
  grid-template-columns:repeat(4, 1fr); gap:2.4rem 2rem; justify-content:stretch;
}
.csr-card{ align-items:stretch; text-align:center; }
.csr-card__link{ display:flex; flex-direction:column; align-items:center; color:inherit; }
.csr-card__media, .csr-line .csr-card__media, .csr-card__media--photo{
  width:100%; aspect-ratio:1/1; background:transparent; border-radius:0; box-shadow:none; padding:0;
  display:flex; align-items:flex-end; justify-content:center; margin-bottom:1.1rem; overflow:visible;
}
.csr-card__media img, .csr-card__media .csr-bag{
  width:auto; max-width:82%; height:94%; object-fit:contain;
  transition:transform .35s var(--ease);
}
.csr-card__media--photo img{ object-fit:contain; mix-blend-mode:multiply; }
.csr-card:hover .csr-card__media{ transform:none; box-shadow:none; }
.csr-card:hover .csr-card__media img, .csr-card:hover .csr-card__media .csr-bag{ transform:translateY(-6px) scale(1.03); }
.csr-card__title, .csr-line .csr-card__title{
  font-family:var(--serif); font-variation-settings:'SOFT' 100, 'opsz' 24; font-weight:500;
  font-size:1.2rem; line-height:1.25; color:var(--cafe); margin:0 0 .3rem;
}
.csr-card__notes{ display:block; font-size:.82rem; color:var(--texto-2); line-height:1.4; max-width:26ch; margin:0 auto .35rem; }
.csr-card__meta{ display:block; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--rose); margin:0 0 .5rem; }
.csr-card__price, .csr-line .csr-card__price{ display:block; font-family:var(--sans); font-size:1rem; font-weight:600; color:var(--cafe); margin:0; }
.csr-card__cta{ display:none; }
.csr-badge{ top:0; left:8%; border-radius:3px; font-size:.62rem; }

/* --- loja / relacionados --- */
.csr-shop{ background:var(--branco); max-width:none; }
.csr-shop__head{ display:block; text-align:center; max-width:640px; margin:0 auto 1.6rem; }
.csr-shop__intro p{ margin:0 auto; }
.csr-shop__tabs{ justify-content:center; }
.csr-shop__toolbar{ max-width:var(--grid-max); margin:0 auto 1.6rem; }
.csr-related h2{ text-align:center; }
.csr-product{ background:var(--branco); max-width:none; }
.csr-product__top, .csr-related, .csr-product .csr-breadcrumb{ max-width:var(--max); margin-left:auto; margin-right:auto; }
.csr-related{ margin-top:var(--sec); }
.csr-product__title{ font-weight:500; }

@media (max-width: 960px){
  .csr-line .csr-grid, .csr-grid--shop, .csr-related .csr-grid{ grid-template-columns:repeat(3, 1fr); gap:2rem 1.4rem; }
}
@media (max-width: 600px){
  .csr-line .csr-grid, .csr-grid--shop, .csr-related .csr-grid{ grid-template-columns:repeat(2, 1fr); gap:1.8rem 1rem; }
  .csr-card__media img, .csr-card__media .csr-bag{ max-width:90%; }
  .csr-card__title{ font-size:1.05rem; }
}

/* fotos com fundo cinza: esmaece as bordas para fundir ao branco */
.csr-card__media--fade img{
  -webkit-mask-image:radial-gradient(ellipse 62% 58% at 50% 52%, #000 58%, transparent 100%);
  mask-image:radial-gradient(ellipse 62% 58% at 50% 52%, #000 58%, transparent 100%);
}

.csr-product__gallery--fade .woocommerce-product-gallery__image img{
  -webkit-mask-image:radial-gradient(ellipse 66% 62% at 50% 52%, #000 62%, transparent 100%);
  mask-image:radial-gradient(ellipse 66% 62% at 50% 52%, #000 62%, transparent 100%);
}

/* colunas de largura fixa → linhas com menos itens ficam centralizadas */
.csr-line .csr-grid, .csr-grid--shop, .csr-related .csr-grid{
  grid-template-columns:repeat(auto-fit, 255px); justify-content:center; gap:2.4rem 2.4rem;
}
@media (max-width: 1180px){
  .csr-line .csr-grid, .csr-grid--shop, .csr-related .csr-grid{ grid-template-columns:repeat(auto-fit, minmax(200px, 240px)); }
}
@media (max-width: 600px){
  .csr-line .csr-grid, .csr-grid--shop, .csr-related .csr-grid{ grid-template-columns:repeat(2, 1fr); gap:1.8rem 1rem; }
}

/* Fraunces: eixo óptico baixo + SOFT = serif arredondada e robusta (efeito Recoleta) */
h1,h2,h3,h4, .csr-card__title, .csr-line .csr-card__title, .csr-product__title, .csr-title, .csr-footer__tagline{
  font-family:var(--serif); font-optical-sizing:none;
  font-variation-settings:'opsz' 11, 'SOFT' 100, 'WONK' 0; font-weight:600; letter-spacing:-.005em;
}
.csr-card__title, .csr-line .csr-card__title{ font-size:1.15rem; }
.csr-shop__head h1{ margin-bottom:.9rem; }
.csr-shop__intro .csr-line__meta{ margin-top:.6rem; }

/* ---------- todas as grades de produto: card com palco (mesma linguagem do Dia Especial) ---------- */
.csr-line .csr-grid, .csr-grid--shop, .csr-related .csr-grid{
  --grid-max:1400px;
  grid-template-columns:repeat(4, minmax(0, 1fr)); justify-content:center; gap:28px;
}
.csr-line .csr-card, .csr-grid--shop .csr-card, .csr-related .csr-card{
  --accent:var(--line); --stage-hi:#ffffff; --stage-lo:#f7f1ed;
  padding:12px; background:#fdfaf8; border:1px solid rgba(62,35,32,.08); border-radius:24px;
  box-shadow:0 18px 32px -30px rgba(62,35,32,.18); text-align:left; align-items:stretch;
}
.csr-line .csr-card__link, .csr-grid--shop .csr-card__link, .csr-related .csr-card__link{ align-items:stretch; height:100%; }
.csr-line .csr-card__media, .csr-grid--shop .csr-card__media, .csr-related .csr-card__media, .csr-line .csr-card__media--photo, .csr-grid--shop .csr-card__media--photo, .csr-related .csr-card__media--photo{
  aspect-ratio:4/5; padding:36px 8% 26px; margin:0; border-radius:16px; overflow:hidden; box-shadow:none;
  align-items:center;
  background:radial-gradient(ellipse 80% 70% at 50% 38%, var(--stage-hi) 0%, var(--stage-lo) 100%);
}
.csr-line .csr-card__media::after, .csr-grid--shop .csr-card__media::after, .csr-related .csr-card__media::after{
  content:""; position:absolute; z-index:0; left:50%; bottom:22px; width:62%; height:22px;
  transform:translateX(-50%); border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(62,35,32,.22) 0%, rgba(62,35,32,0) 70%);
}
.csr-line .csr-card__media img, .csr-grid--shop .csr-card__media img, .csr-related .csr-card__media img, .csr-line .csr-card__media .csr-bag, .csr-grid--shop .csr-card__media .csr-bag, .csr-related .csr-card__media .csr-bag{
  position:relative; z-index:1; width:100%; max-width:100%; height:100%; object-fit:contain;
  mix-blend-mode:multiply; filter:drop-shadow(0 4px 6px rgba(62,35,32,.10)); transition:transform .35s var(--ease);
}
.csr-line .csr-card:hover .csr-card__media img, .csr-grid--shop .csr-card:hover .csr-card__media img, .csr-related .csr-card:hover .csr-card__media img, .csr-line .csr-card:hover .csr-card__media .csr-bag, .csr-grid--shop .csr-card:hover .csr-card__media .csr-bag, .csr-related .csr-card:hover .csr-card__media .csr-bag{ transform:translateY(-4px) scale(1); }
.csr-line .csr-badge, .csr-grid--shop .csr-badge, .csr-related .csr-badge{ top:16px; left:16px; border-radius:30px; padding:8px 12px; font-size:9px; letter-spacing:.04em; background:var(--vinho); }
.csr-line .csr-card__title, .csr-grid--shop .csr-card__title, .csr-related .csr-card__title{ font-size:24px; letter-spacing:-.025em; margin:22px 9px 7px; text-align:left; }
.csr-line .csr-card__notes, .csr-grid--shop .csr-card__notes, .csr-related .csr-card__notes{ font-size:12px; line-height:1.6; max-width:none; margin:0 9px 24px; text-align:left; }
.csr-line .csr-card__meta, .csr-grid--shop .csr-card__meta, .csr-related .csr-card__meta{
  display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap;
  margin:auto 9px 16px; font-size:9px; font-weight:600; letter-spacing:.065em; color:var(--vinho);
}
.csr-line .csr-card__price, .csr-grid--shop .csr-card__price, .csr-related .csr-card__price{ font-size:17px; font-weight:700; margin:0 9px 16px; text-align:left; }
/* O wrapper nao existe no layout ate o celular pedir a linha unica. */
.csr-card__purchase{ display:contents; }
.csr-line .csr-card__cta, .csr-grid--shop .csr-card__cta, .csr-related .csr-card__cta{
  display:flex; align-self:stretch; align-items:center; justify-content:space-between; gap:16px; margin:0 9px 9px;
  padding:16px 22px; border:1px solid var(--vinho); border-radius:50px; background:var(--vinho); color:var(--fundo);
  font-size:10px; font-weight:700; letter-spacing:.055em; text-transform:uppercase; transition:background .2s;
}
.csr-line .csr-card__cta::after, .csr-grid--shop .csr-card__cta::after, .csr-related .csr-card__cta::after{ content:"→"; font-size:17px; font-weight:400; line-height:1; }
.csr-line .csr-card:hover .csr-card__cta, .csr-grid--shop .csr-card:hover .csr-card__cta, .csr-related .csr-card:hover .csr-card__cta{ background:var(--cafe); }
.csr-line .csr-card--placeholder, .csr-grid--shop .csr-card--placeholder, .csr-related .csr-card--placeholder{ box-shadow:none; }
.csr-line .csr-card--placeholder .csr-card__media, .csr-grid--shop .csr-card--placeholder .csr-card__media, .csr-related .csr-card--placeholder .csr-card__media{ background:transparent; border:1px dashed var(--bege); }
.csr-line .csr-card--placeholder .csr-card__media::after, .csr-grid--shop .csr-card--placeholder .csr-card__media::after, .csr-related .csr-card--placeholder .csr-card__media::after{ display:none; }
@media (max-width: 1180px){
  .csr-line .csr-grid, .csr-grid--shop, .csr-related .csr-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:20px; max-width:760px; margin:0 auto; }
}
@media (max-width: 600px){
  .csr-line .csr-grid, .csr-grid--shop, .csr-related .csr-grid{ grid-template-columns:1fr; max-width:400px; margin:0 auto; gap:22px; }
  .csr-line .csr-card__title, .csr-grid--shop .csr-card__title, .csr-related .csr-card__title{ font-size:24px; }
}

/* slide 1 (banner vinho escuro): texto claro */
#slide-linhas .csr-slide__copy .csr-kicker{ color:var(--bege); }
#slide-linhas .csr-slide__copy h1{ color:var(--fundo); }
#slide-linhas .csr-slide__copy .csr-lead{ color:rgba(243,233,228,.78); }
#slide-linhas .csr-slide__copy .csr-btn--primary{ background:var(--fundo); border-color:var(--fundo); color:var(--cafe); }
#slide-linhas .csr-slide__copy .csr-btn--primary:hover{ background:var(--bege); border-color:var(--bege); color:var(--cafe); }
@media (max-width: 760px){
  #slide-linhas .csr-slide__copy{ max-width:88%; }
  /* Arte mobile nova (948x1659): mais alta, com o céu livre para o texto. */
  #slide-linhas .csr-slide__media{ aspect-ratio:948/1659; }
}


/* ---------- slide 2 (10% OFF): arte inteira, sem esticar nem cortar ----------
   A foto fica 100% visível (object-fit: contain) encostada à direita; o fundo do slide
   continua a cena — parede vinho em cima e mesa escura embaixo, na mesma linha da foto. */
@media (min-width: 761px){
  #slide-primeira-compra{
    background:#8f2242;
  }
  #slide-primeira-compra .csr-slide__media img{
    object-fit:contain;
    object-position:right center;
  }
  #slide-primeira-compra .csr-slide__badge{ display:none; }
  #slide-primeira-compra .csr-slide__copy .csr-kicker{ color:var(--bege); }
  #slide-primeira-compra .csr-slide__copy h2{ color:var(--fundo); }
  #slide-primeira-compra .csr-slide__copy h2 em{ color:var(--bege); }
  #slide-primeira-compra .csr-slide__copy .csr-lead{ color:rgba(243,233,228,.9); }
  #slide-primeira-compra .csr-slide__copy .csr-btn--primary{ background:var(--fundo); border-color:var(--fundo); color:var(--cafe); }
  #slide-primeira-compra .csr-slide__copy .csr-btn--primary:hover{ background:var(--bege); border-color:var(--bege); color:var(--cafe); }
}

@media (max-width: 760px){
  #slide-primeira-compra{ background:#8f2242; }
  #slide-primeira-compra .csr-slide__media img{
    object-fit:contain;
    object-position:center center;
  }
}

/* Hierarquia editorial: a tipografia acompanha a escala da fotografia. */
@media (min-width:761px){
  .csr-slide__copy{
    width:52%; max-width:none;
    /* A folga à direita é o respiro entre o texto e a fotografia: antes eram 2vw,
       pouco demais nas telas médias, onde o título alcançava os produtos. */
    padding:0 clamp(24px, 3.5vw, 80px) 0 max(64px, 6vw);
  }
  .csr-slide__copy h1, .csr-slide__copy h2{
    font-size:clamp(30px, 4.2vw, 120px);
    line-height:1.07; letter-spacing:-.025em;
    margin:0 0 clamp(14px, 1.25vw, 36px);
  }
  /* Na arte do Clube a caixa começa por volta de 37% da largura — bem antes que
     nas outras duas. Por isso esse slide tem a coluna e o título próprios. */
  #slide-clube .csr-slide__copy{ width:38%; }
  #slide-clube .csr-slide__copy h2{ font-size:clamp(20px, 2.5vw, 72px); }
  #slide-clube .csr-slide__copy .csr-lead{ max-width:34ch; }
  .csr-slide__copy .csr-kicker{
    font-size:clamp(9px, .7vw, 18px); line-height:1.5;
    letter-spacing:.14em; margin:0 0 clamp(12px, 1.1vw, 30px);
  }
  .csr-slide__copy .csr-lead{
    font-size:clamp(13px, 1.1vw, 28px); line-height:1.55;
    max-width:44ch; text-wrap:pretty;
    margin:0 0 clamp(18px, 1.7vw, 48px);
  }
  .csr-slide__copy .csr-btn{
    font-size:clamp(11px, .75vw, 18px);
    padding:clamp(12px, 1vw, 26px) clamp(20px, 1.8vw, 48px);
    min-height:44px;
  }
}

@media (min-width:761px) and (max-width:1024px){
  .csr-slide__copy .csr-kicker{ margin-bottom:8px; }
  .csr-slide__copy h1, .csr-slide__copy h2{ margin-bottom:10px; }
  .csr-slide__copy .csr-lead{ font-size:12px; line-height:1.45; margin-bottom:12px; }
  .csr-slide__copy .csr-btn{ padding:10px 18px; }
}

/* Arte fotografica continua, com as mesmas embalagens em ambas as telas. */
#slide-primeira-compra .csr-slide__media{ aspect-ratio:1916/821; }
#slide-primeira-compra .csr-slide__badge{ display:none; }
@media (max-width:760px){
  #slide-primeira-compra .csr-slide__media{ aspect-ratio:948/1659; }
  /* Este slide carrega um item a mais (o chip do cupom) e o pacote preto começa em ~38%
     da altura: bloco mais alto e mais justo, sem a linha de apoio. */
  #slide-primeira-compra .csr-slide__copy{ padding-top:clamp(26px, 7vw, 40px); }
  #slide-primeira-compra .csr-slide__copy .csr-kicker{ margin-bottom:10px; }
  #slide-primeira-compra .csr-slide__copy h2{ margin-bottom:14px; }
  #slide-primeira-compra .csr-slide__coupon{ margin-bottom:12px; }
  /* Nas linhas os pacotes começam em ~46%: a linha de apoio só cabe no slide do Clube. */
  #slide-primeira-compra .csr-slide__copy .csr-lead,
  #slide-linhas .csr-slide__copy .csr-lead{ display:none; }
  #slide-clube .csr-slide__copy .csr-lead{ color:rgba(243,233,228,.86); }
  #slide-primeira-compra .csr-slide__copy .csr-kicker{ color:var(--bege); }
  #slide-primeira-compra .csr-slide__copy h2{ color:var(--fundo); }
  #slide-primeira-compra .csr-slide__copy h2 em{ color:var(--bege); }
  #slide-primeira-compra .csr-slide__copy .csr-btn--primary{ background:var(--fundo); border-color:var(--fundo); color:var(--cafe); }
}

/* ---------- slide 3 (clube) — arte mobile vinho escura: texto claro ---------- */
@media (max-width:760px){
  #slide-clube{ background:#6d1030; }
  #slide-clube .csr-slide__copy{ max-width:88%; }
  #slide-clube .csr-slide__media{ aspect-ratio:948/1659; }
  #slide-clube .csr-slide__copy .csr-kicker{ color:var(--bege); }
  #slide-clube .csr-slide__copy h2{ color:var(--fundo); }
  #slide-clube .csr-slide__copy .csr-btn--primary{ background:var(--fundo); border-color:var(--fundo); color:var(--cafe); }
  #slide-clube .csr-slide__copy .csr-btn--primary:hover{ background:var(--bege); border-color:var(--bege); color:var(--cafe); }
}

/* ---------- cupom de boas-vindas (inc/cupom.php) ---------- */
.csr-coupon{
  display:inline-flex; align-items:center; gap:.7rem; padding:.45rem .5rem .45rem .9rem;
  border:1.5px dashed var(--vinho); border-radius:6px; background:rgba(243,233,228,.6);
  color:var(--cafe); font-family:var(--sans); cursor:pointer; text-align:left;
  transition:background .25s var(--ease), border-color .25s var(--ease);
}
.csr-coupon:hover, .csr-coupon:focus-visible{ background:var(--fundo); border-style:solid; }
.csr-coupon__label{ font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600; color:var(--vinho); }
.csr-coupon__code{ font-family:var(--sans); font-size:1.05rem; font-weight:600; letter-spacing:.12em; color:var(--cafe); }
.csr-coupon__action{
  display:inline-flex; align-items:center; gap:.35rem; padding:.4rem .7rem; border-radius:4px;
  background:var(--vinho); color:var(--fundo); font-size:.7rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  transition:background .25s var(--ease);
}
.csr-coupon__action svg{ width:14px; height:14px; }
.csr-coupon:hover .csr-coupon__action{ background:var(--cafe); }
.csr-coupon.is-copied{ border-color:#2f7a4a; border-style:solid; }
.csr-coupon.is-copied .csr-coupon__action{ background:#2f7a4a; }
.csr-coupon--lg{ padding:.6rem .6rem .6rem 1.1rem; gap:.9rem; }
.csr-coupon--lg .csr-coupon__code{ font-size:1.25rem; }
.csr-coupon--lg .csr-coupon__action{ padding:.55rem .9rem; }

.csr-popup{ position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:16px; }
.csr-popup[hidden]{ display:none; }
.csr-popup__backdrop{ position:absolute; inset:0; background:rgba(62,35,32,.55); backdrop-filter:blur(2px); }
.csr-popup__card{
  position:relative; width:min(100%, 440px); background:var(--fundo); border-radius:var(--r-md, 10px);
  padding:clamp(1.8rem, 4vw, 2.6rem) clamp(1.4rem, 4vw, 2.4rem); text-align:center; box-shadow:0 30px 60px rgba(0,0,0,.35);
  display:flex; flex-direction:column; align-items:center; gap:.9rem;
  animation:csr-popup-in .35s var(--ease) both;
}
@keyframes csr-popup-in{ from{ opacity:0; transform:translateY(14px) scale(.98); } to{ opacity:1; transform:none; } }
.csr-popup__close{
  position:absolute; top:.7rem; right:.7rem; width:36px; height:36px; border-radius:50%; border:0; background:transparent;
  color:var(--cafe); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .2s var(--ease);
}
.csr-popup__close:hover, .csr-popup__close:focus-visible{ background:var(--bege); }
.csr-popup__close svg{ width:20px; height:20px; }
.csr-popup__card:focus{ outline:none; }
.csr-popup .csr-kicker{ margin:0; }
.csr-popup h2{ font-size:clamp(1.8rem, 5vw, 2.4rem); letter-spacing:-.02em; line-height:1.1; margin:0; }
.csr-popup h2 em{ color:var(--vinho); font-weight:400; }
.csr-popup__text{ color:var(--texto-2); margin:0; max-width:34ch; }
.csr-popup .csr-coupon--lg{ margin-top:.3rem; }
.csr-popup .csr-btn{ width:100%; text-align:center; }
.csr-popup__note{ font-size:.72rem; color:var(--texto-2); opacity:.8; margin:0; }
@media (max-width: 480px){
  .csr-popup{ align-items:flex-end; padding:0; }
  .csr-popup__card{ width:100%; border-radius:16px 16px 0 0; padding-bottom:max(1.6rem, env(safe-area-inset-bottom)); }
  .csr-popup .csr-coupon--lg{ width:100%; justify-content:space-between; }
}

/* chip no slide 2 do carrossel */
.csr-slide__coupon{ align-self:flex-start; margin-bottom:clamp(.8rem, 1.4vw, 1.4rem); }
@media (max-width: 760px){
  .csr-slide__coupon{ padding:.3rem .34rem .3rem .7rem; gap:.5rem; margin-bottom:16px; }
  .csr-slide__coupon .csr-coupon__label{ display:none; }
  .csr-slide__coupon .csr-coupon__code{ font-size:.9rem; }
  .csr-slide__coupon .csr-coupon__action{ padding:.32rem .55rem; font-size:.62rem; }
}
/* chip claro sobre o fundo vinho do slide 2 */
#slide-primeira-compra .csr-coupon{ border-color:rgba(243,233,228,.7); background:rgba(243,233,228,.1); color:var(--fundo); }
#slide-primeira-compra .csr-coupon:hover, #slide-primeira-compra .csr-coupon:focus-visible{ background:rgba(243,233,228,.18); border-color:var(--fundo); }
#slide-primeira-compra .csr-coupon__label{ color:var(--bege); }
#slide-primeira-compra .csr-coupon__code{ color:var(--fundo); }
#slide-primeira-compra .csr-coupon__action{ background:var(--fundo); color:var(--cafe); }
#slide-primeira-compra .csr-coupon:hover .csr-coupon__action{ background:var(--bege); }
#slide-primeira-compra .csr-coupon.is-copied .csr-coupon__action{ background:#2f7a4a; color:var(--fundo); }
body.csr-popup-open{ overflow:hidden; }

/* ---------- página do produto: galeria no mesmo card/palco das grades (todas as linhas) ----------
   O flexslider define a largura de cada slide, então o slide fica sem padding/borda:
   a moldura vai no <a> interno, o palco no ::before e a sombra de chão no ::after. */
.woocommerce-product-gallery__image{ background:none; border-radius:0; }
.woocommerce-product-gallery__image > a, .csr-product__placeholder{
  position:relative; isolation:isolate; display:flex; align-items:center; justify-content:center;
  box-sizing:border-box; aspect-ratio:4/5; padding:60px calc(12px + 10%) 46px;
  background:#fdfaf8; border:1px solid rgba(62,35,32,.08); border-radius:24px;
  box-shadow:0 18px 32px -30px rgba(62,35,32,.18); overflow:hidden;
}
.woocommerce-product-gallery__image > a::before, .csr-product__placeholder::before{
  content:""; position:absolute; z-index:0; inset:12px; border-radius:16px;
  background:radial-gradient(ellipse 80% 70% at 50% 38%, #ffffff 0%, #f7f1ed 100%);
}
.woocommerce-product-gallery__image > a::after, .csr-product__placeholder::after{
  content:""; position:absolute; z-index:0; left:50%; bottom:40px; width:58%; height:28px;
  transform:translateX(-50%); border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(62,35,32,.22) 0%, rgba(62,35,32,0) 70%);
}
.woocommerce-product-gallery__image > a img, .csr-product__placeholder .csr-bag{
  position:relative; z-index:1; width:100%; height:100%; object-fit:contain; border-radius:0;
  mix-blend-mode:multiply; filter:drop-shadow(0 4px 6px rgba(62,35,32,.10));
}
.flex-control-thumbs{ list-style:none; padding:0; }
.flex-control-thumbs li{ list-style:none; }
.flex-control-thumbs img{ background:radial-gradient(ellipse 80% 70% at 50% 38%, #fff 0%, #f7f1ed 100%); border-radius:12px; }
@media (max-width: 600px){
  .woocommerce-product-gallery__image > a, .csr-product__placeholder{ padding:40px calc(12px + 8%) 32px; }
  .woocommerce-product-gallery__image > a::after, .csr-product__placeholder::after{ bottom:26px; height:20px; }
}

/* ---------- slide 3 (clube) — arte desktop vinho escura (set/2026): texto claro ---------- */
@media (min-width:761px){
  #slide-clube{ background:#5a0f25; }
  /* nesta arte a caixa começa em ~52% da largura: título maior e coluna mais larga */
  #slide-clube .csr-slide__copy{ width:52%; }
  #slide-clube .csr-slide__copy h2{ font-size:clamp(26px, 3.7vw, 104px); }
  #slide-clube .csr-slide__copy .csr-lead{ max-width:40ch; }
  #slide-clube .csr-slide__copy .csr-kicker{ color:var(--bege); }
  #slide-clube .csr-slide__copy h2{ color:var(--fundo); }
  #slide-clube .csr-slide__copy .csr-lead{ color:rgba(248,238,233,.86); }
  #slide-clube .csr-slide__copy .csr-btn--primary{ background:var(--fundo); border-color:var(--fundo); color:var(--cafe); }
  #slide-clube .csr-slide__copy .csr-btn--primary:hover{ background:var(--bege); border-color:var(--bege); color:var(--cafe); }
}

/* ---------- responsividade (revisão set/2026) ---------- */
/* O <select> original da variação fica escondido atrás das pílulas, mas com position:absolute
   e largura de 100% ele saía da tela e alargava a página do produto (rolagem lateral). */
.csr-pills + select{
  width:1px; height:1px; padding:0; margin:-1px; border:0;
  overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%);
}
/* O zoom do WooCommerce insere uma imagem maior que o slide; fica recortada pela moldura. */
.woocommerce-product-gallery__image{ overflow:hidden; border-radius:24px; }

/* Alvos de toque de pelo menos 44px no celular (ícones do topo, rodapé, indicadores). */
@media (max-width: 960px){
  .csr-menu-toggle{ padding:10px; margin-left:-10px; }
  .csr-account, .csr-cart{ display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; }
  .csr-actions{ gap:0; }
  .csr-footer__quick a{ display:inline-block; padding:.55rem 0; }
  .csr-footer__quick ul{ gap:0 1.1rem; }
}
/* Indicadores: área de toque de 24px, a bolinha de 8px é desenhada no ::before. */
.csr-slider__dots{ gap:0; bottom:6px; }
.csr-slider__dots button{ position:relative; width:24px; height:24px; background:none; }
.csr-slider__dots button::before{
  content:""; position:absolute; inset:8px; border-radius:50%;
  background:rgba(62,35,32,.28); transition:background .25s var(--ease);
}
.csr-slider__dots button[aria-selected="true"]{ background:none; transform:none; }
.csr-slider__dots button[aria-selected="true"]::before{ background:var(--vinho); transform:scale(1.35); }

/* Barra das linhas: no celular as três cabem lado a lado (antes "Descobertas" ficava
   cortado e só aparecia rolando de lado). Três colunas iguais, texto centralizado. */
@media (max-width: 480px){
  .csr-lines ul{ display:grid; grid-template-columns:repeat(3, 1fr); overflow:visible; }
  .csr-lines a{ padding:.8rem .25rem; text-align:center; font-size:.66rem; letter-spacing:.08em; }
}


/* Tablet (761–1024px): a faixa do banner fica baixa. No slide dos 10% a linha de apoio
   empurrava cupom e botão até a borda, e no do Clube ela invadia o pacote amarelo. */
@media (min-width: 761px) and (max-width: 1024px){
  #slide-primeira-compra .csr-slide__copy .csr-lead,
  #slide-clube .csr-slide__copy .csr-lead{ display:none; }
  /* e o título do Clube, na coluna de 52%, encostava no pacote amarelo */
  #slide-clube .csr-slide__copy h2{ font-size:clamp(22px, 3.1vw, 32px); }
}

/* ---------- carrossel — mobile unificado (set/2026) ----------
   Mesma estrutura nos três slides: mensagem centralizada no céu livre do topo,
   produto ao centro e ação (cupom + botão) ancorada embaixo, acima dos indicadores.
   Sobrescreve os ajustes mobile anteriores de cada slide. */
@media (max-width: 760px){
  .csr-slide__copy,
  #slide-linhas .csr-slide__copy,
  #slide-clube .csr-slide__copy,
  #slide-primeira-compra .csr-slide__copy{
    z-index:1; max-width:none; width:auto;
    align-items:center; text-align:center;
    padding:clamp(40px, 11vw, 56px) clamp(24px, 7vw, 32px) 40px;
  }
  .csr-slide__copy .csr-kicker,
  #slide-primeira-compra .csr-slide__copy .csr-kicker{
    font-size:.64rem; letter-spacing:.2em; line-height:1.5; margin:0 0 16px;
  }
  .csr-slide__copy h1, .csr-slide__copy h2,
  #slide-primeira-compra .csr-slide__copy h2{
    font-size:clamp(1.7rem, 8vw, 2.2rem); line-height:1.14; letter-spacing:-.02em;
    margin:0 auto; max-width:16ch; text-wrap:balance;
  }
  #slide-clube .csr-slide__copy .csr-lead{
    max-width:30ch; margin:16px auto 0; font-size:.9rem; line-height:1.55;
  }

  /* o botão vai para a base do slide; o cupom fica junto da mensagem, no céu livre
     (embaixo ele cobriria o cartão de 10% da arte) */
  .csr-slide__copy .csr-btn{ margin-top:auto; }
  .csr-slide__copy .csr-btn{
    align-self:center; width:100%; max-width:320px; min-height:52px;
    display:inline-flex; align-items:center; justify-content:center;
    padding:.9rem 1.5rem; font-size:.8rem; letter-spacing:.1em; border-radius:8px;
    box-shadow:0 12px 28px -12px rgba(0,0,0,.55);
  }
  .csr-slide__coupon,
  #slide-primeira-compra .csr-slide__coupon{
    align-self:center; margin:22px 0 0; backdrop-filter:blur(6px);
  }

  /* véu escuro na base: garante contraste do botão sobre a mesa/produtos */
  .csr-slide::after{
    content:""; position:absolute; left:0; right:0; bottom:0; height:34%;
    background:linear-gradient(to top, rgba(30,8,14,.62) 0%, rgba(30,8,14,.28) 45%, rgba(30,8,14,0) 100%);
    pointer-events:none;
  }

  /* no toque o gesto de arrastar já navega: as setas só cobriam os produtos */
  .csr-slider__arrow{ display:none; }
  .csr-slider__dots{ bottom:8px; }
  .csr-slider__dots button::before{ background:rgba(243,233,228,.45); }
  .csr-slider__dots button[aria-selected="true"]::before{ background:var(--fundo); }
}

/* ---------- ajustes do cliente (out/2026) ---------- */
/* Cabeçalho mais legível: logo, menu, faixa do topo e barra das linhas maiores. */
.csr-topbar{ font-size:.8rem; }
.csr-brand img{ height:64px; }
.csr-nav__list a{ font-size:1.125rem; }
.csr-lines a{ font-size:.9rem; padding:.65rem 1.8rem; }
@media (max-width: 960px){
  .csr-brand img{ height:52px; }
  .csr-nav__list a{ font-size:1.8rem; }
}
@media (max-width: 480px){
  .csr-topbar{ font-size:.72rem; }
  .csr-lines a{ font-size:.72rem; padding:.8rem .25rem; }
}

/* Slide com dois botões (Ver todos os cafés + WhatsApp). */
.csr-slide__actions{ display:flex; flex-wrap:wrap; gap:clamp(10px, .9vw, 20px); align-self:flex-start; }
.csr-btn--ghost{ background:transparent; color:var(--fundo); border-color:rgba(243,233,228,.7); }
.csr-btn--ghost:hover{ background:var(--fundo); border-color:var(--fundo); color:var(--cafe); }
.csr-btn--ghost svg{ width:1.35em; height:1.35em; flex:none; }
/* Botão do WhatsApp em verde; tom escurecido para o texto branco manter contraste. */
.csr-btn--wa, .csr-slide__actions .csr-btn--ghost.csr-btn--wa{ background:#188a43; border-color:#188a43; color:#fff; backdrop-filter:none; }
.csr-btn--wa:hover, .csr-slide__actions .csr-btn--ghost.csr-btn--wa:hover{ background:#12733a; border-color:#12733a; color:#fff; }
@media (max-width: 760px){
  /* lado a lado no celular: empilhados, os dois botões cobriam as embalagens */
  .csr-slide__actions{
    margin-top:auto; align-self:center; width:100%; max-width:360px;
    flex-wrap:nowrap; gap:8px;
  }
  .csr-slide__actions .csr-btn{
    margin-top:0; flex:1 1 0; min-width:0; max-width:none; min-height:48px;
    padding:.75rem .6rem; font-size:.7rem; letter-spacing:.06em; gap:.4rem;
  }
  .csr-slide__actions .csr-btn--ghost{ backdrop-filter:blur(6px); background:rgba(30,8,14,.3); }
}

/* Aviso discreto no canto do slide do Clube (a embalagem enviada pode variar). */
.csr-slide__note{
  position:absolute; z-index:1; right:clamp(12px, 1.5vw, 32px); bottom:clamp(10px, 1.2vw, 24px);
  margin:0; font-size:clamp(10px, .65vw, 14px); letter-spacing:.04em; font-style:italic;
  color:rgba(243,233,228,.75); pointer-events:none;
}
@media (max-width: 760px){
  /* embaixo ficaria sobre os indicadores e o botão do WhatsApp */
  .csr-slide__note{ top:10px; bottom:auto; right:12px; font-size:10px; }
}

/* Menu com fonte maior: entre 961 e 1200px não cabia numa linha só. */
.csr-nav__list a{ white-space:nowrap; }
@media (min-width: 961px){ .csr-nav__list{ gap:clamp(14px,1.6vw,26px); } }
@media (min-width: 961px) and (max-width: 1200px){
  .csr-header__inner{ gap:1.25rem; }
  .csr-brand img{ height:56px; }
  .csr-nav__list{ gap:1.25rem; }
  .csr-nav__list a{ font-size:1rem; }
  .csr-search input{ width:90px; }
}

/* Botão flutuante do WhatsApp: verde da marca WhatsApp, com pulso para chamar atenção. */
.csr-wa-float{ background:#25d366; color:#fff; }
.csr-wa-float::before{
  content:""; position:absolute; inset:0; border-radius:50%; background:#25d366; z-index:-1;
  animation:csr-wa-pulse 2s ease-out infinite;
}
@keyframes csr-wa-pulse{
  0%{ transform:scale(1); opacity:.6; }
  100%{ transform:scale(1.7); opacity:0; }
}
@media (prefers-reduced-motion: reduce){
  .csr-wa-float::before{ animation:none; }
}

/* ---------- avaliações dos cafés (out/2026) ----------
   Estrelas desenhadas por máscara SVG: o CSS padrão do Woo (fonte de estrelas) não é carregado. */
:root{
  --estrela: #c99a3b;
  --estrela-vazia: var(--bege);
  --caixa-avaliacao: rgba(255,255,255,.55);
  --estrela-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5l2.94 6.1 6.56.9-4.78 4.6 1.17 6.6L12 17.6l-5.89 3.1 1.17-6.6L2.5 9.5l6.56-.9z'/%3E%3C/svg%3E");
}
.csr-stars, .star-rating{
  display:inline-block; position:relative; flex:none; width:5.5em; height:1.1em; font-size:15px; overflow:hidden;
  -webkit-mask:var(--estrela-svg) left center / 1.1em 1.1em repeat-x; mask:var(--estrela-svg) left center / 1.1em 1.1em repeat-x;
}
.csr-stars{ background:linear-gradient(90deg, var(--estrela) calc(var(--rating) / 5 * 100%), var(--estrela-vazia) 0); }
.star-rating{ background:var(--estrela-vazia); }
.star-rating span{ position:absolute; inset:0 auto 0 0; background:var(--estrela); font-size:0; color:transparent; }

/* média sob o título (página do café) e nos cards */
.csr-rating{ display:inline-flex; align-items:center; gap:.4rem; font-size:.85rem; color:var(--texto-2); line-height:1.2; }
.csr-rating__avg{ font-weight:700; color:var(--cafe); }
a.csr-rating:hover .csr-rating__count{ text-decoration:underline; }
.csr-product__title + .csr-rating{ margin:.5rem 0 .2rem; }
.csr-card .csr-rating{ margin:0 9px .5rem; font-size:.8rem; }
.csr-card .csr-stars{ font-size:13px; }
.day-product__body .csr-rating{ margin:0 0 .6rem; }

/* bloco de avaliações na página do café */
.csr-reviews{ max-width:var(--max); margin:var(--sec) auto 0; padding-top:2.5rem; border-top:1px solid var(--linha); }
.woocommerce-Reviews{ display:grid; grid-template-columns:minmax(0, 1.25fr) minmax(0, 1fr); gap:3rem; align-items:start; }
.woocommerce-Reviews .clear{ display:none; }
.woocommerce-Reviews-title{ font-size:clamp(1.5rem, 2.4vw, 2rem); margin-bottom:1.4rem; }
.woocommerce-noreviews{ color:var(--texto-2); }
.commentlist{ display:grid; gap:1rem; list-style:none; margin:0; padding:0; }
.commentlist .review{ background:var(--caixa-avaliacao); border:1px solid var(--linha); border-radius:var(--r-lg); padding:1.3rem 1.5rem; }
.commentlist .avatar{ display:none; }
.commentlist .comment-text{ display:grid; gap:.5rem; }
.commentlist .meta{ margin:0; font-size:.85rem; color:var(--texto-2); }
.commentlist .meta strong{ color:var(--cafe); font-weight:700; }
.commentlist .meta .woocommerce-review__verified{ font-style:normal; font-size:.78rem; color:var(--rose); }
.commentlist .description p{ margin:0; color:var(--texto); }

#review_form_wrapper{ background:var(--caixa-avaliacao); border:1px solid var(--linha); border-radius:var(--r-lg); padding:1.8rem 2rem; }
.woocommerce-verification-required{ background:var(--caixa-avaliacao); border:1px solid var(--linha); border-radius:var(--r-lg); padding:1.5rem 1.8rem; margin:0; color:var(--texto-2); }
.comment-reply-title{ display:block; font-family:var(--serif); font-weight:700; font-size:1.25rem; color:var(--cafe); margin-bottom:1rem; }
#respond form{ display:grid; gap:1rem; }
#respond form p{ margin:0; }
#respond label{ display:block; font-size:.85rem; font-weight:700; color:var(--cafe); margin-bottom:.35rem; }
#respond input[type="text"], #respond input[type="email"], #respond textarea{
  width:100%; border:1px solid var(--bege); background:var(--fundo); border-radius:var(--r-sm); padding:.75rem .9rem; font-size:1rem;
}
#respond textarea{ min-height:130px; resize:vertical; }
#respond .required{ color:var(--rose); }
#respond .comment-form-cookies-consent{ display:flex; gap:.5rem; align-items:flex-start; font-size:.85rem; }
#respond .comment-form-cookies-consent label{ font-weight:400; margin:0; }
.csr-reviews__note{ font-size:.85rem; color:var(--texto-2); }
#respond .form-submit .csr-btn{ width:100%; }

/* seletor de nota (o JS do Woo troca o <select> por cinco links .star-N) */
p.stars{ margin:0; }
p.stars span{ display:inline-flex; gap:.25rem; }
p.stars a{ position:relative; display:block; width:34px; height:34px; font-size:0; color:transparent; }
p.stars a::before{
  content:""; position:absolute; inset:3px; background:var(--estrela-vazia);
  -webkit-mask:var(--estrela-svg) center / contain no-repeat; mask:var(--estrela-svg) center / contain no-repeat;
  transition:background .15s var(--ease);
}
p.stars:hover a::before, p.stars.selected a::before{ background:var(--estrela); }
p.stars:hover a:hover ~ a::before, p.stars.selected:not(:hover) a.active ~ a::before{ background:var(--estrela-vazia); }
p.stars a:focus-visible{ outline:2px solid var(--rose); outline-offset:2px; border-radius:4px; }

@media (max-width: 860px){
  .woocommerce-Reviews{ grid-template-columns:1fr; gap:2rem; }
  #review_form_wrapper{ padding:1.4rem 1.2rem; }
}

/* ---------- perguntas frequentes (out/2026): página + bloco da home ---------- */
.csr-nav__mobile-only{ display:none; }
@media (max-width: 960px){ .csr-nav__mobile-only{ display:list-item; } }

.csr-faq{ padding:var(--sec) var(--gutter); }
.csr-faq--home{ border-top:1px solid var(--linha); }
.csr-faq__inner{ max-width:1100px; margin:0 auto; display:grid; grid-template-columns:minmax(0, .85fr) minmax(0, 1.4fr); gap:clamp(2rem, 5vw, 5rem); align-items:start; }
.csr-faq--page .csr-faq__inner{ grid-template-columns:1fr; max-width:860px; gap:2.5rem; }
.csr-faq__head h1, .csr-faq__head h2{ font-size:clamp(1.8rem, 3.2vw, 2.6rem); line-height:1.15; margin:0 0 1rem; }
.csr-faq__head .csr-kicker{ margin-bottom:.8rem; }
.csr-faq__intro{ color:var(--texto-2); max-width:60ch; }
.csr-faq__intro a, .csr-faq__answer a{ color:var(--vinho); text-decoration:underline; text-underline-offset:2px; }
@media (min-width: 861px){ .csr-faq--home .csr-faq__head{ position:sticky; top:180px; } }

.csr-faq__list{ border-top:1px solid var(--linha); }
.csr-faq__item{ border-bottom:1px solid var(--linha); }
.csr-faq__item summary{
  display:flex; align-items:center; justify-content:space-between; gap:1.2rem;
  padding:1.25rem 0; cursor:pointer; list-style:none;
}
.csr-faq__item summary::-webkit-details-marker{ display:none; }
.csr-faq__item summary h3{ font-size:clamp(1.05rem, 1.4vw, 1.2rem); line-height:1.35; margin:0; color:var(--cafe); }
.csr-faq__item summary:hover h3{ color:var(--vinho); }
.csr-faq__item summary:focus-visible{ outline:2px solid var(--rose); outline-offset:4px; border-radius:4px; }
.csr-faq__icon{ position:relative; flex:none; width:28px; height:28px; border:1.5px solid var(--bege); border-radius:50%; }
.csr-faq__icon::before, .csr-faq__icon::after{
  content:""; position:absolute; left:50%; top:50%; width:11px; height:1.5px; background:var(--vinho);
  transform:translate(-50%,-50%); transition:transform .25s var(--ease);
}
.csr-faq__icon::after{ transform:translate(-50%,-50%) rotate(90deg); }
.csr-faq__item[open] .csr-faq__icon::after{ transform:translate(-50%,-50%) rotate(0deg); }
.csr-faq__answer{ padding:0 2.8rem 1.4rem 0; }
.csr-faq__answer p{ margin:0; color:var(--texto); max-width:68ch; }

@media (max-width: 860px){
  .csr-faq__inner{ grid-template-columns:1fr; gap:1.8rem; }
  .csr-faq__answer{ padding-right:0; }
}
.csr-nowrap{ white-space:nowrap; }

/* FAQ: abertura vinho e perguntas em cartoes claros. */
.csr-faq--page{ background:linear-gradient(180deg, #e8d8cd 0, var(--fundo) 640px); }
.csr-faq--page .csr-faq__inner{ max-width:1000px; gap:32px; }
.csr-faq--page .csr-faq__head{
  padding:clamp(28px, 5vw, 56px); border-radius:24px;
  background:linear-gradient(135deg, var(--vinho), var(--cafe));
  box-shadow:0 18px 40px -24px rgba(62,35,32,.5);
}
.csr-faq--page .csr-faq__head .csr-kicker{ color:var(--bege); letter-spacing:.16em; }
.csr-faq--page .csr-faq__head h1{ color:var(--fundo); max-width:25ch; margin-bottom:24px; }
.csr-faq--page .csr-faq__intro{ color:var(--fundo); line-height:1.7; margin:0; }
.csr-faq--page .csr-faq__intro a{ color:#f1cfad; text-decoration-thickness:1px; }
.csr-faq--page .csr-faq__intro a:focus-visible{ outline-color:var(--bege); }
.csr-faq--page .csr-faq__list{ display:grid; gap:14px; border:0; }
.csr-faq--page .csr-faq__item{
  background:#fffaf7; border:1px solid var(--bege); border-radius:14px;
  box-shadow:0 5px 16px -12px rgba(62,35,32,.25);
}
.csr-faq--page .csr-faq__item summary{ padding:24px; border-radius:13px; }
.csr-faq--page .csr-faq__item summary:hover{ background:#efe0d6; }
.csr-faq--page .csr-faq__icon{ width:32px; height:32px; background:var(--vinho); border-color:var(--vinho); }
.csr-faq--page .csr-faq__icon::before,
.csr-faq--page .csr-faq__icon::after{ background:var(--fundo); }
.csr-faq--page .csr-faq__item[open]{ border-color:var(--vinho); }
.csr-faq--page .csr-faq__item[open] summary{ background:var(--vinho); border-radius:12px 12px 0 0; }
.csr-faq--page .csr-faq__item[open] summary h3{ color:var(--fundo); }
.csr-faq--page .csr-faq__item[open] .csr-faq__icon{ background:var(--fundo); border-color:var(--fundo); }
.csr-faq--page .csr-faq__item[open] .csr-faq__icon::before,
.csr-faq--page .csr-faq__item[open] .csr-faq__icon::after{ background:var(--vinho); }
.csr-faq--page .csr-faq__answer{ padding:24px; }
.csr-faq--page .csr-faq__answer p{ line-height:1.7; }
@media (max-width:600px){
  .csr-faq--page{ padding-top:24px; }
  .csr-faq--page .csr-faq__head{ padding:28px 24px; border-radius:18px; }
  .csr-faq--page .csr-faq__item summary{ padding:20px 18px; gap:16px; }
  .csr-faq--page .csr-faq__answer{ padding:20px 18px; }
}

/* ---------- ficha do café na coluna da direita (out/2026) ----------
   Produtor/região/torra, "Na xícara" e "Origem" logo abaixo do frete, em destaque
   e com fonte maior (antes ficavam abaixo da dobra, em largura total e letra pequena). */
.csr-info{
  margin-top:1.8rem; padding:clamp(1.4rem, 2.2vw, 2rem);
  background:rgba(255,255,255,.55); border:1px solid var(--linha); border-radius:var(--r-lg);
}
.csr-info__spec{ display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:1rem 1.5rem; margin:0; }
.csr-info__spec > div{ border-left:2px solid var(--line, var(--vinho)); padding-left:.8rem; }
.csr-info__spec dt{ font-size:.75rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--texto-2); margin-bottom:.15rem; }
.csr-info__spec dd{ margin:0; font-size:1.0625rem; font-weight:700; color:var(--cafe); line-height:1.35; }
.csr-info__block{ margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--linha); }
.csr-info__spec + .csr-info__block{ margin-top:1.6rem; }
.csr-info__block:first-child{ margin-top:0; padding-top:0; border-top:0; }
.csr-info__block .csr-kicker{ margin-bottom:.5rem; }
.csr-info__block h2{ font-size:clamp(1.35rem, 1.9vw, 1.6rem); line-height:1.2; margin:0 0 .8rem; }
.csr-info__block p:not(.csr-kicker){ font-size:1.0625rem; line-height:1.6; color:var(--cafe); margin:0 0 .8rem; }
.csr-info__block p:last-child{ margin-bottom:0; }
@media (max-width: 600px){
  .csr-info{ padding:1.3rem 1.2rem; }
  .csr-info__spec{ grid-template-columns:1fr 1fr; }
  .csr-info__block p:not(.csr-kicker){ font-size:1rem; }
}

/* Velocidade (out/2026): backdrop-filter (desfoque do que está atrás) é dos efeitos mais caros
   de pintar no celular. Troca por fundo semitransparente um pouco mais denso — visual quase igual. */
.csr-slider__arrow{ backdrop-filter:none; background:rgba(243,233,228,.55); }
.csr-popup__backdrop{ backdrop-filter:none; background:rgba(40,20,18,.68); }
@media (max-width: 760px){
  .csr-slide__coupon, #slide-primeira-compra .csr-slide__coupon{ backdrop-filter:none; }
  #slide-primeira-compra .csr-coupon{ background:rgba(40,12,20,.32); }
  .csr-slide__actions .csr-btn--ghost{ backdrop-filter:none; background:rgba(30,8,14,.45); }
}

/* Menu com 5 itens (Guia de sabores): entre 961 e 1100px não cabia ao lado do logo e da busca.
   Espaços menores e a busca vira só o ícone, que abre ao receber foco (como no celular). */
@media (min-width: 961px) and (max-width: 1100px){
  .csr-header__inner{ gap:1rem; }
  .csr-brand img{ height:50px; }
  .csr-nav__list{ gap:1rem; }
  .csr-nav__list a{ font-size:.95rem; }
  .csr-search{ border-bottom-color:transparent; }
  .csr-search input{ width:0; padding:0; transition:width .2s var(--ease); }
  .csr-search:focus-within{ border-bottom-color:var(--bege); }
  .csr-search:focus-within input{ width:110px; }
}

/* Início no menu: discreto no desktop (só o ícone), item normal no menu do celular. */
.csr-nav__home a{ display:inline-flex; align-items:center; gap:10px; }
.csr-nav__home svg{ width:19px; height:19px; flex:none; }
@media (min-width: 961px){
  .csr-nav__home a{ opacity:.6; transition:opacity .2s var(--ease); }
  .csr-nav__home a:hover, .csr-nav__home a:focus-visible, .csr-nav__home.current-menu-item a{ opacity:1; }
  .csr-nav__home a::after{ display:none; }
  .csr-nav__home-label{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
}
@media (max-width: 960px){
  .csr-nav .csr-nav__list .csr-nav__home a{ display:flex; align-items:center; gap:12px; }
  .csr-nav__home svg{ width:22px; height:22px; }
}

/* ---------- sacola lateral (inc/sacola.php) — só desktop ---------- */
.csr-drawer[hidden]{ display:none; }
.csr-drawer{ position:fixed; inset:0; z-index:1000; }
.csr-drawer__backdrop{ position:absolute; inset:0; background:rgba(35,17,15,.45); opacity:0; transition:opacity .3s var(--ease); }
.csr-drawer__panel{ position:absolute; top:0; right:0; bottom:0; width:min(420px,100vw); display:flex; flex-direction:column; background:var(--fundo); box-shadow:-24px 0 48px -24px rgba(35,17,15,.45); transform:translateX(100%); transition:transform .3s var(--ease); outline:none; }
.csr-drawer.is-open .csr-drawer__backdrop{ opacity:1; }
.csr-drawer.is-open .csr-drawer__panel{ transform:none; }
body.csr-drawer-open{ overflow:hidden; }
body.csr-drawer-shown .woocommerce-notices-wrapper .woocommerce-message{ display:none; }
.csr-drawer__head{ display:flex; align-items:center; justify-content:space-between; padding:1.4rem 1.6rem; border-bottom:1px solid var(--linha); }
.csr-drawer__head h2{ margin:0; font-size:1.35rem; }
.csr-drawer__head h2 span{ font-family:var(--sans); font-size:.95rem; color:var(--vinho); }
.csr-drawer__close{ display:grid; place-items:center; width:40px; height:40px; border:0; border-radius:50%; background:transparent; color:var(--cafe); cursor:pointer; }
.csr-drawer__close:hover{ background:rgba(110,47,56,.08); }
.csr-drawer__close svg{ width:22px; height:22px; }
.csr-drawer__added{ margin:0; padding:.75rem 1.6rem; font-size:.85rem; font-weight:600; color:var(--vinho); background:rgba(110,47,56,.07); }
.csr-drawer__items{ flex:1; overflow-y:auto; margin:0; padding:.4rem 1.6rem; list-style:none; }
.csr-drawer__item{ display:grid; grid-template-columns:72px 1fr auto; gap:1rem; align-items:start; padding:1rem 0; border-bottom:1px solid var(--linha); }
.csr-drawer__item:last-child{ border-bottom:0; }
.csr-drawer__thumb{ display:block; width:72px; aspect-ratio:1; border-radius:var(--r-sm); overflow:hidden; background:#fff; }
.csr-drawer__thumb img{ width:100%; height:100%; object-fit:contain; }
.csr-drawer__name{ margin:0 0 .2rem; font-weight:600; line-height:1.3; }
.csr-drawer__name a{ color:inherit; }
.csr-drawer__name a:hover{ color:var(--vinho); }
.csr-drawer__info .variation{ display:flex; flex-wrap:wrap; gap:.25rem; margin:0 0 .3rem; font-size:.8rem; color:var(--texto); opacity:.8; }
.csr-drawer__info .variation dt, .csr-drawer__info .variation dd, .csr-drawer__info .variation p{ margin:0; display:inline; }
.csr-drawer__qty{ margin:0; font-size:.85rem; opacity:.85; }
.csr-drawer__line-total{ font-weight:600; color:var(--vinho); white-space:nowrap; }
.csr-drawer__item.is-new .csr-drawer__name::after{ content:"Novo"; margin-left:.5rem; padding:.1rem .45rem; border-radius:999px; font-size:.65rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#fff; background:var(--vinho); vertical-align:middle; }
.csr-drawer__foot{ display:grid; gap:.65rem; padding:1.2rem 1.6rem 1.6rem; border-top:1px solid var(--linha); background:var(--fundo); }
.csr-drawer__subtotal{ display:flex; justify-content:space-between; align-items:baseline; margin:0; font-size:1.05rem; }
.csr-drawer__subtotal strong{ font-size:1.25rem; color:var(--vinho); }
.csr-drawer__note{ margin:0 0 .3rem; font-size:.78rem; opacity:.75; }
.csr-drawer__foot .csr-btn{ width:100%; justify-content:center; text-align:center; }
.csr-drawer__foot .csr-btn--primary, .csr-drawer__foot .csr-btn--primary:hover{ color:#fff; }
.csr-drawer__foot .csr-btn--outline{ background:transparent; color:var(--cafe); border:1px solid var(--cafe); }
.csr-drawer__foot .csr-btn--outline:hover{ background:var(--cafe); color:var(--fundo); }
.csr-drawer__continue{ padding:.4rem; border:0; background:transparent; font:inherit; font-size:.85rem; color:var(--cafe); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
@media (prefers-reduced-motion: reduce){ .csr-drawer__panel, .csr-drawer__backdrop{ transition:none; } }
