/*
 * Cantolli Widgets — Design System CSS
 * Convertido de HTML/style.css (aprovado)
 * Carregado pelo plugin cantolli-widgets em todas as páginas.
 */

/* ── IMPORTS ──────────────────────────────────────────── */
@import url('https://api.fontshare.com/v2/css?f[]=ranade@100,300,400,500,600,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap');

/* ── DESIGN TOKENS ────────────────────────────────────── */
:root {
  --c-pure-black:            #000000;
  --c-studio-white:          #FFFFFF;
  --c-primary:               #725a39;
  --c-primary-dark:          #584324;
  --c-primary-fixed:         #feddb3;
  --c-sand-beige:            #D2B48C;
  --c-soft-mint:             #B5EAD7;
  --c-surface:               #f9f9f9;
  --c-surface-container:     #eeeeee;
  --c-surface-container-low: #f3f3f4;
  --c-on-surface:            #1a1c1c;
  --c-on-surface-variant:    #4d453c;
  --c-outline:               #7f766a;
  --c-outline-variant:       #d1c5b8;
  --sp-section-gap:          120px;
  --sp-margin-desktop:       80px;
  --container-max:           1440px;
  --fs-display-lg:           clamp(40px, 5vw, 64px);
  --fs-headline-lg:          clamp(28px, 3.5vw, 40px);
  --fs-headline-md:          clamp(20px, 2.5vw, 24px);
  --fs-body-lg:              18px;
  --fs-body-md:              16px;
  --fs-label-caps:           12px;
  --transition-base:         300ms ease;
  --transition-slow:         700ms ease;
}

/* ── BASE ─────────────────────────────────────────────── */
body {
  font-family: 'Ranade', sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: var(--c-surface);
  color: var(--c-on-surface);
}

/* ── TIPOGRAFIA ───────────────────────────────────────── */
.font-display-lg {
  font-family: 'Ranade', sans-serif;
  font-size: var(--fs-display-lg);
  line-height: 1.1;
  letter-spacing: -0.02em;
  font-weight: 400;
  color: #fff;
  margin: 0;
}
.font-headline-lg {
  font-family: 'Ranade', sans-serif;
  font-size: var(--fs-headline-lg);
  line-height: 1.2;
  font-weight: 400;
}
.font-body-lg  { font-size: var(--fs-body-lg);  line-height: 1.6; font-weight: 400; }
.font-body-md  { font-size: var(--fs-body-md);  line-height: 1.6; font-weight: 400; }
.font-label-caps {
  font-size: var(--fs-label-caps);
  letter-spacing: 0.15em;
  font-weight: 600;
  text-transform: uppercase;
}
.font-accent-italic {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-size: 24px;
  color: #fff;
  display: block;
}

/* Color utilities */
.text-outline          { color: var(--c-outline) !important; }
.text-on-surface-variant { color: var(--c-on-surface-variant) !important; }

/* ── LAYOUT ───────────────────────────────────────────── */
.container-brand {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: 24px;
}
@media (min-width: 768px) {
  .container-brand { padding-inline: var(--sp-margin-desktop); }
}

.cantolli-section {
  padding-top: var(--sp-section-gap);
  padding-bottom: var(--sp-section-gap);
}
@media (max-width: 767px) {
  .cantolli-section { padding-top: 60px; padding-bottom: 60px; }
}

/* ── BOTÕES ───────────────────────────────────────────── */
.btn-brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: 'Ranade', sans-serif;
  font-size: var(--fs-label-caps);
  letter-spacing: 0.15em;
  font-weight: 600;
  text-transform: uppercase;
  text-decoration: none;
  padding: 16px 40px;
  border: 1px solid transparent;
  cursor: pointer;
  line-height: 1.2;
  transition: background-color var(--transition-base),
              color var(--transition-base),
              border-color var(--transition-base);
}
.btn-brand-primary {
  background-color: var(--c-pure-black);
  color: var(--c-studio-white);
  border-color: var(--c-pure-black);
}
.btn-brand-primary:hover {
  background-color: var(--c-primary);
  border-color: var(--c-primary);
  color: var(--c-studio-white);
}
.btn-brand-outline {
  background-color: transparent;
  color: var(--c-pure-black);
  border-color: var(--c-pure-black);
}
.btn-brand-outline:hover {
  background-color: var(--c-pure-black);
  color: var(--c-studio-white);
}

/* ── HERO SLIDER ───────────────────────────────────────── */
.cantolli-hero-slider {
  position: relative;
  width: 100%;
  overflow: hidden;
  background-color: var(--c-surface-container);
  /* height set inline by widget */
}
@media (max-width: 767px) {
  .cantolli-hero-slider { height: 80svh !important; min-height: 500px; }
}

/* ── Track ── */
.chs-track {
  display: flex;
  height: 100%;
  /* JS drives transform */
  transition: transform var(--chs-speed, 700ms) cubic-bezier(.4,0,.2,1);
  will-change: transform;
}

/* ── Individual slide ── */
.chs-slide {
  position: relative;
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  display: flex;
  overflow: hidden;
}
/* Alinhamento Vertical */
.chs-slide--v-top { align-items: flex-start; }
.chs-slide--v-middle { align-items: center; }
.chs-slide--v-bottom { align-items: flex-end; }

.chs-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  /* Ken-Burns on active slide */
  transform: scale(1.04);
  transition: transform 8s ease;
}
.chs-slide--active .chs-bg { transform: scale(1); }


/* ── Video Wrapper ── */
.chs-video-wrapper {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.chs-video-wrapper iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100vw;
  height: 56.25vw; /* 16:9 aspecto (100 / 16 * 9) */
  min-height: 100vh;
  min-width: 177.77vh; /* 16:9 aspecto reverso (100 / 9 * 16) */
  transform: translate(-50%, -50%);
  border: none;
  opacity: 0;
  transition: opacity 1s ease;
}
/* No mobile, caso use vídeo 9:16, as proporções ideais são diferentes,
   mas a regra min-height/min-width garante que cubra tudo (cover). */
@media (max-width: 767px) {
  .chs-video-wrapper iframe {
    width: 100vw;
    height: 177.77vw;
    min-height: 100vh;
    min-width: 56.25vh;
  }
}
.chs-video-wrapper iframe.loaded {
  opacity: 1;
}

.chs-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: opacity var(--transition-base, 300ms ease), filter var(--transition-base, 300ms ease), background-color var(--transition-base, 300ms ease);
}

/* ── Content ── */
.chs-content {
  position: relative;
  z-index: 10;
  width: 100%;
  padding: 24px var(--sp-margin-desktop, 80px);
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media (max-width: 767px) {
  .chs-content { padding: 24px; }
}
.chs-content--left   { align-items: flex-start; }
.chs-content--center { align-items: center; }
.chs-content--right  { align-items: flex-end; }

.chs-subtitle {
  font-family: 'Ranade', sans-serif;
  font-size: var(--fs-body-lg);
  color: rgba(255,255,255,.85);
  max-width: 480px;
  margin: 0;
  line-height: 1.6;
}

/* Content entrance animation on active slide */
.chs-slide--active .chs-content > * {
  animation: chsContentIn 0.7s cubic-bezier(.22,1,.36,1) both;
}
.chs-slide--active .chs-content > *:nth-child(1) { animation-delay: .05s; }
.chs-slide--active .chs-content > *:nth-child(2) { animation-delay: .15s; }
.chs-slide--active .chs-content > *:nth-child(3) { animation-delay: .25s; }
.chs-slide--active .chs-content > *:nth-child(4) { animation-delay: .35s; }
@keyframes chsContentIn {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Arrows ── */
.chs-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 20;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.3);
  color: #fff;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background var(--transition-base), border-color var(--transition-base);
  backdrop-filter: blur(4px);
}
.chs-arrow:hover {
  background: rgba(255,255,255,.22);
  border-color: rgba(255,255,255,.6);
}
.chs-arrow--prev { left: 24px; }
.chs-arrow--next { right: 24px; }
@media (max-width: 767px) {
  .chs-arrow { width: 40px; height: 40px; }
  .chs-arrow--prev { left: 12px; }
  .chs-arrow--next { right: 12px; }
}

/* ── Dots ── */
.chs-dots {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 20;
  display: flex;
  gap: 8px;
  align-items: center;
}
.chs-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255,255,255,.45);
  border: none;
  cursor: pointer;
  transition: width var(--transition-base), background var(--transition-base), border-radius var(--transition-base);
  padding: 0;
}
.chs-dot--active {
  width: 20px;
  border-radius: 3px;
  background: #fff;
}



/* ── CATEGORY CARDS ───────────────────────────────────── */
.categories-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
@media (min-width: 768px) {
  .categories-grid { grid-template-columns: 8fr 4fr; }
}
.category-card {
  position: relative;
  overflow: hidden;
  background-color: var(--c-surface-container);
  display: block;
  text-decoration: none;
}
.category-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--transition-slow);
}
.category-card:hover img { transform: scale(1.05); }
.category-card-caption {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.4) 0%, transparent 60%);
  padding: 32px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.category-card-caption h3 {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-size: 24px;
  color: #fff;
  margin: 0 0 8px;
}
.category-card-caption .font-label-caps {
  color: #fff;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ── PRODUCT CARDS ────────────────────────────────────── */
.product-card { text-decoration: none; color: inherit; display: block; }
.product-card-image {
  overflow: hidden;
  background-color: var(--c-surface-container);
  aspect-ratio: 4/5;
  position: relative;
}
.product-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}
.product-card:hover .product-card-image img { transform: scale(1.05); }
.product-card-body { padding-top: 16px; text-align: center; }
.product-card-title {
  font-family: 'Ranade', sans-serif;
  font-size: var(--fs-body-md);
  font-weight: 400;
  color: var(--c-pure-black);
  margin-bottom: 4px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.product-card-price { font-size: var(--fs-body-md); color: var(--c-outline); }

/* ── OVERRIDE PROPAGUE PRICE & WOOCOMMERCE ────────────── */
.product-card-price {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
}

.product-card-price .price {
  display: flex;
  flex-direction: column;
  align-items: center !important;
  text-align: center !important;
  gap: 2px;
  line-height: 1.2;
  width: 100%;
}

.product-card-price del,
.product-card-price del .amount {
  font-size: 15px !important;
  color: var(--c-outline) !important;
  text-decoration: line-through !important;
  font-weight: 400 !important;
}

.product-card-price ins {
  text-decoration: none !important;
  background: transparent !important;
}

/* Preço Principal (Preto, maior) */
.product-card-price > .amount,
.product-card-price ins .amount,
.product-card-price .propague-sale-price > ins,
.product-card-price .propague-sale-price > ins .amount,
.product-card-price .propague-price-wrapper > .amount {
  /* Controlado pelo Propague Price */
}

/* Parcelamento e Subtextos (Cinza, menor) */
.product-card-price .propague-installments,
.product-card-price .propague-pix-line,
.product-card-price small {
  /* font-family: 'Ranade', sans-serif !important; Removido para permitir o Propague Price */
  /* font-size: 16px; Removido para permitir o Propague Price */
  color: var(--c-outline); /* A cor base aqui ainda faz sentido sem !important */
  font-weight: 400;
}

/* Remover formatação extra de highlights do plugin para mesclar com o texto cinza */
.product-card-price .propague-installments .propague-price-highlight,
.product-card-price .propague-pix-line .propague-price-highlight {
  /* color: inherit !important; */
  /* font-weight: inherit !important; */
}

/* Esconder o "por" caso o plugin injete */
.product-card-price .propague-price-separator {
  display: none !important;
}

/* Section header com "Ver Todos" */
.section-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--c-outline-variant);
}

/* ── TRIPLE BANNER ────────────────────────────────────── */
.triple-banner-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 768px) {
  .triple-banner-grid { grid-template-columns: repeat(3, 1fr); }
}
.triple-banner-card {
  position: relative;
  overflow: hidden;
  background-color: var(--c-surface-container);
  display: block;
  text-decoration: none;
  aspect-ratio: 4/5;
}
@media (max-width: 767px) {
  .triple-banner-card { aspect-ratio: 1/1; }
}
.triple-banner-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--transition-slow);
}
.triple-banner-card:hover img { 
  transform: scale(1.05); 
}
.triple-banner-caption {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.6) 0%, transparent 60%);
  padding: 32px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.triple-banner-caption h3 {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-size: clamp(28px, 3vw, 36px);
  color: var(--c-studio-white);
  margin: 0 0 12px;
}
.triple-banner-link {
  font-family: 'Ranade', sans-serif;
  font-size: var(--fs-label-caps);
  letter-spacing: 0.15em;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--c-studio-white);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.triple-banner-link .material-symbols-outlined {
  font-size: 16px;
  transition: transform var(--transition-base);
}
.triple-banner-card:hover .triple-banner-link .material-symbols-outlined {
  transform: translateX(4px);
}


/* ── BRAND BANNER ─────────────────────────────────────── */
.brand-banner {
  background-color: var(--c-soft-mint);
  padding: 48px 0;
}
@media (min-width: 768px) { .brand-banner { padding: 0; } }
.brand-banner-inner {
  padding: 48px var(--sp-margin-desktop);
  max-width: var(--container-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 48px;
  align-items: center;
}
@media (min-width: 768px) {
  .brand-banner-inner { grid-template-columns: 1fr 1fr; }
}
.brand-banner-logo { text-align: center; }
.brand-banner-text { text-align: center; }
@media (min-width: 768px) { .brand-banner-text { text-align: left; } }

/* ── NAVBAR ───────────────────────────────────────────── */
.navbar-cantolli {
  background-color: var(--c-studio-white);
  border-bottom: 1px solid var(--c-outline-variant);
  height: 80px;
  z-index: 1050;
}
.navbar-cantolli .navbar-brand {
  font-family: 'Ranade', sans-serif;
  font-size: 20px;
  letter-spacing: 0.2em;
  font-weight: 400;
  color: var(--c-pure-black);
  text-decoration: none;
  text-transform: uppercase;
}
.nav-link-cantolli {
  font-size: var(--fs-label-caps);
  letter-spacing: 0.15em;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--c-on-surface-variant);
  text-decoration: none;
  transition: color var(--transition-base);
  padding: 4px 0;
}
.nav-link-cantolli:hover { color: var(--c-primary); }
.nav-link-cantolli.active {
  color: var(--c-primary);
  border-bottom: 1px solid var(--c-primary);
}
.navbar-icon-btn {
  background: none;
  border: none;
  padding: 4px;
  color: var(--c-pure-black);
  transition: opacity var(--transition-base);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  position: relative;
}
.navbar-icon-btn:hover { opacity: .6; }
.cart-badge {
  position: absolute;
  top: -4px; right: -6px;
  width: 16px; height: 16px;
  background-color: var(--c-pure-black);
  color: var(--c-studio-white);
  font-size: 9px;
  font-weight: 600;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24;
  font-size: 24px;
}

/* ── OFFCANVAS ────────────────────────────────────────── */
.offcanvas-cantolli {
  max-width: 320px;
  width: 100%;
  background-color: var(--c-studio-white);
}
.offcanvas-cantolli .offcanvas-header {
  border-bottom: 1px solid var(--c-outline-variant);
  padding: 20px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.offcanvas-cantolli .offcanvas-body { padding: 24px; }
.offcanvas-nav-link {
  display: block;
  font-size: 20px;
  font-weight: 400;
  color: var(--c-pure-black);
  text-decoration: none;
  padding: 12px 0;
  border-bottom: 1px solid var(--c-outline-variant);
  transition: color var(--transition-base);
}
.offcanvas-nav-link:hover { color: var(--c-primary); }
.offcanvas-nav-link.active { color: var(--c-primary); }

/* ── SEARCH MODAL ─────────────────────────────────────── */
.search-modal-backdrop {
  position: fixed; inset: 0;
  background-color: rgba(0,0,0,.72);
  backdrop-filter: blur(4px);
  z-index: 2000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 120px;
  padding-inline: 24px;
}
.search-modal-box {
  width: 100%; max-width: 680px;
  background-color: var(--c-studio-white);
  border-radius: 4px;
  box-shadow: 0 32px 80px rgba(0,0,0,.24);
  animation: searchModalIn 240ms cubic-bezier(.16,1,.3,1);
}
@keyframes searchModalIn {
  from { opacity:0; transform: translateY(-16px) scale(.98); }
  to   { opacity:1; transform: translateY(0) scale(1); }
}
.search-modal-header {
  display: flex; align-items: center; gap: 12px;
  padding: 20px 24px;
  border-bottom: 1px solid var(--c-outline-variant);
}
.search-modal-input {
  flex: 1; border: none; outline: none;
  font-family: 'Ranade', sans-serif;
  font-size: 18px; font-weight: 300;
  color: var(--c-on-surface);
  background: transparent;
  -webkit-appearance: none; appearance: none;
}
.search-modal-input::-webkit-search-cancel-button { display:none; }
.search-modal-close, .search-modal-clear {
  background: none; border: none; cursor: pointer; padding: 4px;
  color: var(--c-outline); display: inline-flex; align-items: center;
}
.search-modal-footer {
  padding: 14px 24px;
  display: flex; align-items: center; justify-content: space-between;
}
.search-modal-submit {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: 'Ranade', sans-serif;
  font-size: 11px; letter-spacing: .15em; font-weight: 600;
  text-transform: uppercase;
  color: var(--c-studio-white);
  background-color: var(--c-pure-black);
  border: none; padding: 8px 18px; cursor: pointer;
  transition: background-color var(--transition-base);
}
.search-modal-submit:hover { background-color: var(--c-primary); }
[x-cloak] { display: none !important; }

/* ── FOOTER ───────────────────────────────────────────── */
.footer-cantolli {
  background-color: var(--c-surface);
  border-top: 1px solid var(--c-outline-variant);
}
.footer-brand-name {
  font-family: 'Ranade', sans-serif;
  font-size: var(--fs-headline-md);
  letter-spacing: .2em;
  font-weight: 400;
  text-transform: uppercase;
  color: var(--c-pure-black);
}
.footer-link {
  font-size: var(--fs-label-caps);
  letter-spacing: .12em;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--c-on-surface-variant);
  text-decoration: none;
  transition: color var(--transition-base);
}
.footer-link:hover { color: var(--c-primary); }

/* ── ELEMENTOR OVERRIDES ──────────────────────────────── */

/* Remover padding padrão dos widgets nas seções Cantolli */
.elementor-widget-cantolli-hero .elementor-widget-container,
.elementor-widget-cantolli-category-grid .elementor-widget-container,
.elementor-widget-cantolli-brand-banner .elementor-widget-container,
.elementor-widget-cantolli-products .elementor-widget-container,
.elementor-widget-cantolli-triple-banner .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
}

/* Forçar largura total dos widgets Cantolli */
.elementor-widget-cantolli-hero,
.elementor-widget-cantolli-category-grid,
.elementor-widget-cantolli-brand-banner,
.elementor-widget-cantolli-products,
.elementor-widget-cantolli-triple-banner {
  width: 100% !important;
}
