.cost-calc{
    background:#fff;
    color:#2f2f2f;
    --calc-navy:#062f73;
    --calc-blue:#0b4a9e;
    --calc-red:#d7372b;
    --calc-line:#dbe4f0;
    --calc-muted:#63768c;
}
/* Keep the development trace out of this customer-facing calculator. */
#think_page_trace{
    display:none !important;
}
.cost-calc .banner-all h1{
    line-height:1.25;
    max-width:920px;
    text-align:center;
}
.cost-calc__body{
    padding:56px 0 96px;
    background:
        radial-gradient(circle at 8% 0%,rgba(0,51,130,.06),transparent 28%),
        linear-gradient(180deg,#f7f9fc 0%,#f1f5fa 100%);
}
.cost-calc__body > .container{
    max-width:1320px;
}
.cost-calc__tabs{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    position:sticky;
    top:96px;
    z-index:20;
    max-width:980px;
    margin:0 auto 36px;
    padding:7px;
    border:1px solid #cad7e8;
    border-radius:18px;
    background:rgba(238,243,249,.94);
    box-shadow:0 10px 30px rgba(8,27,95,.10);
    backdrop-filter:blur(12px);
}
.cost-calc__tab{
    min-height:58px;
    padding:12px 20px;
    border:0;
    border-radius:10px;
    background:transparent;
    color:#41566e;
    font:inherit;
    font-size:17px;
    line-height:1.3;
    font-weight:600;
    cursor:pointer;
    transition:background .2s ease,color .2s ease,box-shadow .2s ease;
}
.cost-calc__tab:hover{
    color:#003382;
}
.cost-calc__tab.is-active{
    background:linear-gradient(135deg,var(--calc-navy),var(--calc-blue));
    color:#fff;
    box-shadow:0 6px 16px rgba(0,51,130,.18);
}
.cost-calc__tab:focus-visible{
    outline:3px solid rgba(0,51,130,.25);
    outline-offset:2px;
}
.cost-calc__intro{
    max-width:900px;
    margin:0 auto 30px;
    text-align:center;
}
.cost-calc__intro h2{
    margin:0 0 12px;
    color:var(--calc-navy);
    font-size:34px;
    line-height:1.25;
    font-weight:600;
}
.cost-calc__intro p{
    margin:0;
    font-size:18px;
    line-height:1.7;
    color:#3d4d63;
}
.cost-calc__example{
    margin-top:12px !important;
    font-size:15px !important;
    color:#66788c !important;
}
.cost-calc__steps{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:16px;
    margin:0 0 18px;
    padding:0;
    list-style:none;
}
.cost-calc__steps li{
    display:flex;
    gap:12px;
    align-items:flex-start;
    margin:0;
    padding:18px;
    background:#fff;
    border:1px solid #d7e2ef;
    border-radius:14px;
    box-shadow:0 5px 18px rgba(8,27,95,.035);
}
.cost-calc__steps span{
    flex:0 0 30px;
    width:30px;
    height:30px;
    border-radius:50%;
    background:#003382;
    color:#fff;
    font-size:14px;
    font-weight:600;
    line-height:30px;
    text-align:center;
}
.cost-calc__steps b{
    display:block;
    margin-bottom:4px;
    color:#003382;
    font-size:15px;
    line-height:1.3;
}
.cost-calc__steps div{
    min-width:0;
    font-size:14px;
    line-height:1.55;
    color:#52657a;
}
.cost-calc__area-note{
    max-width:1040px;
    margin:0 auto 28px;
    padding:12px 18px;
    border:1px solid #d7e3f0;
    border-radius:10px;
    background:#edf4fc;
    font-size:15px;
    line-height:1.65;
    color:#52657a;
    text-align:center;
}
.cost-calc__layout{
    display:grid;
    grid-template-columns:1fr;
    gap:24px;
    align-items:start;
}
.cost-calc__panel{
    background:#fff;
    border:1px solid var(--calc-line);
    border-radius:18px;
    padding:28px;
    box-shadow:0 12px 34px rgba(8,27,95,.06);
}
.cost-calc__h{
    display:flex;
    align-items:baseline;
    flex-wrap:wrap;
    gap:8px 14px;
    margin:0 0 20px;
    padding-left:14px;
    border-left:4px solid var(--calc-red);
    color:var(--calc-navy);
    font-size:22px;
    line-height:1.3;
    font-weight:600;
}
.cost-calc__h span{
    font-size:14px;
    font-weight:400;
    color:#6b7d92;
}
.cost-calc__h .cost-calc__h-main{
    color:var(--calc-navy);
    font-size:22px;
    font-weight:600;
}
.cost-calc__panel .cost-calc__h + .cost-calc__h,
.cost-calc__grid + .cost-calc__h{
    margin-top:34px;
}
.cost-calc__grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}
.cost-calc__grid--single{
    grid-template-columns:minmax(280px,480px);
}
.cost-calc__editor{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
    gap:18px;
    align-items:start;
}
.cost-calc__material-fields{
    display:contents;
}
.cost-calc__field{
    position:relative;
    min-width:0;
}
.cost-calc__field--material{
    grid-column:span 2;
}
.cost-calc label{
    display:block;
    margin:0 0 9px;
    font-size:15px;
    line-height:1.35;
    font-weight:500;
    color:#24384e;
}
.cost-calc abbr.cost-calc__req{
    color:#d7372b;
    text-decoration:none;
    border:0;
    font-weight:700;
    cursor:help;
}
.cost-calc input,
.cost-calc select{
    display:block;
    width:100%;
    height:54px;
    margin:0;
    padding:0 14px;
    border:1px solid #c5d3e4;
    border-radius:10px;
    background:#fff;
    color:#1c2b3a;
    font:inherit;
    font-size:16px;
    line-height:54px;
    outline:none;
    box-shadow:none;
}
.cost-calc input:focus,
.cost-calc select:focus{
    border-color:#003382;
    box-shadow:0 0 0 3px rgba(0,51,130,.12);
}
.cost-calc__native-select{
    position:absolute;
    width:1px;
    height:1px;
    margin:-1px;
    padding:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    border:0;
    pointer-events:none;
}
.cost-calc__menu{
    position:relative;
}
.cost-calc__menu.is-open{
    z-index:40;
}
.cost-calc__menu-trigger{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    width:100%;
    height:54px;
    margin:0;
    padding:0 42px 0 16px;
    border:1px solid #c5d3e4;
    border-radius:10px;
    background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5L6 8L9.5 4.5' fill='none' stroke='%23003382' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center;
    color:#1c2b3a;
    font:inherit;
    font-size:16px;
    font-weight:500;
    line-height:1.2;
    text-align:left;
    cursor:pointer;
}
.cost-calc__menu.is-open .cost-calc__menu-trigger,
.cost-calc__menu-trigger:focus-visible{
    border-color:#003382;
    box-shadow:0 0 0 3px rgba(0,51,130,.12);
    outline:none;
}
.cost-calc__menu-value{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.cost-calc__menu-caret{
    display:none;
}
.cost-calc__menu-list{
    position:absolute;
    z-index:41;
    top:calc(100% + 8px);
    left:0;
    right:0;
    min-width:100%;
    max-height:320px;
    margin:0;
    padding:6px;
    overflow:auto;
    list-style:none;
    border:1px solid #d5e2f0;
    border-radius:12px;
    background:#fff;
    box-shadow:0 18px 42px rgba(8,27,95,.16);
}
.cost-calc__menu.is-up .cost-calc__menu-list{
    top:auto;
    bottom:calc(100% + 8px);
}
.cost-calc__menu-list[hidden]{
    display:none;
}
.cost-calc__menu-list li{
    margin:0;
    padding:0;
}
.cost-calc__menu-option{
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    min-height:46px;
    margin:0;
    padding:8px 14px;
    border:0;
    border-radius:8px;
    background:transparent;
    color:#1c2b3a;
    font:inherit;
    font-size:15px;
    font-weight:500;
    line-height:1.35;
    text-align:left;
    cursor:pointer;
}
.cost-calc__menu-option::after{
    content:"";
    flex:0 0 16px;
    width:16px;
    height:16px;
    margin-left:12px;
}
.cost-calc__menu-option:hover,
.cost-calc__menu-option:focus-visible{
    background:#eef4fb;
    color:#003382;
    outline:none;
}
.cost-calc__menu-option.is-selected{
    background:#003382;
    color:#fff;
}
.cost-calc__menu-option.is-selected::after{
    content:"";
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.2L6.4 11.1L12.5 4.8' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px 16px no-repeat;
}
.cost-calc__menu.is-open .cost-calc__menu-trigger{
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 7.5L6 4L9.5 7.5' fill='none' stroke='%23003382' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.cost-calc input[readonly]{
    background:#f3f6fa;
    border-style:dashed;
    color:#3e5670;
    font-weight:600;
    cursor:not-allowed;
}
.cost-calc__default{
    display:inline-block;
    margin:9px 0 0;
    padding:5px 9px;
    border-radius:6px;
    background:#e8f6f1;
    color:#0b7a62;
    font-size:13px;
    line-height:1.4;
    font-weight:600;
}
.cost-calc__field-note,
.cost-calc__hint{
    margin:9px 0 0;
    font-size:13px;
    line-height:1.5;
    color:#6b7d92;
}
.cost-calc__hint{
    margin:-8px 0 18px;
    font-size:14px;
}
.cost-calc__error{
    margin:16px 0 0;
    padding:12px 14px;
    border:1px solid #f3c7c3;
    border-radius:8px;
    background:#fff4f2;
    color:#a52820;
    font-size:14px;
    line-height:1.5;
    font-weight:500;
}
.cost-calc__error[hidden]{
    display:none;
}
.cost-calc__source-warning{
    margin:20px 0;
    padding:12px 14px;
    border:1px solid #f3dfb9;
    border-radius:8px;
    background:#fff8ed;
    color:#725723;
    font-size:13px;
    line-height:1.55;
}
.cost-calc__source-warning[hidden]{
    display:none;
}
.cost-calc__summary{
    position:static;
    margin-top:24px;
    overflow:visible;
}
.cost-calc__summary .cost-calc__kpis{
    grid-template-columns:repeat(4,minmax(0,1fr));
}
.cost-calc__summary .cost-calc__kpi--total{
    grid-column:auto;
}
.cost-calc__grid.cost-calc__grid--with-loss{
    grid-template-columns:minmax(240px,360px) minmax(180px,260px);
}
.cost-calc__kpis{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}
.cost-calc__kpi{
    margin:0;
    padding:18px 16px;
    border:1px solid #e3ebf4;
    border-radius:12px;
    background:#f7f9fc;
}
.cost-calc__kpi--total{
    grid-column:1 / -1;
    background:linear-gradient(145deg,#e8f2ff,#f3f8ff);
    border-color:#abcbed;
}
.cost-calc__kpi-label,
.cost-calc__kpi-unit,
.cost-calc__kpi-value{
    margin:0;
}
.cost-calc__kpi-label{
    font-size:13px;
    line-height:1.4;
    color:#5d7288;
}
.cost-calc__kpi-value{
    margin:8px 0 3px;
    color:#16375c;
    font-size:30px;
    line-height:1.15;
    font-weight:600;
    font-variant-numeric:tabular-nums;
    overflow-wrap:anywhere;
}
.cost-calc__kpi--total .cost-calc__kpi-value{
    color:var(--calc-navy);
    font-size:38px;
}
.cost-calc__kpi-unit{
    font-size:13px;
    line-height:1.4;
    color:#74869a;
}
.cost-calc__reset{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:52px;
    margin-top:18px;
    padding:12px 18px;
    border:1px solid #003382;
    border-radius:11px;
    background:linear-gradient(135deg,var(--calc-navy),var(--calc-blue));
    color:#fff;
    font:inherit;
    font-size:16px;
    font-weight:600;
    line-height:1.2;
    cursor:pointer;
}
.cost-calc__reset:hover{
    background:#081b5f;
    border-color:#081b5f;
    color:#fff;
}
.cost-calc__table-panel{
    margin-top:24px;
}
.cost-calc__table-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom: 20px;
}
.cost-calc__table-head .cost-calc__h{
    margin-bottom:0;
}
.cost-calc__table-head .cost-calc__reset{
    width:auto;
    min-width:240px;
    margin-top:0;
}
.cost-calc__cell-input{
    width:100%;
    min-width:78px;
    height:40px;
    margin:0;
    padding:0 10px;
    border:1px solid #a8c4de;
    border-radius:8px;
    background:#f3f8ff;
    color:#154c7f;
    font:inherit;
    font-size:15px;
    line-height:40px;
    text-align:right;
}
.cost-calc__cell-input:focus{
    border-color:#003382;
    background:#fff;
    box-shadow:0 0 0 3px rgba(0,51,130,.12);
    outline:none;
}
.cost-calc tr.is-edited .cost-calc__name::after{
    content:"Edited";
    display:inline-block;
    margin-left:8px;
    padding:1px 6px;
    border-radius:4px;
    background:#e8f6f1;
    color:#0b7a62;
    font-size:11px;
    font-weight:700;
    vertical-align:middle;
}
.cost-calc__na{
    color:#8aa0b5;
}
.cost-calc__cards,
.cost-calc__mobile-totals{
    display:none;
}
.cost-calc.is-mobile .cost-calc__table-wrap{
    display:none;
}
.cost-calc.is-mobile .cost-calc__cards{
    display:grid;
    gap:8px;
}
.cost-calc.is-mobile .cost-calc__mobile-totals{
    display:grid;
    gap:8px;
    margin-top:12px;
}
.cost-calc__card{
    padding:12px;
    border:1px solid #d7e2ef;
    border-radius:12px;
    background:#fff;
}
.cost-calc__card.is-edited{
    border-color:#9dcec0;
}
.cost-calc__card-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}
.cost-calc__card-title{
    margin:0;
    color:#16375c;
    font-size:15px;
    line-height:1.3;
    font-weight:600;
}
.cost-calc__card-cost{
    flex:none;
    color:#003382;
    font-size:15px;
    line-height:1.3;
    font-weight:700;
    font-variant-numeric:tabular-nums;
}
.cost-calc__card-meta{
    margin:4px 0 10px;
    color:#6b7d92;
    font-size:12px;
    line-height:1.4;
}
.cost-calc__card.is-edited .cost-calc__card-title::after{
    content:"Edited";
    display:inline-block;
    margin-left:8px;
    padding:1px 6px;
    border-radius:4px;
    background:#e8f6f1;
    color:#0b7a62;
    font-size:11px;
    font-weight:700;
    vertical-align:middle;
}
.cost-calc__card-grid{
    display:grid;
    grid-template-columns:minmax(0,160px);
    gap:8px;
}
.cost-calc__card-grid--three{
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.cost-calc.is-mobile .cost-calc__card .cost-calc__cell-input{
    height:38px;
    min-width:0;
    padding:0 6px;
    font-size:16px;
    line-height:38px;
    text-align:center;
}
.cost-calc__card-field--wide{
    grid-column:1 / -1;
}
.cost-calc__card-label{
    display:block;
    margin-bottom:4px;
    color:#6b7d92;
    font-size:12px;
    line-height:1.3;
    font-weight:500;
}
.cost-calc__card-value{
    display:flex;
    align-items:center;
    min-height:40px;
    color:#16375c;
    font-size:16px;
    line-height:1.3;
    font-weight:600;
}
.cost-calc__card-field--cost .cost-calc__card-value{
    color:#003382;
}
.cost-calc__total-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:12px 14px;
    border-radius:12px;
    background:#eef4fb;
    color:#16375c;
    font-size:14px;
    line-height:1.4;
}
.cost-calc__total-card strong{
    font-size:16px;
    text-align:right;
}
.cost-calc__total-card.is-grand{
    background:#003382;
    color:#fff;
}
.cost-calc__caption{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}
.cost-calc__table-wrap{
    overflow-x:auto;
    border:1px solid #e1e9f2;
    border-radius:12px;
}
.cost-calc table{
    width:100%;
    min-width:860px;
    border-collapse:collapse;
    font-size:15px;
}
.cost-calc th{
    padding:15px 16px;
    background:#f3f7fb;
    color:#4d6278;
    font-size:13px;
    font-weight:600;
    text-align:left;
    white-space:nowrap;
}
.cost-calc td{
    padding:15px 16px;
    border-top:1px solid #e8eef5;
    vertical-align:middle;
    color:#24384e;
}
.cost-calc th.num,
.cost-calc td.num{
    text-align:right;
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
}
.cost-calc tbody tr.is-active{
    background:#eef5ff;
}
.cost-calc tbody tr:hover{
    background:#f7faff;
}
.cost-calc__name{
    font-weight:600;
    color:#16375c;
}
.cost-calc__edited{
    display:inline-block;
    margin-left:6px;
    padding:1px 6px;
    border-radius:4px;
    background:#e8f6f1;
    color:#0b7a62;
    font-size:11px;
    font-weight:700;
    vertical-align:middle;
}
.cost-calc__money{
    font-weight:700;
    color:#003382;
}
.cost-calc tfoot td{
    border-top:2px solid #c5d6e8;
    background:#eef4fb;
    font-weight:700;
    color:#16375c;
}
.cost-calc tfoot tr + tr td{
    border-top:1px solid #d8e3ef;
}
.cost-calc tfoot .cost-calc__grand-total td{
    background:#e2edf9;
    color:#003382;
}
.cost-calc__equation{
    margin:18px 0 0;
    padding:14px 16px;
    border:1px dashed #c5d5e6;
    border-radius:8px;
    background:#f8fbfe;
    color:#52657a;
    font-size:14px;
    line-height:1.6;
    overflow-wrap:anywhere;
}
.cost-calc__note{
    margin:20px 0 0;
    padding:16px 18px;
    border-radius:10px;
    background:#fff8ee;
    border:1px solid #f3e0b8;
    color:#6d5424;
    font-size:14px;
    line-height:1.65;
}

@media (max-width:1100px){
    .cost-calc__layout{
        grid-template-columns:1fr;
    }
    .cost-calc__steps{
        grid-template-columns:1fr 1fr;
    }
    .cost-calc__summary{
        position:static;
    }
    .cost-calc__kpis{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }
    .cost-calc__kpi--total{
        grid-column:auto;
    }
    .cost-calc__editor{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media (max-width:768px){
    .cost-calc__tabs{
        position:static;
    }
    .cost-calc__intro h2{
        font-size:24px;
        text-align:left;
    }
    .cost-calc__grid,
    .cost-calc__grid.cost-calc__grid--single,
    .cost-calc__grid.cost-calc__grid--with-loss{
        grid-template-columns:1fr;
    }
}
@media (max-width:820px){
    .cost-calc__grid,
    .cost-calc__editor{
        grid-template-columns:1fr 1fr;
    }
    .cost-calc__kpis{
        grid-template-columns:1fr 1fr;
    }
    .cost-calc__kpi--total{
        grid-column:1 / -1;
    }
}
@media (max-width:640px){
    .cost-calc__body{
        padding:28px 0 48px;
    }
    .cost-calc__intro p{
        font-size:15px;
        text-align:left;
    }
    .cost-calc__intro h2{
        font-size:23px;
        text-align:left;
    }
    .cost-calc__tabs{
        display:flex;
        gap:5px;
        overflow-x:auto;
        padding:5px;
        margin-bottom:22px;
        scrollbar-width:none;
        -webkit-overflow-scrolling:touch;
    }
    .cost-calc__tabs::-webkit-scrollbar{
        display:none;
    }
    .cost-calc__tab{
        flex:0 0 160px;
        min-height:46px;
        font-size:15px;
    }
    .cost-calc__steps,
    .cost-calc__grid,
    .cost-calc__grid.cost-calc__grid--with-loss,
    .cost-calc__editor,
    .cost-calc__kpis,
    .cost-calc__summary .cost-calc__kpis{
        grid-template-columns:1fr;
    }
    .cost-calc__kpi--total{
        grid-column:auto;
    }
    .cost-calc__area-note{
        text-align:left;
    }
    .cost-calc__table-head{
        align-items:stretch;
        flex-direction:column;
    }
    .cost-calc__table-head .cost-calc__reset{
        width:100%;
    }
    .cost-calc__panel{
        padding:18px 14px 16px;
    }
    .cost-calc__h{
        font-size:18px;
    }
    .cost-calc__kpi-value,
    .cost-calc__kpi--total .cost-calc__kpi-value{
        font-size:24px;
    }
    .cost-calc__field--material{
        grid-column:auto;
    }
}
.cost-calc__grid.cost-calc__grid--single{
    grid-template-columns:minmax(0,480px);
}
