/* ZAKS Calculator PRO (Hello Elementor friendly) */
.zaks-calc{
  --zaks-primary:#01A59B;
  --zaks-secondary:#F4F4F4;
  --zaks-text:#646464;
  --zaks-accent:#000000;

  --zaks-border: rgba(0,0,0,.10);
  --zaks-shadow: 0 12px 34px rgba(0,0,0,.10);
  --zaks-radius: 18px;

  font: inherit;
  color: var(--zaks-text);
}
.zaks-calc *{ box-sizing:border-box; }

.zaks-calc__header{
  display:flex;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  padding:18px 18px 10px;
  border:1px solid var(--zaks-border);
  border-radius: var(--zaks-radius);
  background:#fff;
  box-shadow: var(--zaks-shadow);
}
.zaks-calc__title{ margin:0; font-size:1.35rem; line-height:1.2; color:var(--zaks-accent); }
.zaks-calc__subtitle{ margin:6px 0 0; color:var(--zaks-text); opacity:.9; }
.zaks-calc__actions{ display:flex; gap:10px; flex-wrap:wrap; }

.zaks-btn{
  appearance:none;
  border:1px solid var(--zaks-border);
  background: var(--zaks-btn-bg, var(--zaks-primary));
  color: var(--zaks-btn-text, #fff);
  padding:10px 14px;
  border-radius:999px;
  cursor:pointer;
  font:inherit;
  font-weight:800;
  letter-spacing:.15px;
  transition: transform .08s ease, filter .2s ease;
  white-space:nowrap;
}
.zaks-btn:hover{ filter: brightness(1.03); }
.zaks-btn:active{ transform: translateY(1px); }
.zaks-btn--ghost{
  background: transparent;
  color: var(--zaks-btn-ghost-text, var(--zaks-accent));
  border-color: var(--zaks-btn-ghost-border, var(--zaks-border));
 }

.zaks-calc__layout{
  display:grid;
  grid-template-columns: 1.7fr 1fr;
  gap:16px;
  margin-top:16px;
}
@media (max-width: 980px){ .zaks-calc__layout{ grid-template-columns:1fr; } }

.zaks-calc__table,
.zaks-calc__summary,
.zaks-calc__quote{
  border:1px solid var(--zaks-border);
  border-radius: var(--zaks-radius);
  background:#fff;
  box-shadow: var(--zaks-shadow);
}
.zaks-calc__table{ padding:10px; overflow:hidden; }
.zaks-calc__summary{ padding:16px; position: sticky; top: 18px; align-self:start; }
@media (max-width: 980px){ .zaks-calc__summary{ position:static; } }

.zaks-row{
  display:grid;
  grid-template-columns: 1.9fr .8fr .8fr .8fr;
  gap:10px;
  align-items:center;
  padding:10px 10px;
  border-top:1px solid rgba(0,0,0,.06);
}
.zaks-row--head{
  border-top:0;
  padding-top:8px; padding-bottom:8px;
  font-weight:900;
  color:var(--zaks-accent);
  opacity:.78;
}
@media (max-width: 680px){
  .zaks-row{ grid-template-columns:1fr; }
  .zaks-row--head{ display:none; }
  .zaks-cell{ display:flex; justify-content:space-between; gap:12px; }
  .zaks-cell--service{ flex-direction:column; align-items:flex-start; }
}

.zaks-service{ font-weight:800; color:var(--zaks-accent); }
.zaks-unit{
  display:inline-block;
  margin-top:6px;
  font-size:.85rem;
  color:var(--zaks-text);
  border:1px solid rgba(0,0,0,.10);
  border-radius:999px;
  padding:2px 8px;
  background: var(--zaks-secondary);
}

.zaks-input{
  width:100%;
  border:1px solid rgba(0,0,0,.12);
  background: var(--zaks-secondary);
  border-radius: 12px;
  padding:10px 12px;
  outline:none;
  font:inherit;
}
.zaks-input:focus{
  border-color: color-mix(in srgb, var(--zaks-primary) 70%, rgba(0,0,0,.12));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--zaks-primary) 18%, transparent);
}

.zaks-line-total{ font-weight:900; color:var(--zaks-accent); }
.zaks-calc__note{ padding:10px; color:var(--zaks-text); opacity:.85; }

.zaks-calc__summary h4,
.zaks-calc__quote h4{ margin:0 0 12px; font-size:1.1rem; color:var(--zaks-accent); }

.zaks-summary-row{
  display:flex; justify-content:space-between; gap:12px;
  padding:10px 0;
}
.zaks-summary-row span{ opacity:.85; color:var(--zaks-text); }
.zaks-summary-row strong{ color:var(--zaks-accent); font-weight:900; }
.zaks-summary-row--total strong{ font-size:1.25rem; }

.zaks-discount{ display:grid; gap:6px; }
.zaks-discount span{ color:var(--zaks-text); font-size:.9rem; opacity:.9; }

.zaks-hr{ border:0; border-top:1px solid rgba(0,0,0,.10); margin:10px 0; }

.zaks-summary-alert{
  margin-top:10px;
  border:1px dashed rgba(245,158,11,.55);
  background: rgba(245,158,11,.10);
  padding:10px 12px;
  border-radius:14px;
  color:var(--zaks-accent);
}

.zaks-summary-actions{ margin-top:12px; }

.zaks-emailbox{
  margin-top:12px;
  border:1px solid rgba(0,0,0,.10);
  border-radius:14px;
  padding:12px;
  background: var(--zaks-secondary);
}
.zaks-emailbox__title{ font-weight:900; color:var(--zaks-accent); margin-bottom:8px; }
.zaks-emailbox__form{ display:grid; grid-template-columns: 1fr auto; gap:10px; align-items:center; }
.zaks-emailbox__status{ grid-column:1/-1; color:var(--zaks-text); font-weight:800; opacity:.9; }

.zaks-summary-breakdown{ margin-top:14px; display:grid; gap:8px; }
.zaks-minirow{
  display:grid;
  grid-template-columns:1fr auto;
  gap:6px 10px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.10);
  background:#fff;
}
.zaks-minirow__name{ font-weight:900; color:var(--zaks-accent); }
.zaks-minirow__meta{ color:var(--zaks-text); opacity:.9; font-size:.9rem; }
.zaks-minirow__sum{ align-self:center; font-weight:900; color:var(--zaks-accent); }

.zaks-muted{ color:var(--zaks-text); opacity:.9; }

.zaks-calc__quote{ padding:16px; margin-top:16px; }
.zaks-form{ display:grid; gap:12px; }
.zaks-form__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
@media (max-width: 820px){ .zaks-form__grid{ grid-template-columns:1fr; } }
.zaks-form label span{ display:block; margin-bottom:6px; color:var(--zaks-text); opacity:.9; font-size:.9rem; }
.zaks-form__actions{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.zaks-form__status{ color:var(--zaks-text); font-weight:900; opacity:.9; }

.zaks-checkline{ display:flex; align-items:center; gap:10px; margin-top:2px; }
.zaks-checkline input{ width:18px; height:18px; accent-color: var(--zaks-primary); }

.zaks-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.zaks-toast{
  position: fixed;
  right: 18px;
  bottom: 18px;
  background: var(--zaks-primary);
  color:#fff;
  border-radius:999px;
  padding:10px 14px;
  font-weight:900;
  box-shadow: var(--zaks-shadow);
  opacity:0;
  transform: translateY(6px);
  pointer-events:none;
  transition: opacity .2s ease, transform .2s ease;
  z-index: 999999;
}
.zaks-toast[data-show="1"]{ opacity:1; transform: translateY(0); }

/* Category collapse */
.zaks-cat{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  margin-top:8px;
  border-radius: 14px;
  border:1px solid rgba(0,0,0,.10);
  background: var(--zaks-secondary);
  cursor:pointer;
  font:inherit;
  font-weight:900;
  color:var(--zaks-accent);
}
.zaks-cat__wrap{ padding-bottom:4px; }
.zaks-cat__wrap[data-closed="1"]{ display:none; }
.zaks-cat[data-closed="1"] .zaks-cat__chev{ transform: rotate(-90deg); }
.zaks-cat__chev{ transition: transform .2s ease; }

/* Quick Estimate button */
.zaks-quick-btn{
  appearance:none;
  border:1px solid rgba(0,0,0,.12);
  background: var(--zaks-btn-bg, var(--zaks-primary));
  color: var(--zaks-btn-text, #fff);
  padding:10px 14px;
  border-radius:999px;
  font:inherit;
  font-weight:900;
  cursor:pointer;
}

/* Floating action button */
.zaks-fab{
  position: fixed;
  right: 18px;
  bottom: 86px;
  z-index: 999998;
  appearance:none;
  border:none;
  background: var(--zaks-btn-bg, var(--zaks-primary));
  color: var(--zaks-btn-text, #fff);
  padding:12px 16px;
  border-radius:999px;
  font:inherit;
  font-weight: 900;
  box-shadow: var(--zaks-shadow);
  cursor:pointer;
}

/* Modal */
.zaks-no-scroll{ overflow:hidden; }
.zaks-modal{ position: fixed; inset:0; display:none; z-index: 999997; }
.zaks-modal.is-open{ display:block; }
.zaks-modal__overlay{ position:absolute; inset:0; background: rgba(0,0,0,.45); backdrop-filter: blur(2px); }
.zaks-modal__panel{
  position:absolute;
  inset: 6% 6%;
  background:#fff;
  border-radius: 22px;
  box-shadow: var(--zaks-shadow);
  display:flex;
  flex-direction: column;
  overflow:hidden;
}
@media (max-width: 900px){ .zaks-modal__panel{ inset: 4% 4%; } }
.zaks-modal__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  background: var(--zaks-secondary);
  border-bottom:1px solid rgba(0,0,0,.10);
}
.zaks-modal__title{ font-weight: 900; color: var(--zaks-accent); }
.zaks-modal__close{
  appearance:none;
  border:none;
  background:transparent;
  font-size: 28px;
  line-height: 1;
  cursor:pointer;
  color: var(--zaks-accent);
}
.zaks-modal__body{ padding: 16px; overflow:auto; }

@media print{
  .zaks-calc__actions,.zaks-calc__quote,.zaks-emailbox,.zaks-summary-actions,.zaks-fab,.zaks-modal{ display:none !important; }
  .zaks-calc__summary{ position: static !important; }
  .zaks-calc__header,.zaks-calc__table,.zaks-calc__summary{ box-shadow:none !important; }
}
