/* ==========================================================================
   Frascopira — folha principal (mobile-first)
   Paleta extraída da marca: azul #0066B0 e verde #59B073
   ========================================================================== */

/* ----- Tokens ----------------------------------------------------------- */
:root {
	/* Paleta harmonizada com a logo nova: os tokens "blue" passam a guardar o
	   TEAL primário e os "green" um OLIVE secundário (nomes mantidos para não
	   quebrar as centenas de referências var(--fp-blue)/var(--fp-green)). */
	--fp-blue: #367f79;        /* primário (botões, links, busca, foco) */
	--fp-blue-600: #2e6f6a;
	--fp-blue-700: #26605b;    /* hover/escuro */
	--fp-blue-050: #eef5f4;    /* tint claro */
	--fp-green: #6f7d45;       /* secundário olive (selo carrinho, newsletter) */
	--fp-green-600: #5a6638;   /* olive escuro (texto sobre branco) */
	--fp-green-050: #f0f2e6;
	/* Refresh de marca (logo nova) — cores definidas pelo cliente por elemento. */
	--fp-teal: #83b2af;        /* barra superior (topo do site) */
	--fp-teal-ink: #123f3c;    /* texto legível sobre a barra superior */
	--fp-olive: #8e9b67;       /* barra abaixo do banner (benefícios) */
	--fp-gold: #a37f4b;        /* botão "adicionar ao carrinho" */
	--fp-gold-700: #866540;    /* hover do botão adicionar */
	--fp-menu: #8b8983;        /* fonte do menu principal */
	--fp-submenu: #bfbfbf;     /* fonte do submenu (menu interno) — cor do envio */
	--fp-ink: #1d2b36;
	--fp-body: #41525e;
	--fp-muted: #5a6b77;
	--fp-line: #e7e2d9;
	--fp-bg: #ffffff;
	--fp-bg-soft: #f6f3ec;     /* ivory quente (refino delicado) */
	--fp-cream: #faf8f2;       /* creme p/ painéis calmos (ex.: notas olfativas) */
	--fp-gold-rgb: 163, 127, 75;   /* #a37f4b — fios/ornamentos dourados (decorativo) */
	--fp-teal-rgb: 54, 127, 121;   /* #367f79 — halo de foco */
	--fp-font-display: "Cormorant Garamond", "Poppins", Georgia, serif; /* serif só p/ títulos */
	--fp-sale: #e0533a;
	--fp-radius: 12px;
	--fp-radius-sm: 8px;
	--fp-radius-pill: 999px;
	--fp-container: 1300px;
	--fp-gap: 24px;
	--fp-shadow: 0 6px 24px rgba(74, 60, 40, 0.10);
	--fp-shadow-sm: 0 2px 8px rgba(74, 60, 40, 0.09);
	--fp-font-head: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--fp-font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--fp-header-h: 64px;
}

/* ----- Reset / base ----------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

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

body {
	margin: 0;
	font-family: var(--fp-font-body);
	font-size: 16px;
	line-height: 1.6;
	color: var(--fp-body);
	background: var(--fp-bg);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--fp-font-head);
	color: var(--fp-ink);
	line-height: 1.22;
	margin: 0 0 0.5em;
	font-weight: 600;
}

p { margin: 0 0 1em; }

a { color: var(--fp-blue); text-decoration: none; }
a:hover, a:focus { color: var(--fp-blue-700); text-decoration: underline; }

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

ul, ol { margin: 0 0 1em; padding-left: 1.2em; }

:focus-visible { outline: 3px solid var(--fp-blue); outline-offset: 2px; }

/* ----- Acessibilidade --------------------------------------------------- */
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0,0,0,0);
	white-space: nowrap; border: 0;
}
.skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 1000;
	background: var(--fp-blue); color: #fff; padding: 10px 16px; border-radius: 0 0 8px 0;
}
.skip-link:focus { left: 0; color: #fff; }

/* ----- Layout ----------------------------------------------------------- */
.container { width: 100%; max-width: var(--fp-container); margin: 0 auto; padding: 0 16px; }

.site-main { padding: 24px 0 48px; }
.content-area--narrow { max-width: 820px; margin: 0 auto; }

/* ----- Botões ----------------------------------------------------------- */
.button,
button,
input[type="submit"] {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	font-family: var(--fp-font-head); font-weight: 600; font-size: 0.95rem;
	line-height: 1; cursor: pointer;
	padding: 13px 22px;
	color: #fff; background: var(--fp-blue);
	border: 2px solid var(--fp-blue);
	border-radius: var(--fp-radius-pill);
	transition: background .15s ease, border-color .15s ease, color .15s ease, transform .05s ease;
	text-decoration: none;
}
.button:hover, .button:focus,
button:hover, input[type="submit"]:hover {
	background: var(--fp-blue-700); border-color: var(--fp-blue-700); color: #fff; text-decoration: none;
}
.button:active { transform: translateY(1px); }
.button--lg { padding: 16px 30px; font-size: 1.02rem; }
.button--ghost { background: transparent; color: var(--fp-blue); }
.button--ghost:hover { background: var(--fp-blue); color: #fff; }

/* ----- Ícones ----------------------------------------------------------- */
.fp-icon { flex: none; width: 24px; height: 24px; }

/* ----- Topbar ----------------------------------------------------------- */
.site-topbar { background: var(--fp-teal); color: var(--fp-teal-ink); font-size: 0.82rem; }
.site-topbar a { color: var(--fp-teal-ink); }
.site-topbar__inner { display: flex; align-items: center; justify-content: center; gap: 16px; min-height: 38px; }
.site-topbar__message { margin: 0; text-align: center; font-weight: 600; letter-spacing: 0.06em; }
.site-topbar__phone { margin: 0; display: none; align-items: center; gap: 6px; }
.site-topbar__phone .fp-icon { width: 16px; height: 16px; }

/* ----- Header ----------------------------------------------------------- */
.site-header { background: var(--fp-bg); border-bottom: 1px solid var(--fp-line); position: sticky; top: 0; z-index: 50; }
.site-header.is-stuck { box-shadow: var(--fp-shadow-sm); }
.site-header__inner {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 12px;
	min-height: var(--fp-header-h);
	padding-top: 8px; padding-bottom: 8px;
}
/* Mobile: hambúrguer | logo (centralizada) | ações. A busca fica no menu off-canvas. */
.site-header__search { display: none; }
.site-header__brand { grid-column: 2; grid-row: 1; display: flex; align-items: center; justify-content: center; }
/* Cobre tanto o logo padrão do tema (.site-logo img) quanto o custom_logo do WP (.custom-logo). */
.site-logo img,
.site-header__brand .custom-logo,
.site-header__brand .custom-logo-link img { height: auto; width: auto; max-height: 44px; display: block; transition: max-height 0.25s ease; }
@media (prefers-reduced-motion: reduce) {
	.site-logo img, .site-header__brand .custom-logo, .site-header__brand .custom-logo-link img { transition: none; }
}
.site-logo--text { font-family: var(--fp-font-head); font-weight: 700; font-size: 1.3rem; color: var(--fp-blue); }

.site-header__actions { grid-column: 3; grid-row: 1; justify-self: end; display: flex; align-items: center; gap: 6px; }
.header-action {
	position: relative; display: inline-flex; flex-direction: column; align-items: center;
	color: var(--fp-ink); padding: 6px; font-size: 0.66rem; gap: 2px; min-width: 44px;
}
.header-action:hover { color: var(--fp-blue); text-decoration: none; }
.header-action__label { display: none; }
.header-action--account { display: none; }
.fp-cart__count {
	position: absolute; top: 0; right: 2px;
	min-width: 18px; height: 18px; padding: 0 4px;
	background: var(--fp-green); color: #fff;
	font-size: 0.68rem; font-weight: 700; line-height: 18px; text-align: center;
	border-radius: var(--fp-radius-pill);
}

/* Toggle do menu mobile (hambúrguer) */
.nav-toggle {
	width: 44px; height: 44px; padding: 0; background: transparent; border: 0; color: var(--fp-ink);
	display: inline-flex; align-items: center; justify-content: center; position: relative; border-radius: 8px;
	grid-column: 1; grid-row: 1;
}
.nav-toggle:hover { background: var(--fp-bg-soft); }
.nav-toggle__bar, .nav-toggle__bar::before, .nav-toggle__bar::after {
	content: ""; display: block; width: 22px; height: 2px; background: currentColor; border-radius: 2px; transition: transform .2s ease, opacity .2s ease;
}
.nav-toggle__bar::before { position: absolute; transform: translateY(-7px); }
.nav-toggle__bar::after { position: absolute; transform: translateY(7px); }

/* Nav principal (desktop) — escondida no mobile */
.site-nav { display: none; border-top: 1px solid var(--fp-line); }
.primary-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; }
.primary-menu li { position: relative; }
.primary-menu > li > a {
	display: block; padding: 12px 14px; color: var(--fp-menu); font-weight: 600; font-size: 0.92rem; font-family: var(--fp-font-head);
}
.primary-menu > li > a:hover { color: var(--fp-gold); text-decoration: none; }
.primary-menu .sub-menu {
	position: absolute; top: 100%; left: 0; min-width: 220px; background: #fff;
	border: 1px solid var(--fp-line); border-top: 2px solid var(--fp-gold); border-radius: var(--fp-radius-sm); box-shadow: var(--fp-shadow);
	padding: 10px; list-style: none; margin: 0; display: none; z-index: 60;
}
.primary-menu li:hover > .sub-menu, .primary-menu li:focus-within > .sub-menu { display: block; }
.primary-menu .sub-menu .sub-menu { top: 0; left: 100%; } /* 3o nivel abre ao lado */
.primary-menu .sub-menu a { display: block; padding: 9px 12px; border-radius: 6px; letter-spacing: 0.02em; color: var(--fp-submenu); }
.primary-menu .sub-menu a:hover { background: var(--fp-bg-soft); color: var(--fp-gold); text-decoration: none; }

/* ----- Menu off-canvas (mobile) ---------------------------------------- */
.mobile-nav {
	position: fixed; top: 0; left: 0; bottom: 0; width: min(86vw, 360px);
	background: #fff; z-index: 200; transform: translateX(-100%); transition: transform .25s ease;
	display: flex; flex-direction: column; overflow-y: auto; box-shadow: var(--fp-shadow);
}
.mobile-nav.is-open { transform: translateX(0); }
.mobile-nav__head { display: flex; align-items: center; justify-content: space-between; padding: 16px; border-bottom: 1px solid var(--fp-line); }
.mobile-nav__title { font-family: var(--fp-font-head); font-weight: 700; color: var(--fp-ink); }
.mobile-nav__close { width: 40px; height: 40px; padding: 0; font-size: 28px; line-height: 1; background: transparent; border: 0; color: var(--fp-ink); border-radius: 8px; }
.mobile-nav__search { padding: 16px; border-bottom: 1px solid var(--fp-line); }
.mobile-nav__menu .primary-menu { flex-direction: column; gap: 0; }
.mobile-nav__menu .primary-menu > li { border-bottom: 1px solid var(--fp-line); }
.mobile-nav__menu .primary-menu > li > a { padding: 14px 16px; }
.mobile-nav__menu .sub-menu { position: static; box-shadow: none; border: 0; padding: 0 0 8px 12px; }
.mobile-nav__menu .menu-item-has-children > .sub-menu { display: none; }
.mobile-nav__menu .menu-item-has-children.is-expanded > .sub-menu { display: block; }
.mobile-nav__menu .menu-item-has-children > a { position: relative; padding-right: 44px; }
.mobile-nav__menu .menu-item-has-children > a::after {
	content: ""; position: absolute; right: 20px; top: 50%; margin-top: -6px;
	width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: rotate(45deg); transition: transform .2s ease;
}
.mobile-nav__menu .menu-item-has-children.is-expanded > a::after { margin-top: -2px; transform: rotate(-135deg); }
.mobile-nav__foot { margin-top: auto; padding: 16px; display: grid; gap: 10px; border-top: 1px solid var(--fp-line); }
.mobile-nav__foot a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px; margin: -8px; border-radius: var(--fp-radius-sm); color: var(--fp-ink); font-weight: 600; }
.mobile-nav__foot a:hover { background: var(--fp-bg-soft); text-decoration: none; }

.nav-overlay { position: fixed; inset: 0; background: rgba(16,42,67,.45); z-index: 150; }
body.nav-open { overflow: hidden; }

/* ----- Busca ------------------------------------------------------------ */
.fp-search { display: flex; align-items: stretch; width: 100%; border: 1.5px solid var(--fp-line); border-radius: var(--fp-radius-pill); overflow: hidden; background: #fff; }
.fp-search:focus-within { border-color: var(--fp-blue); }
.fp-search__input { flex: 1; border: 0; padding: 11px 16px; font-size: 0.95rem; background: transparent; min-width: 0; }
.fp-search__input:focus { outline: none; }
.fp-search__submit { border: 0; border-radius: 0; padding: 0 16px; background: var(--fp-blue); color: #fff; }
.fp-search__submit:hover { background: var(--fp-blue-700); }

/* ----- Breadcrumb ------------------------------------------------------- */
.fp-breadcrumb { background: var(--fp-bg-soft); font-size: 0.82rem; color: var(--fp-muted); }
.fp-breadcrumb .container { padding-top: 10px; padding-bottom: 10px; }
.fp-breadcrumb a { color: var(--fp-muted); }
.fp-breadcrumb a:hover { color: var(--fp-blue); }
.fp-breadcrumb .sep { margin: 0 8px; opacity: .6; }
.fp-breadcrumb .current { color: var(--fp-ink); }

/* ----- Home: hero ------------------------------------------------------- */
.home-hero { background: linear-gradient(135deg, var(--fp-blue) 0%, var(--fp-blue-700) 60%, #1c3f3b 100%); color: #fff; }
.home-hero__inner { padding: 48px 0; }
.home-hero__eyebrow { text-transform: uppercase; letter-spacing: .14em; font-size: .76rem; font-weight: 600; color: rgba(255,255,255,.85); margin-bottom: 10px; }
.home-hero__title { color: #fff; font-size: clamp(1.7rem, 6vw, 3rem); max-width: 16ch; }
.home-hero__text { color: rgba(255,255,255,.92); max-width: 48ch; font-size: 1.05rem; }
.home-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.home-hero .button { background: #fff; color: var(--fp-blue-700); border-color: #fff; }
.home-hero .button:hover { background: var(--fp-green); border-color: var(--fp-green); color: #fff; }
.home-hero .button--ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.7); }
.home-hero .button--ghost:hover { background: #fff; color: var(--fp-blue-700); }

/* ----- Home: banners (migrados) --------------------------------------- */
.home-banners { position: relative; background: var(--fp-bg-soft); }
.home-banners__track {
	display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
	-ms-overflow-style: none; scrollbar-width: none;
}
.home-banners__track::-webkit-scrollbar { display: none; }
.home-banners__slide { flex: 0 0 100%; scroll-snap-align: start; }
.home-banners__img { width: 100%; height: auto; display: block; }
.home-banners__dots { position: absolute; left: 0; right: 0; bottom: 12px; display: flex; justify-content: center; gap: 8px; }
.home-banners__dot { width: 10px; height: 10px; padding: 0; border-radius: 50%; border: 0; background: rgba(255,255,255,.6); box-shadow: 0 0 0 1px rgba(0,0,0,.15); cursor: pointer; }
.home-banners__dot.is-active { background: #fff; }

/* ----- Home: benefícios ------------------------------------------------- */
.home-benefits { background: var(--fp-olive); border-bottom: 1px solid rgba(0, 0, 0, 0.06); }
/* Mobile: 2x2 compacto (ícone acima do texto, centralizado). */
.home-benefits__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; padding: 12px 8px; }
.benefit { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 12px 6px; }
.benefit__icon { display: inline-flex; width: 42px; height: 42px; align-items: center; justify-content: center; background: rgba(255, 255, 255, 0.22); color: #fff; border-radius: var(--fp-radius-pill); flex: none; }
.benefit__text { display: flex; flex-direction: column; }
.benefit__text strong { color: #fff; font-size: 0.85rem; line-height: 1.2; }
.benefit__text small { color: rgba(255, 255, 255, 0.88); font-size: 0.76rem; }

/* ----- Seções: cabeçalho ------------------------------------------------ */
.home-sections section { padding: 30px 0; }
/* Especificidade maior que ".home-sections section" para zerar o padding do
   topo (slideshow encostado no header) e das faixas full-bleed. */
.home-sections .home-benefits,
.home-sections .home-hero,
.home-sections .home-banners { padding: 0; }
.section-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 22px; gap: 12px; }
.section-head__title { font-size: clamp(1.4rem, 4vw, 1.9rem); margin: 0; }
.section-head__link { font-weight: 600; font-size: 0.9rem; white-space: nowrap; }

/* ----- Home: categorias ------------------------------------------------- */
.cat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.cat-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--fp-line); border-radius: var(--fp-radius); overflow: hidden; color: var(--fp-ink); transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease; }
.cat-card:hover { box-shadow: var(--fp-shadow); transform: translateY(-2px); border-color: transparent; text-decoration: none; color: var(--fp-blue-700); }
.cat-card__media { aspect-ratio: 1 / 1; background: var(--fp-bg-soft); display: block; }
.cat-card__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.cat-card__name { padding: 12px 14px; font-family: var(--fp-font-head); font-weight: 600; font-size: 0.95rem; text-align: center; }
.cat-card--placeholder .cat-card__media { position: relative; }
.cat-card--placeholder .cat-card__media::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.5), transparent 60%); }
.cat-card--placeholder .cat-card__media { background: linear-gradient(135deg, var(--fp-blue-050), #fff); }
.cat-card--placeholder.cat-card--c1 .cat-card__media { background: linear-gradient(135deg, #eaf3f1, #dbeae7); } /* teal */
.cat-card--placeholder.cat-card--c2 .cat-card__media { background: linear-gradient(135deg, #f1f3e7, #e4ebd2); } /* olive */
.cat-card--placeholder.cat-card--c3 .cat-card__media { background: linear-gradient(135deg, #f7f2e8, #efe6d3); } /* ivory/gold */
.cat-card--placeholder.cat-card--c4 .cat-card__media { background: linear-gradient(135deg, #eef1e6, #dfe6d0); } /* sage */

/* ----- Home: about ------------------------------------------------------ */
.home-about { background: var(--fp-bg-soft); }
.home-about__inner { text-align: center; }
.home-about__text { max-width: 60ch; margin: 0 auto; }
.home-about__text h2 { font-size: clamp(1.4rem, 4vw, 2rem); }

/* ----- Home: newsletter ------------------------------------------------- */
.home-newsletter { background: #24302d; color: #fff; }
.home-newsletter__inner { display: grid; gap: 18px; }
.home-newsletter__copy h2 { color: #fff; }
.home-newsletter__copy p { color: rgba(255,255,255,.8); margin: 0; }
.home-newsletter__form { display: flex; gap: 8px; }
.home-newsletter__form input { flex: 1; border: 0; border-radius: var(--fp-radius-pill); padding: 13px 18px; font-size: 0.95rem; min-width: 0; }
.home-newsletter__form .button { background: var(--fp-green); border-color: var(--fp-green); }
.home-newsletter__form .button:hover { background: var(--fp-green-600); border-color: var(--fp-green-600); }

/* ----- Blog ------------------------------------------------------------- */
.page-header { margin-bottom: 22px; }
.page-title { font-size: clamp(1.5rem, 5vw, 2.1rem); }
.posts-grid { display: grid; grid-template-columns: 1fr; gap: 22px; }
.post-card { background: #fff; border: 1px solid var(--fp-line); border-radius: var(--fp-radius); overflow: hidden; }
.post-card__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.post-card__body { padding: 16px 18px; }
.post-card__title { font-size: 1.15rem; margin-bottom: 6px; }
.post-card__meta { color: var(--fp-muted); font-size: 0.82rem; margin-bottom: 8px; }
.post-card__more { font-weight: 600; }

.single-post .entry-thumbnail { margin: 0 0 22px; border-radius: var(--fp-radius); overflow: hidden; }
.entry-meta { color: var(--fp-muted); font-size: 0.85rem; }
.entry-content { font-size: 1.02rem; overflow-wrap: anywhere; }
.entry-content img { border-radius: var(--fp-radius-sm); }
.entry-content video, .entry-content iframe { max-width: 100%; }
/* Galeria editorial (blocos de imagem em páginas/posts) */
.entry-content .wp-block-gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin: 0 0 1.4em; }
.entry-content figure.wp-block-image { margin: 0 0 1em; }
.entry-content figure.wp-block-image img { width: 100%; height: auto; }
.entry-content figcaption { font-size: 0.82rem; color: var(--fp-muted); text-align: center; margin-top: 6px; }
@media (max-width: 480px) { .entry-content .wp-block-gallery { grid-template-columns: 1fr; } }

.pagination, .woocommerce-pagination { margin-top: 32px; }
.pagination .nav-links, .page-numbers { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; }
.page-numbers li { list-style: none; }
.page-numbers a, .page-numbers span { display: inline-flex; min-width: 44px; height: 44px; align-items: center; justify-content: center; padding: 0 12px; border: 1px solid var(--fp-line); border-radius: var(--fp-radius-sm); color: var(--fp-ink); }
.page-numbers .current { background: var(--fp-blue); border-color: var(--fp-blue); color: #fff; }
.page-numbers a:hover { border-color: var(--fp-blue); color: var(--fp-blue); text-decoration: none; }

/* ----- Footer ----------------------------------------------------------- */
.site-footer { background: #ffffff; color: var(--fp-body); margin-top: 40px; border-top: 1px solid var(--fp-line); }
.site-footer a { color: var(--fp-body); }
.site-footer a:hover { color: var(--fp-blue); }
.site-footer__cols { display: grid; grid-template-columns: 1fr; gap: 28px; padding: 40px 16px; }
.site-footer .site-logo img,
.site-footer .custom-logo,
.site-footer .custom-logo-link img { filter: none; max-height: 40px; width: auto; height: auto; }
.site-footer__about { font-size: 0.9rem; color: var(--fp-muted); margin-top: 12px; }
.footer__widget-title { color: var(--fp-ink); font-size: 1rem; margin-bottom: 14px; }
.footer-menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.footer-menu a { display: block; padding: 11px 0; line-height: 1.3; font-size: 0.92rem; }
.site-footer__contact { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 10px; }
.site-footer__contact li { display: flex; gap: 10px; font-size: 0.88rem; color: var(--fp-muted); align-items: flex-start; }
.site-footer__contact .fp-icon { width: 18px; height: 18px; color: var(--fp-green-600); flex: none; margin-top: 2px; }
.site-footer__badges { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.site-footer__badges li { display: flex; align-items: center; gap: 10px; font-size: 0.88rem; }
.site-footer__badges .fp-icon { width: 22px; height: 22px; color: var(--fp-green-600); }
.site-footer__social { display: flex; gap: 10px; margin-top: 16px; }
.site-footer__social a { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; color: var(--fp-ink); border: 1px solid var(--fp-line); border-radius: var(--fp-radius-pill); }
.site-footer__social a:hover { background: var(--fp-green); border-color: var(--fp-green); color: #fff; }
.site-footer__bottom { border-top: 1px solid var(--fp-line); background: var(--fp-bg-soft); font-size: 0.82rem; color: var(--fp-muted); }
.site-footer__bottom-inner { display: grid; gap: 4px; padding: 18px 16px; text-align: center; }
.site-footer__bottom p { margin: 0; }

/* ----- Botão flutuante WhatsApp ---------------------------------------- */
.fp-whatsapp-float {
	position: fixed; right: 16px; bottom: 16px; z-index: 120;
	width: 56px; height: 56px; border-radius: var(--fp-radius-pill);
	background: #25d366; color: #fff; display: inline-flex; align-items: center; justify-content: center;
	box-shadow: 0 8px 24px rgba(37,211,102,.4);
}
.fp-whatsapp-float:hover { background: #1ebe5a; color: #fff; transform: translateY(-2px); }
.fp-whatsapp-float .fp-icon { width: 30px; height: 30px; }

/* ----- Tablet (>=768px) ------------------------------------------------- */
@media (min-width: 768px) {
	.site-topbar__inner { justify-content: space-between; }
	.site-topbar__phone { display: flex; }

	/* Desktop: busca (esquerda) | logo grande (centro) | conta+carrinho (direita).
	   1fr auto 1fr garante a logo centralizada de verdade. O menu vai abaixo. */
	/* minmax(0,1fr) — sem isso a coluna da busca não encolhe abaixo do seu
	   min-content e as laterais ficam desiguais, tirando a logo do centro. */
	.site-header__inner { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 20px; }
	.site-header__search { display: block; grid-column: 1; grid-row: 1; justify-self: start; width: 100%; min-width: 0; max-width: 420px; }
	.site-header__brand { grid-column: 2; grid-row: 1; }
	.site-header__actions { grid-column: 3; grid-row: 1; justify-self: end; }
	.nav-toggle { display: none; }
	.header-action__label { display: block; }
	.header-action--account { display: inline-flex; }
	.site-nav { display: block; }
	.site-nav .primary-menu { justify-content: center; }

	/* Tablet: logo menor para sobrar largura às laterais (busca/ações) e o
	   centro se manter real. No desktop (>=1024px) ela cresce para 78px. */
	.site-logo img,
	.site-header__brand .custom-logo,
	.site-header__brand .custom-logo-link img { max-height: 56px; }
	.site-header.is-stuck .site-logo img,
	.site-header.is-stuck .site-header__brand .custom-logo,
	.site-header.is-stuck .site-header__brand .custom-logo-link img { max-height: 46px; }

	.home-sections section { padding: 44px 0; }
	.home-benefits__grid { grid-template-columns: repeat(2, 1fr); padding: 14px 16px; }
	.benefit { flex-direction: row; text-align: left; gap: 12px; padding: 10px; }
	.benefit__icon { width: 44px; height: 44px; }
	.benefit__text strong { font-size: 0.92rem; }
	.benefit__text small { font-size: 0.8rem; }
	.cat-grid { grid-template-columns: repeat(3, 1fr); gap: 18px; }
	.posts-grid { grid-template-columns: repeat(2, 1fr); }

	.home-newsletter__inner { grid-template-columns: 1.1fr 1fr; align-items: center; }
	.site-footer__cols { grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 36px; }
	.site-footer__bottom-inner { grid-template-columns: 1fr auto; text-align: left; }
	.home-hero__inner { padding: 72px 0; }
}

/* ----- Desktop (>=1024px) ---------------------------------------------- */
@media (min-width: 1024px) {
	/* Logo GRANDE só quando há largura sobrando para as laterais. */
	.site-logo img,
	.site-header__brand .custom-logo,
	.site-header__brand .custom-logo-link img { max-height: 78px; }

	.home-benefits__grid { grid-template-columns: repeat(4, 1fr); }
	.cat-grid { grid-template-columns: repeat(4, 1fr); }
	.posts-grid { grid-template-columns: repeat(3, 1fr); }
	.home-sections section { padding: 56px 0; }
}

/* ----- 404 -------------------------------------------------------------- */
.error-404__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; }

/* ----- Utilidades ------------------------------------------------------- */
.is-shop .site-main { padding-top: 16px; }

/* =========================================================================
   Refinamentos delicados (perfumaria/essência) — "delicado por subtração":
   serif de display só em títulos, ivory quente (tokens acima), ornamento
   dourado sutil, cards com acabamento fino e foco acessível. Motivos como SVG
   data-URI decorativos. TEXTO/ícone dourado usa gold-700 (contraste AA);
   #a37f4b só em traços puramente decorativos.
   ========================================================================= */

/* (1) Serif elegante SÓ em títulos de display (nav/botões/corpo/loop seguem Poppins/Inter). */
.page-title,
.section-head__title,
.woocommerce-products-header__title,
.single-product div.product .product_title,
.home-hero__title,
.home-about__text h2,
.home-newsletter__copy h2,
.entry-content h1,
.entry-content h2,
.related.products > h2,
.up-sells > h2,
.cross-sells > h2 {
	font-family: var(--fp-font-display);
	font-weight: 600;
	letter-spacing: 0.005em;
	line-height: 1.16;
}
.section-head__title { font-size: clamp(1.6rem, 4.4vw, 2.25rem); }
.single-product div.product .product_title { font-size: clamp(1.7rem, 5vw, 2.4rem); line-height: 1.12; }

/* (2) Ornamento dourado sob o título de seção: filete curto + gota de essência. */
.section-head__title::after {
	content: "";
	display: block;
	width: 62px; height: 12px; margin-top: 12px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 12'%3E%3Cline x1='0' y1='6' x2='40' y2='6' stroke='%23a37f4b' stroke-width='1'/%3E%3Cpath d='M52 1c0 0-4.5 5.5-4.5 7.8a4.5 4.5 0 0 0 9 0C56.5 6.5 52 1 52 1Z' fill='%23a37f4b'/%3E%3C/svg%3E") left center / 62px 12px no-repeat;
}

/* (3) Eyebrow utilitário (dourado LEGÍVEL = gold-700). */
.fp-eyebrow {
	display: inline-block; font-family: var(--fp-font-head); font-weight: 600;
	font-size: 0.74rem; text-transform: uppercase; letter-spacing: 0.16em;
	color: var(--fp-gold-700); margin-bottom: 6px;
}

/* (4) Botões: letter-spacing sutil + transição gentil (cor inalterada). */
.button, button, input[type="submit"] { letter-spacing: 0.02em; }
.button { transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.08s ease; }

/* (5) Foco acessível: contorno teal fino + halo suave (nunca dourado em foco). */
:focus-visible { outline: 2px solid var(--fp-blue); outline-offset: 2px; box-shadow: 0 0 0 4px rgba(var(--fp-teal-rgb), 0.18); }

/* (6) Cards de categoria: sombra suave, zoom gentil da imagem e fio dourado no hover. */
.cat-card { position: relative; box-shadow: var(--fp-shadow-sm); transition: box-shadow 0.25s ease, transform 0.25s ease, border-color 0.25s ease; }
.cat-card:hover { transform: translateY(-3px); }
.cat-card__media { overflow: hidden; }
.cat-card__media img { transition: transform 0.55s cubic-bezier(0.22, 0.61, 0.36, 1); }
.cat-card:hover .cat-card__media img { transform: scale(1.05); }
.cat-card::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; box-shadow: inset 0 0 0 1px transparent; transition: box-shadow 0.25s ease; }
.cat-card:hover::after { box-shadow: inset 0 0 0 1px rgba(var(--fp-gold-rgb), 0.5); }

/* (7) Divisor ornamental reutilizável (filete que esvai + gota dourada central).
   Uso pontual: <div class="fp-divider" role="presentation"></div>. */
.fp-divider { position: relative; height: 22px; margin: 6px auto; max-width: 320px; }
.fp-divider::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: linear-gradient(90deg, transparent, rgba(var(--fp-gold-rgb), 0.5) 22%, rgba(var(--fp-gold-rgb), 0.5) 78%, transparent); }
.fp-divider::after { content: ""; position: absolute; left: 50%; top: 50%; width: 20px; height: 22px; transform: translate(-50%, -50%); background: var(--fp-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 16'%3E%3Cpath d='M6 1c0 0-4.5 7.5-4.5 10a4.5 4.5 0 0 0 9 0C10.5 8.5 6 1 6 1Z' fill='%23a37f4b'/%3E%3C/svg%3E") center / 12px 16px no-repeat; }

/* (8) Reduz movimento. */
@media (prefers-reduced-motion: reduce) {
	.cat-card__media img { transition: none; }
	.cat-card:hover .cat-card__media img { transform: none; }
	.cat-card, .button { transition: none; }
}

/* (9) Mobile: ornamento do cabeçalho mais discreto (respiro > enfeite). */
@media (max-width: 600px) {
	.section-head__title::after { width: 46px; background-size: 46px 12px; margin-top: 8px; }
}

/* =========================================================================
   Seção "Categorias" — cards CIRCULARES (estilo "comprar por categoria").
   Desktop: 8 círculos numa linha; nome abaixo do círculo. Mobile/tablet: 4
   por linha. Placeholders (sem imagem) mostram a gota dourada no círculo.
   ========================================================================= */
.cat-grid { grid-template-columns: repeat(4, 1fr); gap: 18px 10px; }
@media (min-width: 1024px) { .cat-grid { grid-template-columns: repeat(8, 1fr); gap: 22px 8px; } }

/* Card sem moldura/box: apenas o círculo + o nome, centralizados. */
.cat-card {
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px;
	background: transparent; border: 0; border-radius: 0; overflow: visible; box-shadow: none;
}
.cat-card:hover { transform: none; box-shadow: none; border-color: transparent; }
.cat-card::after { content: none; }   /* remove o anel retangular do refino */

/* Mídia em círculo. */
.cat-card__media {
	position: relative; width: 100%; max-width: 128px; aspect-ratio: 1 / 1;
	border-radius: 50%; overflow: hidden;
	border: 1px solid var(--fp-line); box-shadow: var(--fp-shadow-sm);
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.cat-card__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.cat-card:hover .cat-card__media { transform: translateY(-4px); box-shadow: var(--fp-shadow); border-color: rgba(var(--fp-gold-rgb), 0.55); }
.cat-card:hover .cat-card__media img { transform: scale(1.06); }

/* Nome abaixo do círculo (não mais sobreposto). */
.cat-card__name {
	position: static; margin: 0; padding: 0; z-index: auto;
	color: var(--fp-ink); text-shadow: none; text-align: center;
	font-family: var(--fp-font-head); font-weight: 600; font-size: 0.9rem; line-height: 1.25; letter-spacing: 0.01em;
}

/* Sem imagem: gota dourada centralizada no círculo (sobre o tint c1..c4). */
.cat-card:not(.cat-card--placeholder) .cat-card__media::after { content: none; }
.cat-card--placeholder .cat-card__media::after {
	content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
	width: 26px; height: 34px; opacity: 0.45; pointer-events: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 16'%3E%3Cpath d='M6 1c0 0-4.5 7.5-4.5 10a4.5 4.5 0 0 0 9 0C10.5 8.5 6 1 6 1Z' fill='%23a37f4b'/%3E%3C/svg%3E") center / contain no-repeat;
}

@media (prefers-reduced-motion: reduce) {
	.cat-card__media, .cat-card__media img { transition: none; }
	.cat-card:hover .cat-card__media,
	.cat-card:hover .cat-card__media img { transform: none; }
}
