/*
 * Dynamic Price & Quote Calculator
 * Frontend styles
 */


/* ---------------------------------------------------------
 * Quote-level / additional services
 * --------------------------------------------------------- */

.dpqc-quote-options {
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid rgba(0, 0, 0, 0.15);
}

.dpqc-quote-options-heading {
    margin: 0 0 14px;
}

.dpqc-quote-option .dpqc-checkbox-label {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
}

.dpqc-quote-option .dpqc-checkbox-text {
    flex: 1;
}

.dpqc-quote-option-price {
    margin-left: auto;
    white-space: nowrap;
}

/* ---------------------------------------------------------
 * Calculator container
 * --------------------------------------------------------- */

.dpqc-calculator {
    max-width: 720px;
    padding: 32px;
    border: 1px solid rgba(0, 0, 0, 0.10);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.06);
}


/* ---------------------------------------------------------
 * Service
 * --------------------------------------------------------- */

.dpqc-service h3 {
    margin: 0 0 24px;
    font-size: 24px;
    line-height: 1.25;
}


/* ---------------------------------------------------------
 * Fields
 * --------------------------------------------------------- */

.dpqc-field {
    margin-bottom: 18px;
}

.dpqc-field > label:not(.dpqc-checkbox-label) {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
}

.dpqc-field select,
.dpqc-field input[type="number"],
.dpqc-field input[type="text"] {
    width: 100%;
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid rgba(0, 0, 0, 0.22);
    border-radius: 6px;
    background: #fff;
    font: inherit;
}


/* ---------------------------------------------------------
 * Checkbox fields
 * --------------------------------------------------------- */

.dpqc-checkbox-label {
    display: flex;
    align-items: center;
    gap: 9px;
    cursor: pointer;
}

.dpqc-checkbox-label input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    flex: 0 0 auto;
}


/* ---------------------------------------------------------
 * Additional services
 * --------------------------------------------------------- */

.dpqc-quote-options {
    margin-top: 28px;
    padding: 22px 0;
    border-top: 1px solid rgba(0, 0, 0, 0.12);
    border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}

.dpqc-quote-options-heading {
    margin: 0 0 16px;
    font-size: 18px;
}

.dpqc-quote-options .dpqc-field {
    margin-bottom: 12px;
}

.dpqc-quote-options .dpqc-field:last-child {
    margin-bottom: 0;
}

.dpqc-quote-option .dpqc-checkbox-label {
    width: 100%;
}

.dpqc-quote-option .dpqc-checkbox-text {
    flex: 1;
}

.dpqc-quote-option-price {
    margin-left: auto;
    font-weight: 600;
    white-space: nowrap;
}


/* ---------------------------------------------------------
 * Actions
 * --------------------------------------------------------- */

.dpqc-service-actions {
    display: flex;
    gap: 10px;
    margin-top: 22px;
    flex-wrap: wrap;
}

.dpqc-service-actions button {
    min-height: 42px;
    padding: 9px 18px;
    border-radius: 6px;
    cursor: pointer;
    font: inherit;
}


/* ---------------------------------------------------------
 * Calculated price
 * --------------------------------------------------------- */

.dpqc-calculated-price {
    margin-top: 18px;
    font-size: 18px;
}

.dpqc-calculated-price strong {
    font-size: 22px;
}


/* ---------------------------------------------------------
 * Estimate
 * --------------------------------------------------------- */

.dpqc-estimate {
    margin-top: 32px;
    padding-top: 26px;
    border-top: 2px solid rgba(0, 0, 0, 0.12);
}

.dpqc-estimate h3 {
    margin: 0 0 18px;
    font-size: 22px;
}


/* ---------------------------------------------------------
 * Mobile
 * --------------------------------------------------------- */

@media (max-width: 600px) {

    .dpqc-calculator {
        padding: 20px;
        border-radius: 8px;
    }

    .dpqc-service h3 {
        font-size: 21px;
    }
}

/* ---------------------------------------------------------
 * Compact desktop layout
 * --------------------------------------------------------- */

.dpqc-calculator {
    max-width: 520px;
    padding: 24px;
}

.dpqc-field {
    margin-bottom: 13px;
}

.dpqc-field select,
.dpqc-field input[type="number"],
.dpqc-field input[type="text"] {
    min-height: 38px;
    padding: 6px 10px;
}

.dpqc-service h3 {
    margin-bottom: 18px;
}

.dpqc-quote-options {
    margin-top: 20px;
    padding: 16px 0;
}

.dpqc-service-actions {
    margin-top: 14px;
}

.dpqc-estimate {
    margin-top: 22px;
    padding-top: 18px;
}


/* ---------------------------------------------------------
 * Estimate rows
 * --------------------------------------------------------- */

.dpqc-estimate-quote-charge {
    padding: 12px 0;
}

.dpqc-estimate-row-main {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 24px;
}

.dpqc-estimate-row-title {
    flex: 1;
}

.dpqc-estimate-row-price {
    flex: 0 0 auto;
    white-space: nowrap;
}

.dpqc-remove-quote-charge {
    margin-top: 6px;
}


.dpqc-estimate-item {
    padding: 12px 0;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.dpqc-estimate-item-description {
    margin-top: 4px;
    line-height: 1.4;
}

.dpqc-remove-estimate-item {
    margin-top: 6px;
}


/* ---------------------------------------------------------
 * Estimate total
 * --------------------------------------------------------- */

.dpqc-estimate-total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 24px;

    margin-top: 10px;
    padding-top: 14px;

    border-top: 2px solid rgba(0, 0, 0, 0.18);

    font-size: 17px;
    font-weight: 600;
}

.dpqc-estimate-total strong {
    font-size: 20px;
    white-space: nowrap;
}


/* ---------------------------------------------------------
 * Compact field layout
 * --------------------------------------------------------- */

.dpqc-field {
    margin-bottom: 10px;
}

.dpqc-field > label:not(.dpqc-checkbox-label) {
    margin-bottom: 4px;
}


/* Normal inputs do not need to fill the entire card */
.dpqc-field select,
.dpqc-field input[type="number"],
.dpqc-field input[type="text"] {
    width: 100%;
    max-width: 300px;
    min-height: 34px;
    padding: 4px 8px;
}


/* Keep units close to their input */
.dpqc-field-unit {
    margin-left: 6px;
}


/* ---------------------------------------------------------
 * Compact quantity control
 * --------------------------------------------------------- */

.dpqc-quantity-control {
    display: inline-flex;
    align-items: stretch;
    vertical-align: middle;
}

.dpqc-quantity-control .dpqc-quantity-input {
    width: 70px;
    min-height: 34px;
    padding: 4px 8px;
    text-align: center;
    border-radius: 0;
}

.dpqc-quantity-minus,
.dpqc-quantity-plus {
    width: 34px;
    min-width: 34px;
    min-height: 34px;
    padding: 0;
    cursor: pointer;
}

.dpqc-quantity-minus {
    border-radius: 6px 0 0 6px;
}

.dpqc-quantity-plus {
    border-radius: 0 6px 6px 0;
}


/* ---------------------------------------------------------
 * Tighten checkbox groups
 * --------------------------------------------------------- */

.dpqc-checkbox-label {
    min-height: 26px;
}

.dpqc-quote-options {
    margin-top: 16px;
    padding: 14px 0;
}

.dpqc-quote-options-heading {
    margin-bottom: 10px;
}

/* Quantity: force genuinely compact sizing */
.dpqc-quantity-control {
    display: inline-flex;
    align-items: stretch;
    width: auto;
}

.dpqc-quantity-control .dpqc-quantity-input {
    flex: 0 0 64px;
    width: 64px;
    max-width: 64px;
    min-width: 0;
}

.dpqc-quantity-minus,
.dpqc-quantity-plus {
    flex: 0 0 34px;
}

/* ---------------------------------------------------------
 * Live calculated price
 * --------------------------------------------------------- */

.dpqc-live-result {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);

    font-size: 15px;
    font-weight: 600;
}


/* ---------------------------------------------------------
 * Compact action buttons
 * --------------------------------------------------------- */

.dpqc-service-actions {
    margin-top: 14px;
    gap: 8px;
}

.dpqc-service-actions button {
    min-height: 36px;
    padding: 6px 12px;
}

/* DPQC frontend refresh — scoped to plugin markup only. */
.dpqc-calculator {
    box-sizing: border-box;
    width: 100%;
    max-width: 760px;
    padding: clamp(18px, 3vw, 32px);
    border: 1px solid #e2e6eb;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 6px 24px rgba(20, 30, 40, .045);
    color: #243040;
}
.dpqc-calculator *, .dpqc-calculator *::before, .dpqc-calculator *::after { box-sizing: border-box; }
.dpqc-calculator .dpqc-service {
    padding: clamp(16px, 2.5vw, 24px);
    margin: 0 0 18px;
    border: 1px solid #e0e5eb;
    border-radius: 11px;
    background: #fafbfd;
}
.dpqc-calculator .dpqc-service h3 {
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid #e5e9ee;
    font-size: clamp(19px, 2.5vw, 23px);
    line-height: 1.35;
    color: #1c2938;
}
.dpqc-calculator .dpqc-field { margin-bottom: 15px; }
.dpqc-calculator .dpqc-field > label:not(.dpqc-checkbox-label) { margin-bottom: 6px; }
.dpqc-calculator .dpqc-field select,
.dpqc-calculator .dpqc-field input[type="number"],
.dpqc-calculator .dpqc-field input[type="text"] {
    max-width: 100%;
    min-height: 42px;
    padding: 8px 11px;
    border: 1px solid #c9d1dc;
    border-radius: 7px;
    background: #fff;
    color: inherit;
}
.dpqc-calculator .dpqc-field :is(select, input):focus-visible,
.dpqc-calculator button:focus-visible { outline: 2px solid #2b648f; outline-offset: 2px; }
.dpqc-calculator .dpqc-quantity-control .dpqc-quantity-input { min-height: 40px; }
.dpqc-calculator .dpqc-quantity-minus, .dpqc-calculator .dpqc-quantity-plus { min-height: 40px; }
.dpqc-calculator .dpqc-live-results:not(:empty) {
    margin-top: 20px;
    padding: 12px 14px;
    border: 1px solid #dbe5ee;
    border-radius: 8px;
    background: #f1f6fa;
}
.dpqc-calculator .dpqc-live-result { margin: 0; padding: 0; border: 0; }
.dpqc-calculator .dpqc-service-actions { margin-top: 12px; gap: 10px; }
.dpqc-calculator .dpqc-service-actions button {
    min-height: 42px;
    padding: 9px 16px;
    border: 1px solid #bac5d0;
    border-radius: 7px;
    background: #fff;
    color: #243040;
    font-weight: 600;
    transition: background-color .15s ease, border-color .15s ease;
}
.dpqc-calculator .dpqc-service-actions .dpqc-add-to-estimate {
    background: #243f57;
    color: #fff;
    border-color: #243f57;
}
.dpqc-calculator .dpqc-service-actions .dpqc-add-to-estimate:hover { background: #355a78; }
.dpqc-calculator .dpqc-service-actions .dpqc-clear-service:hover { background: #e9eef3; }
.dpqc-calculator .dpqc-quote-options { border-color: #dfe5eb; }
.dpqc-calculator .dpqc-estimate {
    margin-top: 24px;
    padding: 22px clamp(14px, 2vw, 24px);
    border: 1px solid #d7e0e8;
    border-radius: 11px;
    background: #fff;
}
.dpqc-calculator .dpqc-estimate-heading { margin: 0 0 14px; color: #1c2938; }
.dpqc-calculator .dpqc-estimate-item,
.dpqc-calculator .dpqc-estimate-quote-charge { padding: 14px 0; border-top: 1px solid #e5e9ee; }
.dpqc-calculator .dpqc-estimate-item-description { color: #5b6674; font-size: .93em; }
.dpqc-calculator .dpqc-estimate-row-main { gap: 14px; }
.dpqc-calculator .dpqc-estimate-row-price { white-space: nowrap; }
.dpqc-calculator .dpqc-estimate-total { border-top-color: #b9c9d6; }
.dpqc-calculator :is(.dpqc-remove-estimate-item, .dpqc-remove-quote-charge) {
    border: 0; padding: 3px 0; background: transparent; color: #8a3640;
    font: inherit; font-size: .9em; text-decoration: underline; cursor: pointer;
}
@media (max-width: 600px) {
    .dpqc-calculator { padding: 14px; }
    .dpqc-calculator .dpqc-service { padding: 16px; }
    .dpqc-calculator .dpqc-service-actions { flex-direction: column; }
    .dpqc-calculator .dpqc-service-actions button { width: 100%; }
    .dpqc-calculator .dpqc-estimate-row-main { flex-wrap: wrap; }
}

/* Enquiry workflow */
.dpqc-calculator .dpqc-enquiry[hidden] { display: none !important; }
.dpqc-calculator .dpqc-enquiry { margin-top: 1.5rem; padding: 1.2rem; border: 1px solid #d7dce3; border-radius: 10px; }
.dpqc-calculator .dpqc-enquiry-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem 1rem; }
.dpqc-calculator .dpqc-enquiry-field { display: flex; flex-direction: column; gap: .35rem; }
.dpqc-calculator .dpqc-enquiry-field:has(textarea), .dpqc-calculator .dpqc-enquiry-notice, .dpqc-calculator .dpqc-enquiry-status { grid-column: 1 / -1; }
.dpqc-calculator .dpqc-enquiry-field input, .dpqc-calculator .dpqc-enquiry-field textarea { width: 100%; box-sizing: border-box; }
.dpqc-calculator .dpqc-enquiry-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.dpqc-calculator .dpqc-enquiry-submit { justify-self: start; }
@media(max-width:600px) { .dpqc-calculator .dpqc-enquiry-form { grid-template-columns: 1fr; } }

/* Clear, accessible feedback for manual additions and enquiry submission. */
.dpqc-calculator .dpqc-service-actions .dpqc-add-to-estimate.dpqc-add-confirmed,
.dpqc-calculator .dpqc-service-actions .dpqc-add-to-estimate.dpqc-add-confirmed:hover {
    background: #237447;
    border-color: #237447;
    color: #fff;
}
.dpqc-calculator .dpqc-estimate-item.dpqc-item-new {
    animation: dpqc-new-item-highlight 2.2s ease-out;
}
@keyframes dpqc-new-item-highlight {
    0% { background-color: #dff3e5; box-shadow: 0 0 0 6px #dff3e5; }
    100% { background-color: transparent; box-shadow: 0 0 0 0 transparent; }
}
.dpqc-calculator .dpqc-enquiry-submit[aria-busy="true"] {
    opacity: .72;
    cursor: progress;
}
@media (prefers-reduced-motion: reduce) {
    .dpqc-calculator .dpqc-estimate-item.dpqc-item-new { animation: none; background: #e6f4ea; }
}

/* Per-calculator presentation (pricing logic is unchanged). */
.dpqc-calculator[data-service-layout="grid"] .dpqc-services-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start; }
.dpqc-calculator[data-service-layout="grid"] .dpqc-service {min-width:0;margin:0;}
.dpqc-service-selector-label {display:block;margin:0 0 20px;font-weight:600;}
.dpqc-service-selector {display:block;width:100%;max-width:500px;margin-top:7px;padding:10px;}
.dpqc-calculator[data-service-layout="dropdown"] .dpqc-service {display:none;}
.dpqc-calculator[data-service-layout="dropdown"] .dpqc-service.dpqc-selected-service {display:block;}
.dpqc-quote-options-toggle {display:block;width:100%;text-align:left;padding:9px 12px;margin:0 0 10px;cursor:pointer;}
@media(max-width:767px){.dpqc-calculator[data-service-layout="grid"] .dpqc-services-grid{grid-template-columns:1fr;}}

/* Per-calculator presentation options. */
.dpqc-calculator { max-width: var(--dpqc-max-width, 720px); }
.dpqc-calculator[data-density="compact"] { padding: 14px; }
.dpqc-calculator[data-density="compact"] .dpqc-service { padding: 12px; }
.dpqc-calculator[data-density="compact"] .dpqc-service h3 { font-size: 19px; margin-bottom: 10px; }
.dpqc-calculator[data-density="compact"] .dpqc-field { margin-bottom: 8px; }
.dpqc-calculator[data-density="compact"] .dpqc-field > label:not(.dpqc-checkbox-label) { margin-bottom: 3px; }
.dpqc-calculator[data-density="compact"] .dpqc-field select,
.dpqc-calculator[data-density="compact"] .dpqc-field input[type="number"],
.dpqc-calculator[data-density="compact"] .dpqc-field input[type="text"] { padding: 5px 8px; min-height: 34px; }

/* Quote-only services use their own full-width layout. */
.dpqc-calculator .dpqc-quote-services-group { width:100%; margin-top:18px; display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
.dpqc-calculator .dpqc-quote-services-group[data-quote-layout="grid"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
.dpqc-calculator .dpqc-quote-services-group .dpqc-service { display:block; width:100%; min-width:0; margin:0; }
@media(max-width:767px) { .dpqc-calculator .dpqc-quote-services-group[data-quote-layout="grid"] { grid-template-columns:minmax(0,1fr); } }

/* Quote-only service refinement: consistent hierarchy and separated extras. */
.dpqc-calculator .dpqc-quote-services-group .dpqc-service > h3 {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.35;
    margin: 0 0 14px;
}
.dpqc-calculator .dpqc-quote-services-group .dpqc-quote-options {
    margin-top: 0;
    padding: 0;
    border-top: 0;
    border-bottom: 0;
}
.dpqc-calculator .dpqc-quote-services-group .dpqc-quote-option {
    padding: 14px 0;
    margin: 0;
    border-bottom: 1px solid rgba(0,0,0,.12);
}
.dpqc-calculator .dpqc-quote-services-group .dpqc-quote-option:last-child {
    border-bottom: 0;
}
.dpqc-calculator .dpqc-quote-services-group .dpqc-quote-option > label,
.dpqc-calculator .dpqc-quote-services-group .dpqc-quote-option .dpqc-checkbox-text {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
}
.dpqc-calculator .dpqc-quote-services-group .dpqc-quote-option-price {
    font-size: 15px;
    font-weight: 600;
}
.dpqc-calculator .dpqc-quote-services-group .dpqc-quote-unit-rate {
    color: #586575;
    font-size: 13px;
    font-weight: 400;
    margin-top: 5px;
}

/* Native number spinner: no oversized custom quantity buttons. */
.dpqc-calculator .dpqc-quantity-control { display:inline-block; width:auto; }
.dpqc-calculator .dpqc-quantity-control .dpqc-quantity-input {
  box-sizing:border-box; width:88px; min-width:88px; max-width:88px;
  min-height:38px; padding:5px 7px; text-align:left; border-radius:5px;
  appearance:auto; -moz-appearance:auto;
}
.dpqc-calculator .dpqc-quantity-input::-webkit-inner-spin-button,
.dpqc-calculator .dpqc-quantity-input::-webkit-outer-spin-button {
  -webkit-appearance:auto; opacity:1;
}
.dpqc-quote-feedback { margin:8px 0; font-size:13px; font-weight:600; }

/* DPQC public price list: independent of calculator layout */
.dpqc-pricelist{max-width:100%;margin:2rem 0;padding:1.5rem;border:1px solid #d8dce0;border-radius:12px;background:transparent}
.dpqc-pricelist-service{margin:1.5rem 0 2rem}
.dpqc-pricelist-service h3{margin:0 0 .75rem}
.dpqc-pricelist table{width:100%;border-collapse:collapse;table-layout:auto}
.dpqc-pricelist th,.dpqc-pricelist td{padding:.75rem 1rem;border-bottom:1px solid #e3e6e8;text-align:left;vertical-align:top}
.dpqc-pricelist thead th{font-weight:700;background:rgba(128,128,128,.07)}
.dpqc-pricelist td:last-child{text-align:right;white-space:normal}
@media(max-width:600px){.dpqc-pricelist{padding:1rem}.dpqc-pricelist th,.dpqc-pricelist td{padding:.65rem .4rem}}

/* Hinnakiri v2: independently configurable responsive pricing layout */
.dpqc-pricelist.dpqc-pl-v2{box-sizing:border-box;width:100%;margin:2rem auto;padding:clamp(12px,2vw,24px);min-width:0}
.dpqc-pl-v2[data-width="theme"]{max-width:100%}
.dpqc-pl-v2[data-width="full"]{max-width:100%}
.dpqc-pl-v2 .dpqc-pricelist-service{min-width:0;margin:1.2rem 0}
.dpqc-pl-v2 .dpqc-pl-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.dpqc-pl-v2 table{width:100%;table-layout:auto;border-collapse:collapse;font-size:clamp(13px,1vw,15px)}
.dpqc-pl-v2 th,.dpqc-pl-v2 td{padding:9px 12px;white-space:normal;overflow-wrap:anywhere}
.dpqc-pl-v2[data-density="compact"] th,.dpqc-pl-v2[data-density="compact"] td{padding:5px 9px}
.dpqc-pl-v2 tbody td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}
.dpqc-pl-v2 thead th:not(:first-child){text-align:right}
.dpqc-pl-v2 .dpqc-pl-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.dpqc-pl-v2 .dpqc-pl-card{padding:12px;border:1px solid #ddd;border-radius:8px}
.dpqc-pl-v2 .dpqc-pl-card>div{display:flex;justify-content:space-between;gap:8px;padding-top:5px;font-size:13px}
@media(max-width:600px){.dpqc-pl-v2 th,.dpqc-pl-v2 td{padding:5px!important;font-size:12px}}

/* Configurable primary service grid (v0.1.2). */
@media (min-width: 1200px) {
    .dpqc-calculator[data-service-layout="grid"] .dpqc-services-grid {
        grid-template-columns: repeat(var(--dpqc-grid-desktop, 2), minmax(0, 1fr));
    }
}
@media (min-width: 601px) and (max-width: 1199px) {
    .dpqc-calculator[data-service-layout="grid"] .dpqc-services-grid {
        grid-template-columns: repeat(var(--dpqc-grid-tablet, 2), minmax(0, 1fr));
    }
}
@media (max-width: 600px) {
    .dpqc-calculator[data-service-layout="grid"] .dpqc-services-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}
@media (min-width: 601px) {
    .dpqc-calculator[data-service-layout="grid"][data-equal-cards="1"] .dpqc-services-grid {
        align-items: stretch;
        grid-auto-rows: 1fr;
    }
    .dpqc-calculator[data-service-layout="grid"][data-equal-cards="1"] .dpqc-services-grid > .dpqc-service {
        height: 100%;
    }
    .dpqc-calculator[data-service-layout="grid"][data-align-actions="1"] .dpqc-services-grid > .dpqc-service {
        display: flex;
        flex-direction: column;
    }
    .dpqc-calculator[data-service-layout="grid"][data-align-actions="1"] .dpqc-services-grid > .dpqc-service > .dpqc-service-actions {
        margin-top: auto;
        padding-top: 14px;
    }
}

/* v0.1.3 — consistent, theme-neutral calculator control hierarchy. */
.dpqc-calculator .dpqc-services-grid > .dpqc-service > h3 {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 12px;
    padding-bottom: 10px;
    overflow-wrap: anywhere;
}
.dpqc-calculator[data-density="compact"] .dpqc-services-grid > .dpqc-service > h3 {
    font-size: 18px;
    margin-bottom: 12px;
}
.dpqc-calculator .dpqc-services-grid .dpqc-field > label:not(.dpqc-checkbox-label) {
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
}
.dpqc-calculator .dpqc-services-grid .dpqc-field select,
.dpqc-calculator .dpqc-services-grid .dpqc-field input[type="number"],
.dpqc-calculator .dpqc-services-grid .dpqc-field input[type="text"] {
    font-size: 14px;
    font-weight: 400;
}
.dpqc-calculator .dpqc-services-grid .dpqc-checkbox-label,
.dpqc-calculator .dpqc-quote-services-group .dpqc-checkbox-label {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 28px;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.35;
}
.dpqc-calculator .dpqc-services-grid .dpqc-checkbox-label input[type="checkbox"],
.dpqc-calculator .dpqc-quote-services-group .dpqc-checkbox-label input[type="checkbox"] {
    appearance: auto;
    -webkit-appearance: checkbox;
    width: 16px;
    height: 16px;
    min-width: 16px;
    min-height: 16px;
    padding: 0;
    margin: 0;
    flex: 0 0 16px;
    vertical-align: middle;
}
.dpqc-calculator .dpqc-services-grid .dpqc-service-actions {
    gap: 6px;
    align-items: flex-start;
}
.dpqc-calculator .dpqc-services-grid .dpqc-service-actions button {
    width: auto;
    max-width: 100%;
    min-height: 34px;
    padding: 7px 9px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
    white-space: normal;
    text-align: center;
}
.dpqc-calculator .dpqc-services-grid .dpqc-service-actions .dpqc-add-to-estimate {
    flex: 0 1 auto;
}
.dpqc-calculator .dpqc-services-grid .dpqc-service-actions .dpqc-clear-service {
    font-weight: 500;
}
@media (max-width: 600px) {
    .dpqc-calculator .dpqc-services-grid .dpqc-service-actions button {
        width: 100%;
        font-size: 13px;
    }
}

/* v0.1.4 — balanced typography and consistent controls.
   These rules intentionally override earlier compact declarations. */
.dpqc-calculator .dpqc-services-grid > .dpqc-service > h3,
.dpqc-calculator[data-density="compact"] .dpqc-services-grid > .dpqc-service > h3 {
    font-size: 16px; font-weight: 600; line-height: 1.35; margin-bottom: 15px; padding-bottom: 10px;
}
.dpqc-calculator .dpqc-services-grid .dpqc-field { margin-bottom: 15px; }
.dpqc-calculator .dpqc-services-grid .dpqc-field > label:not(.dpqc-checkbox-label) {
    display: block; margin-bottom: 5px; font-size: 13px; font-weight: 500; line-height: 1.4;
}
.dpqc-calculator .dpqc-services-grid .dpqc-field select,
.dpqc-calculator .dpqc-services-grid .dpqc-field input[type="number"],
.dpqc-calculator .dpqc-services-grid .dpqc-field input[type="text"] {
    min-height: 35px; padding: 6px 9px; font-size: 14px; font-weight: 400;
}
.dpqc-calculator .dpqc-field-unit {
    display: inline-block; margin: 3px 0 0 4px; font-size: 12px; font-weight: 400;
    line-height: 1.4; color: #647181;
}
.dpqc-calculator .dpqc-services-grid .dpqc-checkbox-label,
.dpqc-calculator .dpqc-quote-services-group .dpqc-checkbox-label {
    display: flex; align-items: center; gap: 8px; min-height: 30px;
    font-size: 13px; font-weight: 400; line-height: 1.4;
}
.dpqc-calculator .dpqc-services-grid .dpqc-checkbox-label input[type="checkbox"],
.dpqc-calculator .dpqc-quote-services-group .dpqc-checkbox-label input[type="checkbox"] {
    appearance: auto; -webkit-appearance: checkbox; width: 16px; height: 16px;
    min-width: 16px; min-height: 16px; max-width: 16px;
    margin: 0; padding: 0; flex: 0 0 16px;
}
/* Identical action sizing in primary and quote-level services. */
.dpqc-calculator .dpqc-service-actions {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
}
.dpqc-calculator .dpqc-service-actions button,
.dpqc-calculator .dpqc-services-grid .dpqc-service-actions button {
    box-sizing: border-box; width: auto; max-width: 100%;
    height: 34px; min-height: 34px; padding: 0 12px;
    border-radius: 4px; font-size: 13px; font-weight: 600;
    line-height: 1.2; white-space: normal; text-align: center;
}
.dpqc-calculator .dpqc-service-actions .dpqc-clear-service,
.dpqc-calculator .dpqc-services-grid .dpqc-service-actions .dpqc-clear-service {
    font-size: 12px; font-weight: 400;
}
.dpqc-calculator :is(input, select, button):focus-visible {
    outline: 2px solid #2b648f; outline-offset: 2px;
}
@media (max-width: 600px) {
    .dpqc-calculator .dpqc-services-grid .dpqc-service-actions button {
        width: auto; min-width: 0;
    }
}

/* v0.1.5 — consistent quotation typography and spacing. */
.dpqc-calculator .dpqc-estimate .dpqc-estimate-heading {
    font-size: 16px; font-weight: 600; line-height: 1.4; margin-bottom: 12px;
}
.dpqc-calculator .dpqc-estimate-row-title,
.dpqc-calculator .dpqc-estimate-item .dpqc-estimate-row-title {
    font-size: 14px; font-weight: 500; line-height: 1.45;
}
.dpqc-calculator .dpqc-estimate-row-price { font-size: 14px; font-weight: 500; }
.dpqc-calculator .dpqc-estimate-item-description {
    font-size: 12px; line-height: 1.5; color: #647181;
}
.dpqc-calculator .dpqc-remove-estimate-item,
.dpqc-calculator .dpqc-remove-quote-charge { font-size: 12px; }
.dpqc-calculator .dpqc-estimate-item,
.dpqc-calculator .dpqc-estimate-quote-charge { padding: 10px 0; }
.dpqc-calculator .dpqc-estimate-subtotal,
.dpqc-calculator .dpqc-estimate-tax { font-size: 13px; line-height: 1.5; }
.dpqc-calculator .dpqc-estimate-total { font-size: 13px; }
.dpqc-calculator .dpqc-estimate-total strong { font-size: 15px; font-weight: 700; }
.dpqc-calculator .dpqc-enquiry h3 { font-size: 16px; font-weight: 600; }
.dpqc-calculator .dpqc-enquiry-field label { font-size: 13px; font-weight: 500; }
.dpqc-calculator .dpqc-enquiry-field input,
.dpqc-calculator .dpqc-enquiry-field textarea { font-size: 14px; }


/* v0.1.6 — enquiry form matches the calculator control system. */
.dpqc-calculator .dpqc-enquiry {
    color: #25384a;
}
.dpqc-calculator .dpqc-enquiry h3 {
    margin: 0 0 14px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
}
.dpqc-calculator .dpqc-enquiry-form {
    gap: 14px 16px;
    align-items: start;
}
.dpqc-calculator .dpqc-enquiry-field {
    min-width: 0;
    gap: 6px;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
}
.dpqc-calculator .dpqc-enquiry-field input:not([type="checkbox"]),
.dpqc-calculator .dpqc-enquiry-field textarea {
    display: block;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    padding: 8px 10px;
    border: 1px solid #cbd5df;
    border-radius: 5px;
    background: #fff;
    color: #25384a;
    font-family: inherit;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.4;
    box-shadow: none;
}
.dpqc-calculator .dpqc-enquiry-field input:not([type="checkbox"]) {
    height: 36px;
    min-height: 36px;
}
.dpqc-calculator .dpqc-enquiry-field textarea {
    min-height: 90px;
    height: auto;
    resize: vertical;
}
.dpqc-calculator .dpqc-enquiry-field :is(input, textarea):focus-visible {
    border-color: #557a99;
    outline: 2px solid #557a99;
    outline-offset: 1px;
}
.dpqc-calculator .dpqc-enquiry-notice {
    margin: 2px 0 0;
    color: #5d6b79;
    font-size: 12px;
    line-height: 1.5;
}
.dpqc-calculator .dpqc-enquiry-submit {
    grid-column: 1 / -1;
    justify-self: start;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: auto;
    min-width: 0;
    height: 34px;
    min-height: 34px;
    margin: 0;
    padding: 0 12px;
    border: 1px solid #25435c;
    border-radius: 4px;
    background: #25435c;
    color: #fff;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}
.dpqc-calculator .dpqc-enquiry-submit:hover {
    background: #355a78;
    border-color: #355a78;
    color: #fff;
}
.dpqc-calculator .dpqc-enquiry-submit:focus-visible {
    outline: 2px solid #557a99;
    outline-offset: 3px;
}
.dpqc-calculator .dpqc-enquiry-status {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
}
@media (max-width: 600px) {
    .dpqc-calculator .dpqc-enquiry { padding: 14px; }
    .dpqc-calculator .dpqc-enquiry-form { grid-template-columns: minmax(0, 1fr); }
}


/* v0.1.10 — Responsive price-list columns: share available width evenly.
   Headings and prices use identical column geometry and alignment.
   Wrapping happens naturally at spaces, never inside a word. */
@media (max-width: 600px) {
    .dpqc-pl-v2 .dpqc-pl-scroll {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }
    .dpqc-pl-v2 .dpqc-pl-scroll table {
        width: 100%;
        min-width: 0;
        table-layout: fixed;
    }
    .dpqc-pl-v2 .dpqc-pl-scroll th,
    .dpqc-pl-v2 .dpqc-pl-scroll td {
        box-sizing: border-box;
        white-space: normal;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: none;
        padding: 5px 3px !important;
        font-size: clamp(10px, 2.8vw, 12px);
        line-height: 1.35;
        text-align: center;
        vertical-align: middle;
    }
    /* Keep the axis compact; split remaining width evenly across all price columns. */
    .dpqc-pl-v2 .dpqc-pl-scroll th:first-child {
        width: 26%;
        text-align: center;
    }
    .dpqc-pl-v2 .dpqc-pl-scroll thead th:not(:first-child),
    .dpqc-pl-v2 .dpqc-pl-scroll tbody td:not(:first-child) {
        text-align: center;
    }
}

/* v0.1.11: optional explanatory text in price-list extras. */
.dpqc-pl-extra-description{margin-top:4px;font-size:.9em;line-height:1.5;opacity:.78;white-space:normal}

/* v0.1.13 — align every amount to the same right edge. */
.dpqc-calculator .dpqc-estimate-subtotal:not([hidden]),
.dpqc-calculator .dpqc-estimate-tax:not([hidden]) {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}
.dpqc-calculator .dpqc-estimate-subtotal strong,
.dpqc-calculator .dpqc-estimate-tax strong {
    margin-left: auto;
    text-align: right;
    white-space: nowrap;
}
/* Confirmation lives outside the hidden estimate, and remains visible. */
.dpqc-calculator .dpqc-enquiry-confirmation:not(:empty) {
    display: block;
    margin: 16px 0;
    padding: 14px 16px;
    border: 1px solid #a6c9b5;
    border-radius: 6px;
    background: #f0f8f2;
    color: #245b38;
    font-weight: 600;
}
