/* Construction Cost Calculator Pro — Frontend */
:root {
  --ccc-primary: #E8521A;
  --ccc-accent:  #1A3E5C;
  --ccc-bg:      #F8F9FA;
  --ccc-white:   #FFFFFF;
  --ccc-border:  #E2E8F0;
  --ccc-text:    #1A202C;
  --ccc-muted:   #64748B;
  --ccc-radius:  12px;
  --ccc-shadow:  0 4px 24px rgba(0,0,0,.09);
}

.ccc-wrap {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  max-width: 820px;
  margin: 0 auto 40px;
  background: var(--ccc-white);
  border-radius: var(--ccc-radius);
  box-shadow: var(--ccc-shadow);
  overflow: hidden;
  color: var(--ccc-text);
  line-height: 1.6;
}

/* Header */
.ccc-header {
  background: linear-gradient(135deg, var(--ccc-accent) 0%, #0f2740 100%);
  padding: 32px 40px 24px;
  color: #fff;
}
.ccc-title { font-size: 24px; font-weight: 700; margin: 0 0 6px; }
.ccc-sub   { font-size: 14px; opacity: .75; margin: 0; }

/* Progress */
.ccc-progress-wrap { background: var(--ccc-accent); padding: 0 40px 18px; }
.ccc-progress-bar  { height: 4px; background: rgba(255,255,255,.2); border-radius: 2px; margin-bottom: 14px; overflow: hidden; }
.ccc-progress-fill { height: 100%; background: var(--ccc-primary); border-radius: 2px; transition: width .4s ease; width: 16.66%; }
.ccc-step-dots     { display: flex; justify-content: space-between; }
.ccc-dot           { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.ccc-dot-num       { width: 26px; height: 26px; border-radius: 50%; background: rgba(255,255,255,.2); color: rgba(255,255,255,.6); font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; transition: .2s; }
.ccc-dot.active .ccc-dot-num,
.ccc-dot.done .ccc-dot-num   { background: var(--ccc-primary); color: #fff; }
.ccc-dot-lbl       { font-size: 10px; color: rgba(255,255,255,.5); text-transform: uppercase; letter-spacing: .4px; }
.ccc-dot.active .ccc-dot-lbl { color: #fff; }

/* Steps */
.ccc-steps-wrap { padding: 32px 40px 28px; }
.ccc-step        { display: none; animation: cccIn .3s ease; }
.ccc-step.active { display: block; }
@keyframes cccIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }

/* Step header */
.ccc-step-hd        { text-align: center; margin-bottom: 26px; }
.ccc-step-icon      { font-size: 38px; margin-bottom: 10px; }
.ccc-step-hd h3     { font-size: 19px; font-weight: 700; color: var(--ccc-accent); margin: 0 0 5px; }
.ccc-step-hd p      { font-size: 14px; color: var(--ccc-muted); margin: 0; }

/* Project type grid */
.ccc-grid-types {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 10px;
  margin-bottom: 24px;
}
.ccc-type-card {
  border: 2px solid var(--ccc-border);
  border-radius: 10px;
  padding: 14px 8px;
  text-align: center;
  cursor: pointer;
  transition: .2s;
  background: var(--ccc-bg);
}
.ccc-type-card:hover   { border-color: var(--ccc-primary); transform: translateY(-2px); }
.ccc-type-card.selected{ border-color: var(--ccc-primary); background: #fff3ee; box-shadow: 0 0 0 4px rgba(232,82,26,.1); }
.ccc-type-icon { display: block; font-size: 26px; margin-bottom: 7px; }
.ccc-type-name { font-size: 12px; font-weight: 600; }

/* Fields */
.ccc-field-group { margin-bottom: 18px; }
.ccc-label       { display: block; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: var(--ccc-accent); margin-bottom: 7px; }
.ccc-input, .ccc-select {
  width: 100%;
  padding: 10px 14px;
  border: 1.5px solid var(--ccc-border);
  border-radius: 8px;
  font-size: 14px;
  color: var(--ccc-text);
  background: var(--ccc-white);
  box-sizing: border-box;
  outline: none;
  transition: .2s;
  -webkit-appearance: none;
}
.ccc-input:focus, .ccc-select:focus { border-color: var(--ccc-primary); box-shadow: 0 0 0 3px rgba(232,82,26,.12); }
.ccc-input.ccc-input-error { border-color: #EF4444; }
.ccc-err  { display: block; font-size: 11px; color: #EF4444; margin-top: 4px; }
.ccc-hint { font-size: 12px; color: var(--ccc-muted); margin-top: 5px; }

/* Unit toggle */
.ccc-unit-btn {
  padding: 7px 14px;
  border: 1.5px solid var(--ccc-border);
  border-radius: 20px;
  background: var(--ccc-bg);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  color: var(--ccc-muted);
  transition: .2s;
}
.ccc-unit-btn.active { background: var(--ccc-primary); border-color: var(--ccc-primary); color: #fff; }

/* Finish quality */
.ccc-radio-row  { display: flex; gap: 10px; }
.ccc-radio-card {
  flex: 1;
  border: 2px solid var(--ccc-border);
  border-radius: 9px;
  padding: 12px 10px;
  cursor: pointer;
  transition: .2s;
  background: var(--ccc-bg);
}
.ccc-radio-card input { display: none; }
.ccc-radio-card:has(input:checked) { border-color: var(--ccc-primary); background: #fff3ee; }
.ccc-radio-label { display: block; font-size: 13px; font-weight: 700; }
.ccc-radio-desc  { display: block; font-size: 11px; color: var(--ccc-muted); margin-top: 2px; }

/* Add-ons grid */
.ccc-addons-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: 9px;
}
.ccc-addon-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  border: 2px solid var(--ccc-border);
  border-radius: 9px;
  padding: 12px 6px;
  cursor: pointer;
  transition: .2s;
  background: var(--ccc-bg);
  text-align: center;
}
.ccc-addon-card:has(input[type="checkbox"]:checked) { border-color: var(--ccc-primary); background: #fff3ee; }
.ccc-addon-card input[type="hidden"] { display: none; }
.ccc-addon-card input[type="checkbox"] { display: none; }
.ccc-addon-icon { font-size: 22px; }
.ccc-addon-name { font-size: 11px; font-weight: 600; }
.ccc-addon-cost { font-size: 10px; color: var(--ccc-primary); font-weight: 700; }

/* Contact grid */
.ccc-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }

/* Buttons */
.ccc-btn-row { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--ccc-border); }
.ccc-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 22px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  border: none;
  transition: .2s;
  outline: none;
  white-space: nowrap;
  text-decoration: none;
  line-height: 1;
}
.ccc-btn:disabled { opacity: .45; cursor: not-allowed; }
.ccc-btn-primary { background: var(--ccc-primary); color: #fff; }
.ccc-btn-primary:hover:not(:disabled) { background: #c9430e; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(232,82,26,.35); }
.ccc-btn-ghost   { background: transparent; color: var(--ccc-muted); border: 1.5px solid var(--ccc-border); }
.ccc-btn-ghost:hover { border-color: var(--ccc-accent); color: var(--ccc-accent); }

/* Alert */
.ccc-alert { padding: 10px 14px; border-radius: 7px; font-size: 13px; margin-bottom: 14px; }
.ccc-alert-error { background: #FEE2E2; color: #991B1B; border: 1px solid #FCA5A5; }

/* Results */
.ccc-result-hero {
  background: linear-gradient(135deg, var(--ccc-accent) 0%, #0f2740 100%);
  border-radius: var(--ccc-radius);
  padding: 30px 24px;
  text-align: center;
  color: #fff;
  margin-bottom: 20px;
}
.ccc-result-label  { font-size: 12px; text-transform: uppercase; letter-spacing: .6px; opacity: .75; margin-bottom: 8px; }
.ccc-result-amount { font-size: 34px; font-weight: 800; letter-spacing: -1.2px; margin-bottom: 8px; }
.ccc-result-meta   { font-size: 13px; opacity: .65; }

/* Cards */
.ccc-card        { border: 1.5px solid var(--ccc-border); border-radius: var(--ccc-radius); padding: 18px 22px; margin-bottom: 16px; }
.ccc-card-title  { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--ccc-accent); margin: 0 0 14px; }

/* Breakdown */
.ccc-bd-item  { margin-bottom: 12px; }
.ccc-bd-row   { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 4px; }
.ccc-bd-bar   { height: 8px; background: #EDF2F7; border-radius: 4px; overflow: hidden; }
.ccc-bd-fill  { height: 100%; background: var(--ccc-primary); border-radius: 4px; transition: width .5s ease; }
.ccc-bd-item:nth-child(2) .ccc-bd-fill { background: var(--ccc-accent); }
.ccc-bd-item:nth-child(3) .ccc-bd-fill { background: #F59E0B; }
.ccc-bd-item:nth-child(4) .ccc-bd-fill { background: #8B5CF6; }
.ccc-bd-item:nth-child(5) .ccc-bd-fill { background: #10B981; }

/* Table */
.ccc-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.ccc-table th { background: var(--ccc-bg); padding: 8px 12px; text-align: left; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: var(--ccc-accent); border-bottom: 2px solid var(--ccc-border); }
.ccc-table td { padding: 9px 12px; border-bottom: 1px solid var(--ccc-border); }
.ccc-table tbody tr:hover td { background: #fafbfc; }

/* Result actions */
.ccc-result-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 4px; margin-bottom: 16px; }
.ccc-result-actions .ccc-btn { flex: 1; min-width: 160px; justify-content: center; }

/* Disclaimer */
.ccc-disclaimer { font-size: 11px; color: var(--ccc-muted); font-style: italic; padding-top: 12px; border-top: 1px solid var(--ccc-border); margin: 0; }

/* Stat boxes (leads dashboard shortcode) */
.ccc-stat-box    { flex: 1; min-width: 100px; background: var(--ccc-bg); border-radius: 9px; padding: 14px 16px; text-align: center; }
.ccc-stat-num    { display: block; font-size: 26px; font-weight: 800; color: var(--ccc-primary); }
.ccc-stat-label  { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .4px; color: var(--ccc-muted); margin-top: 3px; }

/* Widget */
.ccc-mat-widget  { background: var(--ccc-white); border-radius: var(--ccc-radius); box-shadow: var(--ccc-shadow); padding: 28px; max-width: 600px; margin: 0 auto; }
.ccc-widget-title{ font-size: 18px; font-weight: 700; color: var(--ccc-accent); margin: 0 0 18px; }

/* Responsive */
@media (max-width: 600px) {
  .ccc-header, .ccc-progress-wrap, .ccc-steps-wrap { padding-left: 20px; padding-right: 20px; }
  .ccc-title            { font-size: 18px; }
  .ccc-grid-types       { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .ccc-contact-grid     { grid-template-columns: 1fr; }
  .ccc-result-amount    { font-size: 24px; }
  .ccc-dot-lbl          { display: none; }
  .ccc-radio-row        { flex-direction: column; }
  .ccc-addons-grid      { grid-template-columns: repeat(3, 1fr); }
}
