/* Cooper Flores Blumenau — site público.
 * Paleta extraída do logo: verde escuro, rosa-magenta, vermelho-coração, bege creme. */

:root {
  --cf-verde: #1f6b3a;
  --cf-verde-dk: #134624;
  --cf-verde-lt: #2e8b50;
  --cf-magenta: #c2185b;
  --cf-magenta-dk: #880e4f;
  --cf-vermelho: #e63946;
  --cf-creme: #fbf6ee;
  --cf-creme-dk: #f0e7d8;
  --cf-bege: #f5ede2;
  --cf-fundo: #fbf9f5;
  --cf-fundo-dk: #0e1a13;
  --cf-texto: #1c2419;
  --cf-fraco: #6b6f6b;
  --cf-borda: #e1dccd;
}

* { box-sizing: border-box; }
.cf-body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  background: var(--cf-fundo);
  color: var(--cf-texto);
  margin: 0;
}

/* NAV */
.cf-nav {
  background: linear-gradient(135deg, var(--cf-verde-dk), var(--cf-verde));
  box-shadow: 0 2px 12px rgba(0,0,0,.12);
  padding: 10px 0;
}
.cf-nav .nav-link, .cf-nav .navbar-brand { color: #fff !important; }
.cf-nav .nav-link:hover { opacity: .85; }
.cf-brand { padding: 0; }
.cf-brand__logo {
  height: 52px;
  background: #fff;
  border-radius: 10px;
  padding: 4px 12px;
  box-shadow: 0 2px 10px rgba(0,0,0,.18);
}
@media (max-width: 600px) { .cf-brand__logo { height: 42px; } }

.btn-cf-primario {
  background: var(--cf-magenta);
  color: #fff !important;
  border: 0;
  font-weight: 600;
}
.btn-cf-primario:hover { background: var(--cf-magenta-dk); color: #fff !important; }

.cf-btn-cart { color: #fff !important; border-color: rgba(255,255,255,.5) !important; }
.cf-btn-cart:hover { background: rgba(255,255,255,.15); }

.cf-btn-instagram {
  background: linear-gradient(135deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
  color: #fff;
  border: 0;
  font-weight: 600;
}
.cf-btn-instagram:hover { color: #fff; opacity: .92; }

/* MAIN */
.cf-main { min-height: 60vh; }

/* HERO */
.cf-hero {
  position: relative;
  background:
    radial-gradient(ellipse at top right, rgba(194,24,91,.08), transparent 50%),
    radial-gradient(ellipse at bottom left, rgba(31,107,58,.08), transparent 60%),
    linear-gradient(160deg, var(--cf-creme), var(--cf-bege));
  padding: 90px 0 110px;
  overflow: hidden;
}
.cf-hero__petalas {
  position: absolute; inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.cf-hero__petalas span {
  position: absolute;
  font-size: 28px;
  opacity: .5;
  animation: cf-flutua 15s linear infinite;
  top: -10%;
}
.cf-hero__petalas span:nth-child(1) { left: 8%; animation-duration: 18s; }
.cf-hero__petalas span:nth-child(2) { left: 22%; animation-duration: 22s; animation-delay: 3s; }
.cf-hero__petalas span:nth-child(3) { left: 38%; animation-duration: 25s; animation-delay: 7s; }
.cf-hero__petalas span:nth-child(4) { left: 52%; animation-duration: 17s; animation-delay: 1s; }
.cf-hero__petalas span:nth-child(5) { left: 65%; animation-duration: 21s; animation-delay: 5s; }
.cf-hero__petalas span:nth-child(6) { left: 75%; animation-duration: 19s; animation-delay: 9s; }
.cf-hero__petalas span:nth-child(7) { left: 85%; animation-duration: 23s; animation-delay: 2s; }
.cf-hero__petalas span:nth-child(8) { left: 92%; animation-duration: 16s; animation-delay: 6s; }
.cf-hero__petalas span:nth-child(9) { left: 15%; animation-duration: 20s; animation-delay: 11s; }

@keyframes cf-flutua {
  0%   { transform: translateY(-10%) rotate(0deg); opacity: 0; }
  10%  { opacity: .5; }
  90%  { opacity: .5; }
  100% { transform: translateY(110vh) rotate(540deg); opacity: 0; }
}

.cf-hero__tag {
  display: inline-block;
  background: var(--cf-verde);
  color: #fff;
  padding: 6px 18px;
  border-radius: 24px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .5px;
  margin-bottom: 22px;
  animation: cf-fade-up .8s ease both;
}
.cf-hero__titulo {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2rem, 5vw, 3.8rem);
  line-height: 1.1;
  font-weight: 700;
  margin-bottom: 22px;
  color: var(--cf-verde-dk);
  animation: cf-fade-up 1s ease both;
  animation-delay: .12s;
}
.cf-hero__titulo--script {
  font-family: 'Dancing Script', cursive;
  color: var(--cf-magenta);
  font-weight: 700;
}
.cf-hero__lead {
  font-size: 17px;
  color: var(--cf-fraco);
  max-width: 560px;
  margin-bottom: 28px;
  line-height: 1.65;
  animation: cf-fade-up 1s ease both;
  animation-delay: .24s;
}
.cf-hero .btn { animation: cf-fade-up 1s ease both; animation-delay: .36s; }
.cf-hero__beneficios {
  display: flex; gap: 26px; flex-wrap: wrap;
  margin-top: 38px;
  font-size: 14px;
  color: var(--cf-fraco);
  animation: cf-fade-up 1s ease both;
  animation-delay: .48s;
}
.cf-hero__beneficios > div { display: flex; align-items: center; gap: 6px; }

@keyframes cf-fade-up {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

.cf-hero__logo-wrap {
  position: relative;
  display: inline-block;
  padding: 30px;
  animation: cf-fade-in 1.4s ease both;
  animation-delay: .3s;
}
.cf-hero__logo-img {
  max-width: 100%; height: auto;
  filter: drop-shadow(0 14px 28px rgba(31,107,58,.18));
  animation: cf-flutua-suave 4s ease-in-out infinite alternate;
}
@keyframes cf-fade-in { from {opacity:0;} to {opacity:1;} }
@keyframes cf-flutua-suave {
  from { transform: translateY(-6px) rotate(-1deg); }
  to   { transform: translateY(6px) rotate(1deg); }
}

/* SECTIONS */
.cf-secao__titulo {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  color: var(--cf-verde-dk);
  font-size: 32px;
  margin-bottom: 0;
}

/* CATEGORIAS */
.cf-cat-card {
  display: flex; flex-direction: column; align-items: center;
  background: #fff;
  border: 1px solid var(--cf-borda);
  border-radius: 16px;
  padding: 22px 12px;
  text-decoration: none;
  color: var(--cf-texto);
  transition: transform .2s, box-shadow .2s, border-color .2s;
}
.cf-cat-card:hover {
  transform: translateY(-4px);
  border-color: var(--cf-magenta);
  box-shadow: 0 10px 30px rgba(194,24,91,.15);
  color: var(--cf-magenta-dk);
}
.cf-cat-card__emoji { font-size: 40px; }
.cf-cat-card__nome { margin-top: 8px; font-weight: 600; font-size: 14px; }

/* PRODUTO CARD */
.cf-card-prod {
  background: #fff;
  border: 1px solid var(--cf-borda);
  border-radius: 14px;
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: transform .2s, box-shadow .2s;
}
.cf-card-prod:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(0,0,0,.08);
}
.cf-card-prod__img-wrap {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  display: block;
  background: var(--cf-bege);
}
.cf-card-prod__img-wrap img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .4s;
}
.cf-card-prod:hover .cf-card-prod__img-wrap img { transform: scale(1.05); }
.cf-card-prod__placeholder {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 64px; opacity: .4;
}
.cf-card-prod__badge {
  position: absolute; top: 10px; left: 10px;
  background: var(--cf-verde);
  color: #fff;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
}
.cf-card-prod__badge--alerta { background: #f0b14a; }
.cf-card-prod__badge--off { background: #999; }

.cf-card-prod__body { padding: 14px; flex: 1; display: flex; flex-direction: column; gap: 4px; }
.cf-card-prod__nome { font-size: 14px; margin: 4px 0 6px; line-height: 1.3; min-height: 36px; }
.cf-card-prod__nome a { color: var(--cf-texto); text-decoration: none; }
.cf-card-prod__nome a:hover { color: var(--cf-magenta); }
.cf-card-prod__preco { color: var(--cf-magenta); font-size: 18px; font-weight: 700; }

/* CTA vidro (catálogo restrito) */
.cf-cta-vidro {
  padding: 70px 0;
  background:
    radial-gradient(ellipse at center, rgba(194,24,91,.06), transparent 60%),
    var(--cf-creme);
  border-top: 1px solid var(--cf-borda);
}
.cf-cta-vidro h2 { font-family: 'Playfair Display', serif; color: var(--cf-verde-dk); font-weight: 700; }

/* PRODUTO PG */
.cf-prod-img {
  aspect-ratio: 1/1;
  background: var(--cf-bege);
  border-radius: 16px;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.cf-prod-img img { width: 100%; height: 100%; object-fit: cover; }

/* FORMS */
.cf-card-form {
  background: #fff;
  border: 1px solid var(--cf-borda);
  border-radius: 16px;
  padding: 36px;
  box-shadow: 0 8px 28px rgba(0,0,0,.05);
}
.cf-card-form__head { margin-bottom: 24px; }
.cf-card-form__head h1 {
  font-family: 'Playfair Display', serif;
  color: var(--cf-verde-dk);
  font-weight: 700;
}
.cf-form__secao { margin-bottom: 12px; color: var(--cf-verde-dk); font-weight: 600; font-size: 15px; }
.cf-form .form-label { font-weight: 500; font-size: 13px; color: var(--cf-texto); }
.cf-form .form-control:focus, .cf-form .form-select:focus {
  border-color: var(--cf-magenta);
  box-shadow: 0 0 0 .2rem rgba(194,24,91,.15);
}

/* CADASTRO — hero animado */
.cf-cadastro {
  position: relative;
  padding: 50px 0 80px;
  background:
    radial-gradient(circle at 90% 10%, rgba(230,57,70,.07), transparent 40%),
    radial-gradient(circle at 5% 95%, rgba(31,107,58,.08), transparent 40%),
    var(--cf-creme);
  overflow: hidden;
}
.cf-cadastro__decor {
  position: absolute; pointer-events: none;
  font-size: 180px; opacity: .07;
  animation: cf-girar 60s linear infinite;
}
.cf-cadastro__decor--1 { top: 5%; right: -40px; }
.cf-cadastro__decor--2 { bottom: -40px; left: -30px; animation-direction: reverse; }
@keyframes cf-girar { from {transform:rotate(0)} to {transform:rotate(360deg)} }

.cf-cadastro__intro {
  text-align: center; margin-bottom: 36px;
  animation: cf-fade-up .8s ease both;
}
.cf-cadastro__intro h1 {
  font-family: 'Playfair Display', serif;
  color: var(--cf-verde-dk);
  font-size: clamp(2rem, 4vw, 2.8rem);
}
.cf-cadastro__intro h1 em {
  font-family: 'Dancing Script', cursive;
  color: var(--cf-magenta);
  font-style: normal;
}
.cf-cadastro__intro p { color: var(--cf-fraco); max-width: 600px; margin: 0 auto; font-size: 16px; }

.cf-cadastro__beneficios {
  display: flex; gap: 14px; flex-wrap: wrap; justify-content: center;
  margin: 18px 0 28px;
  animation: cf-fade-up .9s ease both;
  animation-delay: .15s;
}
.cf-cadastro__beneficio {
  background: #fff;
  border: 1px solid var(--cf-borda);
  border-radius: 24px;
  padding: 6px 14px;
  font-size: 13px;
  color: var(--cf-verde-dk);
  font-weight: 500;
  display: inline-flex; align-items: center; gap: 6px;
}
.cf-cadastro__beneficio i { color: var(--cf-magenta); }

.cf-cadastro .cf-card-form { animation: cf-fade-up 1s ease both; animation-delay: .3s; }

/* CARRINHO */
.cf-carrinho { border: 1px solid var(--cf-borda); border-radius: 14px; overflow: hidden; }
.cf-carrinho__thumb {
  width: 64px; height: 64px;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid var(--cf-borda);
  background: var(--cf-bege);
}
.cf-carrinho__placeholder {
  width: 64px; height: 64px;
  display: flex; align-items: center; justify-content: center;
  background: var(--cf-bege); border-radius: 10px;
  font-size: 28px;
}
.cf-resumo {
  border: 1px solid var(--cf-borda);
  border-radius: 14px;
  background: linear-gradient(180deg, #fff, var(--cf-bege));
}

/* CHECKOUT — Radios estilizados */
.cf-radio {
  display: flex; gap: 12px; align-items: flex-start;
  padding: 14px;
  border: 2px solid var(--cf-borda);
  border-radius: 12px;
  cursor: pointer;
  transition: border-color .15s, background .15s;
  margin: 0;
  background: #fff;
}
.cf-radio:has(input:checked) {
  border-color: var(--cf-magenta);
  background: rgba(194,24,91,.04);
}
.cf-radio input { margin-top: 4px; }

.cf-qr { max-width: 280px; border-radius: 12px; border: 1px solid var(--cf-borda); padding: 12px; background: #fff; }

/* MINHA CONTA */
.cf-conta-head {
  display: flex; gap: 18px; align-items: center;
  background: #fff;
  border: 1px solid var(--cf-borda);
  border-radius: 16px;
  padding: 22px 28px;
  box-shadow: 0 4px 14px rgba(0,0,0,.04);
}
.cf-conta-head__avatar {
  width: 72px; height: 72px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--cf-verde);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 32px; font-weight: 700;
  flex-shrink: 0;
  border: 3px solid #fff;
  box-shadow: 0 4px 14px rgba(31,107,58,.25);
}
.cf-conta-head__avatar img { width: 100%; height: 100%; object-fit: cover; }

.cf-conta-tabs { border-bottom: 2px solid var(--cf-borda); }
.cf-conta-tabs .nav-link {
  color: var(--cf-fraco); font-weight: 600;
  border: 0; padding: 12px 18px;
}
.cf-conta-tabs .nav-link.active {
  color: var(--cf-magenta);
  background: transparent;
  border-bottom: 3px solid var(--cf-magenta);
}
.cf-conta-tab-content { padding-top: 18px; }

.cf-painel-financeiro {
  background: linear-gradient(135deg, #fff8e1, #fff);
  border: 1px solid #f0d57c;
  border-left: 5px solid #f0b14a;
  border-radius: 14px;
  padding: 20px 26px;
  box-shadow: 0 4px 14px rgba(240,177,74,.15);
}
.cf-financeiro__num {
  font-family: 'Playfair Display', serif;
  font-size: 28px; font-weight: 700;
  color: var(--cf-magenta-dk);
  line-height: 1;
}
.cf-financeiro__num--alert { color: #b27410; }
.cf-financeiro__lbl { font-size: 13px; color: var(--cf-fraco); margin-top: 4px; }

.cf-foto-edit {
  text-align: center; margin: 12px 0;
}
.cf-foto-edit img, .cf-foto-edit__placeholder {
  width: 160px; height: 160px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid #fff;
  box-shadow: 0 4px 18px rgba(0,0,0,.12);
  margin-bottom: 12px;
}
.cf-foto-edit__placeholder {
  background: var(--cf-verde);
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 64px; font-weight: 700;
}

/* STATS */
.cf-stat {
  background: #fff;
  border: 1px solid var(--cf-borda);
  border-radius: 12px;
  padding: 20px;
  text-align: center;
}
.cf-stat__num { font-size: 28px; font-weight: 700; color: var(--cf-verde-dk); }
.cf-stat__lbl { font-size: 12px; color: var(--cf-fraco); }

/* CTA */
.cf-cta {
  background: linear-gradient(135deg, var(--cf-verde-dk), var(--cf-verde));
  color: #fff;
  padding: 50px 0;
  border-top: 1px solid var(--cf-borda);
}
.cf-cta h2 {
  font-family: 'Playfair Display', serif;
  color: #fff;
  font-weight: 700;
}
.cf-cta .text-muted { color: rgba(255,255,255,.78) !important; }

/* FOOTER */
.cf-footer {
  background: var(--cf-fundo-dk);
  color: #cfc5bc;
  padding: 50px 0 30px;
  margin-top: 60px;
}
.cf-footer__titulo {
  font-family: 'Playfair Display', serif;
  color: #fff;
  margin-bottom: 10px;
}
.cf-footer__sub { color: #fff; font-size: 14px; margin-bottom: 10px; text-transform: uppercase; letter-spacing: .5px; }
.cf-footer__texto { font-size: 14px; line-height: 1.6; color: #cfc5bc; }
.cf-footer__sep { border-color: rgba(255,255,255,.1); margin: 30px 0 16px; }

/* WhatsApp flutuante */
.cf-wa-float {
  position: fixed; right: 22px; bottom: 22px;
  width: 56px; height: 56px;
  background: #25d366;
  color: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 28px;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(37,211,102,.5);
  z-index: 100;
  animation: cf-pulse 2.4s ease-in-out infinite;
}
.cf-wa-float:hover { transform: scale(1.08); color: #fff; }
@keyframes cf-pulse {
  0%,100% { box-shadow: 0 8px 20px rgba(37,211,102,.5), 0 0 0 0 rgba(37,211,102,.5); }
  50%     { box-shadow: 0 8px 20px rgba(37,211,102,.5), 0 0 0 18px rgba(37,211,102,0); }
}

/* Toast adicionado ao carrinho */
.cf-toast {
  position: fixed;
  bottom: 90px; right: 22px;
  background: var(--cf-verde);
  color: #fff;
  padding: 12px 18px;
  border-radius: 8px;
  z-index: 200;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .25s, transform .25s;
  box-shadow: 0 8px 22px rgba(0,0,0,.2);
}
.cf-toast.show { opacity: 1; transform: translateY(0); }
