/* AEROC estimate calculator — agency tool UI */

/* sticky 견적 패널이 동작하도록 가로 오버플로만 clip (hidden은 sticky를 깨뜨림) */
body.ae-page-estimate {
  overflow-x: clip;
}

.ae-est-section {
  --est-bg: #ffffff;
  --est-card: var(--ae-bg);
  --est-muted: var(--ae-primary-soft);
  --est-text: var(--ae-text);
  --est-text-sub: var(--ae-text-sub);
  --est-border: var(--ae-border);
  --est-accent: var(--ae-primary);
  --est-accent-dark: var(--ae-primary-hover);
  --est-accent-soft: var(--ae-primary-soft);
  --est-shadow: none;
  --est-radius: 0;
  --est-radius-sm: 0;
  padding: 40px 0 96px;
  background: var(--est-bg);
  color: var(--est-text);
  font-size: 16px;
}

.ae-est-section,
.ae-est-sticky,
.ae-est-modal,
.ae-est-pdf {
  font-family: Pretendard, "Pretendard Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.ae-est-section > .ae-container {
  max-width: 1320px;
}

/* Page head */
.ae-est-pagehead {
  margin: 0 auto 40px;
}
.ae-est-pagehead .ae-kicker {
  margin-bottom: 12px;
}
.ae-est-pagehead .ae-h2 {
  margin: 0;
}
.ae-est-pagehead .ae-lead {
  margin-top: 16px;
  max-width: 36em;
}

/* Layout */
.ae-est-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 48px;
  align-items: start;
  overflow: visible;
}
.ae-est-wizard {
  min-width: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0 8px 0 0;
}

/* Progress */
.ae-est-progress {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 2px;
  margin: 0 0 40px;
  padding: 0 0 2px;
  border-bottom: 1px solid var(--est-border);
}
.ae-est-progress__step {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin: 0 0 -1px;
  padding: 14px 16px 16px;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--est-text-sub);
  font: inherit;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.3;
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.15s ease, border-color 0.15s ease;
}
.ae-est-progress__step.is-active {
  color: var(--est-text);
  font-weight: 600;
  border-bottom-color: var(--est-accent);
}
.ae-est-progress__step.is-done {
  color: var(--est-accent-dark);
  font-weight: 600;
}
.ae-est-progress__step:hover:not(.is-active) { color: var(--est-text); }

/* Panel / titles */
.ae-est-panel[hidden],
.ae-est-block[hidden],
.ae-est-block.is-build-hidden,
[data-est-block].is-build-hidden,
[data-est-block][hidden],
.is-build-hidden,
.ae-est-presets[hidden],
.ae-est-sub__extra[hidden],
.ae-est-sticky[hidden],
.ae-est-modal[hidden],
.ae-est-pdf[hidden],
.ae-est-form-msg[hidden],
.ae-est-btn-primary[hidden],
.ae-est-btn-secondary[hidden],
.ae-est-btn-ghost[hidden] {
  display: none !important;
}

.ae-est-title {
  margin: 0 0 8px;
  font-size: clamp(24px, 2.2vw, 28px);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.3;
  color: var(--est-text);
}
.ae-est-desc {
  margin: 0 0 28px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--est-text-sub);
}

/* Option rows */
.ae-est-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 8px 20px;
}
.ae-est-option {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px 20px;
  align-items: start;
  width: 100%;
  margin: 0;
  padding: 18px 12px;
  border: none;
  border-radius: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  font: inherit;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.ae-est-option:hover {
  background: var(--est-accent-soft);
}
.ae-est-option.is-active {
  background: var(--est-accent-soft);
  box-shadow: none;
}
.ae-est-option__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.ae-est-option__body strong {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--est-text);
  line-height: 1.4;
}
.ae-est-option.is-active .ae-est-option__body strong { color: var(--est-accent-dark); }
.ae-est-option__body > span {
  font-size: 15px;
  line-height: 1.55;
  color: var(--est-text-sub);
}
.ae-est-option__meta {
  font-size: 15px !important;
  font-weight: 600;
  color: var(--est-text-sub) !important;
  font-variant-numeric: tabular-nums;
  margin-top: 4px;
}
.ae-est-option__badge {
  display: inline;
  margin-left: 6px;
  padding: 0;
  border-radius: 0;
  font-size: 15px;
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0;
  vertical-align: baseline;
  color: var(--est-accent);
  background: transparent;
}
.ae-est-option__price {
  align-self: start;
  padding-top: 2px;
  font-size: 15px;
  font-weight: 700;
  color: var(--est-accent-dark);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.ae-est-option.is-active .ae-est-option__price { color: var(--est-accent); }

/* Blocks / forms */
.ae-est-block {
  margin: 0;
  padding: 32px 0;
  border-top: 1px solid var(--est-border);
}
.ae-est-block:first-of-type { border-top: 0; padding-top: 0; }
.ae-est-block h3,
.ae-est-block__head h3 {
  margin: 0 0 18px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--est-text);
}
.ae-est-block__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.ae-est-block__head h3 { margin: 0; }

.ae-est-row,
.ae-est-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
  gap: 16px 18px;
}
.ae-est-row label,
.ae-est-grid label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
  color: var(--est-text-sub);
}
.ae-est-row .ae-est-stepper,
.ae-est-grid .ae-est-stepper {
  max-width: none;
  width: 100%;
}
.ae-est-row .ae-est-check,
.ae-est-grid .ae-est-check {
  flex-direction: row;
  align-items: center;
  gap: 8px;
  padding-top: 22px;
  font-weight: 500;
  color: var(--est-text);
}
.ae-est-row input,
.ae-est-grid input,
.ae-est-sub input[type="text"],
.ae-est-sub input[type="number"],
.ae-est-form input,
.ae-est-form textarea,
.ae-est-stepper input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--est-border);
  border-radius: 8px;
  padding: 11px 12px;
  font: inherit;
  font-size: 15px;
  background: var(--est-card);
  color: var(--est-text);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ae-est-row input:focus,
.ae-est-grid input:focus,
.ae-est-sub input:focus,
.ae-est-form input:focus,
.ae-est-form textarea:focus,
.ae-est-stepper input:focus {
  outline: none;
  border-color: var(--est-accent);
  box-shadow: 0 0 0 3px var(--est-accent-soft);
}
.ae-est-row input:disabled,
.ae-est-grid input:disabled {
  background: var(--est-muted);
  color: var(--est-text-sub);
  cursor: not-allowed;
}
.ae-est-grid small {
  font-weight: 500;
  color: var(--est-text-sub);
  font-variant-numeric: tabular-nums;
}
.ae-est-help {
  margin: 14px 0 0;
  font-size: 15px;
  line-height: 1.55;
  color: var(--est-text-sub);
}
.ae-est-help--tight { margin: 0 0 14px; }

/* Stepper */
.ae-est-stepper {
  display: inline-flex;
  align-items: stretch;
  width: 100%;
  max-width: 160px;
  border: 1px solid var(--est-border);
  border-radius: 8px;
  overflow: hidden;
  background: var(--est-card);
}
.ae-est-stepper__btn {
  flex: 0 0 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  border: none;
  background: var(--est-muted);
  color: var(--est-text);
  font: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
}
.ae-est-stepper__btn:hover { background: #e8ebef; }
.ae-est-stepper input {
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  border: none;
  border-left: 1px solid var(--est-border);
  border-right: 1px solid var(--est-border);
  border-radius: 0;
  text-align: center;
  padding: 10px 6px;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  -moz-appearance: textfield;
}
.ae-est-stepper input::-webkit-outer-spin-button,
.ae-est-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ae-est-stepper input:focus { box-shadow: none; border-color: var(--est-border); }

/* Presets */
.ae-est-presets {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 14px;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
}
.ae-est-preset {
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  min-height: 38px;
  padding: 8px 14px;
  border: none;
  border-radius: 999px;
  background: var(--est-muted);
  color: var(--est-text);
  cursor: pointer;
  line-height: 1.25;
}
.ae-est-preset:hover { background: #e0edff; color: var(--est-accent-dark); }
.ae-est-preset.is-active,
.ae-est-preset[aria-pressed="true"] {
  background: var(--est-accent);
  color: #fff;
  box-shadow: none;
}

/* Sub pages */
.ae-est-sublist {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 4px;
}
.ae-est-sub {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 0;
  border: none;
  border-bottom: 1px solid var(--est-border);
  border-radius: 0;
  background: transparent;
}
.ae-est-sub__main {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr) 132px auto auto;
  gap: 12px 14px;
  align-items: end;
}
.ae-est-sub--product .ae-est-sub__main {
  grid-template-columns: 160px minmax(0, 1fr) 120px 132px auto auto;
}
.ae-est-sub__name { width: 100%; min-width: 0; }
.ae-est-sub__type-wrap,
.ae-est-sub__sec-wrap,
.ae-est-sub__product-wrap {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
  font-weight: 600;
  color: var(--est-text-sub);
}
.ae-est-sub__type {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--est-border);
  border-radius: 10px;
  padding: 10px 12px;
  font: inherit;
  font-size: 14px;
  font-weight: 500;
  color: var(--est-text);
  background: #fff;
}
.ae-est-sub__sec-wrap .ae-est-stepper,
.ae-est-sub__product-wrap .ae-est-stepper,
.ae-est-sub__extra-label .ae-est-stepper {
  max-width: none;
  width: 100%;
}
.ae-est-sub__sec-wrap input,
.ae-est-sub__product-wrap input { width: 100%; padding: 10px 8px; }
.ae-est-sub__repeat-wrap {
  white-space: nowrap;
  margin: 0;
  align-self: center;
  padding-bottom: 2px;
}
.ae-est-sub__del {
  border: none;
  background: transparent;
  padding: 8px 4px;
  font: inherit;
  font-size: 15px;
  font-weight: 500;
  color: var(--est-text-sub);
  cursor: pointer;
  align-self: center;
}
.ae-est-sub__del:hover { color: #b91c1c; }
.ae-est-sub__extra { padding-top: 2px; }
.ae-est-sub__extra-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  font-weight: 600;
  color: var(--est-text-sub);
}
.ae-est-sub__extra-label input { width: 88px; padding: 8px 10px; }

/* Pick list */
.ae-est-pick-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.ae-est-pick {
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 12px 4px;
  border: none;
  border-bottom: 1px solid var(--est-border);
  border-radius: 0;
  background: transparent;
  cursor: pointer;
  font-size: 15px;
  font-weight: 500;
  color: var(--est-text);
  transition: background 0.15s ease, color 0.15s ease;
}
.ae-est-pick:hover { background: var(--est-accent-soft); }
.ae-est-pick.is-on {
  background: var(--est-accent-soft);
  box-shadow: none;
}
.ae-est-pick input {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--est-accent);
}
.ae-est-pick__label { min-width: 0; line-height: 1.35; }
.ae-est-pick.is-on .ae-est-pick__label { font-weight: 600; }
.ae-est-pick__price {
  font-size: 15px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--est-text-sub);
  white-space: nowrap;
}
.ae-est-pick.is-on .ae-est-pick__price { color: var(--est-text); }

/* Chips */
.ae-est-chip-list { display: flex; flex-wrap: wrap; gap: 10px; }
.ae-est-chip {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin: 0;
  cursor: pointer;
}
.ae-est-chip input { position: absolute; opacity: 0; pointer-events: none; }
.ae-est-chip span {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 16px;
  border: none;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 500;
  color: var(--est-text-sub);
  background: var(--est-muted);
  transition: color 0.15s ease, background 0.15s ease;
}
.ae-est-chip:hover span { background: #e0edff; color: var(--est-accent-dark); }
.ae-est-chip input:checked + span,
.ae-est-chip:has(input:checked) span {
  color: #fff;
  background: var(--est-accent);
  font-weight: 600;
}

/* Checks */
.ae-est-checks { display: flex; flex-wrap: wrap; gap: 12px 22px; }
.ae-est-check {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 500;
  color: var(--est-text);
  cursor: pointer;
}
.ae-est-check input {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--est-accent);
}
.ae-est-check.is-included { color: var(--est-text-sub); }

/* Buttons / nav */
.ae-est-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--est-border);
}
.ae-est-btn-primary,
.ae-est-btn-secondary,
.ae-est-btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 12px 18px;
  font: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.ae-est-btn-primary {
  background: var(--est-accent);
  color: #fff;
  border-color: var(--est-accent);
  border-radius: 10px;
}
.ae-est-btn-primary:hover { background: var(--est-accent-dark); border-color: var(--est-accent-dark); }
.ae-est-btn-secondary {
  background: transparent;
  color: var(--est-accent-dark);
  border-color: #bfdbfe;
  border-radius: 10px;
}
.ae-est-btn-secondary:hover { background: var(--est-accent-soft); border-color: var(--est-accent); }
.ae-est-btn-ghost {
  background: transparent;
  color: var(--est-text-sub);
  border-color: transparent;
  border-radius: 10px;
}
.ae-est-btn-ghost:hover { background: var(--est-accent-soft); color: var(--est-accent-dark); }

/* Summary — sticky. ae-reveal의 transform은 sticky를 깨뜨리므로 페이드만 사용 */
.ae-est-summary {
  position: sticky;
  top: calc(var(--ae-header-h, 60px) + 24px);
  align-self: start;
  z-index: 5;
  background: transparent;
  color: var(--est-text);
  border: none;
  border-left: 1px solid var(--est-border);
  border-radius: 0;
  box-shadow: none;
  padding: 0 0 0 32px;
}
.ae-est-summary.ae-reveal {
  transform: none;
  opacity: 0;
  transition: opacity 0.55s var(--ae-ease);
}
.ae-est-summary.ae-reveal.is-visible {
  transform: none;
  opacity: 1;
}
.ae-est-summary__kicker {
  margin: 0 0 4px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--est-text-sub);
}
.ae-est-summary__total {
  margin: 0 0 24px;
  font-size: clamp(32px, 3vw, 34px);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.15;
  color: var(--est-accent);
  font-variant-numeric: tabular-nums;
}
.ae-est-summary__meta {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
  display: grid;
  gap: 10px;
}
.ae-est-summary__meta li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 14px;
  font-size: 15px;
  line-height: 1.4;
}
.ae-est-summary__meta span { color: var(--est-text-sub); flex-shrink: 0; }
.ae-est-summary__meta strong { font-weight: 600; color: var(--est-text); text-align: right; }
.ae-est-summary__lines {
  display: grid;
  gap: 10px;
  max-height: 220px;
  overflow: auto;
  margin-bottom: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--est-border);
}
.ae-est-summary__lines:empty {
  display: none;
}
.ae-est-summary__lines div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 14px;
  line-height: 1.4;
  color: var(--est-text-sub);
}
.ae-est-summary__lines strong {
  color: var(--est-text);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.ae-est-summary__cta { width: 100%; }

/* Result */
.ae-est-result-detail { margin: 0 0 8px; }
.ae-est-result-hero,
.ae-est-scope {
  display: grid;
  gap: 0;
  margin-bottom: 20px;
  border: none;
  border-radius: 0;
  overflow: visible;
  background: transparent;
}
.ae-est-result-hero { grid-template-columns: 1fr 1fr; gap: 24px; }
.ae-est-scope { grid-template-columns: 1fr 1fr; margin-bottom: 20px; gap: 32px; }
.ae-est-result-hero > div,
.ae-est-scope > div {
  padding: 0;
  border: none;
}
.ae-est-scope > div:last-child { background: transparent; }
.ae-est-result-hero p {
  margin: 0 0 6px;
  font-size: 15px;
  font-weight: 600;
  color: var(--est-text-sub);
}
.ae-est-result-hero strong {
  display: block;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--est-text);
  font-variant-numeric: tabular-nums;
}
.ae-est-result-hero small {
  display: block;
  margin-top: 6px;
  font-size: 14px;
  font-weight: 500;
  color: var(--est-text-sub);
}
.ae-est-scope h4 {
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 700;
  color: var(--est-text);
}
.ae-est-scope ul {
  margin: 0;
  padding-left: 18px;
  color: var(--est-text-sub);
  font-size: 15px;
  line-height: 1.55;
}
.ae-est-meta-line {
  margin: 0 0 14px;
  font-size: 14px;
  color: var(--est-text-sub);
}
.ae-est-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
}
.ae-est-table th,
.ae-est-table td {
  border-bottom: 1px solid var(--est-border);
  padding: 12px 10px;
  text-align: left;
  vertical-align: top;
}
.ae-est-table th {
  font-size: 14px;
  font-weight: 600;
  color: var(--est-text-sub);
  background: var(--est-accent-soft);
}
.ae-est-table td { color: var(--est-text); font-variant-numeric: tabular-nums; }
.ae-est-table tfoot td { font-weight: 700; border-bottom: 0; padding-top: 14px; }

.ae-est-consult {
  margin: 24px 0;
  padding: 0;
  border: none;
  border-top: 1px solid var(--est-border);
  border-radius: 0;
  background: transparent;
  padding-top: 24px;
}
.ae-est-consult h3 {
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 700;
  color: var(--est-text);
}
.ae-est-consult p {
  margin: 0 0 14px;
  font-size: 15px;
  line-height: 1.55;
  color: var(--est-text-sub);
}
.ae-est-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 24px 0 14px;
}
.ae-est-note {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--est-text-sub);
}

/* Sticky mobile bar */
.ae-est-sticky { display: none; }
.ae-est-sticky__info { display: grid; gap: 2px; min-width: 0; }
.ae-est-sticky__info span {
  font-size: 13px;
  font-weight: 600;
  color: var(--est-text-sub);
}
.ae-est-sticky__info strong {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--est-accent);
  font-variant-numeric: tabular-nums;
}

/* Modal / form */
.ae-est-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(15, 23, 42, 0.45);
}
.ae-est-modal__card {
  width: min(480px, 100%);
  max-height: 90vh;
  overflow: auto;
  background: var(--est-card);
  border: none;
  border-radius: 16px;
  box-shadow: 0 24px 48px rgba(37, 99, 235, 0.12);
  padding: 24px;
}
.ae-est-modal__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}
.ae-est-modal__head h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--est-text);
}
.ae-est-modal__close {
  border: none;
  background: transparent;
  padding: 0 4px;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  color: var(--est-text-sub);
}
.ae-est-modal__close:hover { color: var(--est-text); }
.ae-est-modal__lead {
  margin: 0 0 18px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--est-text-sub);
}
.ae-est-form { display: grid; gap: 12px; }
.ae-est-form label {
  display: grid;
  gap: 6px;
  font-size: 15px;
  font-weight: 600;
  color: var(--est-text-sub);
}
.ae-est-form textarea { resize: vertical; min-height: 84px; }
.ae-est-form .ae-est-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 15px;
  font-weight: 500;
  color: var(--est-text);
  line-height: 1.45;
}
.ae-est-modal__actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 4px;
}
.ae-est-form-msg {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--est-text-sub);
}
.ae-est-form-msg.is-ok { color: var(--est-text); }

/* PDF */
.ae-est-pdf {
  position: fixed;
  left: -9999px;
  top: 0;
  width: 794px;
  background: #fff;
  color: #111827;
  padding: 40px;
}
.ae-est-pdf__inner h1 {
  font-size: 22px;
  margin: 0 0 12px;
  letter-spacing: -0.02em;
}
.ae-est-pdf table {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0;
  font-size: 12px;
}
.ae-est-pdf th,
.ae-est-pdf td {
  border: 1px solid #e5e7eb;
  padding: 8px;
  text-align: left;
}
.ae-est-pdf .note { font-size: 12px; color: #6b7280; line-height: 1.5; }

/* Responsive */
@media (max-width: 960px) {
  .ae-est-section { padding: 28px 0 110px; }
  .ae-est-pagehead { margin-bottom: 24px; }
  .ae-est-layout { grid-template-columns: 1fr; gap: 28px; }
  .ae-est-wizard { padding: 0; }
  .ae-est-progress {
    gap: 0;
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .ae-est-progress::-webkit-scrollbar { display: none; }
  .ae-est-progress__step { padding: 10px 12px 12px; font-size: 14px; }
  .ae-est-summary {
    position: static;
    order: 2;
    padding: 24px 0 0;
    border-left: none;
    border-top: 1px solid var(--est-border);
  }
  .ae-est-wizard { order: 1; }
  .ae-est-summary__cta { display: none; }
  .ae-est-summary__total { font-size: 28px; }
  .ae-est-options { grid-template-columns: 1fr; }
  .ae-est-option { grid-template-columns: minmax(0, 1fr) auto; }
  .ae-est-option__price { grid-column: auto; padding-top: 2px; }
  .ae-est-sub__main { grid-template-columns: minmax(0, 1fr) 132px; align-items: end; }
  .ae-est-sub--product .ae-est-sub__main { grid-template-columns: minmax(0, 1fr) 120px 132px; }
  .ae-est-sub__type-wrap { grid-column: 1 / -1; }
  .ae-est-sub__repeat-wrap { grid-column: 1 / -1; align-self: start; }
  .ae-est-sub__del { grid-column: 1 / -1; justify-self: start; padding-left: 0; }
  .ae-est-result-hero,
  .ae-est-scope { grid-template-columns: 1fr; }
  .ae-est-result-hero > div,
  .ae-est-scope > div { border: none; padding-bottom: 16px; }
  .ae-est-result-hero > div:last-child,
  .ae-est-scope > div:last-child { border-bottom: none; padding-bottom: 0; }
  .ae-est-sticky {
    display: flex;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 40;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.96);
    color: var(--est-text);
    border-top: 1px solid var(--est-border);
    box-shadow: none;
    backdrop-filter: blur(8px);
  }
  .ae-est-sticky .ae-est-btn-primary { flex-shrink: 0; padding: 11px 14px; }
  .ae-est-cta-row { flex-direction: column; }
  .ae-est-cta-row .ae-est-btn-primary,
  .ae-est-cta-row .ae-est-btn-secondary { width: 100%; }
}

@media (max-width: 720px) {
  .ae-est-pick-list { grid-template-columns: 1fr; }
  .ae-est-title { font-size: 20px; }
  .ae-est-row,
  .ae-est-grid { grid-template-columns: 1fr 1fr; }
  .ae-est-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

@media (max-width: 480px) {
  .ae-est-row,
  .ae-est-grid { grid-template-columns: 1fr; }
  .ae-est-nav { flex-direction: column-reverse; align-items: stretch; }
  .ae-est-nav .ae-est-btn-primary,
  .ae-est-nav .ae-est-btn-ghost { width: 100%; }
}

/* Feature accordion groups */
.ae-est-feature-groups {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.ae-est-acc {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--est-border);
}
.ae-est-acc:first-child { border-top: 0; }
.ae-est-acc__sum {
  list-style: none;
  cursor: pointer;
  padding: 18px 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--est-text);
  user-select: none;
}
.ae-est-acc__sum::-webkit-details-marker { display: none; }
.ae-est-acc__sum::after {
  content: '+';
  float: right;
  font-weight: 500;
  color: var(--est-text-sub);
}
.ae-est-acc[open] > .ae-est-acc__sum::after { content: '−'; }
.ae-est-acc__body {
  padding: 0 0 22px;
}
.ae-est-options--compact {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}
.ae-est-chip.is-active span {
  color: #fff;
  background: var(--est-accent);
  font-weight: 600;
}

/* Wireframe embed in estimate step 3 */
body.ae-est--step3 .ae-est-layout {
  grid-template-columns: 1fr;
}
body.ae-est--step3 #aeEstSummary {
  display: none;
}

.ae-est-wf {
  margin: 8px 0 24px;
  padding: 0;
  background: transparent;
  overflow: visible;
}
.ae-est-wf .ae-wf-layout {
  grid-template-columns: minmax(160px, 200px) minmax(0, 1fr) minmax(180px, 220px);
  gap: 14px 12px;
  max-width: none;
}
.ae-est-wf .ae-wf-preview-bar {
  max-width: 100%;
}
.ae-est-wf .ae-wf-canvas {
  max-width: 100%;
  min-height: 520px;
  max-height: min(68vh, 780px);
}
.ae-est-wf .ae-wf-preview-wrap[data-device="desktop"] .ae-wf-preview-bar,
.ae-est-wf .ae-wf-preview-wrap[data-device="desktop"] .ae-wf-canvas {
  max-width: 100%;
}
.ae-est-wf .ae-wf-preview-wrap[data-device="desktop"] .ae-wf-canvas {
  min-height: min(62vh, 720px);
  max-height: min(72vh, 860px);
}
.ae-est-wf .ae-wf-preview-wrap[data-device="mobile"] .ae-wf-preview-bar,
.ae-est-wf .ae-wf-preview-wrap[data-device="mobile"] .ae-wf-canvas {
  max-width: min(375px, 100%);
}
.ae-est-wf .ae-wf-preview-wrap[data-device="mobile"] .ae-wf-canvas {
  min-height: 640px;
  max-height: min(75vh, 780px);
}
.ae-est-wf .ae-wf-compose,
.ae-est-wf .ae-wf-sections {
  max-height: min(58vh, 560px);
}
.ae-est-wf .ae-wf-preview-wrap {
  position: sticky;
  top: calc(var(--ae-header-h, 60px) + 12px);
}
.ae-est-wf .ae-wf-sidebar__title {
  font-size: 12px;
}
.ae-est-wf #aeEstMainHelp {
  margin: 0 0 14px;
}

@media (max-width: 1100px) {
  .ae-est-wf .ae-wf-layout {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas:
      "preview preview"
      "compose sections";
  }
}

@media (max-width: 760px) {
  .ae-est-wf .ae-wf-layout {
    grid-template-columns: 1fr;
    grid-template-areas: none;
  }
  .ae-est-wf .ae-wf-preview-wrap {
    position: static;
  }
}

