/* Shared Home Tech pricing and quote-page presentation. */
.pricing-page #starting-prices {scroll-margin-top:100px; padding:64px 0;}
.pricing-page .pricing-hero {min-height:400px; padding:130px 0 55px;}
.pricing-page .pricing-hero .btn + .btn {margin-left:12px;}
.pricing-page .pricing-hero .btn-light:hover {color:#111 !important;}
.pricing-page .pricing-header {margin-bottom:32px;}
.pricing-page .pricing-card {padding:26px; border-top-width:3px;}
.pricing-page .pricing-card-title {font-size:22px; margin-bottom:14px;}
.pricing-page .pricing-card-title a {text-decoration:none;}
.pricing-page .pricing-card-title a:hover {color:var(--accent-contrast);}
.pricing-page .pricing-card-action {display:flex; justify-content:space-between; align-items:center; min-height:48px; margin-top:20px; padding:12px 16px; border-radius:8px; background:var(--primary); color:#fff; font-weight:600;}
.pricing-page .pricing-card-action:hover {background:var(--accent); color:#111;}
.pricing-page .pricing-card-panel {flex:1;}
.pricing-page .pricing-row {padding:12px 0; gap:12px;}
.pricing-page .pricing-service a {text-decoration:underline; text-underline-offset:3px;}
.pricing-page .pricing-note {padding:12px; font-size:13px; line-height:1.6;}
.pricing-card-details {margin-top:12px;}
.pricing-card-details summary {padding:10px 0; cursor:pointer; font-size:14px; font-weight:600; color:var(--accent-contrast);}
.pricing-more {margin-top:28px; padding:22px 26px; background:var(--light); border:1px solid #ddd; border-radius:12px;}
.pricing-more > summary {cursor:pointer; font-weight:700; font-size:20px;}
.pricing-more > summary span {font-size:14px; color:#555; font-weight:400; margin-left:12px;}
.pricing-more > p {margin:12px 0;}
.pricing-more-grid {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:20px;}
.pricing-more-grid a {display:flex; flex-direction:column; justify-content:space-between; gap:12px; padding:16px; background:#fff; border:1px solid #ccc; border-radius:8px;}
.pricing-more-grid a:hover {border-color:var(--accent-contrast);}
.pricing-more-grid a span {color:var(--accent-contrast); font-size:14px; font-weight:600;}
.pricing-page a:focus-visible, .pricing-page summary:focus-visible {outline:3px solid var(--accent-contrast); outline-offset:4px;}

.quote-page {background:var(--light);}
.quote-page header {background:#111;}
.quote-intro {padding:126px 0 26px; background:#fff;}
.quote-back-link {display:inline-block; margin-bottom:14px; font-size:14px; text-decoration:underline; text-underline-offset:3px;}
.quote-intro .pricing-eyebrow {margin-bottom:10px; color:var(--accent-contrast); font-size:12px;}
.quote-intro h1 {font-size:clamp(1.8rem,3.8vw,2.65rem); line-height:1.2; margin-bottom:12px;}
.quote-intro p:last-child {color:#555; max-width:700px;}
.calculator {padding:28px 0 48px; scroll-margin-top:100px;}
.wizard-shell {max-width:1160px;}
.wizard-progress {display:block; position:static; margin-bottom:26px; scroll-margin-top:110px;}
.wizard-progress ol {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; list-style:none;}
.wizard-progress button {display:flex; justify-content:center; align-items:center; gap:10px; width:100%; min-height:56px; padding:10px; border:1px solid #bbb; border-radius:10px; background:#fff; color:#555; font:inherit; font-size:15px; font-weight:600; cursor:pointer;}
.wizard-progress button span {display:grid; place-items:center; border-radius:50%; width:27px; height:27px; flex:none; background:#eee; color:#111; font-size:14px;}
.wizard-progress button[aria-current=step] {color:#111; border-color:var(--accent-contrast); box-shadow:inset 0 -3px 0 var(--accent);}
.wizard-progress button[aria-current=step] span {background:var(--accent);}
.wizard-step-heading {display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 20px;}
.wizard-step h2 {font-size:clamp(1.5rem,3vw,2rem); line-height:1.25;}
.wizard-eyebrow {color:#666; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; margin-bottom:8px;}
.wizard-fields {border:0; margin:0; padding:0; min-width:0;}
.wizard-selection-layout {display:grid; grid-template-columns:minmax(0,1.4fr) minmax(350px,1fr); gap:24px; align-items:start;}
.selection-workspace {min-width:0;}
.wizard-estimate-layout, .wizard-request-layout {display:grid; grid-template-columns:minmax(0,1.4fr) minmax(350px,1fr); gap:24px; align-items:start;}
.service-browser {min-width:0;}
.calc-field {display:flex; flex-direction:column; gap:6px; min-width:0; margin:0 0 16px; font-size:14px; font-weight:600; color:#222;}
.calc-field small {font-weight:400; color:#666; font-size:12px;}
.calculator input:not([type=checkbox]), .calculator select, .calculator textarea {font:inherit; font-size:16px; font-weight:400; width:100%; min-width:0; min-height:44px; padding:10px 12px; background:#fff; color:#111; border:1px solid #999; border-radius:7px;}
.calculator textarea {min-height:78px; resize:vertical;}
.calculator :focus-visible {outline:3px solid var(--accent-contrast); outline-offset:3px;}
.calc-controls {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 14px;}
.service-results {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:14px;}
.calc-service {display:flex; flex-direction:column; gap:12px; justify-content:space-between; min-width:0; padding:16px; background:#fff; border:1px solid #d4d4d4; border-radius:10px;}
.calc-service h3 {font:600 15px/1.45 'Inter',sans-serif; overflow-wrap:anywhere;}
.service-price {font-size:14px; color:var(--accent-contrast); font-weight:600; margin-top:6px;}
.service-category-label {font-size:12px; color:#666; margin-top:4px;}
.calc-add {align-self:flex-start; min-height:40px; min-width:76px; padding:8px 16px; border:0; border-radius:7px; font:600 14px 'Inter',sans-serif; background:var(--accent); color:#111; cursor:pointer;}
.calc-add:disabled {background:#ece8da; color:#555; opacity:1;}
.calc-note {font-size:13px; line-height:1.55; color:#555;}
.calc-panel, .calc-summary {min-width:0; padding:22px; background:#fff; border:1px solid #ddd; border-radius:12px;}
.calc-panel > h3 {font-size:18px; margin-bottom:8px;}
.service-pagination {display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:16px; font-size:13px;}
.calc-secondary {min-height:44px; padding:10px 15px; border:1px solid #999; border-radius:7px; background:#fff; color:#111; font:600 14px 'Inter',sans-serif; cursor:pointer;}
.calc-text-button {border:0; background:transparent; color:var(--accent-contrast); font:600 13px 'Inter',sans-serif; text-decoration:underline; text-underline-offset:3px; min-height:44px; display:inline-flex; align-items:center; cursor:pointer;}
.wizard-actions {display:flex; justify-content:space-between; align-items:center; gap:16px; padding:20px 0 8px; margin-top:12px;}
.wizard-actions p {font-size:13px; color:#555;}
.wizard-actions .btn {font-size:15px; padding:13px 22px; min-height:48px;}
.wizard-disclaimer {font-size:13px; max-width:850px; margin:20px 0 0; color:#555;}
.wizard-disclaimer a, .calc-consent a {text-decoration:underline; text-underline-offset:3px;}
.calc-panel + .calc-panel {margin-top:16px;}
.material-row {padding-top:12px; border-top:1px solid #eee;}
.material-row .calc-field {margin-bottom:12px;}
.material-row .calc-note {margin-bottom:12px;}
/* Compact cart: one 48px row where practical; longer names may wrap. */
.calc-summary {position:sticky; top:var(--quote-summary-top,118px); align-self:start; padding:0; border-top:3px solid var(--accent); max-height:calc(100dvh - var(--quote-summary-top,118px) - 16px); overflow:auto; scroll-margin-top:var(--quote-summary-top,118px);}
.cart-heading {display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; cursor:pointer; list-style:none;}
.cart-heading::-webkit-details-marker {display:none;}
.cart-heading:focus-visible {outline-offset:-4px;}
.cart-heading::after {content:'⌄'; font-size:18px; flex:none;}
.cart-disclosure[open] > .cart-heading::after {content:'⌃';}
.cart-heading-label {display:flex; flex-direction:column; gap:3px; min-width:0;}
.cart-heading-label strong {font:600 16px 'Inter',sans-serif;}
.cart-count, .cart-total-label {font-size:11px; line-height:1.4; color:#555;}
.cart-heading-total {margin-left:auto; text-align:right; min-width:0;}
.cart-total-label {display:block;}
.estimate-amount {display:block; font:700 21px/1.4 'Inter',sans-serif; color:#111; font-variant-numeric:tabular-nums;}
.cart-body {padding:0 14px 12px;}
.cart-table {width:100%; table-layout:fixed; border-collapse:collapse; text-align:left; font-size:12px; line-height:1.35; font-variant-numeric:tabular-nums;}
.cart-col-service {width:40%;} .cart-col-quantity {width:35%;} .cart-col-line {width:25%;}
.cart-table thead th {padding:7px 0; color:#666; font-size:11px; font-weight:500; border-block:1px solid #e5e5e5;}
.cart-table tbody tr {height:48px;}
.cart-table tbody th, .cart-table tbody td {padding:6px 0; border-bottom:1px solid #eee; vertical-align:middle; overflow-wrap:anywhere;}
.cart-table tbody th {padding-right:8px; font-weight:500; font-size:13px;}
.cart-table :is(th,td):nth-child(2) {text-align:center;}
.cart-table :is(th,td):nth-child(n+3) {text-align:right; padding-left:5px;}
.cart-line-price {font-weight:600;}
.calc-totals {display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:7px 10px; padding:12px 0 8px; margin:0; font-size:12px; line-height:1.4;}
.calc-totals dd {text-align:right; font-weight:600; overflow-wrap:anywhere;}
.cart-note {font-size:11px; line-height:1.5; color:#555; margin-top:7px;}
.cart-sr-only {position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%);}
.calc-warning {font-size:13px; padding:12px; background:#fff9e8; border-left:3px solid var(--accent); color:#493b00; margin:12px 0;}
.calc-rules {font-size:13px; margin-top:18px; max-width:820px;}
.calc-rules > summary {cursor:pointer; font-weight:600; padding:10px 0;}
.calc-rules p {margin-top:8px; color:#555;}
.calc-consent {display:flex; align-items:flex-start; gap:10px; font-size:13px; line-height:1.6; margin:6px 0 16px;}
.calc-consent input {width:21px; height:21px; flex:none; margin-top:2px;}
.calc-status {font-size:13px; padding:12px; border:1px solid #ddd; border-radius:7px; background:#f5f5f5; overflow-wrap:anywhere;}
.calc-error {color:#8e1414; background:#fff; border-left:3px solid #8e1414; padding:14px; margin-bottom:18px; font-size:14px;}
#quote-turnstile:empty {display:none;}
#quote-turnstile {margin:12px 0;}
.calc-honeypot {position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%);}
.calculator [hidden] {display:none !important;}
.calculator button:disabled {cursor:not-allowed; opacity:.65; transform:none;}
@media(max-width:1000px) {
 .wizard-selection-layout {grid-template-columns:minmax(0,1fr) minmax(330px,1fr); gap:18px;}
 .wizard-estimate-layout, .wizard-request-layout {grid-template-columns:minmax(0,1fr) minmax(330px,.85fr); gap:18px;}
 .pricing-more-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
 .calc-panel {padding:18px;}
}
@media(max-width:900px) {
 .wizard-selection-layout, .wizard-estimate-layout, .wizard-request-layout {display:flex; flex-direction:column; gap:18px;}
 .wizard-selection-layout > div, .wizard-estimate-layout > div, .wizard-request-layout > div {width:100%;}
 .wizard-fields .calc-summary {position:sticky; top:var(--quote-summary-top,118px); z-index:15; max-height:min(60dvh,calc(100dvh - var(--quote-summary-top,118px) - 90px)); order:-1; width:100%;}
 .cart-heading {position:sticky; top:0; z-index:1; background:#fff; padding:11px 14px; min-height:64px;}
 .cart-body {padding:0 14px 12px;}
 .cart-table {font-size:12px;}
 .cart-table tbody th {font-size:13px;}
}
@media(max-width:700px) {
 .quote-intro {padding:105px 0 22px;}
 .quote-intro .pricing-eyebrow {font-size:10px;}
 .quote-intro h1 {font-size:1.8rem;}
 .calculator {padding-top:20px;}
 .wizard-progress {margin-bottom:22px;}
 .wizard-progress ol {gap:6px;}
 .wizard-progress button {flex-direction:column; gap:5px; padding:9px 5px; font-size:11px; min-height:74px; border-radius:8px; line-height:1.3;}
 .wizard-progress button span {width:23px; height:23px; font-size:12px;}
 .wizard-step-heading {align-items:flex-start; gap:10px;}
 .wizard-step h2 {font-size:1.5rem;}
 .summary-shortcut {max-width:90px; text-align:right; font-size:11px; line-height:1.45;}
 .wizard-selection-layout, .wizard-estimate-layout, .wizard-request-layout {display:flex; flex-direction:column; gap:18px;}

 .service-browser > .calc-controls {grid-template-columns:1fr;}
 .service-browser .calc-field {margin-bottom:12px;}
 .calc-service {padding:12px;}
 .calc-service h3 {font-size:14px;}
 .service-price {font-size:13px;}
 .calc-controls {grid-template-columns:1fr;}
 .wizard-actions {position:sticky; bottom:0; z-index:20; background:var(--light); border-top:1px solid #ccc; padding:12px 0 max(12px,env(safe-area-inset-bottom)); gap:12px;}
 .wizard-actions .btn {padding:12px 15px; font-size:13px;}
 .wizard-actions p {font-size:11px; max-width:110px;}
 .calc-secondary {font-size:12px; padding:10px;}
 .service-pagination .calc-secondary {font-size:11px;}
 .pricing-page .pricing-hero {min-height:0; padding:120px 0 45px;}
 .pricing-page .pricing-hero .btn {padding:12px 18px; margin-top:8px;}
 .pricing-page .pricing-hero .btn + .btn {margin-left:6px;}
 .pricing-page #starting-prices {padding:40px 0;}
 .pricing-page .pricing-card {padding:22px;}
 .pricing-page .pricing-grid {grid-template-columns:1fr;}
 .pricing-more {padding:18px;}
 .pricing-more > summary {font-size:17px;}
 .pricing-more > summary span {display:block; margin:6px 0 0;}
 .pricing-more-grid {grid-template-columns:1fr;}
}
@media(prefers-reduced-motion:reduce) {
 .calculator *, .pricing-card {scroll-behavior:auto; transition:none;}
}

/* Keep cart quantity editors compact without changing the summary typography. */
.cart-unit-price {display:block; color:#555; font-size:12px; font-weight:400; margin-top:2px;}
.cart-quantity-control {display:flex; align-items:center; justify-content:center; gap:1px;}
.calculator .cart-quantity-control button {flex:0 0 30px; width:30px; min-height:40px; padding:0; border:1px solid #ddd; border-radius:4px; background:#fff; color:#111; font:inherit; font-size:16px; cursor:pointer;}
.calculator .cart-quantity-control input[type=number] {flex:0 1 38px; width:38px; min-width:0; min-height:40px; padding:3px 0; text-align:center; font:inherit; font-size:13px; border:1px solid #ddd; border-radius:4px; appearance:textfield; -moz-appearance:textfield;}
.cart-quantity-control input::-webkit-inner-spin-button, .cart-quantity-control input::-webkit-outer-spin-button {-webkit-appearance:none; margin:0;}
.cart-quantity-control input[aria-invalid=true] {outline:2px solid #a12222; outline-offset:1px;}

.service-add-actions {display:flex; align-items:center; flex-wrap:wrap; gap:8px;}
.service-added {font-size:12px; color:#555;}
.cart-service-edit {display:inline; border:0; padding:0; background:transparent; color:inherit; font:inherit; text-align:left; text-decoration:underline; text-underline-offset:3px; cursor:pointer; overflow-wrap:anywhere;}
.cart-service-edit:hover {color:var(--accent-contrast);}
.calculator .service-editor {margin:auto; width:min(480px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:22px; border:1px solid #ddd; border-top:3px solid var(--accent); border-radius:12px; background:#fff; color:#111; overflow:auto; box-shadow:0 12px 48px #0003;}
.service-editor::backdrop {background:#0008;}
.service-editor h3 {font-size:18px; line-height:1.4; margin-bottom:8px;}
.service-editor .calc-controls {grid-template-columns:1fr; margin-top:18px;}
.service-editor .calc-note {margin-bottom:14px;}
.service-editor .calc-secondary {display:block; margin:18px 0 0 auto;}
.quote-page:has(.service-editor[open]) {overflow:hidden;}

/* Preserve line breaks in the server-confirmed request reference. */
#quote-status {white-space:pre-line;}

/* Expanded mobile carts stay in document flow instead of covering the form. */
#quote-turnstile[hidden] {display:none;}
@media(max-width:900px) {
 .wizard-fields .calc-summary:has(.cart-disclosure[open]) {position:relative;top:auto;max-height:none;overflow:visible;z-index:auto;}
 .wizard-fields .calc-summary:not(:has(.cart-disclosure[open])) {max-height:none;overflow:visible;}
 .cart-heading {min-height:58px;padding:8px 12px;}
 .quote-received .wizard-fields .calc-summary {position:relative;top:auto;}
 #quote-status {scroll-margin-top:calc(var(--quote-summary-top,118px) + 78px);padding-bottom:env(safe-area-inset-bottom);}
}
