/* Sapere pricing and onboarding estimator — Invenire visual system. */
@layer components {
  .calculator-main { background:#f7fafc; color:var(--ink,#102438); }
  .calculator-hero { padding:35px 0 56px; background:linear-gradient(120deg,#fff 40%,#e8f5f9); }
  .calculator-hero .breadcrumbs { margin-bottom:44px; }
  .calculator-hero h1 { max-width:900px; font-size:clamp(2.9rem,5vw,4.8rem); letter-spacing:-.065em; line-height:1.04; margin:14px 0 20px; }
  .calculator-hero h1 span { color:#047e9b; }
  .calculator-lede { max-width:780px; font-size:clamp(1.2rem,2vw,1.55rem); line-height:1.55; color:#244457; }
  .calculator-hero-note { margin-top:19px; font-size:14px; color:#587080; }
  .calculator-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(300px,.95fr); align-items:start; gap:28px; padding-top:36px; padding-bottom:58px; }
  .calculator-inputs { display:grid; gap:24px; min-width:0; }
  .calc-panel, .calculator-results { min-width:0; border:1px solid #dbe5eb; border-radius:18px; background:#fff; padding:clamp(20px,2.8vw,32px); box-shadow:0 14px 40px rgba(0,35,58,.035); }
  .calc-panel-heading { display:flex; align-items:center; gap:15px; margin-bottom:24px; }
  .calc-step { display:inline-grid; place-items:center; flex:none; width:40px; height:40px; border-radius:12px; background:#e8f3f7; color:#075d78; font-size:13px; font-weight:800; letter-spacing:.04em; }
  .calc-kicker { margin:0 0 5px; color:#297d94; font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
  .calc-panel h2, .calculator-results h2 { font-size:clamp(1.5rem,2.4vw,1.95rem); line-height:1.2; letter-spacing:-.04em; margin:0; }
  .calc-panel h3 { font-size:1.1rem; letter-spacing:-.02em; }
  .calc-subtitle { margin:28px 0 12px; padding-top:16px; border-top:1px solid #e8edf1; }
  .calc-field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .calc-field { min-width:0; display:block; }
  .calc-label-row { display:flex; align-items:center; gap:6px; margin-bottom:9px; }
  .calc-label-row label, .calc-label-row .calc-label { font-size:13px; font-weight:750; color:#18394a; }
  .calc-help-wrap { display:inline-flex; position:relative; align-items:center; flex:none; }
  .calc-help-wrap.is-open { z-index:40; }
  .calc-help { padding:0; display:inline-grid; place-items:center; width:17px; height:17px; flex:none; border:1px solid #a8bcc6; border-radius:50%; background:#fff; color:#477285; font-size:11px; font-family:serif; font-style:italic; cursor:pointer; line-height:1; }
  .calc-help:hover, .calc-help:focus-visible { color:#073f59; border-color:#0d7899; outline-offset:2px; }
  .calc-help[aria-expanded="true"] { color:#fff; background:#087993; border-color:#087993; }
  .calc-help-popover { position:absolute; top:calc(100% + 10px); left:-10px; width:min(285px,calc(100vw - 36px)); border:1px solid #b9d6e2; border-radius:10px; padding:12px 14px; background:#fff; box-shadow:0 12px 30px rgba(0,35,58,.16); color:#214557; font:400 13px/1.55 system-ui,sans-serif; text-align:left; white-space:normal; }
  .calc-help-popover[hidden] { display:none; }
  .calc-help-wrap.align-right .calc-help-popover { left:auto; right:-8px; }
  .calc-control-row { display:flex; align-items:center; gap:10px; }
  .calc-control-row input[type=number] { min-width:0; width:104px; padding:10px 11px; border:1px solid #cbd9e1; border-radius:8px; background:#fff; font-size:14px; color:#17374b; font-variant-numeric:tabular-nums; }
  .calc-control-row input[type=range] { min-width:0; flex:1; accent-color:#087993; }
  .calc-select { width:100%; border:1px solid #cbd9e1; background:#fff; padding:11px 10px; border-radius:9px; color:#17374b; font-size:14px; }
  .calc-unit { white-space:nowrap; color:#667e8c; font-size:12px; }
  .calc-small { font-size:12px; line-height:1.65; color:#68808d; }
  .calc-help-text { font-size:14px; line-height:1.7; color:#4a6473; margin-bottom:14px; }
  .calc-coverage { border:0; padding:0; margin:25px 0 0; min-width:0; }
  .calc-coverage legend { display:flex; align-items:center; gap:7px; font-weight:800; font-size:15px; }
  .calc-coverage-group { margin-top:18px; padding:17px; border:1px solid #dbe7ee; border-radius:13px; background:#f8fbfd; }
  .calc-coverage-addons { background:#f2f8fa; border-color:#c5dce7; }
  .calc-coverage-heading { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
  .calc-coverage-heading h3 { margin:0; color:#17455a; font-size:15px; }
  .calc-coverage-tag { display:inline-block; padding:3px 9px; border-radius:16px; background:#dfefe8; color:#276447; font-weight:750; font-size:11px; }
  .calc-coverage-tag.optional { background:#e1eef5; color:#26647d; }
  .calc-coverage-group .calc-small { margin:7px 0; }
  .calc-migration-toggle { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:20px; padding:15px 17px; border:1px solid #c5dde7; border-radius:12px; background:#f4fafb; }
  .calc-migration-toggle .calc-label-row { margin-bottom:6px; }
  .calc-migration-toggle label { font-weight:750; font-size:14px; color:#16445a; }
  .calc-migration-toggle input[type="checkbox"] { width:23px; height:23px; flex:none; accent-color:#087993; cursor:pointer; }
  .calc-migration-accordion { border:1px solid #dbe5eb; border-radius:12px; margin:15px 0 22px; padding:0; }
  .calc-migration-accordion > summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:17px; }
  .calc-migration-accordion > summary::-webkit-details-marker { display:none; }
  .calc-migration-accordion > summary strong { font-size:15px; }
  .calc-migration-accordion[open] .calc-expand { display:none; }
  .calc-migration-accordion > div.calc-migration-content { display:block; padding:15px 17px 19px; border-top:1px solid #e3edf2; }
  .calc-migration-accordion .calc-volume { margin:14px 0; }
  .calc-volume { border:1px solid #a7d0df; background:#ecf7fa; border-radius:12px; padding:18px; margin:12px 0 18px; }
  .calc-volume .calc-label-row label { font-size:15px; }
  .calc-volume-controls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .calc-volume-manual { border-top:1px solid #c8e4ed; margin-top:17px; padding-top:15px; }
  .calc-checkbox-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:14px; }
  .calc-check { display:flex; align-items:center; gap:8px; font-size:13px; background:#f7fafb; border:1px solid #e4edf1; border-radius:10px; padding:11px 12px; }
  .calc-check input { accent-color:#087993; width:16px; height:16px; }
  .calc-choices { display:grid; gap:15px; }
  .calc-choice { padding:13px; background:#fafcfd; border:1px solid #e0e8ed; border-radius:11px; }
  .calc-choice .calc-label-row { margin-bottom:7px; }
  .calc-choice select { width:100%; font-size:13px; }
  .calc-badges { display:flex; gap:8px; flex-wrap:wrap; margin-top:20px; }
  .calc-badge { display:inline-flex; align-items:center; gap:5px; border-radius:30px; padding:7px 12px; font-size:12px; font-weight:700; color:#20586c; background:#e8f3f6; }
  .calc-badge.high { color:#8f4a10; background:#fff1da; }
  .calc-badge.moderate { color:#675722; background:#fdf8dd; }
  .calc-text-button { background:none; border:0; padding:4px 0; color:#086e8c; font-weight:750; font-size:13px; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
  .calc-advanced { padding:0; }
  .calc-advanced > summary { display:flex; gap:14px; justify-content:space-between; align-items:center; cursor:pointer; padding:25px; list-style:none; }
  .calc-advanced > summary::-webkit-details-marker { display:none; }
  .calc-advanced > summary > span:first-child { display:grid; grid-template-columns:40px auto; gap:2px 13px; align-items:center; }
  .calc-advanced > summary strong { font-size:18px; letter-spacing:-.02em; }
  .calc-advanced > summary small { grid-column:2; color:#647d8c; font-size:12px; line-height:1.5; }
  .calc-advanced > summary .calc-step { grid-row:1 / span 2; }
  .calc-expand { color:#19738c; font-size:12px; font-weight:800; }
  .calc-advanced[open] .calc-expand { display:none; }
  .calc-advanced-body { border-top:1px solid #e7eef2; padding:8px 22px 22px; }
  .calc-subgroup { border-bottom:1px solid #e3edf2; padding:6px 0; }
  .calc-subgroup:last-child { border-bottom:0; }
  .calc-subgroup > summary { font-size:15px; font-weight:750; color:#16445a; cursor:pointer; padding:16px 4px; }
  .calc-subgroup > div { display:grid; gap:16px; padding:4px 3px 22px; }
  .calc-row-note { font-size:12px; color:#607c8a; margin:3px 0 0; line-height:1.55; }
  .calc-advanced-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
  .calc-mini-title { font-size:13px; font-weight:850; color:#174c65; padding-top:12px; }
  .calc-resource-row { display:grid; grid-template-columns:minmax(0,1.2fr) repeat(3,minmax(0,.75fr)) minmax(0,.7fr) minmax(0,.8fr) auto; gap:7px; align-items:center; font-size:12px; padding:9px; border:1px solid #e0e8ed; border-radius:9px; }
  .calc-resource-row input, .calc-resource-row select { width:100%; min-width:0; padding:7px 5px; border:1px solid #cbd9e1; border-radius:6px; font-size:12px; }
  .calc-remove { background:#f8e9e9; color:#923e3e; border:0; border-radius:7px; padding:8px; cursor:pointer; }
  .calc-secondary-button { border:1px solid #bdd6e0; color:#0b6078; background:#fff; padding:9px 13px; border-radius:8px; font-weight:750; cursor:pointer; width:max-content; }
  .calculator-results { position:sticky; top:18px; }
  .calc-results-heading { display:flex; justify-content:space-between; align-items:start; gap:8px; margin-bottom:23px; }
  .calc-pricing-hero { padding:24px; background:linear-gradient(135deg,#e3f4f8,#f3fafb); border:1px solid #bfdde7; border-radius:14px; }
  .calc-pricing-hero p { margin:0 0 5px; color:#446c7c; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
  .calc-pricing-hero strong { display:block; font-size:clamp(2.4rem,4vw,3.25rem); color:#075f79; letter-spacing:-.06em; line-height:1.1; font-variant-numeric:tabular-nums; }
  .calc-pricing-hero span { display:block; color:#24566a; font-weight:750; font-size:13px; margin-top:5px; }
  .calc-pricing-hero small { display:block; color:#496f7f; font-size:11px; line-height:1.6; margin-top:10px; }
  .calc-pricing-stats { display:grid; gap:9px; margin-top:12px; }
  .calc-pricing-stats > div { border:1px solid #e1eaf0; border-radius:10px; padding:13px 15px; background:#f9fbfc; }
  .calc-pricing-stats > div:first-child { background:#eef7f9; border-color:#bddde7; }
  .calc-pricing-stats > div.calc-first-year-total { background:#e2f2f0; border-color:#8cbfb3; }
  .calc-pricing-stats > div.calc-first-year-total strong { color:#095541; font-size:26px; }
  .calc-commercial-breakdown td:last-child { white-space:nowrap; font-weight:750; }
  .calc-category-description { display:block; margin-top:4px; color:#617e89; font-size:11px; line-height:1.5; font-weight:400; }
  .calc-final-bill { margin:20px 0 6px; padding:18px; border:1px solid #8cbfb3; border-radius:12px; background:#edf8f4; }
  .calc-final-bill span { color:#2d6b59; font-weight:700; font-size:12px; }
  .calc-final-bill strong { display:block; color:#095541; font-size:27px; letter-spacing:-.04em; margin:4px 0 8px; }
  .calc-final-bill p { margin:0; color:#3b685e; }
  .calc-pricing-stats span, .calc-pricing-stats small { display:block; font-size:11px; color:#587384; }
  .calc-pricing-stats strong { display:block; font-size:22px; letter-spacing:-.04em; font-variant-numeric:tabular-nums; color:#173b4f; margin:3px 0; }
  .calc-results-section { border-top:1px solid #e1eaf0; padding-top:18px; margin-top:21px; }
  .calc-results-section h3 { font-size:15px; margin:0 0 12px; letter-spacing:-.02em; }
  .calc-results-section p { color:#526e7b; font-size:12px; line-height:1.6; }
  .calc-breakdown { margin:12px 0 8px; border:1px solid #e2edf2; border-radius:9px; background:#fbfdfe; padding:0 11px; }
  .calc-breakdown > summary { padding:11px 2px; color:#086e8c; font-size:12px; font-weight:800; cursor:pointer; }
  .calc-breakdown[open] > summary { border-bottom:1px solid #e1eaf0; }
  .calc-breakdown .calc-mini-table { margin:8px 0 12px; }
  .calc-band-scroll { max-height:350px; overflow-y:auto; overflow-x:auto; overscroll-behavior:contain; border:1px solid #e2edf2; border-radius:8px; margin:10px 0 13px; }
  .calc-band-scroll .calc-mini-table { margin:0; min-width:290px; }
  .calc-band-scroll .calc-mini-table th { position:sticky; top:0; background:#f5fafb; z-index:1; }
  .calc-band-scroll .calc-mini-table tr.calc-band-active { background:#e6f3f7; }
  .calc-band-scroll .calc-mini-table tr.calc-band-active td:first-child { color:#05607c; font-weight:850; }
  .calc-band-scroll .calc-mini-table td, .calc-band-scroll .calc-mini-table th { padding:9px 6px; }
  .calc-breakdown .calc-small { font-size:11px; line-height:1.5; color:#5d7785; margin:8px 0; }
  .calc-mini-table { width:100%; border-collapse:collapse; font-size:12px; font-variant-numeric:tabular-nums; }
  .calc-mini-table th, .calc-mini-table td { padding:9px 3px; border-bottom:1px solid #e5ecef; }
  .calc-mini-table th { text-align:left; color:#647e89; font-weight:650; }
  .calc-mini-table td:not(:first-child), .calc-mini-table th:not(:first-child) { text-align:right; }
  .calc-mini-table .calc-emphasis-row { background:#e8f4f7; color:#064d67; font-weight:850; }
  .calc-mini-table .calc-emphasis-row > * { padding-top:11px; padding-bottom:11px; }
  .calc-timeline-chip { display:inline-block; background:#edf4f7; color:#285b70; padding:5px 8px; border-radius:6px; font-size:12px; font-weight:750; }
  .calc-contact { width:100%; justify-content:center; text-align:center; margin-top:24px; }
  .calc-disclaimer { color:#637d8c; font-size:11px; line-height:1.65; padding-top:15px; }
  .calc-method-note { border-top:1px solid #dae6ed; padding:35px 0 70px; }
  .calc-method-note h2 { font-size:24px; letter-spacing:-.03em; }
  .calc-method-note p { max-width:930px; font-size:14px; line-height:1.75; color:#486572; }
  @media (max-width:1050px) { .calculator-layout { grid-template-columns:minmax(0,1fr); } .calculator-results { position:static; } }
  @media (max-width:650px) {
    .calculator-hero { padding-bottom:38px; }
    .calc-field-grid, .calc-advanced-grid, .calc-checkbox-grid, .calc-volume-controls { grid-template-columns:1fr; }
    .calc-panel, .calculator-results { border-radius:12px; padding:18px; }
    .calc-control-row input[type=number] { width:88px; }
    .calc-resource-row { grid-template-columns:1fr 1fr; }
    .calc-advanced { padding:0; }
  }
}
