/*
Theme Name: Ecoeden
Theme URI: https://ecoeden.com.br/
Author: Ecoeden
Description: Tema próprio da loja Ecoeden. Mobile first, identidade editorial, checkout clássico do WooCommerce.
Version: 1.1.0
Requires at least: 6.4
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: ecoeden
*/

/* ==========================================================================
   1. DESIGN SYSTEM — tokens
   ========================================================================== */
:root {
	--eco-green-900: #12332A;
	--eco-green-800: #163B30;
	--eco-green-700: #1B4536;
	--eco-green-600: #235441;
	--eco-green-100: #E7EFE9;
	--eco-cream: #F6F3EC;
	--eco-cream-2: #EFEADF;
	--eco-sand: #E4DCCB;
	--eco-white: #FFFFFF;
	--eco-gold: #C6A75C;
	--eco-ink: #242A27;
	--eco-muted: #6E7873;
	--eco-line: #E5E2D9;
	--eco-danger: #A3342B;
	--eco-ok: #2E6B4F;

	--eco-r-sm: 10px;
	--eco-r-md: 14px;
	--eco-r-lg: 20px;
	--eco-r-pill: 999px;

	--eco-sh-1: 0 1px 3px rgba(18,51,42,.06);
	--eco-sh-2: 0 4px 16px rgba(18,51,42,.08);
	--eco-sh-3: 0 12px 32px rgba(18,51,42,.12);

	--eco-s1: 4px;  --eco-s2: 8px;  --eco-s3: 12px; --eco-s4: 16px;
	--eco-s5: 20px; --eco-s6: 24px; --eco-s7: 32px; --eco-s8: 44px; --eco-s9: 64px;

	--eco-serif: Georgia, 'Iowan Old Style', 'Times New Roman', serif;
	--eco-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;

	--eco-wrap: 1200px;
	--eco-bar-h: 62px;   /* barra inferior fixa */
	--eco-safe: env(safe-area-inset-bottom, 0px);
}

/* ==========================================================================
   2. BASE
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body.ecoeden {
	margin: 0;
	background: var(--eco-cream);
	color: var(--eco-ink);
	font-family: var(--eco-sans);
	font-size: 16px;
	line-height: 1.55;
	overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--eco-green-700); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3, .eco-serif { font-family: var(--eco-serif); font-weight: 400; letter-spacing: -.01em; }
h1 { font-size: clamp(1.6rem, 5.5vw, 2.6rem); line-height: 1.15; margin: 0 0 var(--eco-s3); }
h2 { font-size: clamp(1.3rem, 4.5vw, 2rem); line-height: 1.2; margin: 0 0 var(--eco-s3); }
h3 { font-size: 1.05rem; margin: 0 0 var(--eco-s2); }

:focus-visible { outline: 2px solid var(--eco-gold); outline-offset: 2px; border-radius: 4px; }

.eco-wrap { width: 100%; max-width: var(--eco-wrap); margin: 0 auto; padding: 0 var(--eco-s4); }
.eco-sr { position: absolute!important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ==========================================================================
   3. BOTÕES E CAMPOS
   ========================================================================== */
.eco-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: var(--eco-s2);
	min-height: 48px; padding: 0 var(--eco-s6);
	border: 1px solid transparent; border-radius: var(--eco-r-md);
	font-family: var(--eco-sans); font-size: .97rem; font-weight: 600; line-height: 1;
	cursor: pointer; text-decoration: none; transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.eco-btn:hover { text-decoration: none; }
.eco-btn--primary { background: var(--eco-green-700); color: #fff; }
.eco-btn--primary:hover { background: var(--eco-green-600); color: #fff; }
.eco-btn--ghost { background: transparent; color: var(--eco-green-700); border-color: var(--eco-green-700); }
.eco-btn--ghost:hover { background: var(--eco-green-100); }
.eco-btn--light { background: #fff; color: var(--eco-green-700); border-color: var(--eco-line); }
.eco-btn--block { width: 100%; }
.eco-btn[disabled], .eco-btn.is-loading { opacity: .55; pointer-events: none; }
.eco-btn.is-loading::after {
	content: ''; width: 16px; height: 16px; border-radius: 50%;
	border: 2px solid currentColor; border-top-color: transparent; animation: eco-spin .7s linear infinite;
}
@keyframes eco-spin { to { transform: rotate(360deg); } }

.eco-field { margin: 0 0 var(--eco-s3); }
.eco-field > label,
.ecoeden .woocommerce form .form-row label {
	display: block; font-size: .78rem; color: var(--eco-muted); margin: 0 0 var(--eco-s1); font-weight: 500;
}
.ecoeden input[type=text], .ecoeden input[type=email], .ecoeden input[type=tel],
.ecoeden input[type=number], .ecoeden input[type=password], .ecoeden input[type=search],
.ecoeden select, .ecoeden textarea, .ecoeden .select2-container .select2-selection {
	width: 100%; min-height: 50px; padding: 12px 14px;
	background: #fff; border: 1px solid var(--eco-line); border-radius: var(--eco-r-md);
	font-family: var(--eco-sans); font-size: 1rem; color: var(--eco-ink);
	transition: border-color .16s ease, box-shadow .16s ease;
}
.ecoeden input:focus, .ecoeden select:focus, .ecoeden textarea:focus {
	border-color: var(--eco-green-600); box-shadow: 0 0 0 3px rgba(35,84,65,.10); outline: none;
}

/* ==========================================================================
   4. CABEÇALHO
   ========================================================================== */
.eco-header { background: var(--eco-green-900); color: #fff; padding: var(--eco-s3) 0 var(--eco-s4); }
.eco-header a { color: #fff; }
.eco-header__top { display: flex; align-items: center; justify-content: space-between; gap: var(--eco-s4); }
.eco-logo { display: inline-flex; align-items: center; min-height: 40px; }
.eco-logo img { max-height: 44px; width: auto; }
.eco-logo__text { font-family: var(--eco-serif); font-size: 1.5rem; color: #fff; letter-spacing: .01em; }
.eco-logo:hover { text-decoration: none; }

.eco-header__actions { display: flex; align-items: center; gap: var(--eco-s2); }
.eco-iconbtn {
	position: relative; display: inline-flex; align-items: center; justify-content: center;
	width: 46px; height: 46px; border-radius: var(--eco-r-md);
	background: rgba(255,255,255,.10); color: #fff; border: 0; cursor: pointer;
}
.eco-iconbtn:hover { background: rgba(255,255,255,.18); text-decoration: none; }
.eco-iconbtn svg { width: 22px; height: 22px; }
.eco-cartcount {
	position: absolute; top: -6px; right: -6px; min-width: 21px; height: 21px; padding: 0 5px;
	display: grid; place-items: center; border-radius: var(--eco-r-pill);
	background: var(--eco-gold); color: #14261F; font-size: .72rem; font-weight: 800;
	border: 2px solid var(--eco-green-900);
}
.eco-cartcount[hidden] { display: none; }
.eco-iconbtn.is-bumping { animation: eco-bump .45s ease; }
@keyframes eco-bump { 0%,100% { transform: scale(1); } 35% { transform: scale(1.12); } 70% { transform: scale(.97); } }

.eco-search { margin-top: var(--eco-s3); position: relative; }
.eco-search input[type=search] {
	width: 100%; min-height: 50px; padding: 12px 14px 12px 44px;
	border-radius: var(--eco-r-md); border: 0; background: #fff; font-size: 1rem;
}
.eco-search__icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; color: var(--eco-muted); pointer-events: none; }
.eco-search button { position: absolute; right: 6px; top: 6px; bottom: 6px; border: 0; background: transparent; color: var(--eco-green-700); padding: 0 12px; border-radius: var(--eco-r-sm); cursor: pointer; font-weight: 600; }

.eco-nav-desk { display: none; }

/* ==========================================================================
   5. HOME
   ========================================================================== */
.eco-hero {
	position: relative; margin: var(--eco-s4) 0 0; border-radius: var(--eco-r-lg); overflow: hidden;
	background: var(--eco-green-800); color: #fff; min-height: 320px; display: flex; align-items: stretch;
}
.eco-hero__media { position: absolute; inset: 0; }
.eco-hero__media img { width: 100%; height: 100%; object-fit: cover; opacity: .55; }
.eco-hero::after { content:''; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(18,51,42,.94) 8%, rgba(18,51,42,.72) 48%, rgba(18,51,42,.28) 100%); }
.eco-hero__copy { position: relative; z-index: 2; padding: var(--eco-s7) var(--eco-s5); max-width: 560px; align-self: center; }
.eco-hero h1 { color: #fff; margin-bottom: var(--eco-s3); }
.eco-hero p { color: rgba(255,255,255,.90); margin: 0 0 var(--eco-s5); font-size: 1rem; max-width: 34ch; }
.eco-hero .eco-btn { background: #fff; color: var(--eco-green-800); border-radius: var(--eco-r-pill); }
.eco-hero .eco-btn:hover { background: var(--eco-cream); }

.eco-shortcuts { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--eco-s2); margin: var(--eco-s5) 0; }
.eco-shortcut { display: flex; flex-direction: column; align-items: center; gap: var(--eco-s2); text-align: center; color: var(--eco-ink); }
.eco-shortcut:hover { text-decoration: none; }
.eco-shortcut__ico { width: 56px; height: 56px; display: grid; place-items: center; border-radius: var(--eco-r-md); background: var(--eco-cream-2); color: var(--eco-green-700); }
.eco-shortcut__ico svg { width: 24px; height: 24px; }
.eco-shortcut span { font-size: .76rem; line-height: 1.25; color: var(--eco-ink); }

.eco-section { margin: var(--eco-s8) 0; }
.eco-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--eco-s4); margin-bottom: var(--eco-s4); }
.eco-section__head h2 { margin: 0; }
.eco-link { font-size: .88rem; font-weight: 600; color: var(--eco-green-700); white-space: nowrap; }

.eco-editorial { display: grid; gap: var(--eco-s3); grid-template-columns: 1fr 1fr; }
.eco-editorial__card {
	position: relative; border-radius: var(--eco-r-lg); overflow: hidden; min-height: 260px;
	display: flex; flex-direction: column; justify-content: flex-end; padding: var(--eco-s5);
	background: var(--eco-cream-2); color: var(--eco-ink);
}
.eco-editorial__card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* O véu cobre o cartão inteiro, não só o rodapé: o texto transborda para cima
 * quando o conteúdo é maior que o cartão, e várias fotos do catálogo são claras.
 * Com 0.68 no topo, texto branco fica acima de 4.5:1 mesmo sobre imagem branca. */
.eco-editorial__card::after {
	content:''; position:absolute; inset:0;
	background: linear-gradient(180deg, rgba(18,51,42,.68) 0%, rgba(18,51,42,.74) 45%, rgba(18,51,42,.9) 100%);
}
.eco-editorial__card > * { position: relative; z-index: 2; }
.eco-editorial__card h3 { font-family: var(--eco-serif); font-size: 1.2rem; color: #fff; margin: 0 0 6px; text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.eco-editorial__card p { color: rgba(255,255,255,.92); font-size: .85rem; margin: 0 0 var(--eco-s3); text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.eco-editorial__card .eco-btn { min-height: 40px; padding: 0 var(--eco-s4); background: #fff; color: var(--eco-green-800); border-radius: var(--eco-r-pill); font-size: .85rem; }

/* ==========================================================================
   6. GRID E CARD DE PRODUTO
   ========================================================================== */
.eco-products { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--eco-s3); }
.ecoeden ul.products { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--eco-s3); margin: 0; padding: 0; list-style: none; }
.ecoeden ul.products::before, .ecoeden ul.products::after { content: none; }
.ecoeden ul.products li.product { width: auto!important; margin: 0!important; float: none!important; }

.eco-card {
	position: relative; display: flex; flex-direction: column; height: 100%;
	background: #fff; border: 1px solid var(--eco-line); border-radius: var(--eco-r-md);
	overflow: hidden; box-shadow: var(--eco-sh-1); transition: box-shadow .18s ease, transform .18s ease;
}
.eco-card:hover { box-shadow: var(--eco-sh-2); }
.eco-card__media { position: relative; display: block; aspect-ratio: 1/1; background: var(--eco-cream-2); }
.eco-card__media img { width: 100%; height: 100%; object-fit: cover; }
.eco-card__badge {
	position: absolute; top: var(--eco-s2); left: var(--eco-s2); z-index: 2;
	background: var(--eco-green-800); color: #fff; font-size: .72rem; font-weight: 700;
	padding: 4px 8px; border-radius: var(--eco-r-sm); white-space: nowrap;
}
/* mesmo selo, agora na página de produto */
.ecoeden .eco-onsale {
	display: inline-block; background: var(--eco-green-800); color: #fff;
	font-size: .78rem; font-weight: 700; padding: 5px 10px;
	border-radius: var(--eco-r-sm); white-space: nowrap; margin: 0 0 var(--eco-s3);
}
.eco-card__body { padding: var(--eco-s3); display: flex; flex-direction: column; gap: 6px; flex: 1; }
.eco-card__title { font-family: var(--eco-sans); font-size: .88rem; font-weight: 500; line-height: 1.35; margin: 0; color: var(--eco-ink); }
.eco-card__title a { color: inherit; }
.eco-card__price { margin-top: auto; display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; }
.eco-card__price del { color: var(--eco-muted); font-size: .78rem; text-decoration: line-through; }
.eco-card__price ins { text-decoration: none; }
.eco-card__price .amount, .eco-card__price ins .amount { font-size: 1.02rem; font-weight: 700; color: var(--eco-green-800); }
.eco-card__price del .amount { font-size: .78rem; font-weight: 400; color: var(--eco-muted); }
.eco-card__foot { display: flex; align-items: center; justify-content: space-between; gap: var(--eco-s2); }
.eco-add {
	flex: 0 0 auto; width: 38px; height: 38px; border-radius: var(--eco-r-pill);
	display: grid; place-items: center; background: var(--eco-green-700); color: #fff; border: 0; cursor: pointer;
}
.eco-add:hover { background: var(--eco-green-600); text-decoration: none; color: #fff; }
.eco-add svg { width: 18px; height: 18px; }
.eco-add.is-loading { opacity: .6; pointer-events: none; }

/* ==========================================================================
   7. LOJA / CATEGORIA
   ========================================================================== */
.eco-pagehead { padding: var(--eco-s7) 0 var(--eco-s5); }
.eco-pagehead h1 { margin: 0 0 var(--eco-s2); }
.eco-pagehead p { color: var(--eco-muted); margin: 0; max-width: 60ch; }
.ecoeden .woocommerce-ordering select { max-width: 260px; }
.ecoeden .woocommerce-result-count { color: var(--eco-muted); font-size: .85rem; }
.eco-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--eco-s3); flex-wrap: wrap; margin-bottom: var(--eco-s4); }

/* breadcrumb discreto */
.ecoeden .woocommerce-breadcrumb { font-size: .76rem; color: var(--eco-muted); margin: 0 0 var(--eco-s3); }
.ecoeden .woocommerce-breadcrumb a { color: var(--eco-muted); }

/* ==========================================================================
   8. PRODUTO
   ========================================================================== */
.eco-product { padding: var(--eco-s4) 0 var(--eco-s9); }
.ecoeden .single-product div.product { display: block; }
.ecoeden .woocommerce-product-gallery { margin: 0 0 var(--eco-s5); border-radius: var(--eco-r-lg); overflow: hidden; background: #fff; }
.ecoeden .woocommerce-product-gallery img { border-radius: 0; }
.ecoeden .flex-control-thumbs { display: flex; gap: var(--eco-s2); margin: var(--eco-s2) 0 0; padding: 0 var(--eco-s2) var(--eco-s2); list-style: none; overflow-x: auto; }
.ecoeden .flex-control-thumbs li { width: 62px; flex: 0 0 62px; }
.ecoeden .flex-control-thumbs img { border-radius: var(--eco-r-sm); border: 1px solid var(--eco-line); }

.ecoeden .product_title { font-family: var(--eco-serif); font-size: clamp(1.35rem,5vw,1.9rem); margin: 0 0 var(--eco-s2); }
.ecoeden .summary .price { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin: 0 0 var(--eco-s4); }
.ecoeden .summary .price .amount { font-size: 1.5rem; font-weight: 700; color: var(--eco-green-800); }
.ecoeden .summary .price del { opacity: 1; }
.ecoeden .summary .price del .amount { font-size: .95rem; font-weight: 400; color: var(--eco-muted); text-decoration: line-through; }
.ecoeden .summary .price ins { text-decoration: none; }

.eco-freteinfo {
	display: inline-flex; align-items: center; gap: 8px; margin: var(--eco-s3) 0 0;
	font-size: .84rem; color: var(--eco-muted);
}
.eco-freteinfo svg { width: 16px; height: 16px; flex: 0 0 16px; }

.ecoeden .variations { width: 100%; margin: 0 0 var(--eco-s4); border: 0; }
.ecoeden .variations td, .ecoeden .variations th { display: block; padding: 0; border: 0; text-align: left; }
.ecoeden .variations th label { font-size: .82rem; color: var(--eco-muted); font-weight: 500; margin-bottom: 4px; display: block; }
.ecoeden .variations .reset_variations { display: inline-block; margin-top: 8px; font-size: .8rem; }
.ecoeden .woocommerce-variation-price { margin: 0 0 var(--eco-s3); }
.eco-varhint { display: none; font-size: .84rem; color: var(--eco-danger); margin: 0 0 var(--eco-s3); }
.eco-varhint.is-on { display: block; }

.eco-buybox { display: flex; flex-direction: column; gap: var(--eco-s3); margin: var(--eco-s4) 0 0; }
.eco-qty { display: inline-flex; align-items: center; border: 1px solid var(--eco-line); border-radius: var(--eco-r-md); background: #fff; overflow: hidden; }
.eco-qty button { width: 44px; height: 48px; border: 0; background: transparent; font-size: 1.2rem; color: var(--eco-green-700); cursor: pointer; }
.eco-qty input { width: 52px!important; min-height: 48px!important; text-align: center; border: 0!important; border-radius: 0!important; padding: 0!important; -moz-appearance: textfield; }
.eco-qty input::-webkit-outer-spin-button, .eco-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.eco-actions { display: grid; gap: var(--eco-s2); grid-template-columns: 1fr; }

.ecoeden .single_add_to_cart_button { /* estilizado como eco-btn via classe adicionada no PHP */ }

.eco-acc { border-top: 1px solid var(--eco-line); }
.eco-acc__item { border-bottom: 1px solid var(--eco-line); }
.eco-acc__btn { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--eco-s3); padding: var(--eco-s4) 0; background: none; border: 0; cursor: pointer; font-family: var(--eco-sans); font-size: .95rem; font-weight: 600; color: var(--eco-ink); text-align: left; }
.eco-acc__btn::after { content: '+'; font-size: 1.2rem; color: var(--eco-muted); }
.eco-acc__item.is-open .eco-acc__btn::after { content: '–'; }
.eco-acc__panel { display: none; padding: 0 0 var(--eco-s4); color: var(--eco-muted); font-size: .92rem; }
.eco-acc__item.is-open .eco-acc__panel { display: block; }
.eco-acc__panel table { width: 100%; border-collapse: collapse; }
.eco-acc__panel th, .eco-acc__panel td { text-align: left; padding: 6px 0; border-bottom: 1px solid var(--eco-line); font-weight: 400; }

/* ==========================================================================
   9. CARRINHO E CHECKOUT — cartões numerados
   ========================================================================== */
.eco-flow { padding: var(--eco-s5) 0 calc(var(--eco-bar-h) + var(--eco-safe) + var(--eco-s7)); }
.eco-flow__title { font-family: var(--eco-serif); font-size: 1.5rem; margin: 0 0 var(--eco-s4); }

.eco-steps { display: flex; align-items: center; gap: var(--eco-s2); margin: 0 0 var(--eco-s5); font-size: .78rem; color: var(--eco-muted); }
.eco-steps span { display: inline-flex; align-items: center; gap: var(--eco-s2); }
.eco-steps span::after { content: '›'; color: var(--eco-line); }
.eco-steps span:last-child::after { content: none; }
.eco-steps .is-active { color: var(--eco-green-800); font-weight: 700; }

.eco-cardbox {
	background: #fff; border: 1px solid var(--eco-line); border-radius: var(--eco-r-lg);
	box-shadow: var(--eco-sh-1); padding: var(--eco-s5); margin: 0 0 var(--eco-s4);
}
.eco-cardbox__head { display: flex; align-items: center; gap: var(--eco-s3); margin: 0 0 var(--eco-s4); }
.eco-num {
	width: 28px; height: 28px; flex: 0 0 28px; border-radius: 50%;
	background: var(--eco-green-800); color: #fff; display: grid; place-items: center;
	font-size: .82rem; font-weight: 700;
}
.eco-cardbox__head h2 { font-family: var(--eco-serif); font-size: 1.12rem; margin: 0; color: var(--eco-green-800); flex: 1; }
.eco-cardbox__edit { font-size: .85rem; font-weight: 600; color: var(--eco-gold); }

/* itens do carrinho */
.eco-line {
	display: grid; grid-template-columns: 78px 1fr; gap: var(--eco-s3);
	padding: var(--eco-s4) 0; border-bottom: 1px solid var(--eco-line);
}
.eco-line:last-child { border-bottom: 0; }
.eco-line__media img { width: 78px; height: 78px; object-fit: cover; border-radius: var(--eco-r-md); background: var(--eco-cream-2); }
.eco-line__name { font-size: .93rem; font-weight: 600; margin: 0 0 2px; }
.eco-line__name a { color: var(--eco-ink); }
.eco-line__var { font-size: .8rem; color: var(--eco-muted); margin: 0 0 var(--eco-s2); }
.eco-line__row { display: flex; align-items: center; justify-content: space-between; gap: var(--eco-s3); margin-top: var(--eco-s2); }
.eco-line__price { font-weight: 700; color: var(--eco-green-800); }
.eco-line__remove { background: none; border: 0; color: var(--eco-muted); font-size: .8rem; cursor: pointer; padding: 4px 0; text-decoration: underline; }
.eco-line__remove:hover { color: var(--eco-danger); }

/* resumo */
.eco-totals { display: grid; gap: var(--eco-s2); }
.eco-totals__row { display: flex; align-items: baseline; justify-content: space-between; gap: var(--eco-s3); font-size: .93rem; }
.eco-totals__row--total { border-top: 1px solid var(--eco-line); padding-top: var(--eco-s3); margin-top: var(--eco-s2); font-size: 1.1rem; font-weight: 700; }
.eco-totals__row--total .amount { color: var(--eco-green-800); }
.eco-muted { color: var(--eco-muted); }

/* cupom recolhido */
.eco-coupon summary { cursor: pointer; font-size: .88rem; color: var(--eco-green-700); font-weight: 600; list-style: none; padding: var(--eco-s2) 0; }
.eco-coupon summary::-webkit-details-marker { display: none; }
.eco-coupon summary::before { content: '＋ '; }
.eco-coupon[open] summary::before { content: '－ '; }
.eco-coupon__inner { display: flex; gap: var(--eco-s2); margin-top: var(--eco-s2); }
.eco-coupon__inner input { flex: 1; }

/* barra fixa */
.eco-stickybar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
	background: var(--eco-green-900); color: #fff;
	padding: var(--eco-s3) var(--eco-s4) calc(var(--eco-s3) + var(--eco-safe));
	box-shadow: 0 -6px 20px rgba(18,51,42,.18);
}
.eco-stickybar__inner { max-width: var(--eco-wrap); margin: 0 auto; display: flex; align-items: center; gap: var(--eco-s3); }
.eco-stickybar__label { font-size: .74rem; opacity: .8; display: block; line-height: 1.2; }
.eco-stickybar__value { font-size: 1.05rem; font-weight: 700; }
.eco-stickybar .eco-btn { flex: 1; background: #fff; color: var(--eco-green-900); }
.eco-stickybar .eco-btn:hover { background: var(--eco-cream); }
body.eco-has-stickybar { padding-bottom: calc(var(--eco-bar-h) + var(--eco-safe)); }

/* vazio */
.eco-empty { text-align: center; padding: var(--eco-s9) var(--eco-s4); }
.eco-empty h2 { font-family: var(--eco-serif); }
.eco-empty p { color: var(--eco-muted); margin-bottom: var(--eco-s5); }

/* checkout woo */
.ecoeden .woocommerce-checkout .col2-set, .ecoeden .woocommerce-checkout .col-1, .ecoeden .woocommerce-checkout .col-2 { width: 100%; float: none; }
.ecoeden .woocommerce-checkout h3 { display: none; }
.ecoeden #ship-to-different-address { display: none; }
.ecoeden .woocommerce-checkout .form-row { padding: 0; margin: 0 0 var(--eco-s3); }
.ecoeden .form-row-first, .ecoeden .form-row-last { width: 100%; float: none; }
.ecoeden .woocommerce-input-wrapper { width: 100%; display: block; }
.ecoeden #payment { background: transparent; border-radius: 0; padding: 0; }
.ecoeden #payment ul.payment_methods { padding: 0; border: 0; list-style: none; margin: 0 0 var(--eco-s4); display: grid; gap: var(--eco-s2); }
.ecoeden #payment ul.payment_methods li {
	border: 1px solid var(--eco-line); border-radius: var(--eco-r-md); padding: var(--eco-s3) var(--eco-s4); background: #fff;
}
.ecoeden #payment ul.payment_methods li:has(input:checked) { border-color: var(--eco-green-700); box-shadow: 0 0 0 2px rgba(35,84,65,.10); }
.ecoeden #payment ul.payment_methods li label { font-weight: 600; display: inline-flex; align-items: center; gap: var(--eco-s2); cursor: pointer; }
.ecoeden #payment div.payment_box { background: var(--eco-cream); border-radius: var(--eco-r-md); margin: var(--eco-s3) 0 0; padding: var(--eco-s3); font-size: .88rem; }
.ecoeden #payment div.payment_box::before { content: none; }
.ecoeden #place_order { width: 100%; }
/* Com o atalho da barra funcionando, o botão nativo sai de cena — mas continua
 * no DOM, porque é ele que o atalho aciona e é ele que o WooCommerce escuta. */
.ecoeden.eco-proxy-ativo #place_order {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.ecoeden .woocommerce-terms-and-conditions-wrapper { font-size: .82rem; color: var(--eco-muted); }

/* avisos, cupom e login do checkout dentro do desenho */
.eco-flow__notices:empty { display: none; }
.eco-flow__notices { margin: 0 0 var(--eco-s4); }
.eco-flow__notices .woocommerce-form-coupon-toggle,
.eco-flow__notices .woocommerce-form-login-toggle { margin: 0 0 var(--eco-s3); }
.eco-flow__notices form.checkout_coupon,
.eco-flow__notices form.woocommerce-form-login {
	border: 1px solid var(--eco-line); border-radius: var(--eco-r-lg);
	background: #fff; padding: var(--eco-s4); margin: 0 0 var(--eco-s4);
}
.eco-flow__notices form.checkout_coupon .form-row { margin-bottom: var(--eco-s3); }

/* contêiner exigido por plugins — sem efeito visual próprio */
.ecoeden #customer_details.eco-customer,
.ecoeden .eco-customer .woocommerce-billing-fields,
.ecoeden .eco-customer .woocommerce-billing-fields__field-wrapper { display: block; width: 100%; float: none; }

/* avisos */
.ecoeden .woocommerce-message, .ecoeden .woocommerce-info, .ecoeden .woocommerce-error {
	border: 1px solid var(--eco-line); border-top: 3px solid var(--eco-green-700);
	background: #fff; border-radius: var(--eco-r-md); padding: var(--eco-s4); margin: 0 0 var(--eco-s4); list-style: none;
}
.ecoeden .woocommerce-error { border-top-color: var(--eco-danger); }
.ecoeden .woocommerce-message::before, .ecoeden .woocommerce-info::before, .ecoeden .woocommerce-error::before { content: none; }

/* pedido recebido */
.eco-confirm { text-align: center; padding: var(--eco-s8) 0 var(--eco-s6); }
.eco-confirm__ico { width: 62px; height: 62px; border-radius: 50%; background: var(--eco-green-100); color: var(--eco-green-700); display: grid; place-items: center; margin: 0 auto var(--eco-s4); }
.eco-confirm__ico svg { width: 30px; height: 30px; }
.ecoeden .woocommerce-order-overview { list-style: none; padding: 0; margin: 0 0 var(--eco-s5); display: grid; gap: var(--eco-s2); }
.ecoeden .woocommerce-order-overview li { background: #fff; border: 1px solid var(--eco-line); border-radius: var(--eco-r-md); padding: var(--eco-s3); font-size: .85rem; color: var(--eco-muted); }
.ecoeden .woocommerce-order-overview li strong { display: block; color: var(--eco-ink); font-size: 1rem; margin-top: 2px; }

/* minha conta / pedidos */
.eco-orders { display: grid; gap: var(--eco-s3); }
.eco-order { background: #fff; border: 1px solid var(--eco-line); border-radius: var(--eco-r-lg); padding: var(--eco-s4); box-shadow: var(--eco-sh-1); }
.eco-order__top { display: flex; align-items: center; justify-content: space-between; gap: var(--eco-s3); margin-bottom: var(--eco-s2); }
.eco-order__num { font-weight: 700; }
.eco-status { font-size: .74rem; font-weight: 700; padding: 4px 10px; border-radius: var(--eco-r-pill); background: var(--eco-green-100); color: var(--eco-green-800); }
.eco-order__meta { font-size: .85rem; color: var(--eco-muted); display: flex; gap: var(--eco-s4); flex-wrap: wrap; }

/* ==========================================================================
   10. NAVEGAÇÃO INFERIOR MOBILE
   ========================================================================== */
.eco-tabbar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
	background: #fff; border-top: 1px solid var(--eco-line);
	padding: 6px 0 calc(6px + var(--eco-safe));
	display: grid; grid-template-columns: repeat(3, 1fr);
}
.eco-tabbar a { display: flex; flex-direction: column; align-items: center; gap: 3px; font-size: .68rem; color: var(--eco-muted); padding: 4px 0; }
.eco-tabbar a:hover { text-decoration: none; }
.eco-tabbar a.is-active { color: var(--eco-green-800); font-weight: 600; }
.eco-tabbar svg { width: 22px; height: 22px; }
body.eco-has-tabbar { padding-bottom: 66px; }
body.eco-has-tabbar.eco-has-stickybar { padding-bottom: calc(var(--eco-bar-h) + var(--eco-safe)); }

/* ==========================================================================
   11. RODAPÉ
   ========================================================================== */
.eco-footer { background: var(--eco-green-900); color: rgba(255,255,255,.82); margin-top: var(--eco-s9); padding: var(--eco-s8) 0 var(--eco-s7); font-size: .88rem; }
.eco-footer a { color: rgba(255,255,255,.82); }
.eco-footer__grid { display: grid; gap: var(--eco-s6); grid-template-columns: 1fr; }
.eco-footer h3 { font-family: var(--eco-sans); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: #fff; margin: 0 0 var(--eco-s3); }
.eco-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.eco-footer__bottom { border-top: 1px solid rgba(255,255,255,.14); margin-top: var(--eco-s6); padding-top: var(--eco-s4); font-size: .78rem; opacity: .75; }

/* ==========================================================================
   12. ANIMAÇÃO PRODUTO → CARRINHO
   ========================================================================== */
.eco-fly {
	position: fixed; z-index: 9999; pointer-events: none;
	border-radius: var(--eco-r-md); object-fit: cover;
	box-shadow: var(--eco-sh-3);
	will-change: transform, opacity;
}

/* ==========================================================================
   13. DESKTOP
   ========================================================================== */
@media (min-width: 720px) {
	.eco-products, .ecoeden ul.products { grid-template-columns: repeat(3, 1fr); gap: var(--eco-s4); }
	.eco-shortcuts { max-width: 620px; }
	.eco-hero { min-height: 400px; }
}

@media (min-width: 1024px) {
	body.eco-has-tabbar { padding-bottom: 0; }
	.eco-tabbar { display: none; }

	.eco-header { padding: var(--eco-s4) 0; }
	.eco-header__top { gap: var(--eco-s6); }
	.eco-search { margin: 0; flex: 1; max-width: 520px; }
	.eco-header__inner { display: flex; align-items: center; gap: var(--eco-s6); }
	.eco-nav-desk { display: flex; align-items: center; gap: var(--eco-s5); }
	.eco-nav-desk a { font-size: .92rem; color: rgba(255,255,255,.88); }
	.eco-nav-desk a:hover { color: #fff; text-decoration: none; }

	.eco-products, .ecoeden ul.products { grid-template-columns: repeat(4, 1fr); }
	.eco-hero { min-height: 460px; }
	.eco-hero__copy { padding: var(--eco-s9) var(--eco-s8); }
	.eco-card__title { font-size: .95rem; }

	/* produto: galeria esquerda, compra direita */
	.ecoeden .single-product div.product { display: grid; grid-template-columns: 1.05fr .95fr; gap: var(--eco-s8); align-items: start; }
	.ecoeden .woocommerce-product-gallery { grid-column: 1; margin: 0; }
	.ecoeden .single-product div.product .summary { grid-column: 2; margin: 0; }
	.ecoeden .single-product div.product .eco-fullrow { grid-column: 1 / -1; }
	.eco-actions { grid-template-columns: 1fr 1fr; }

	/* fluxo: conteúdo esquerda, resumo direita */
	.eco-flow__grid { display: grid; grid-template-columns: 1.35fr .65fr; gap: var(--eco-s6); align-items: start; }
	.eco-flow__aside { position: sticky; top: var(--eco-s5); }
	.eco-flow { padding-bottom: var(--eco-s9); }
	.eco-stickybar { position: static; background: transparent; box-shadow: none; padding: 0; }
	.eco-stickybar__inner { display: block; }
	.eco-stickybar .eco-btn { background: var(--eco-green-700); color: #fff; width: 100%; }
	.eco-stickybar .eco-btn:hover { background: var(--eco-green-600); }
	.eco-stickybar__total { display: none; }
	body.eco-has-stickybar { padding-bottom: 0; }

	.eco-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; }
	.eco-editorial { gap: var(--eco-s5); }
	.eco-editorial__card { min-height: 300px; }
}

/* ==========================================================================
   14. MOVIMENTO REDUZIDO
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	.eco-fly { display: none!important; }
	.eco-iconbtn.is-bumping { animation: none; }
	* { transition-duration: .01ms!important; animation-duration: .01ms!important; }
}

/* ==========================================================================
   15. COMPRA EM GAVETA (barra fixa + escolha de variação)
   ========================================================================== */

/* Com JavaScript, o formulário nativo do WooCommerce vira só reserva. */
.eco-js .eco-native-cart { display: none; }

/* --- barra fixa inferior --------------------------------------------- */
.eco-buybar {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 90;
	background: var(--eco-white);
	border-top: 1px solid var(--eco-line);
	box-shadow: 0 -4px 18px rgba(18,51,42,.08);
	padding-bottom: var(--eco-safe);
}
.eco-buybar__inner {
	display: grid;
	grid-template-columns: minmax(120px, 38%) 1fr;
	max-width: var(--eco-wrap);
	margin: 0 auto;
}
.eco-buybar__cart,
.eco-buybar__buy {
	border: 0;
	min-height: 56px;
	font: inherit;
	font-weight: 600;
	font-size: .95rem;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--eco-s2);
}
.eco-buybar__cart {
	background: var(--eco-green-100);
	color: var(--eco-green-700);
}
.eco-buybar__cart svg { width: 22px; height: 22px; }
.eco-buybar__buy {
	background: var(--eco-green-700);
	color: #fff;
}
.eco-buybar__cart:hover { background: #DCE8DE; }
.eco-buybar__buy:hover { background: var(--eco-green-600); }
.eco-buybar__cart[disabled],
.eco-buybar__buy[disabled] { opacity: .5; cursor: not-allowed; }

/* Espaço para a barra não cobrir o fim da página. */
body.single-product { padding-bottom: calc(56px + var(--eco-safe)); }

/* --- gaveta ----------------------------------------------------------- */
.eco-sheet { position: fixed; inset: 0; z-index: 120; }
.eco-sheet[hidden] { display: none; }
.eco-sheet__fundo {
	position: absolute; inset: 0;
	background: rgba(18,51,42,.45);
	opacity: 0;
	transition: opacity .22s ease;
}
.eco-sheet.is-aberta .eco-sheet__fundo { opacity: 1; }
.eco-sheet__painel {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	max-height: 88vh;
	overflow-y: auto;
	background: var(--eco-white);
	border-radius: var(--eco-r-lg) var(--eco-r-lg) 0 0;
	padding: var(--eco-s5) var(--eco-s4) calc(var(--eco-s5) + var(--eco-safe));
	transform: translateY(100%);
	transition: transform .24s cubic-bezier(.32,.72,.35,1);
	max-width: 620px;
	margin: 0 auto;
}
.eco-sheet.is-aberta .eco-sheet__painel { transform: translateY(0); }
.eco-sheet__x {
	position: absolute; top: 10px; right: 12px;
	width: 36px; height: 36px;
	border: 0; background: transparent;
	font-size: 1.6rem; line-height: 1;
	color: var(--eco-muted); cursor: pointer;
}
.eco-sheet__topo {
	display: flex;
	gap: var(--eco-s4);
	align-items: flex-start;
	padding-right: 40px;
	padding-bottom: var(--eco-s4);
	border-bottom: 1px solid var(--eco-line);
}
.eco-sheet__img {
	width: 108px; height: 108px;
	object-fit: cover;
	border-radius: var(--eco-r-md);
	border: 1px solid var(--eco-line);
	background: var(--eco-cream);
}
.eco-sheet__info { flex: 1; min-width: 0; }
.eco-sheet__preco {
	font-size: 1.45rem;
	font-weight: 700;
	color: var(--eco-green-700);
	line-height: 1.2;
}
.eco-sheet__preco del { font-size: .8rem; font-weight: 400; color: var(--eco-muted); }
.eco-sheet__preco ins { text-decoration: none; }
.eco-sheet__estoque { margin-top: var(--eco-s2); color: var(--eco-muted); font-size: .85rem; }

.eco-sheet__opcoes { padding: var(--eco-s4) 0; }
.eco-opt + .eco-opt { margin-top: var(--eco-s4); }
.eco-opt__nome { margin: 0 0 var(--eco-s2); font-weight: 600; }
.eco-opt__lista { display: flex; flex-wrap: wrap; gap: var(--eco-s2); }
.eco-opt__btn {
	display: inline-flex;
	align-items: center;
	gap: var(--eco-s2);
	padding: 6px 12px 6px 6px;
	border: 1px solid var(--eco-line);
	border-radius: var(--eco-r-md);
	background: var(--eco-white);
	font: inherit;
	color: var(--eco-ink);
	cursor: pointer;
	min-height: 46px;
}
.eco-opt__btn img {
	width: 34px; height: 34px;
	object-fit: cover;
	border-radius: 8px;
}
.eco-opt__btn:hover { border-color: var(--eco-green-600); }
.eco-opt__btn.is-ativa {
	border-color: var(--eco-green-700);
	color: var(--eco-green-700);
	background: var(--eco-green-100);
	box-shadow: inset 0 0 0 1px var(--eco-green-700);
}

.eco-sheet__qtd {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--eco-s4);
	padding: var(--eco-s4) 0;
	border-top: 1px solid var(--eco-line);
	font-weight: 600;
}
.eco-sheet__erro {
	margin: 0 0 var(--eco-s3);
	color: var(--eco-danger);
	font-size: .9rem;
}
.eco-sheet__erro[hidden] { display: none; }
.eco-sheet__acao { width: 100%; min-height: 52px; font-size: 1rem; }
.eco-sheet__acao[disabled] { opacity: .45; cursor: not-allowed; }

body.eco-sem-rolagem { overflow: hidden; }

/* --- aviso do CEP ----------------------------------------------------- */
.eco-cep-aviso {
	display: block;
	margin-top: 4px;
	font-size: .82rem;
	color: var(--eco-muted);
}
.eco-cep-aviso.is-erro { color: var(--eco-danger); }
input.eco-cep-preenchido,
select.eco-cep-preenchido { background-color: #F4F9F5; }

@media (min-width: 900px) {
	.eco-buybar__inner { grid-template-columns: 260px 340px; justify-content: flex-end; gap: var(--eco-s3); padding: var(--eco-s2) var(--eco-s4); }
	.eco-buybar__cart, .eco-buybar__buy { border-radius: var(--eco-r-md); }
	.eco-sheet__painel { border-radius: var(--eco-r-lg); bottom: 50%; transform: translateY(50%) scale(.96); opacity: 0; }
	.eco-sheet.is-aberta .eco-sheet__painel { transform: translateY(50%) scale(1); opacity: 1; }
}
