.brenn-feature{
  background:var(--surface-card);
  border:1px solid var(--border-default);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
  padding:var(--space-6);
  display:flex;flex-direction:column;gap:var(--space-3);
  transition:transform var(--dur-base) var(--ease-out),
             box-shadow var(--dur-base) var(--ease-out),
             border-color var(--dur-base) var(--ease-out);
}
.brenn-feature--link{cursor:pointer}
.brenn-feature:where(.brenn-feature--link):hover{
  transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--brenn-blue-100);
}
.brenn-feature__icon{
  width:56px;height:56px;flex:none;border-radius:var(--radius-md);
  display:flex;align-items:center;justify-content:center;
  background:var(--surface-accent);color:var(--color-accent);
}
.brenn-feature__icon svg{width:28px;height:28px;stroke-width:1.75}
.brenn-feature__title{
  font-family:var(--font-heading);font-weight:700;font-size:var(--text-lg);
  line-height:var(--lh-snug);color:var(--text-heading);margin:0;
}
.brenn-feature__title--caps{text-transform:uppercase;font-size:var(--text-base);letter-spacing:.02em}
.brenn-feature__desc{
  font-family:var(--font-body);font-size:var(--text-sm);
  line-height:var(--lh-relaxed);color:var(--text-body);margin:0;
}
.brenn-feature__note{font-size:var(--text-xs);color:var(--text-muted);margin:var(--space-1) 0 0}

.brenn-product{
  background:var(--surface-card);
  border:1px solid var(--border-default);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
  overflow:hidden;display:flex;flex-direction:column;
  text-decoration:none;
  transition:transform var(--dur-base) var(--ease-out),
             box-shadow var(--dur-base) var(--ease-out),
             border-color var(--dur-base) var(--ease-out);
}
.brenn-product--link:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--brenn-blue-100)}
.brenn-product__media{
  position:relative;aspect-ratio:4/3;background:var(--gray-100);overflow:hidden;
}
.brenn-product__media img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform var(--dur-slow) var(--ease-out)}
.brenn-product--link:hover .brenn-product__media img{transform:scale(1.04)}
.brenn-product__ph{position:absolute;inset:0;background:var(--brenn-blue-50)}
.brenn-product__ph::before{content:"";position:absolute;inset:0;opacity:.18;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='48' viewBox='0 0 84 48'%3E%3Cg fill='none' stroke='%231dc3fc' stroke-width='2'%3E%3Cpath d='M0 4H84M0 44H84'/%3E%3Cpath d='M0 4L21 44L42 4L63 44L84 4'/%3E%3Cpath d='M0 44L21 4L42 44L63 4L84 44'/%3E%3C/g%3E%3C/svg%3E")}
.brenn-product__badge{position:absolute;top:var(--space-3);left:var(--space-3)}
.brenn-product__body{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);flex:1}
.brenn-product__title{
  font-family:var(--font-heading);font-weight:700;font-size:var(--text-base);
  text-transform:uppercase;letter-spacing:.02em;color:var(--text-heading);margin:0;
}
.brenn-product__desc{font-family:var(--font-body);font-size:var(--text-sm);
  line-height:var(--lh-relaxed);color:var(--text-body);margin:0;flex:1}
.brenn-product__cta{display:inline-flex;align-items:center;gap:.4em;
  font-family:var(--font-heading);font-weight:700;font-size:var(--text-xs);
  letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--color-accent-press);margin-top:var(--space-1)}
.brenn-product__cta svg{width:1em;height:1em;transition:transform var(--dur-fast) var(--ease-standard)}
.brenn-product--link:hover .brenn-product__cta svg{transform:translateX(3px)}

.brenn-badge{
  display:inline-flex;align-items:center;gap:.45em;
  font-family:var(--font-heading);font-weight:700;
  font-size:var(--text-2xs);letter-spacing:var(--ls-wide);text-transform:uppercase;
  padding:.4em .85em;border-radius:var(--radius-pill);line-height:1;
  border:1px solid transparent;white-space:nowrap;
}
.brenn-badge .brenn-badge__dot{width:.5em;height:.5em;border-radius:50%;background:currentColor}
.brenn-badge--accent{background:var(--brenn-blue-100);color:var(--brenn-blue-700)}
.brenn-badge--neutral{background:var(--gray-100);color:var(--ink-600)}
.brenn-badge--alert{background:var(--orange-100);color:var(--orange-600)}
.brenn-badge--success{background:#d8f5e3;color:#107a3c}
.brenn-badge--solid{background:var(--color-accent);color:var(--text-on-accent)}
.brenn-badge--featured{
  background:var(--ink-900);color:var(--white);
  font-size:var(--text-xs);padding:.5em 1em;box-shadow:var(--shadow-sm);
}
.brenn-badge--featured .brenn-badge__dot{background:var(--color-accent);width:.6em;height:.6em}
.brenn-badge--outline{background:transparent;border-color:var(--border-strong);color:var(--ink-600)}

.brenn-btn{
  --_bg: var(--color-accent);
  --_fg: var(--text-on-accent);
  --_bd: transparent;
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  font-family:var(--font-heading);font-weight:700;letter-spacing:var(--ls-wide);
  text-transform:uppercase;text-decoration:none;white-space:nowrap;cursor:pointer;
  border:var(--border-width-strong) solid var(--_bd);
  background:var(--_bg);color:var(--_fg);
  border-radius:var(--radius-pill);
  transition:transform var(--dur-fast) var(--ease-standard),
             background var(--dur-fast) var(--ease-standard),
             box-shadow var(--dur-fast) var(--ease-standard),
             border-color var(--dur-fast) var(--ease-standard);
}
.brenn-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.brenn-btn:active{transform:translateY(1px) scale(.99)}
.brenn-btn[disabled],.brenn-btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;pointer-events:none}
.brenn-btn .brenn-btn__ico{display:inline-flex;width:1.15em;height:1.15em}
.brenn-btn .brenn-btn__ico svg{width:100%;height:100%}

/* sizes */
.brenn-btn--sm{font-size:var(--text-xs);padding:.5em 1.1em}
.brenn-btn--md{font-size:var(--text-sm);padding:.85em 1.6em}
.brenn-btn--lg{font-size:var(--text-base);padding:1em 2em}
.brenn-btn--block{display:flex;width:100%}

/* primary */
.brenn-btn--primary{box-shadow:var(--shadow-accent)}
.brenn-btn--primary:hover{--_bg:var(--color-accent-hover)}
/* secondary (outline) */
.brenn-btn--secondary{--_bg:transparent;--_fg:var(--color-accent-press);--_bd:var(--color-accent)}
.brenn-btn--secondary:hover{--_bg:var(--surface-accent)}
/* ghost */
.brenn-btn--ghost{--_bg:transparent;--_fg:var(--text-heading);--_bd:transparent;box-shadow:none}
.brenn-btn--ghost:hover{--_bg:var(--surface-subtle)}
/* dark */
.brenn-btn--dark{--_bg:var(--ink-900);--_fg:var(--white)}
.brenn-btn--dark:hover{--_bg:var(--ink-800)}
/* alert / orange */
.brenn-btn--alert{--_bg:var(--orange-500)}
.brenn-btn--alert:hover{--_bg:var(--orange-600)}

.brenn-btn__spin{width:1.05em;height:1.05em;border-radius:50%;
  border:2px solid currentColor;border-top-color:transparent;
  animation:brenn-spin .7s linear infinite}
@keyframes brenn-spin{to{transform:rotate(360deg)}}

.brenn-card{
  background:var(--surface-card);
  border:1px solid var(--border-default);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
  transition:transform var(--dur-base) var(--ease-out),
             box-shadow var(--dur-base) var(--ease-out),
             border-color var(--dur-base) var(--ease-out);
}
.brenn-card--pad-sm{padding:var(--space-4)}
.brenn-card--pad-md{padding:var(--space-5)}
.brenn-card--pad-lg{padding:var(--space-6)}
.brenn-card--flat{box-shadow:none}
.brenn-card--interactive{cursor:pointer}
.brenn-card--interactive:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-md);
  border-color:var(--brenn-blue-100);
}
.brenn-card--accent{border-top:3px solid var(--color-accent)}

.brenn-field{display:flex;flex-direction:column;gap:6px}
.brenn-field__label{
  font-family:var(--font-body);font-weight:600;font-size:var(--text-sm);
  color:var(--text-heading);
}
.brenn-field__label .req{color:var(--orange-500);margin-left:2px}
.brenn-field__control{position:relative;display:flex;align-items:center}
.brenn-field__icon{position:absolute;left:14px;display:flex;width:18px;height:18px;color:var(--text-muted);pointer-events:none}
.brenn-field__icon svg{width:100%;height:100%}
.brenn-input{
  width:100%;box-sizing:border-box;
  font-family:var(--font-body);font-size:var(--text-base);color:var(--ink-800);
  background:var(--surface-card);
  border:1px solid var(--border-strong);
  border-radius:var(--radius-md);
  padding:13px 14px;
  transition:border-color var(--dur-fast) var(--ease-standard),
             box-shadow var(--dur-fast) var(--ease-standard);
}
.brenn-field--has-icon .brenn-input{padding-left:42px}
.brenn-input::placeholder{color:var(--text-muted)}
.brenn-input:hover{border-color:var(--ink-400)}
.brenn-input:focus{outline:none;border-color:var(--border-focus);box-shadow:var(--shadow-focus)}
.brenn-field--error .brenn-input{border-color:var(--danger)}
.brenn-field--error .brenn-input:focus{box-shadow:0 0 0 3px rgba(226,56,56,.25)}
.brenn-field__msg{font-family:var(--font-body);font-size:var(--text-xs);color:var(--text-muted)}
.brenn-field--error .brenn-field__msg{color:var(--danger);font-weight:600}

.brenn-quote{display:flex;flex-direction:column;gap:var(--space-4)}
.brenn-quote__head{display:flex;flex-direction:column;gap:6px}
.brenn-quote__title{font-family:var(--font-heading);font-weight:700;font-size:var(--text-xl);
  line-height:var(--lh-snug);color:var(--text-heading);margin:0}
.brenn-quote__sub{font-family:var(--font-body);font-size:var(--text-sm);
  line-height:var(--lh-relaxed);color:var(--text-body);margin:0}
.brenn-quote__foot{font-family:var(--font-body);font-size:var(--text-xs);color:var(--text-muted);margin:0;text-align:center}
.brenn-quote__success{
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3);
  padding:var(--space-6) var(--space-4);
}
.brenn-quote__check{width:56px;height:56px;border-radius:50%;
  background:#d8f5e3;color:#107a3c;display:flex;align-items:center;justify-content:center}
.brenn-quote__check svg{width:28px;height:28px}
.brenn-quote__success h4{font-family:var(--font-heading);font-weight:700;font-size:var(--text-lg);color:var(--text-heading);margin:0}
.brenn-quote__success p{font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-body);margin:0;max-width:34ch}

.brenn-wa{position:fixed;z-index:9999;display:flex;flex-direction:column;align-items:flex-end;gap:14px}
.brenn-wa--br{right:24px;bottom:24px}
.brenn-wa--bl{left:24px;bottom:24px;align-items:flex-start}
.brenn-wa__fab{
  width:62px;height:62px;border-radius:50%;border:none;cursor:pointer;
  background:var(--wa-green);color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px rgba(37,211,102,.42);
  transition:transform var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard);
}
.brenn-wa__fab:hover{background:var(--wa-green-600);transform:scale(1.05)}
.brenn-wa__fab:active{transform:scale(.97)}
.brenn-wa__fab:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(37,211,102,.4)}
.brenn-wa__fab svg{width:32px;height:32px}
.brenn-wa__pulse{position:absolute;inset:0;border-radius:50%;background:var(--wa-green);opacity:.5;
  animation:brenn-wa-pulse 2.4s var(--ease-out) infinite}
@keyframes brenn-wa-pulse{0%{transform:scale(1);opacity:.45}70%{transform:scale(1.7);opacity:0}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.brenn-wa__pulse{display:none}}

.brenn-wa__panel{
  width:330px;max-width:calc(100vw - 48px);background:var(--surface-card);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;
  transform-origin:bottom right;
  animation:brenn-wa-in var(--dur-base) var(--ease-out);
}
@keyframes brenn-wa-in{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
.brenn-wa__top{background:var(--wa-green);color:#fff;padding:16px 18px;display:flex;align-items:center;gap:12px}
.brenn-wa__avatar{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;flex:none}
.brenn-wa__avatar svg{width:24px;height:24px}
.brenn-wa__top h4{font-family:var(--font-heading);font-weight:700;font-size:var(--text-base);margin:0;line-height:1.2}
.brenn-wa__top span{font-family:var(--font-body);font-size:var(--text-xs);opacity:.92;display:flex;align-items:center;gap:5px}
.brenn-wa__top span::before{content:"";width:7px;height:7px;border-radius:50%;background:#a7f3c4}
.brenn-wa__close{margin-left:auto;background:transparent;border:none;color:#fff;cursor:pointer;opacity:.85;padding:4px;display:flex}
.brenn-wa__close:hover{opacity:1}
.brenn-wa__close svg{width:20px;height:20px}
.brenn-wa__body{padding:18px;display:flex;flex-direction:column;gap:14px}
.brenn-wa__bubble{background:var(--gray-100);border-radius:4px 14px 14px 14px;padding:12px 14px;
  font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--lh-relaxed);color:var(--ink-800)}
.brenn-wa__send{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;width:100%;box-sizing:border-box;
  font-family:var(--font-heading);font-weight:700;font-size:var(--text-sm);letter-spacing:var(--ls-wide);text-transform:uppercase;
  background:var(--wa-green);color:#fff;border:none;border-radius:var(--radius-pill);padding:14px 18px;cursor:pointer;
  transition:background var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard)}
.brenn-wa__send:hover{background:var(--wa-green-600)}
.brenn-wa__send:active{transform:translateY(1px)}
.brenn-wa__send svg{width:18px;height:18px}