/* ===================================================================
   DON BACTER AGROECOLOGÍA — Sistema de diseño
   Paleta tomada del logo: verde bosque + dorado paja + crema + carbón
   =================================================================== */

:root{
  --db-green-900:#063D1F;
  --db-green-800:#0B5A2E;
  --db-green-700:#0E6B37;
  --db-green-600:#137A41;
  --db-green-500:#1F8A4C;
  --db-leaf:#7FB069;
  --db-gold-600:#B98F33;
  --db-gold-500:#D8B25A;
  --db-gold-300:#EBD9A4;
  --db-cream:#F6F1E4;
  --db-cream-2:#FBF8F0;
  --db-ink:#14110B;
  --db-ink-soft:#2B2A24;
  --db-muted:#6E6A5C;
  --db-line:#E7E0CF;
  --db-white:#ffffff;
  --db-radius:18px;
  --db-radius-sm:12px;
  --db-shadow:0 14px 40px -18px rgba(6,61,31,.35);
  --db-shadow-sm:0 6px 18px -8px rgba(6,61,31,.28);
  --db-font:"Nunito",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --db-font-head:"Fraunces","Nunito",Georgia,serif;
  --db-max:1240px;
}

/* ---------- Base / Astra overrides ---------- */
body, .ast-container, p, span, li, a, button, input, select, textarea{
  font-family:var(--db-font);
}
body{ background:var(--db-cream-2); color:var(--db-ink-soft); }
h1,h2,h3,h4,h5,.db-head{ font-family:var(--db-font-head); color:var(--db-green-900); font-weight:600; letter-spacing:-.01em; }
a{ color:var(--db-green-700); text-decoration:none; }
a:hover{ color:var(--db-green-500); }
.db-wrap{ max-width:var(--db-max); margin:0 auto; padding:0 22px; }
img{ max-width:100%; height:auto; }

/* Botones */
.db-btn{ display:inline-flex; align-items:center; gap:.55rem; font-weight:800; font-size:.98rem;
  padding:.85rem 1.5rem; border-radius:999px; border:0; cursor:pointer; transition:.22s ease; line-height:1; }
.db-btn--gold{ background:linear-gradient(180deg,var(--db-gold-500),var(--db-gold-600)); color:#3a2c06; box-shadow:var(--db-shadow-sm); }
.db-btn--gold:hover{ transform:translateY(-2px); color:#3a2c06; box-shadow:0 16px 30px -12px rgba(185,143,51,.6); }
.db-btn--green{ background:var(--db-green-800); color:#fff; }
.db-btn--green:hover{ background:var(--db-green-600); color:#fff; transform:translateY(-2px); }
.db-btn--ghost{ background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.55); }
.db-btn--ghost:hover{ background:rgba(255,255,255,.12); color:#fff; }

/* ===================================================================
   HEADER
   =================================================================== */
.db-topbar{ background:var(--db-green-900); color:#dff0e4; font-size:.82rem; }
.db-topbar .db-wrap{ display:flex; align-items:center; justify-content:space-between; height:38px; }
.db-topbar a{ color:#dff0e4; }
.db-topbar a:hover{ color:var(--db-gold-300); }
.db-topbar__left{ display:flex; gap:1.4rem; align-items:center; }
.db-topbar__left .ico{ display:inline-flex; gap:.4rem; align-items:center; }
.db-topbar__social{ display:flex; gap:.9rem; align-items:center; }
.db-topbar__social svg{ width:16px; height:16px; }

.db-header{ position:sticky; top:0; z-index:120; background:var(--db-ink); color:#fff;
  box-shadow:0 8px 24px -16px rgba(0,0,0,.7); }
.db-header__inner{ display:flex; align-items:center; gap:1.4rem; height:84px; }
.db-brand{ display:flex; align-items:center; gap:.7rem; flex-shrink:0; }
.db-brand img{ width:54px; height:54px; border-radius:50%; }
.db-brand b{ font-family:var(--db-font-head); font-size:1.18rem; color:#fff; line-height:1; letter-spacing:.02em; }
.db-brand small{ display:block; font-family:var(--db-font); font-size:.62rem; letter-spacing:.32em;
  color:var(--db-gold-500); text-transform:uppercase; margin-top:3px; font-weight:700; }

.db-nav{ display:flex; gap:.3rem; margin-left:.5rem; }
.db-nav a{ color:#e9e6dc; font-weight:700; font-size:.95rem; padding:.55rem .85rem; border-radius:999px; transition:.18s; }
.db-nav a:hover, .db-nav .current-menu-item>a{ background:rgba(255,255,255,.08); color:#fff; }

.db-search{ margin-left:auto; flex:1; max-width:340px; display:flex; align-items:center;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); border-radius:999px; padding:.35rem .35rem .35rem 1rem; }
.db-search input{ flex:1; background:transparent; border:0; outline:0; color:#fff; font-size:.9rem; }
.db-search input::placeholder{ color:#bdbcae; }
.db-search button{ background:var(--db-green-600); border:0; width:36px; height:36px; border-radius:50%;
  color:#fff; cursor:pointer; display:grid; place-items:center; transition:.18s; }
.db-search button:hover{ background:var(--db-green-500); }

.db-actions{ display:flex; align-items:center; gap:.4rem; flex-shrink:0; }
.db-icobtn{ position:relative; width:42px; height:42px; border-radius:50%; display:grid; place-items:center;
  color:#fff; background:rgba(255,255,255,.06); transition:.18s; }
.db-icobtn:hover{ background:rgba(255,255,255,.14); color:#fff; }
.db-icobtn .db-badge{ position:absolute; top:-3px; right:-3px; min-width:19px; height:19px; padding:0 5px;
  border-radius:999px; background:var(--db-gold-500); color:#3a2c06; font-size:.68rem; font-weight:900;
  display:grid; place-items:center; }
.db-burger{ display:none; background:none; border:0; color:#fff; width:42px; height:42px; cursor:pointer; }

/* Menú móvil */
.db-mobile{ position:fixed; inset:0 0 0 auto; width:min(320px,86vw); background:var(--db-ink); z-index:200;
  transform:translateX(100%); transition:.3s ease; padding:1.4rem; overflow:auto; }
.db-mobile.open{ transform:translateX(0); }
.db-mobile a{ display:block; color:#fff; font-weight:700; padding:.85rem .4rem; border-bottom:1px solid rgba(255,255,255,.08); }
.db-mobile__close{ background:none;border:0;color:#fff;font-size:1.6rem;float:right;cursor:pointer; }
.db-overlay{ position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:190; opacity:0; visibility:hidden; transition:.3s; }
.db-overlay.open{ opacity:1; visibility:visible; }

/* ===================================================================
   HERO
   =================================================================== */
.db-hero{ padding:30px 0 10px; }
.db-hero__card{ position:relative; overflow:hidden; border-radius:26px;
  background:radial-gradient(120% 140% at 85% 10%, var(--db-green-600) 0%, var(--db-green-800) 45%, var(--db-green-900) 100%);
  color:#fff; padding:54px clamp(28px,5vw,64px); display:grid; grid-template-columns:1.15fr .85fr; gap:30px; align-items:center;
  box-shadow:var(--db-shadow); }
.db-hero__card::before{ content:""; position:absolute; inset:0;
  background-image:radial-gradient(circle at 12% 85%, rgba(216,178,90,.18), transparent 30%),
                   radial-gradient(circle at 95% 90%, rgba(127,176,105,.22), transparent 35%);
  pointer-events:none; }
.db-hero__eyebrow{ display:inline-flex; align-items:center; gap:.5rem; background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.2); color:#eaf5ec; font-weight:800; font-size:.78rem; letter-spacing:.06em;
  text-transform:uppercase; padding:.45rem .95rem; border-radius:999px; margin-bottom:1.1rem; }
.db-hero h1{ color:#fff; font-size:clamp(2.1rem,4.4vw,3.5rem); line-height:1.05; margin:0 0 1rem; }
.db-hero h1 .gold{ color:var(--db-gold-500); font-style:italic; }
.db-hero p.lead{ color:#dbeadf; font-size:1.08rem; max-width:30rem; margin:0 0 1.7rem; line-height:1.6; }
.db-hero__cta{ display:flex; gap:.8rem; flex-wrap:wrap; }
.db-hero__art{ position:relative; display:grid; place-items:center; }
.db-hero__art .ring{ position:relative; width:min(340px,80%); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle at 50% 35%, rgba(255,255,255,.16), rgba(255,255,255,0) 60%);
  display:grid; place-items:center; }
.db-hero__art .ring::before{ content:""; position:absolute; inset:0; border-radius:50%;
  border:2px dashed rgba(216,178,90,.5); animation:db-spin 60s linear infinite; }
.db-hero__art img{ width:78%; border-radius:50%; filter:drop-shadow(0 20px 40px rgba(0,0,0,.4)); }
@keyframes db-spin{ to{ transform:rotate(360deg); } }
.db-hero__seal{ position:absolute; bottom:6%; right:8%; background:var(--db-gold-500); color:#3a2c06;
  width:84px; height:84px; border-radius:50%; display:grid; place-items:center; text-align:center;
  font-weight:900; font-size:.62rem; line-height:1.1; text-transform:uppercase; box-shadow:var(--db-shadow-sm); transform:rotate(-12deg); }

.db-hero__badges{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:18px; }
.db-trust-pill{ background:#fff; border:1px solid var(--db-line); border-radius:var(--db-radius); padding:16px 18px;
  display:flex; align-items:center; gap:.85rem; box-shadow:var(--db-shadow-sm); }
.db-trust-pill .ic{ width:44px; height:44px; border-radius:12px; background:var(--db-cream); color:var(--db-green-700);
  display:grid; place-items:center; flex-shrink:0; }
.db-trust-pill b{ display:block; font-family:var(--db-font); color:var(--db-green-900); font-size:.95rem; }
.db-trust-pill span{ font-size:.8rem; color:var(--db-muted); }

/* ===================================================================
   SECCIONES
   =================================================================== */
.db-section{ padding:54px 0; }
.db-section__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:26px; }
.db-section__head .t span{ display:inline-block; color:var(--db-gold-600); font-weight:900; font-size:.8rem;
  letter-spacing:.14em; text-transform:uppercase; margin-bottom:.4rem; }
.db-section__head h2{ font-size:clamp(1.6rem,3vw,2.3rem); margin:0; }
.db-section__head .more{ font-weight:800; color:var(--db-green-700); white-space:nowrap; }

/* Categorías */
.db-cats{ display:grid; grid-template-columns:repeat(7,1fr); gap:14px; }
.db-cat{ background:#fff; border:1px solid var(--db-line); border-radius:var(--db-radius); padding:22px 10px;
  text-align:center; transition:.2s; display:block; }
.db-cat:hover{ transform:translateY(-4px); box-shadow:var(--db-shadow); border-color:var(--db-gold-300); }
.db-cat .ic{ width:58px; height:58px; margin:0 auto 12px; border-radius:16px; display:grid; place-items:center;
  background:linear-gradient(160deg,var(--db-cream),#fff); color:var(--db-green-700); box-shadow:inset 0 0 0 1px var(--db-line); }
.db-cat b{ font-family:var(--db-font); font-size:.92rem; color:var(--db-green-900); font-weight:800; }
.db-cat span{ display:block; font-size:.74rem; color:var(--db-muted); margin-top:2px; }

/* ===================================================================
   GRILLA DE PRODUCTOS  (homepage + tienda Woo)
   =================================================================== */
.db-products{ display:grid; grid-template-columns:repeat(5,1fr); gap:18px; }
ul.products{ display:grid !important; grid-template-columns:repeat(4,1fr); gap:18px; margin:0 !important; }
ul.products::before, ul.products::after{ display:none !important; }
ul.products li.product{ width:auto !important; margin:0 !important; float:none !important; }

.db-card, ul.products li.product{ background:#fff; border:1px solid var(--db-line); border-radius:var(--db-radius);
  overflow:hidden; transition:.22s; display:flex; flex-direction:column; position:relative; }
.db-card:hover, ul.products li.product:hover{ transform:translateY(-5px); box-shadow:var(--db-shadow); border-color:var(--db-gold-300); }
.db-card__media{ position:relative; aspect-ratio:1/1; overflow:hidden; background:var(--db-cream); }
.db-card__media img, ul.products li.product img{ width:100%; height:100%; object-fit:cover; margin:0 !important; border-radius:0 !important; transition:.4s; }
.db-card:hover .db-card__media img{ transform:scale(1.06); }
.db-card__tag{ position:absolute; top:10px; left:10px; background:var(--db-green-800); color:#fff;
  font-size:.68rem; font-weight:900; letter-spacing:.04em; text-transform:uppercase; padding:.3rem .6rem; border-radius:999px; z-index:2; }
.db-card__fav{ position:absolute; top:10px; right:10px; width:34px; height:34px; border-radius:50%; background:#fff;
  display:grid; place-items:center; color:var(--db-muted); box-shadow:var(--db-shadow-sm); z-index:2; }
.db-card__body{ padding:14px 15px 16px; display:flex; flex-direction:column; gap:.35rem; flex:1; }
.db-card__title, ul.products li.product .woocommerce-loop-product__title{ font-family:var(--db-font) !important;
  font-weight:800 !important; font-size:1rem !important; color:var(--db-green-900) !important; line-height:1.25; padding:0 !important; }
.db-stars{ color:var(--db-gold-500); font-size:.82rem; letter-spacing:.06em; }
.db-stars span{ color:var(--db-muted); font-size:.72rem; }
.db-card__price, ul.products li.product .price{ color:var(--db-ink) !important; font-weight:900 !important;
  font-size:1.2rem !important; font-family:var(--db-font) !important; margin:.1rem 0 .2rem !important; }
.db-card__price .unit{ font-size:.78rem; color:var(--db-muted); font-weight:700; }
.db-card .db-btn, ul.products li.product .button{ margin-top:auto; width:100%; justify-content:center;
  background:var(--db-green-800) !important; color:#fff !important; border-radius:999px !important; font-weight:800 !important;
  padding:.7rem 1rem !important; font-size:.9rem !important; transition:.2s; }
.db-card .db-btn:hover, ul.products li.product .button:hover{ background:var(--db-green-600) !important; transform:translateY(-1px); }
ul.products li.product .button.added{ background:var(--db-gold-600) !important; }
ul.products li.product .added_to_cart{ display:none; }
.db-card__media a{ display:block; height:100%; }

/* ===================================================================
   STRIP CONFIANZA
   =================================================================== */
.db-features{ background:#fff; border-top:1px solid var(--db-line); border-bottom:1px solid var(--db-line); }
.db-features .db-wrap{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; padding-top:30px; padding-bottom:30px; }
.db-feature{ display:flex; gap:.9rem; align-items:center; }
.db-feature .ic{ width:48px; height:48px; border-radius:14px; background:var(--db-cream); color:var(--db-green-700);
  display:grid; place-items:center; flex-shrink:0; }
.db-feature b{ display:block; color:var(--db-green-900); font-family:var(--db-font); }
.db-feature span{ font-size:.82rem; color:var(--db-muted); }

/* ===================================================================
   BANDA CTA / NEWSLETTER (verde)
   =================================================================== */
.db-cta{ margin:54px 0; }
.db-cta__card{ background:linear-gradient(120deg,var(--db-green-800),var(--db-green-900)); color:#fff;
  border-radius:26px; padding:clamp(30px,5vw,52px); display:grid; grid-template-columns:1.2fr .8fr; gap:24px; align-items:center;
  position:relative; overflow:hidden; box-shadow:var(--db-shadow); }
.db-cta__card::after{ content:""; position:absolute; right:-40px; bottom:-60px; width:240px; height:240px; border-radius:50%;
  background:radial-gradient(circle,rgba(216,178,90,.25),transparent 70%); }
.db-cta h2{ color:#fff; font-size:clamp(1.6rem,3vw,2.3rem); margin:0 0 .6rem; }
.db-cta p{ color:#d6e7da; margin:0; max-width:34rem; }
.db-cta form{ display:flex; gap:.6rem; background:#fff; padding:.4rem; border-radius:999px; }
.db-cta input{ flex:1; border:0; outline:0; padding:.7rem 1rem; border-radius:999px; font-size:.95rem; }

/* ===================================================================
   FOOTER
   =================================================================== */
.db-footer{ background:var(--db-green-900); color:#cfe0d4; margin-top:0; }
.db-footer__top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.3fr; gap:34px; padding:54px 0 38px; }
.db-footer h4{ color:#fff; font-family:var(--db-font); font-weight:800; font-size:1.02rem; margin:0 0 1rem; }
.db-footer a{ color:#cfe0d4; }
.db-footer a:hover{ color:var(--db-gold-500); }
.db-footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; font-size:.92rem; }
.db-footer__brand img{ width:62px; height:62px; border-radius:50%; margin-bottom:1rem; }
.db-footer__brand p{ font-size:.92rem; line-height:1.6; max-width:22rem; }
.db-footer__contact li{ display:flex; gap:.6rem; align-items:flex-start; }
.db-footer__social{ display:flex; gap:.7rem; margin-top:1rem; }
.db-footer__social a{ width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.08);
  display:grid; place-items:center; color:#fff; transition:.18s; }
.db-footer__social a:hover{ background:var(--db-gold-500); color:#3a2c06; }
.db-footer__bottom{ border-top:1px solid rgba(255,255,255,.12); padding:18px 0; font-size:.84rem;
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; color:#9fb6a6; }
.db-pay{ display:flex; gap:.5rem; align-items:center; }
.db-pay span{ background:rgba(255,255,255,.1); padding:.25rem .55rem; border-radius:6px; font-size:.72rem; font-weight:700; color:#fff; }

/* ===================================================================
   PÁGINAS INTERNAS / WOO
   =================================================================== */
.db-pagehero{ background:linear-gradient(120deg,var(--db-green-800),var(--db-green-900)); color:#fff; padding:46px 0 40px; }
.db-pagehero h1{ color:#fff; margin:0 0 .4rem; font-size:clamp(1.8rem,3.4vw,2.6rem); }
.db-pagehero .crumbs, .db-pagehero .crumbs a{ color:#cfe0d4; font-size:.88rem; }
.woocommerce .woocommerce-result-count{ color:var(--db-muted); }
.woocommerce span.onsale{ background:var(--db-gold-600); color:#3a2c06; border-radius:999px; font-weight:900; }
.woocommerce .star-rating span{ color:var(--db-gold-600); }
.woocommerce-message, .woocommerce-info{ border-top-color:var(--db-green-600) !important; }
.single-product div.product .price{ color:var(--db-ink); font-weight:900; }
.single-product div.product .single_add_to_cart_button{ background:var(--db-green-800) !important; color:#fff !important;
  border-radius:999px !important; font-weight:800 !important; padding:.9rem 1.8rem !important; }
.single-product div.product .single_add_to_cart_button:hover{ background:var(--db-green-600) !important; }
.db-floating-wa{ position:fixed; right:18px; bottom:18px; z-index:140; width:58px; height:58px; border-radius:50%;
  background:#25D366; color:#fff; display:grid; place-items:center; box-shadow:0 10px 24px -8px rgba(37,211,102,.7); transition:.2s; }
.db-floating-wa:hover{ transform:scale(1.08); color:#fff; }
.db-floating-wa svg{ width:30px; height:30px; }

/* Botones de bloques WooCommerce (carrito/checkout nuevos) */
.wc-block-cart__submit-button,
.wc-block-components-button.contained,
.wp-block-woocommerce-checkout-actions-block .wc-block-components-button,
.wc-block-components-checkout-place-order-button{
  background:var(--db-green-800) !important; color:#fff !important; border-radius:999px !important; font-weight:800 !important;
}
.wc-block-cart__submit-button:hover,
.wc-block-components-button.contained:hover{ background:var(--db-green-600) !important; }
.wc-block-components-totals-coupon__button,
.wc-block-components-totals-item__value{ color:var(--db-green-900); }
.wc-block-cart-items__header, .wc-block-components-product-name{ color:var(--db-green-900); }
.woocommerce-cart-form__contents .button, .wc-proceed-to-checkout .checkout-button{
  background:var(--db-green-800) !important; color:#fff !important; border-radius:999px !important; font-weight:800 !important;
}
a.wc-block-components-totals-coupon-link{ color:var(--db-green-700); }

/* ===================================================================
   RESPONSIVE
   =================================================================== */
@media (max-width:1080px){
  .db-cats{ grid-template-columns:repeat(4,1fr); }
  .db-products{ grid-template-columns:repeat(3,1fr); }
  ul.products{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:900px){
  .db-nav, .db-search{ display:none; }
  .db-burger{ display:grid; place-items:center; }
  .db-header__inner{ height:70px; }
  .db-hero__card{ grid-template-columns:1fr; text-align:center; }
  .db-hero p.lead{ margin-left:auto; margin-right:auto; }
  .db-hero__cta{ justify-content:center; }
  .db-hero__art{ order:-1; }
  .db-cta__card{ grid-template-columns:1fr; }
  .db-footer__top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:680px){
  .db-products, ul.products{ grid-template-columns:repeat(2,1fr); }
  .db-cats{ grid-template-columns:repeat(2,1fr); }
  .db-hero__badges{ grid-template-columns:1fr; }
  .db-features .db-wrap{ grid-template-columns:1fr 1fr; }
  .db-section__head{ flex-direction:column; align-items:flex-start; }
  .db-footer__top{ grid-template-columns:1fr; }
  .db-topbar__left .hide-sm{ display:none; }
}
@media (max-width:460px){
  .db-products, ul.products{ grid-template-columns:1fr 1fr; gap:12px; }
  .db-brand small{ display:none; }
}
