/* PoolBuilders Connect — instant estimate (ESTIMATE-1, 0.11.0).
   Loads AFTER pbc-forms.css and adds only what the estimate needs: model cards, the extras
   toggles, the running figure and the estimate summary. Same contract — every value is a PB
   token with a fallback, nothing invented, so a palette/font swap re-skins it for free.
   The `#pb-estimate-slot` shield at the end mirrors FORMS-1's: a site-wide `button {…!important}`
   rule (Curtis has one) must not repaint our cards. */

/* ---- model cards ---- */
.c-est__models { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-s, 0.75rem); }
.c-est__model {
	display: grid; grid-template-rows: auto 1fr; gap: 0;
	width: 100%; text-align: left; cursor: pointer; overflow: hidden;
	padding: 0; background: var(--pbc-paper); color: inherit; font: inherit;
	border: 1px solid var(--pbc-line); border-radius: var(--pbc-radius);
	transition: border-color var(--pbc-ease), box-shadow var(--pbc-ease);
}
.c-est__model:hover { border-color: var(--pbc-brand); }
.c-est__model[aria-pressed="true"] { border-color: var(--pbc-brand); background: var(--pbc-surface); box-shadow: inset 0 0 0 1px var(--pbc-brand); }
.c-est__img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; padding: var(--space-xs, 0.5rem); box-sizing: border-box; background: var(--pbc-surface, #F1EEE7); } /* 0.16.0: contain, so wide shells keep their ends */
.c-est__img--none { background: linear-gradient(135deg, var(--pbc-line), var(--pbc-paper)); }
.c-est__model-body { display: grid; gap: var(--space-2xs, 0.25rem); padding: var(--space-s, 0.75rem) var(--space-m, 1.13rem) var(--space-m, 1.13rem); }
.c-est__model-title { font-weight: 600; font-size: var(--text-m, 1rem); }
.c-est__model-meta { font-size: var(--text-s, 0.85rem); color: var(--pbc-muted); }
.c-est__model-prices { display: flex; flex-wrap: wrap; gap: var(--space-2xs, 0.25rem) var(--space-s, 0.75rem); margin-top: var(--space-2xs, 0.25rem); font-size: var(--text-s, 0.85rem); font-variant-numeric: lining-nums tabular-nums; }
.c-est__price span { color: var(--pbc-muted); }
.c-est__price { color: var(--pbc-ink); font-weight: 600; }

/* ---- extras: toggles, not radios ---- */
.c-est__extra { grid-template-columns: auto 1fr auto; }
.c-est__tick { width: 1.1rem; height: 1.1rem; border: 1.5px solid var(--pbc-muted); border-radius: 3px; position: relative; flex: 0 0 auto; }
.c-est__extra[aria-pressed="true"] .c-est__tick { background: var(--pbc-brand); border-color: var(--pbc-brand); }
.c-est__extra[aria-pressed="true"] .c-est__tick::after { content: ''; position: absolute; left: 0.32rem; top: 0.1rem; width: 0.3rem; height: 0.6rem; border-right: 2px solid var(--pbc-surface); border-bottom: 2px solid var(--pbc-surface); transform: rotate(45deg); }
.c-est__extra-price { font-size: var(--text-s, 0.85rem); color: var(--pbc-muted); font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; }

/* ---- ESTIMATE-2: an extra with a quantity ---- */
.c-est__extra-row { display: grid; gap: var(--space-2xs, 0.25rem); }
.c-est__qty { display: inline-flex; align-items: center; gap: var(--space-xs, 0.5rem); justify-self: end; padding: 0 var(--space-xs, 0.5rem); font-variant-numeric: lining-nums tabular-nums; }
.c-est__qty[hidden] { display: none; }
.c-est__qty-n { min-width: 1.5em; text-align: center; font-weight: 600; }
#pb-estimate-slot .c-est__qty-btn { width: 2rem; height: 2rem; min-height: 0 !important; padding: 0 !important; border-radius: 999px !important; border: 1px solid var(--pbc-line) !important; background: var(--pbc-paper) !important; color: var(--pbc-ink) !important; font: inherit !important; font-size: 1.1rem !important; line-height: 1 !important; cursor: pointer; }
#pb-estimate-slot .c-est__qty-btn:hover { border-color: var(--pbc-brand) !important; }
#pb-estimate-slot .c-est__qty-btn[disabled] { opacity: 0.4; cursor: not-allowed; }

/* ---- the running figure ---- */
.c-est__tally { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-s, 0.75rem); margin-top: var(--space-m, 1.13rem); padding-top: var(--space-s, 0.75rem); border-top: 1px solid var(--pbc-line); }
.c-est__tally-k { font-size: var(--text-s, 0.85rem); letter-spacing: 0.06em; text-transform: uppercase; color: var(--pbc-muted); }
.c-est__tally-v { font-family: var(--font-display, Georgia, serif); font-size: var(--text-xl, 1.5rem); font-variant-numeric: lining-nums tabular-nums; color: var(--pbc-ink); }

/* ---- the estimate ---- */
.c-est__summary { margin: var(--space-m, 1.13rem) 0; border-top: 1px solid var(--pbc-line); }
.c-est__row { display: grid; grid-template-columns: minmax(5rem, 8rem) 1fr; gap: var(--space-s, 0.75rem); padding: var(--space-xs, 0.5rem) 0; border-bottom: 1px solid var(--pbc-line); font-size: var(--text-m, 1rem); }
.c-est__row--extra { border-bottom-style: dashed; }
.c-est__row-k { font-size: var(--text-s, 0.85rem); letter-spacing: 0.06em; text-transform: uppercase; color: var(--pbc-muted); padding-top: 0.15em; }
.c-est__row-v { display: flex; justify-content: space-between; gap: var(--space-s, 0.75rem); flex-wrap: wrap; }
.c-est__row-v small { color: var(--pbc-muted); font-size: var(--text-s, 0.85rem); }
.c-est__row-n { font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; }
.c-est__total { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-s, 0.75rem); padding: var(--space-s, 0.75rem) 0 var(--space-2xs, 0.25rem); }
.c-est__total-k { font-weight: 600; }
.c-est__total-v { font-family: var(--font-display, Georgia, serif); font-size: var(--text-2xl, 1.9rem); line-height: 1.1; font-variant-numeric: lining-nums tabular-nums; color: var(--pbc-brand); }
.c-est__range { font-size: var(--text-s, 0.85rem); color: var(--pbc-muted); font-variant-numeric: lining-nums tabular-nums; padding-bottom: var(--space-s, 0.75rem); }
.c-est__range span { letter-spacing: 0.06em; text-transform: uppercase; }
/* ---- ESTIMATE-2: what is included · payment split · the builder's note ---- */
.c-est__terms { display: grid; grid-template-columns: minmax(5rem, 8rem) 1fr; gap: var(--space-s, 0.75rem); padding: var(--space-xs, 0.5rem) 0; border-bottom: 1px solid var(--pbc-line); font-size: var(--text-m, 1rem); }
.c-est__terms-k { font-size: var(--text-s, 0.85rem); letter-spacing: 0.06em; text-transform: uppercase; color: var(--pbc-muted); padding-top: 0.15em; }
.c-est__inc { margin: 0; padding: 0 0 0 1.1em; display: grid; gap: var(--space-2xs, 0.25rem); font-size: var(--text-s, 0.9rem); line-height: 1.45; }
.c-est__pay { display: flex; justify-content: space-between; gap: var(--space-s, 0.75rem); flex-wrap: wrap; font-size: var(--text-s, 0.9rem); }
.c-est__pay + .c-est__pay { margin-top: var(--space-2xs, 0.25rem); }
.c-est__note { margin: var(--space-s, 0.75rem) 0 0; font-size: var(--text-s, 0.9rem); color: var(--pbc-muted); line-height: 1.5; }
.c-est__terms + .c-est__disclaimer, .c-est__note + .c-est__disclaimer { margin-top: var(--space-m, 1.13rem); }
.c-est__disclaimer { margin: 0 0 var(--space-m, 1.13rem); padding: var(--space-s, 0.75rem) var(--space-m, 1.13rem); background: var(--pbc-paper); border-left: 3px solid var(--pbc-accent); color: var(--pbc-ink); font-size: var(--text-s, 0.9rem); line-height: 1.5; }

/* ---- shell single: price line rendered by {pbc_shell_prices} ---- */
.c-prices { display: flex; flex-wrap: wrap; gap: var(--space-s, 0.75rem) var(--space-l, 1.5rem); margin: var(--space-m, 1.13rem) 0; font-variant-numeric: lining-nums tabular-nums; }
.c-price { display: grid; gap: 2px; }
.c-price__k { font-size: var(--text-s, 0.85rem); letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted, #555C6B); }
.c-price__v { font-family: var(--font-display, Georgia, serif); font-size: var(--text-xl, 1.5rem); color: var(--ink, #141A2B); }
.c-price--note { font-size: var(--text-s, 0.85rem); color: var(--muted, #555C6B); align-self: end; }

/* ---- no-JS estimate specifics ---- */
.pbc-nojs__set { border: 1px solid var(--pbc-line); border-radius: var(--pbc-radius); padding: var(--space-s, 0.75rem) var(--space-m, 1.13rem); display: grid; gap: var(--space-xs, 0.5rem); }
.pbc-nojs__set legend { font-size: var(--text-s, 0.85rem); letter-spacing: 0.04em; text-transform: uppercase; color: var(--pbc-muted); padding: 0 0.3em; }
.pbc-nojs__opt { display: grid; grid-template-columns: auto 1fr; gap: var(--space-xs, 0.5rem); align-items: start; font-size: var(--text-m, 1rem); text-transform: none; letter-spacing: 0; }
.pbc-nojs__opt input { width: 1rem; height: 1rem; margin-top: 0.25em; accent-color: var(--pbc-brand); }

@media (max-width: 767px) {
	.c-est__models { grid-template-columns: 1fr !important; }
	.c-est__row, .c-est__terms { grid-template-columns: 1fr !important; gap: var(--space-2xs, 0.25rem) !important; }
	.c-est__tally { flex-direction: column !important; align-items: flex-start !important; gap: 0 !important; }
}
@media (prefers-reduced-motion: reduce) {
	.c-est__model, .c-est__tick { transition: none !important; }
}

/* ---- the shield (see FORMS-1 notes) ---- */
#pb-estimate-slot .c-convo__cta { background: var(--pbc-brand) !important; color: var(--pbc-surface) !important; border: 1px solid var(--pbc-brand) !important; border-radius: var(--pbc-radius) !important; font-family: inherit !important; min-height: 0 !important; padding: var(--space-s, 0.75rem) var(--space-l, 1.5rem) !important; }
#pb-estimate-slot .c-convo__cta:hover { background: var(--pbc-deep) !important; border-color: var(--pbc-deep) !important; }
#pb-estimate-slot .c-convo__cta[disabled] { background: transparent !important; color: var(--pbc-muted) !important; border-color: var(--pbc-line) !important; }
#pb-estimate-slot .c-convo__choice, #pb-estimate-slot .c-est__model { background: var(--pbc-paper) !important; color: inherit !important; border: 1px solid var(--pbc-line) !important; border-radius: var(--pbc-radius) !important; font: inherit !important; letter-spacing: normal !important; text-transform: none !important; min-height: 0 !important; }
#pb-estimate-slot .c-convo__choice { padding: var(--space-s, 0.75rem) var(--space-m, 1.13rem) !important; }
#pb-estimate-slot .c-est__model { padding: 0 !important; }
#pb-estimate-slot .c-convo__choice[aria-pressed="true"], #pb-estimate-slot .c-est__model[aria-pressed="true"] { border-color: var(--pbc-brand) !important; background: var(--pbc-surface) !important; }
#pb-estimate-slot .c-convo__choice[disabled] { opacity: 0.55; cursor: not-allowed; }
#pb-estimate-slot .c-convo__back, #pb-estimate-slot .c-convo__restart { background: none !important; border: 0 !important; color: var(--pbc-muted) !important; font: inherit !important; font-size: var(--text-s, 0.85rem) !important; letter-spacing: normal !important; text-transform: none !important; min-height: 0 !important; padding: 0 !important; }
#pb-estimate-slot .c-convo__check, #pb-estimate-slot .c-convo__check span, #pb-estimate-slot .pbc-nojs__consent label, #pb-estimate-slot .pbc-nojs__consent span, #pb-estimate-slot .pbc-nojs__opt, #pb-estimate-slot .pbc-nojs__opt span { text-transform: none !important; letter-spacing: normal !important; line-height: 1.45 !important; }
#pb-estimate-slot .pbc-nojs__submit { background: var(--pbc-brand) !important; color: var(--pbc-surface) !important; border: 1px solid var(--pbc-brand) !important; border-radius: var(--pbc-radius) !important; }

/* 0.16.2: the shell step has no Continue button, only the note; the contact step carries a lead line */
.c-convo__foot--note { justify-content: flex-start; }
.c-est__model { cursor: pointer; }
.c-convo__lead { margin: calc(-1 * var(--space-xs, 0.5rem)) 0 var(--space-m, 1.13rem); color: var(--pbc-muted, #5b6778); font-size: var(--text-s, 0.95rem); line-height: 1.5; }
