/*
Theme Name: Brilho Nobre Joias
Theme URI: https://brilhonobrejoias.com.br
Author: Rells / Brilho Nobre Joias
Description: Tema profissional para a loja de semijoias Brilho Nobre Joias, construído sobre WooCommerce. Layout elegante em tons de dourado e nude, com foco em conversão e apresentação de produtos.
Version: 1.0.0
Requires PHP: 7.4
Text Domain: brilho-nobre
Tags: e-commerce, woocommerce, custom-colors, custom-menu, custom-logo, featured-images, translation-ready
*/

/* =============================================================
   0. Design tokens
============================================================= */
:root{
  --bn-gold: #A9824C;
  --bn-gold-dark: #8B6A3A;
  --bn-gold-light: #D8B888;
  --bn-cream: #FBF7F1;
  --bn-cream-2: #F3EAE0;
  --bn-ink: #2B2420;
  --bn-ink-soft: #5C5248;
  --bn-white: #FFFFFF;
  --bn-line: #E7DBC9;
  --bn-success: #4C7A5A;
  --bn-error: #B5453C;
  --bn-radius: 14px;
  --bn-radius-sm: 8px;
  --bn-shadow: 0 6px 24px rgba(43,36,32,0.08);
  --bn-shadow-hover: 0 12px 32px rgba(43,36,32,0.14);
  --bn-font-heading: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  --bn-font-body: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --bn-maxw: 1240px;
}

/* =============================================================
   1. Reset & base
============================================================= */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--bn-font-body);
  color: var(--bn-ink);
  background: var(--bn-white);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color: inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,h5{
  font-family: var(--bn-font-heading);
  color: var(--bn-ink);
  font-weight:600;
  line-height:1.2;
  margin: 0 0 .5em;
}
h1{ font-size: clamp(2.1rem, 4vw, 3.2rem); }
h2{ font-size: clamp(1.6rem, 3vw, 2.3rem); }
h3{ font-size: 1.3rem; }
p{ margin:0 0 1em; }
button, input, select, textarea{ font-family: inherit; font-size: 1rem; }
.container{ max-width: var(--bn-maxw); margin:0 auto; padding: 0 24px; }
.section{ padding: 64px 0; }
.section--tight{ padding: 40px 0; }
.section--cream{ background: var(--bn-cream); }
.center{ text-align:center; }
.eyebrow{
  display:inline-block;
  font-size:.78rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color: var(--bn-gold-dark);
  font-weight:600;
  margin-bottom:10px;
}
.section-title{ margin-bottom: 8px; }
.section-subtitle{ color: var(--bn-ink-soft); max-width:560px; margin:0 auto 40px; }
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 14px 30px;
  border-radius: 999px;
  font-weight:600;
  font-size:.95rem;
  letter-spacing:.02em;
  cursor:pointer;
  border: 2px solid transparent;
  transition: all .25s ease;
}
.btn--primary{ background: linear-gradient(135deg, var(--bn-gold) 0%, var(--bn-gold-dark) 100%); color:#fff; box-shadow: var(--bn-shadow); }
.btn--primary:hover{ transform: translateY(-2px); box-shadow: var(--bn-shadow-hover); }
.btn--outline{ background:transparent; border-color: var(--bn-gold); color: var(--bn-gold-dark); }
.btn--outline:hover{ background: var(--bn-gold); color:#fff; }
.btn--dark{ background: var(--bn-ink); color:#fff; }
.skip-link{ position:absolute; left:-9999px; top:auto; }
.skip-link:focus{ left:16px; top:16px; z-index:9999; background:#fff; padding:10px 16px; border-radius:8px; box-shadow: var(--bn-shadow); }

/* =============================================================
   2. Top bar & header
============================================================= */
.bn-topbar{
  background: var(--bn-ink);
  color: #EFE6D8;
  text-align:center;
  font-size:.82rem;
  letter-spacing:.04em;
  padding: 9px 16px;
}
.bn-topbar a{ color:#EFE6D8; text-decoration:underline; }

.bn-header{
  position: sticky; top:0; z-index: 500;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--bn-line);
}
.bn-header__inner{
  display:flex; align-items:center; gap:28px;
  padding: 14px 24px;
  max-width: var(--bn-maxw); margin:0 auto;
}
.bn-logo{ display:flex; align-items:center; gap:12px; flex-shrink:0; }
.bn-logo img{ max-height:56px; width:auto; }
.bn-logo .bn-logo-text{
  font-family: var(--bn-font-heading);
  font-size:1.5rem; font-weight:700; color: var(--bn-gold-dark);
  line-height:1.1;
}
.bn-logo .bn-logo-text small{
  display:block; font-family: var(--bn-font-body); font-size:.62rem; letter-spacing:.14em;
  text-transform:uppercase; color: var(--bn-ink-soft); font-weight:500;
}
.bn-search{ flex: 1 1 auto; max-width: 420px; position:relative; }
.bn-search input[type="search"], .bn-search input[type="text"]{
  width:100%; padding: 11px 46px 11px 18px; border-radius: 999px;
  border: 1px solid var(--bn-line); background: var(--bn-cream); outline:none;
  transition: border-color .2s;
}
.bn-search input:focus{ border-color: var(--bn-gold); background:#fff; }
.bn-search button{
  position:absolute; right:4px; top:4px; bottom:4px; width:38px;
  border:none; background: var(--bn-gold); color:#fff; border-radius:999px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.bn-header__actions{ display:flex; align-items:center; gap:18px; margin-left:auto; flex-shrink:0; }
.bn-header__actions a{
  display:flex; flex-direction:column; align-items:center; gap:3px;
  font-size:.68rem; color: var(--bn-ink-soft); font-weight:600; position:relative;
}
.bn-header__actions a:hover{ color: var(--bn-gold-dark); }
.bn-header__actions svg{ width:22px; height:22px; }
.bn-cart-count{
  position:absolute; top:-6px; right:-10px; background: var(--bn-gold-dark); color:#fff;
  font-size:.62rem; width:18px; height:18px; border-radius:50%; display:flex; align-items:center; justify-content:center;
}
.bn-burger{ display:none; background:none; border:none; cursor:pointer; padding:6px; }
.bn-burger span{ display:block; width:24px; height:2px; background: var(--bn-ink); margin:5px 0; }

.bn-nav{ border-top: 1px solid var(--bn-line); background:#fff; }
.bn-nav__inner{ max-width: var(--bn-maxw); margin:0 auto; padding: 0 24px; }
.bn-nav ul{ display:flex; gap: 6px; flex-wrap:wrap; }
.bn-nav ul li a{
  display:block; padding: 13px 16px; font-weight:600; font-size:.92rem;
  color: var(--bn-ink-soft); border-bottom:2px solid transparent; transition: all .2s;
}
.bn-nav ul li a:hover, .bn-nav ul li.current-menu-item a{ color: var(--bn-gold-dark); border-bottom-color: var(--bn-gold); }
.bn-nav ul li ul{ display:none; }

@media (max-width: 900px){
  .bn-search{ display:none; }
  .bn-burger{ display:block; }
  .bn-nav{ display:none; }
  .bn-nav.is-open{ display:block; }
  .bn-nav ul{ flex-direction:column; }
}

/* =============================================================
   3. Hero
============================================================= */
.bn-hero{
  position:relative; overflow:hidden;
  background: linear-gradient(120deg, var(--bn-cream) 0%, var(--bn-cream-2) 60%, #EFE1CC 100%);
}
.bn-hero__inner{
  max-width: var(--bn-maxw); margin:0 auto; padding: 76px 24px;
  display:grid; grid-template-columns: 1.05fr .95fr; gap:48px; align-items:center;
}
.bn-hero__content .eyebrow{ background:#fff; padding:6px 14px; border-radius:999px; box-shadow: var(--bn-shadow); }
.bn-hero__content h1{ margin-bottom:18px; }
.bn-hero__content p{ color: var(--bn-ink-soft); font-size:1.08rem; max-width:460px; }
.bn-hero__cta{ display:flex; gap:14px; margin-top:28px; flex-wrap:wrap; }
.bn-hero__media{ position:relative; }
.bn-hero__media img{ border-radius: var(--bn-radius); box-shadow: var(--bn-shadow-hover); width:100%; aspect-ratio: 4/3.2; object-fit:cover; }
.bn-hero__badge{
  position:absolute; bottom:-18px; left:-18px; background:#fff; padding:16px 20px; border-radius: var(--bn-radius-sm);
  box-shadow: var(--bn-shadow); display:flex; align-items:center; gap:10px;
}
.bn-hero__badge strong{ display:block; font-family: var(--bn-font-heading); font-size:1.3rem; color: var(--bn-gold-dark); }
.bn-hero__badge span{ font-size:.75rem; color: var(--bn-ink-soft); }
@media (max-width: 860px){
  .bn-hero__inner{ grid-template-columns: 1fr; padding: 48px 20px; }
  .bn-hero__media{ order:-1; }
}

/* =============================================================
   4. Trust badges
============================================================= */
.bn-trust{ display:grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.bn-trust__item{
  background:#fff; border:1px solid var(--bn-line); border-radius: var(--bn-radius);
  padding: 26px 18px; text-align:center; transition: box-shadow .2s, transform .2s;
}
.bn-trust__item:hover{ box-shadow: var(--bn-shadow); transform: translateY(-3px); }
.bn-trust__item svg{ width:34px; height:34px; color: var(--bn-gold-dark); margin-bottom:10px; }
.bn-trust__item strong{ display:block; font-size:.94rem; margin-bottom:4px; }
.bn-trust__item span{ font-size:.8rem; color: var(--bn-ink-soft); }
@media (max-width:760px){ .bn-trust{ grid-template-columns: repeat(2,1fr); } }

/* =============================================================
   5. Category grid
============================================================= */
.bn-cats{ display:grid; grid-template-columns: repeat(4, 1fr); gap:20px; }
.bn-cat{
  position:relative; border-radius: var(--bn-radius); overflow:hidden; aspect-ratio: 1/1;
  box-shadow: var(--bn-shadow); transition: transform .3s, box-shadow .3s;
}
.bn-cat:hover{ transform: translateY(-4px); box-shadow: var(--bn-shadow-hover); }
.bn-cat img{ width:100%; height:100%; object-fit:cover; transition: transform .5s; }
.bn-cat:hover img{ transform: scale(1.08); }
.bn-cat__label{
  position:absolute; inset:auto 0 0 0; padding: 16px 14px;
  background: linear-gradient(0deg, rgba(43,36,32,.82) 0%, rgba(43,36,32,0) 100%);
  color:#fff; font-weight:600; font-family: var(--bn-font-heading); font-size:1.1rem;
}
@media (max-width:860px){ .bn-cats{ grid-template-columns: repeat(2,1fr); } }

/* =============================================================
   6. Products grid & cards (WooCommerce overrides)
============================================================= */
ul.products{
  display:grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 26px;
  list-style:none !important;
  margin: 0 !important; padding:0 !important;
}
ul.products li.product{
  background:#fff; border:1px solid var(--bn-line); border-radius: var(--bn-radius);
  padding: 0 0 18px; text-align:center; position:relative; overflow:hidden;
  transition: box-shadow .25s, transform .25s;
}
ul.products li.product:hover{ box-shadow: var(--bn-shadow-hover); transform: translateY(-4px); }
ul.products li.product a.woocommerce-LoopProduct-link{ display:block; color:inherit; }
ul.products li.product img{ width:100%; aspect-ratio: 1/1; object-fit:cover; margin-bottom:14px; }
ul.products li.product .woocommerce-loop-product__title{
  font-family: var(--bn-font-body); font-weight:600; font-size:.98rem; padding: 0 14px; margin-bottom:6px;
}
ul.products li.product .price{ color: var(--bn-gold-dark); font-weight:700; font-size:1.05rem; }
ul.products li.product .price del{ color:#a09484; font-weight:400; margin-right:6px; }
ul.products li.product .price ins{ text-decoration:none; }
ul.products li.product .star-rating{ margin: 4px auto 8px; }
ul.products li.product .button{
  display:inline-block; margin-top:12px; padding: 9px 22px; border-radius:999px;
  background: var(--bn-ink); color:#fff !important; font-size:.82rem; font-weight:600;
  transition: background .2s;
}
ul.products li.product .button:hover{ background: var(--bn-gold-dark); }
ul.products li.product .onsale{
  position:absolute; top:12px; left:12px; background: var(--bn-error); color:#fff;
  font-size:.7rem; font-weight:700; padding:5px 10px; border-radius:999px; text-transform:uppercase;
  min-height:auto; min-width:auto; line-height:1; z-index:2;
}
@media (max-width: 980px){ ul.products{ grid-template-columns: repeat(3,1fr); } }
@media (max-width: 700px){ ul.products{ grid-template-columns: repeat(2,1fr); gap:14px; } }

.woocommerce-pagination ul.page-numbers{ display:flex; justify-content:center; gap:8px; margin-top:36px; }
.woocommerce-pagination .page-numbers{
  display:flex; align-items:center; justify-content:center; width:38px; height:38px;
  border-radius:50%; border:1px solid var(--bn-line); font-weight:600;
}
.woocommerce-pagination .page-numbers.current, .woocommerce-pagination .page-numbers:hover{ background: var(--bn-gold); color:#fff; border-color: var(--bn-gold); }

/* Single product */
.woocommerce div.product{ padding: 40px 0; }
.woocommerce div.product .product_title{ font-size: clamp(1.6rem,3vw,2.2rem); }
.woocommerce div.product p.price{ color: var(--bn-gold-dark); font-size:1.5rem; font-weight:700; }
.woocommerce div.product .single_add_to_cart_button{
  background: linear-gradient(135deg, var(--bn-gold) 0%, var(--bn-gold-dark) 100%) !important;
  color:#fff !important; border-radius:999px !important; padding: 15px 36px !important; font-weight:700 !important;
  border:none !important;
}
.woocommerce div.product .woocommerce-product-rating{ margin-bottom:14px; }
.woocommerce #reviews #comments ol.commentlist{ list-style:none; margin:0; padding:0; }
.woocommerce span.onsale{ background: var(--bn-error) !important; }
.woocommerce nav.woocommerce-breadcrumb{ font-size:.85rem; color: var(--bn-ink-soft); margin-bottom:24px; }
.woocommerce-tabs ul.tabs{ border-bottom:1px solid var(--bn-line); display:flex; gap:24px; margin-bottom:24px; }
.woocommerce-tabs ul.tabs li{ padding-bottom:12px; font-weight:600; cursor:pointer; border-bottom:2px solid transparent; }
.woocommerce-tabs ul.tabs li.active{ border-color: var(--bn-gold); color: var(--bn-gold-dark); }

/* Cart & checkout base tidy-up */
.woocommerce table.shop_table{ border-radius: var(--bn-radius-sm); overflow:hidden; border:1px solid var(--bn-line); }
.woocommerce table.shop_table th{ background: var(--bn-cream); }
.woocommerce-checkout #payment{ background: var(--bn-cream); border-radius: var(--bn-radius); }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button{
  background: var(--bn-ink); color:#fff; border-radius:999px; padding:12px 26px; font-weight:600; border:none;
}
.woocommerce a.button:hover, .woocommerce button.button:hover{ background: var(--bn-gold-dark); color:#fff; }
.woocommerce a.checkout-button, .woocommerce #payment #place_order{
  background: linear-gradient(135deg, var(--bn-gold) 0%, var(--bn-gold-dark) 100%) !important;
}

/* =============================================================
   7. Testimonials / Instagram / Newsletter
============================================================= */
.bn-testimonials{ display:grid; grid-template-columns: repeat(3,1fr); gap:24px; }
.bn-testimonial{ background:#fff; border:1px solid var(--bn-line); border-radius: var(--bn-radius); padding:26px; }
.bn-testimonial__stars{ color: var(--bn-gold); margin-bottom:10px; letter-spacing:2px; }
.bn-testimonial p{ font-style:italic; color: var(--bn-ink-soft); }
.bn-testimonial__author{ font-weight:700; font-size:.9rem; margin-top:12px; }
@media (max-width:860px){ .bn-testimonials{ grid-template-columns:1fr; } }

.bn-instagram{ text-align:center; }
.bn-instagram__handle{ display:inline-flex; align-items:center; gap:8px; font-weight:700; color: var(--bn-gold-dark); margin-bottom:26px; }
.bn-instagram__grid{ display:grid; grid-template-columns: repeat(5,1fr); gap:14px; }
.bn-instagram__grid a{ display:block; border-radius: var(--bn-radius-sm); overflow:hidden; aspect-ratio:1/1; position:relative; }
.bn-instagram__grid img{ width:100%; height:100%; object-fit:cover; transition: transform .4s; }
.bn-instagram__grid a:hover img{ transform: scale(1.1); }
@media (max-width:760px){ .bn-instagram__grid{ grid-template-columns: repeat(3,1fr); } }

.bn-newsletter{ background: var(--bn-ink); color:#fff; border-radius: var(--bn-radius); padding: 46px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.bn-newsletter h3{ color:#fff; margin-bottom:6px; }
.bn-newsletter p{ color:#D8CBB8; margin:0; }
.bn-newsletter form{ display:flex; gap:10px; flex-wrap:wrap; }
.bn-newsletter input[type=email]{ padding:13px 18px; border-radius:999px; border:none; min-width:260px; }

/* =============================================================
   8. Footer
============================================================= */
.bn-footer{ background: var(--bn-cream-2); border-top:1px solid var(--bn-line); padding-top: 56px; }
.bn-footer__grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; padding-bottom: 40px; }
.bn-footer h4{ font-family: var(--bn-font-body); font-size:.85rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:16px; color: var(--bn-gold-dark); }
.bn-footer li{ margin-bottom:10px; font-size:.92rem; }
.bn-footer li a:hover{ color: var(--bn-gold-dark); }
.bn-footer__about p{ color: var(--bn-ink-soft); font-size:.9rem; }
.bn-footer__social{ display:flex; gap:10px; margin-top:14px; }
.bn-footer__social a{
  width:38px; height:38px; border-radius:50%; background: var(--bn-ink); color:#fff;
  display:flex; align-items:center; justify-content:center; transition: background .2s;
}
.bn-footer__social a:hover{ background: var(--bn-gold-dark); }
.bn-footer__payments{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.bn-footer__payments span{
  border:1px solid var(--bn-line); background:#fff; border-radius:6px; padding:5px 9px; font-size:.68rem; font-weight:700; color: var(--bn-ink-soft);
}
.bn-footer__bottom{
  border-top:1px solid var(--bn-line); padding: 18px 0; text-align:center; font-size:.82rem; color: var(--bn-ink-soft);
}
@media (max-width:900px){ .bn-footer__grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width:560px){ .bn-footer__grid{ grid-template-columns: 1fr; } }

/* =============================================================
   9. Misc: breadcrumbs, forms, alerts, 404, blog
============================================================= */
.bn-page-header{ background: var(--bn-cream); padding: 40px 0; text-align:center; }
.woocommerce-message, .woocommerce-info, .woocommerce-error{
  border-top-color: var(--bn-gold) !important; border-radius: var(--bn-radius-sm);
}
.woocommerce-error{ border-top-color: var(--bn-error) !important; }
input[type=text], input[type=email], input[type=tel], input[type=password], textarea, select{
  border:1px solid var(--bn-line); border-radius: var(--bn-radius-sm); padding: 12px 14px; width:100%; background:#fff;
}
input:focus, textarea:focus, select:focus{ outline:none; border-color: var(--bn-gold); }
.bn-contact-grid{ display:grid; grid-template-columns: 1fr 1.2fr; gap: 40px; }
.bn-contact-info a{ display:flex; align-items:center; gap:10px; margin-bottom:12px; font-weight:600; }
@media (max-width:860px){ .bn-contact-grid{ grid-template-columns:1fr; } }

.bn-empty-state{ text-align:center; padding: 60px 20px; }

/* WhatsApp float button */
.bn-whatsapp-float{
  position:fixed; bottom:22px; right:22px; z-index:600;
  width:58px; height:58px; border-radius:50%; background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center; box-shadow: 0 8px 24px rgba(0,0,0,.25);
  transition: transform .2s;
}
.bn-whatsapp-float:hover{ transform: scale(1.08); }
