/* Approved Tank quote flow. Product shell and pricing primitives come from shared site CSS. */
.tq-page { max-width: 1320px; padding-inline: 24px; padding-bottom: 24px; }
.tq-page .tank-landing-breadcrumbs { padding-block: 6px 10px; }
.tq-skip { position: absolute; left: -9999px; }
.tq-skip:focus { left: 12px; top: 12px; z-index: 1200; padding: 12px; background: white; }
.tq-page :is(a,button,input,select):focus-visible { outline: 3px solid #bf0a30; outline-offset: 3px; }
.tq-page :is(input,select,button,[tabindex]) { scroll-margin-block: 110px; }
.tq-steps { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; margin: 0 0 8px; padding: 5px; list-style: none; border: 1px solid #102f57; border-radius: 8px; background: #102f57; }
.tq-steps a,.tq-step { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; height: 100%; padding: 8px 4px; border: 1px solid #52718f; border-radius: 6px; color: #bfd2e4; background: #1b456f; font-size: .88rem; font-weight: 700; text-align: center; text-decoration: none; }
.tq-steps .is-current { color: white; background: #b21f2d; border-color: #b21f2d; }
.tq-steps .is-complete { color: #14345b; background: #e8f7f4; border-color: #8fd2ca; }
.tq-steps a:hover { background: #d1e8e4; }
.tq-steps a:focus-visible { outline-color: white; }
.tq-steps :is(a,.tq-step)>span { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; flex-shrink: 0; border-radius: 5px; background: rgb(255 255 255 / 14%); }
.tq-panel { padding: 12px; border: 1px solid #c8d8ea; border-radius: 8px; box-shadow: 0 2px 8px rgb(20 52 91 / 8%); background: white; }
.tq-heading { padding: 12px 18px; background: #102f57; border-bottom: 4px solid #b21f2d; text-align: center; }
.tq-heading h1 { margin: 0; color: white; font-size: clamp(1.5rem,2.2vw,1.9rem); line-height: 1.12; }
.tq-form fieldset { min-width: 0; margin: 0; padding: 14px 8px; border: 0; }
.tq-intro,.tq-note { text-align: center; margin: 0 0 12px; color: #38566f; }
.tq-note { margin: 12px 0 0; font-size: .9rem; }
.tq-shape-grid,.tq-attachment-grid,.tq-fitting-grid,.tq-measurement-layout { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.tq-choice { display: flex; flex-direction: column; align-items: center; gap: 12px; margin: 0; padding: 16px; border: 2px solid #c8d8ea; border-left: 6px solid #14345b; border-radius: 8px; background: white; text-align: center; color: #14345b; font-weight: 700; cursor: pointer; }
.tq-choice:has(input:checked) { border-color: #b21f2d; background: #fff7f8; }
.tq-choice:hover { border-color: #b21f2d; }
.tq-choice input { width: 18px; height: 18px; accent-color: #b21f2d; vertical-align: middle; }
.tq-choice img { width: 200px; max-width: 100%; height: 160px; object-fit: contain; }
.tq-choice small,.tq-description { color: #38566f; font-weight: 400; font-size: .9rem; line-height: 1.5; }
.tq-attachment img { width: 112px; height: 140px; padding: 8px; border: 1px solid #d8e3ef; border-radius: 6px; background: white; }
.tq-custom-shape { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 20px; border: 1px solid #b8d9d5; border-left: 6px solid #0f7f72; border-radius: 8px; background: #e8f7f4; text-align: center; }
.tq-custom-shape h2 { font-size: 1.4rem; }
.tq-custom-shape .cta-button { white-space: normal; }
.tq-measure-card,.tq-fitting-card { min-width: 0; margin: 0; padding: 16px; border: 1px solid #c8d8ea; border-top: 4px solid #14345b; border-radius: 6px; text-align: center; }
.tq-measure-card h2,.tq-fitting-card h2 { margin: 0 0 12px; color: #14345b; font-size: 1.1rem; }
.tq-measure-card dl { margin: 0; font-size: .9rem; line-height: 1.5; }
.tq-measure-card dl>div { margin-bottom: 12px; }
.tq-measure-card dd { margin: 4px 0 0; }
.tq-allowance { margin: 0 0 12px; padding: 12px; background: #e8f7f4; border-block: 1px solid #b8d9d5; font-size: .9rem; line-height: 1.5; }
.tq-allowance strong { display: block; margin-bottom: 4px; }
.tq-diagram img { display: block; width: auto; max-width: 100%; height: auto; max-height: 220px; margin: 0 auto 12px; object-fit: contain; }
.tq-diagram figcaption { font-size: .88rem; color: #38566f; }
.tq-measure-entry { background: #f4f7fb; }
.tq-dimension { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px 12px; margin: 12px auto; max-width: 320px; }
.tq-dimension>span,.tq-dimension>.tq-error { grid-column: 1/-1; font-weight: 600; }
.tq-unit { position: relative; min-width: 0; }
.tq-unit input { width: 100%; min-width: 0; min-height: 44px; padding: 10px 32px; border: 1px solid #889cb2; border-radius: 4px; background: white; color: #14345b; text-align: center; font-variant-numeric: tabular-nums; appearance: textfield; }
.tq-unit input::-webkit-inner-spin-button { appearance: none; }
.tq-unit>span:last-child { position: absolute; right: 10px; top: 12px; font-size: .8rem; pointer-events: none; }
.tq-overlap { display: block; margin-top: 16px; font-size: .9rem; }
.tq-overlap input { accent-color: #b21f2d; }
.tq-fitting-card { display: flex; flex-direction: column; align-items: center; }
.tq-fitting-card img { width: 150px; max-width: 100%; height: 110px; object-fit: contain; margin-bottom: 12px; }
.tq-fitting-card p { margin: 0 0 16px; color: #38566f; font-size: .9rem; line-height: 1.5; }
.tq-quantity { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; margin-top: auto; padding: 12px; border-top: 1px solid #d8e3ef; background: #f4f7fb; }
.tq-quantity select { width: 80px; min-height: 44px; padding: 8px; border: 1px solid #889cb2; border-radius: 4px; text-align: center; background: white; color: #14345b; }
.tq-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 16px; padding: 12px 8px 0; border-top: 1px solid #d8e3ef; }
.tq-actions .cta-button,.tq-custom-shape .cta-button { min-height: 44px; padding: 10px 18px; border-radius: 8px; box-shadow: none; font-size: .95rem; font-weight: 700; text-decoration: none; transition: background-color .16s ease; }
.tq-actions .cta-button { display: inline-flex; align-items: center; justify-content: center; min-width: 150px; text-align: center; }
.tq-actions .cta-button-primary { background: #102f57; color: white; }
.tq-actions .cta-button-primary:hover { background: #0a2341; transform: none; }
.tq-actions .cta-button-secondary { background: #b21f2d; color: white; border: 1px solid #b21f2d; }
.tq-custom-shape .cta-button { background: white; color: #b21f2d; border: 1px solid #c8323f; }
.tq-actions .cta-button-secondary:hover { background: #921925; color: white; transform: none; }
.tq-custom-shape .cta-button:hover { background: #fff1f2; transform: none; }
.tq-help { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 24px; padding: 10px; font-size: .9rem; text-align: center; }
.tq-error,.tq-error-summary { color: #a4161a; }
.tq-error-summary { padding: 12px; margin: 12px 8px; border: 1px solid #b21f2d; background: #fff7f8; }
.tq-error-summary h2 { font-size: 1.1rem; }
.tq-error-summary p,.tq-error-summary ul { margin-bottom: 0; }
.tq-error { font-size: .9rem; }
@media (max-width:1239px) { .tq-page { padding-inline: 20px; } }
@media (max-width:999px) { .tq-measurement-layout { grid-template-columns: repeat(2,minmax(0,1fr)); } .tq-measure-entry { grid-column: 1/-1; } }
@media (max-width:900px) { .tq-steps a,.tq-step { flex-direction: column; gap: 4px; } .tq-shape-grid,.tq-fitting-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .tq-custom-shape { grid-column: 1/-1; } }
@media (max-width:650px) { .tq-shape-grid,.tq-attachment-grid,.tq-fitting-grid,.tq-measurement-layout { grid-template-columns: minmax(0,1fr); } .tq-diagram img { max-height: 180px; } .tq-actions .cta-button { max-width: 100%; white-space: normal; } .tq-form fieldset { padding-inline: 0; } }
@media (max-width:650px) {
  .tq-steps { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
  .tq-steps > li { min-width: 0; }
  .tq-steps > li:last-child { grid-column: 1 / -1; }
  .tq-steps a,.tq-step { flex-direction: row; min-height: 44px; padding: 8px 6px; gap: 6px; font-size: .85rem; line-height: 1.25; overflow-wrap: anywhere; }
  .tq-steps :is(a,.tq-step)>span { width: 22px; height: 22px; }
}
@media (max-width:359px) { .tq-page { padding-inline: 12px; } .tq-steps a,.tq-step { gap: 4px; font-size: .75rem; } }
@media (prefers-reduced-motion:reduce) { .tq-actions .cta-button { transition: none; } }

/* Existing Tank quote content beside the shared Pool Cover pricing/shipping pattern. */
.tq-review-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 460px); gap: 20px; align-items: start; }
.tq-review-pricing { min-width: 0; }
.tq-review-pricing .pricing-card { max-width: 460px; margin-top: 0; padding: 20px 24px; color: #1f2937; }
.tq-review-pricing .pricing-card .pricing-header { font-size: 1.15rem; line-height: 1.3; text-transform: none; letter-spacing: normal; margin: 0 0 16px; text-align: center; }
/* Match the current Pool Cover final widget palette in pool-covers.css. */
.tq-review-pricing .pricing-card {
  --tq-pricing-charcoal: #1F2937;
  --tq-pricing-base-package: #334155;
  --tq-pricing-cost-add: #374151;
  --tq-pricing-discount: #15803D;
  --tq-pricing-grand-total: #1D4ED8;
  --tq-pricing-tax: #475569;
  color: var(--tq-pricing-charcoal);
}

.tq-review-pricing .pricing-card .pricing-value,
.tq-review-pricing .pricing-card .inline-shipping-amount {
  color: var(--tq-pricing-charcoal);
}

.tq-review-pricing .pricing-card .pricing-retail .pricing-value {
  color: var(--tq-pricing-base-package);
}

.tq-review-pricing .pricing-card .pricing-option .pricing-value {
  color: var(--tq-pricing-cost-add);
}

.tq-review-pricing .pricing-card .pricing-savings .pricing-value,
.tq-review-pricing .pricing-card .pricing-option .pricing-value.green,
.tq-review-pricing .pricing-card .inline-shipping-amount.inline-shipping-amount--free {
  color: var(--tq-pricing-discount);
}

.tq-review-pricing .pricing-card .pricing-subtotal .pricing-value {
  color: var(--tq-pricing-charcoal);
}

.tq-review-pricing .pricing-card .pricing-tax .pricing-value {
  color: var(--tq-pricing-tax) !important;
}

.tq-review-pricing .pricing-card .pricing-total-value {
  color: var(--tq-pricing-grand-total);
}

.tq-review-pricing .quote-cta-group { justify-content: center; }
@media (max-width: 1000px) { .tq-review-layout { grid-template-columns: minmax(0, 1fr); } .tq-review-pricing { width: 100%; max-width: 460px; margin-inline: auto; } }
@media (max-width: 500px) { .tq-review-pricing .pricing-card { padding: 20px 16px; --pricing-value-width: 90px; } .tq-review-pricing .shipping-card.shipping-inline .shipping-input-group { flex-wrap: wrap; } .tq-review-pricing .shipping-postal-input { flex-basis: 120px; } }


/* Match Pool Cover pending/success controls; keep amounts in a single value column. */
.tq-review-pricing .pricing-card { --pricing-value-width: 152px; }
.tq-review-pricing .shipping-card.shipping-inline .shipping-input-group input[type="text"] { width: 110px; max-width: 110px; flex: 0 1 110px; min-width: 0; text-align: center; }
.tq-review-pricing .pricing-actions .quote-cta-group { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.tq-review-pricing .pricing-actions .cta-button { width: 100%; min-width: 0; padding-inline: 12px; white-space: normal; }
.tq-page .tq-review-pricing button.pricing-recalc-link { border: 0; background: transparent; padding: 4px 8px; text-decoration: underline; }
.tq-review-pricing .pricing-recalc-link { margin-bottom: 12px; }
@media (max-width: 560px) {
  .tq-review-pricing .pricing-card { --pricing-value-width: 100px; }
  .tq-review-pricing .pricing-line.pricing-shipping > .pricing-label { text-align: left; }
  .tq-review-pricing .inline-shipping-controls { justify-content: center; }
  .tq-review-pricing .shipping-card.shipping-inline, .tq-review-pricing .shipping-card.shipping-inline .shipping-form, .tq-review-pricing .shipping-card.shipping-inline .shipping-input-group { justify-content: center; }
  .tq-review-pricing .pricing-actions .quote-cta-group { grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: center; }
  .tq-review-pricing .pricing-actions .quote-cta-item { width: 100%; min-width: 0; justify-content: center; }
  .tq-review-pricing .pricing-actions .quote-cta-item > :is(form, .email-quote-trigger-wrapper) { width: 100%; }
  .tq-review-pricing .pricing-actions :is(.email-quote-trigger, .buy-now-form .cta-button) { width: 100%; min-width: 0; height: 100%; min-height: 48px; padding-inline: 8px; white-space: normal; }
  .tq-review-pricing .pricing-actions .quote-cta-item > :is(form, .email-quote-trigger-wrapper) { height: 100%; }
}

/* Adapt the shared visual structure of inground and above-ground liner final summaries. */
.tq-liner-review-main { display: grid; gap: 16px; min-width: 0; }
.tq-liner-detail-card { overflow: hidden; border: 1px solid #d7e5f4; border-radius: 8px; background: white; }
.tq-liner-detail-header { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 12px 16px; border-bottom: 1px solid #d7e5f4; background: #f1f7ff; text-align: center; }
.tq-liner-detail-header h2 { margin: 0; font-size: 1.15rem; color: #082f57; }
.tq-liner-product-preview { display: flex; align-items: center; justify-content: center; gap: 20px; padding: 12px 16px; background: #f7fbff; text-align: center; }
.tq-liner-product-preview img { display: block; width: 140px; max-width: 40%; height: auto; border: 1px solid #bfd4ea; border-radius: 6px; }
.tq-liner-product-preview strong { font-size: 1rem; color: #0b315c; }
.tq-liner-product-preview p { margin: 6px 0 0; font-size: 1rem; color: #536b84; }
.tq-liner-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; background: #d7e5f4; text-align: center; }
.tq-liner-facts > div { min-width: 0; padding: 10px 14px; background: white; }
.tq-liner-facts dt { margin-bottom: 4px; color: #56718e; font-size: .95rem; font-weight: 600; }
.tq-liner-facts dd { margin: 0; color: #0b315c; font-size: 1.05rem; font-weight: 700; line-height: 1.35; }
.tq-liner-accessory-list { padding: 12px 16px; text-align: center; font-size: 1rem; }
.tq-liner-accessory-list ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 20px; margin: 0; padding: 0; list-style: none; }
.tq-liner-accessory-list p { margin: 0; }
@media (max-width: 450px) { .tq-liner-product-preview { flex-direction: column; gap: 12px; } .tq-liner-product-preview img { max-width: 100%; } .tq-liner-detail-header { flex-wrap: wrap; } .tq-liner-facts > div { padding: 10px 8px; } }
.tq-liner-facts > div:last-child:nth-child(odd) { grid-column: 1 / -1; }

.tq-review-pricing .pricing-body { margin-top: 16px; }
.tq-review-pricing .pricing-line { grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 16px; margin-bottom: 12px; font-size: 1rem; }
.tq-review-pricing .pricing-value { width: auto; text-align: right; white-space: nowrap; }
.tq-review-pricing .pricing-line.pricing-shipping { align-items: center; }
.tq-review-pricing .pricing-line.pricing-shipping .inline-shipping-wrap { width: auto; }
.tq-review-pricing .inline-shipping-amount { flex-basis: auto; }
@media (max-width: 560px) {
  .tq-review-pricing .pricing-card.pricing-pending .pricing-line.pricing-shipping { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .tq-review-pricing .pricing-card:not(.pricing-pending) .pricing-line.pricing-shipping { grid-template-columns: minmax(0, 1fr) auto; gap: 16px; }
  .tq-review-pricing .pricing-card:not(.pricing-pending) .inline-shipping-wrap { justify-content: flex-end; }
}
.tq-review-layout { padding: 14px 8px; }
.tq-review-note { margin: 12px 0; font-size: .9rem; text-align: center; }

/* Business review uses the shared Bootstrap dialog and the existing Tank quote palette. */
.tq-review-fallback { margin: 12px 8px; padding: 16px; border: 1px solid #b21f2d; background: #fff7f8; }
.tq-review-fallback h2 { font-size: 1.1rem; }
.tq-review-fallback p { margin-bottom: 0; }
.tq-review-open { display: block; margin: 12px auto; padding: 8px 12px; border: 0; background: transparent; color: #102f57; text-decoration: underline; min-height: 44px; }
.tq-review-open[hidden] { display: none; }
.tq-review-open:hover { color: #921925; }
.tq-review-modal { overscroll-behavior: contain; }
.tq-review-modal .modal-dialog { max-width: 440px; margin-inline: auto; padding-inline: 12px; }
.tq-review-modal .modal-content { border: 1px solid #102f57; border-radius: 8px; overflow: hidden; }
.tq-review-modal .modal-header { align-items: center; padding: 12px 16px; border-bottom: 4px solid #b21f2d; background: #102f57; color: #fff; }
.tq-review-modal .modal-title { color: inherit; font-size: 1.2rem; line-height: 1.4; }
.tq-review-close { flex: 0 0 44px; min-height: 44px; padding: 0; border: 0; background: transparent; color: #fff; font-size: 1.7rem; }
.tq-review-close:hover { background: #1b456f; }
.tq-review-modal .modal-body { padding: 20px; color: #212529; line-height: 1.6; }
.tq-review-modal .modal-body ul { margin: 0; padding-left: 20px; }
.tq-review-modal .modal-body li + li { margin-top: 12px; }
.tq-review-modal .modal-footer { justify-content: center; gap: 8px; padding: 0 16px 16px; border: 0; }
.tq-review-modal .cta-button { min-height: 44px; padding: 10px 14px; border-radius: 8px; white-space: normal; text-align: center; }
.tq-review-modal .cta-button-primary { background: #b21f2d; border: 1px solid #b21f2d; color: #fff; }
.tq-review-modal .cta-button-primary:hover { background: #921925; border-color: #921925; transform: none; }
.tq-review-modal .cta-button-secondary { background: #fff; border: 1px solid #102f57; color: #102f57; }
.tq-review-modal .cta-button-secondary:hover { background: #f4f7fb; transform: none; }
.tq-review-modal :is(a,button):focus-visible { outline: 3px solid #b21f2d; outline-offset: 3px; }
.tq-review-modal .tq-review-close:focus-visible { outline-color: #fff; outline-offset: -3px; }
