.vivilab-form-wrap { width: 100%; }
.vivilab-form-alert { margin-bottom: 16px; padding: 13px 15px; border-radius: 12px; font-size: .9rem; }
.vivilab-form-alert--ok { background: #f2eadb; color: #6f4d19; }
.vivilab-form-alert--error { background: #fff0ed; color: #94372b; }
.vivilab-form__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.vivilab-form label { display: block; }
.vivilab-form label > span { display: block; margin-bottom: 6px; font-size: .77rem; font-weight: 800; color: #514b44; }
.vivilab-form input[type="text"], .vivilab-form input[type="email"], .vivilab-form input[type="tel"], .vivilab-form select, .vivilab-form textarea { width: 100%; border: 1px solid rgba(9,9,9,.15); border-radius: 12px; background: #fcfaf6; color: #090909; padding: 13px 14px; outline: 0; transition: border-color .2s ease, box-shadow .2s ease; }
.vivilab-form input:focus, .vivilab-form select:focus, .vivilab-form textarea:focus { border-color: #c58c36; box-shadow: 0 0 0 3px rgba(197,140,54,.14); }
.vivilab-form__wide { grid-column: 1/-1; }
.vivilab-consent { display: flex!important; align-items: flex-start; gap: 9px; margin: 16px 0; }
.vivilab-consent input { margin-top: 4px; }
.vivilab-consent span { margin: 0!important; font-weight: 500!important; line-height: 1.45; }
.vivilab-consent a { text-decoration: underline; }
.vivilab-form__submit { width: 100%; min-height: 52px; border: 0; border-radius: 999px; padding: 0 20px; background: linear-gradient(135deg,#9a671f,#f0d59a); color: #090909; font-weight: 850; cursor: pointer; transition: transform .2s ease, filter .2s ease; }
.vivilab-form__submit:hover { transform: translateY(-1px); filter: brightness(1.06); }
.vivilab-hp { position: absolute!important; left: -9999px!important; width: 1px!important; height: 1px!important; overflow: hidden!important; }
.vivilab-form--compact .vivilab-form__grid { grid-template-columns: 1fr; }
.vivilab-form--compact .vivilab-form__wide { grid-column: auto; }

.vivilab-wa-float { position: fixed; right: 22px; bottom: 22px; z-index: 999; min-height: 54px; display: inline-flex; align-items: center; gap: 9px; padding: 0 18px 0 15px; border: 1px solid rgba(240,213,154,.34); border-radius: 999px; background: #090909; color: #f0d59a!important; box-shadow: 0 18px 40px rgba(0,0,0,.28); font: 750 14px/1.1 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; text-decoration: none!important; transition: transform .2s ease, background .2s ease, color .2s ease; }
.vivilab-wa-float:hover { transform: translateY(-2px); background: linear-gradient(135deg,#9a671f,#f0d59a); color: #090909!important; }
.vivilab-wa-float svg { width: 24px; height: 24px; fill: currentColor; }

.vivilab-shortcode-projects { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.vivilab-sc-project { overflow: hidden; border-radius: 22px; background: #fff; box-shadow: 0 16px 45px rgba(9,9,9,.08); }
.vivilab-sc-project__image { position: relative; display: block; aspect-ratio: 1.4; background: #ece3d6; overflow: hidden; }
.vivilab-sc-project__image img { width: 100%; height: 100%; object-fit: cover; }
.vivilab-sc-project__image span { position: absolute; top: 14px; left: 14px; border-radius: 999px; background: rgba(255,255,255,.92); padding: 7px 10px; color: #090909; font-size: 12px; font-weight: 800; }
.vivilab-sc-project__body { padding: 22px; }
.vivilab-sc-project__body small { color: #9a671f; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.vivilab-sc-project__body h3 { margin: 8px 0 12px; }
.vivilab-sc-project__body strong { font-size: .9rem; }

@media (max-width: 800px) {
  .vivilab-form__grid, .vivilab-shortcode-projects { grid-template-columns: 1fr; }
  .vivilab-form__wide { grid-column: auto; }
  .vivilab-wa-float { right: 14px; bottom: 14px; }
  .vivilab-wa-float span { display: none; }
  .vivilab-wa-float { width: 54px; padding: 0; justify-content: center; }
}

.vivilab-privacy-layer { margin: -4px 0 18px; color: #6f685f; font-size: .72rem; line-height: 1.55; }
.vivilab-privacy-layer a { color: #9a671f; text-decoration: underline; }

.vivilab-legal { color: #514b44; }
.vivilab-legal__updated { margin-bottom: 38px; padding: 14px 16px; border-left: 4px solid #d3a44f; background: #faf6ee; border-radius: 0 10px 10px 0; font-size: .9rem; }
.vivilab-legal h2 { margin: 2.1em 0 .65em; color: #090909; font-size: clamp(1.45rem, 2.7vw, 2rem); letter-spacing: -.025em; }
.vivilab-legal p, .vivilab-legal li { line-height: 1.75; }
.vivilab-legal ul { padding-left: 1.2em; }
.vivilab-legal a { color: #9a671f; text-decoration: underline; text-underline-offset: 3px; }

#vivilab-n8n-chat {
  --chat--color-primary: #d3a44f;
  --chat--color-primary-shade-50: #b9822d;
  --chat--color-primary-shade-100: #9a671f;
  --chat--color-secondary: #090909;
  --chat--color-secondary-shade-50: #211a10;
  --chat--color-white: #ffffff;
  --chat--color-light: #fbf8f2;
  --chat--color-light-shade-50: #eee4d5;
  --chat--color-medium: #d8cec0;
  --chat--color-dark: #090909;
  --chat--window--width: 410px;
  --chat--window--height: 640px;
  --chat--border-radius: 14px;
  --chat--toggle--size: 60px;
  --chat--header--background: #090909;
  --chat--header--color: #f0d59a;
  --chat--message--bot--background: #f3eadb;
  --chat--message--bot--color: #1c1915;
  --chat--message--user--background: #d3a44f;
  --chat--message--user--color: #090909;
  position: relative;
  z-index: 1001;
}

body.vivilab-has-chatbot .vivilab-wa-float { bottom: 94px; }

@media (max-width: 560px) {
  #vivilab-n8n-chat {
    --chat--window--width: calc(100vw - 20px);
    --chat--window--height: min(680px, calc(100vh - 90px));
  }
  body.vivilab-has-chatbot .vivilab-wa-float { bottom: 86px; }
}
