.pil-contact-estimator {
    --pil-ink:#24313a;
    --pil-muted:#647078;
    --pil-ivory:#fcfbf8;
    --pil-blush:#edf1e9;
    --pil-periwinkle:#536886;
    --pil-champagne:#c6ae83;
    --pil-line:#e8e0d7;
    --pil-shadow:0 14px 35px rgba(55,43,31,.09)
}
.pil-contact-page {
    background:var(--pil-ivory);
    padding:4.5rem 0 5.5rem
}
.contact-estimator {
    color:var(--pil-ink);
    max-width:1100px;
    margin:0 auto
}
.contact-estimator__intro {
    max-width:720px;
    margin:0 auto 2.75rem;
    text-align:center
}
.contact-estimator__eyebrow {
    margin:0 0 .75rem;
    color:var(--pil-periwinkle);
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.18em;
    text-transform:uppercase
}
.contact-estimator h1,.contact-estimator h2,.contact-estimator h3,.contact-estimator h4 {
    color:var(--pil-ink)
}
.contact-estimator h1 {
    margin:0 0 .85rem;
    font-family:Cormorant Garamond,Georgia,serif;
    font-size:clamp(2.45rem,5vw,4rem);
    font-weight:500;
    line-height:1.04
}
.contact-estimator__intro>p:last-child {
    margin:0 auto;
    color:var(--pil-muted);
    font-size:1.08rem;
    line-height:1.75
}
.contact-estimator section {
    background:#fff;
    border:1px solid var(--pil-line);
    border-radius:3px;
    box-shadow:var(--pil-shadow);
    padding:2.4rem 2rem;
    margin:1.75rem 0
}
.contact-estimator section h2,.estimate-summary h2 {
    margin:0 0 1.5rem;
    font-family:Cormorant Garamond,Georgia,serif;
    font-size:2.2rem;
    font-weight:500;
    line-height:1.08
}
.contact-estimator h3 {
    margin:2.2rem 0 .7rem;
    color:var(--pil-periwinkle);
    font-size:.78rem;
    font-weight:700;
    letter-spacing:.15em;
    text-transform:uppercase
}
.contact-estimator .form-group {
    margin-bottom:1.25rem
}
.contact-estimator label {
    display:block;
    margin-bottom:.5rem;
    color:var(--pil-ink);
    font-weight:700
}
.contact-estimator input:not([type=checkbox]):not([type=radio]),.contact-estimator select,.contact-estimator textarea {
    width:100%;
    min-height:46px;
    padding:.68rem .8rem;
    border:1px solid #cfc6bb;
    border-radius:0;
    background:#fff;
    color:var(--pil-ink);
    box-shadow:none
}
.contact-estimator textarea {
    min-height:130px;
    resize:vertical
}
.contact-estimator input:not([type=checkbox]):not([type=radio]):focus,.contact-estimator select:focus,.contact-estimator textarea:focus {
    border-color:var(--pil-periwinkle);
    box-shadow:0 0 0 3px #53688624;
    outline:0
}
.contact-estimator .field-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.3rem 1.25rem
}
.estimator-layout {
    display:grid;
    grid-template-columns:minmax(0,2fr) minmax(285px,1fr);
    align-items:start;
    gap:1.75rem
}
.estimate-summary {
    position:sticky;
    top:1.5rem;
    height:max-content;
    margin-top:1.75rem;
    background:linear-gradient(145deg,#f7f9f4,#eef3ec)!important;
    border:1px solid #dce5d8!important;
    box-shadow:0 12px 28px #3e50381c!important
}
.estimate-summary p {
    margin:0;
    padding:1rem 0;
    border-bottom:1px solid rgba(104,123,96,.2);
    color:#4e5850;
    line-height:1.5
}
.estimate-summary p:last-child {
    border-bottom:0;
    font-size:.94rem
}
.estimate-summary strong {
    color:var(--pil-ink);
    font-size:1.05rem
}
.estimate-summary .estimate-total {
    margin-top:.1rem;
    color:var(--pil-ink);
    font-size:1.15rem;
    font-weight:700
}
.estimate-summary .estimate-total strong {
    font-size:1.45rem
}
.estimator-item {
    display:grid;
    grid-template-columns:1fr auto;
    gap:1rem;
    padding:1.25rem 0;
    border-bottom:1px solid var(--pil-line)
}
.estimator-item h4 {
    margin:0 0 .28rem;
    font-size:1.08rem
}
.estimator-item p {
    margin:0;
    color:var(--pil-muted);
    font-size:.94rem
}
.quantity-control {
    display:flex;
    align-items:center;
    gap:.35rem
}
.quantity-control input {
    width:3.6rem!important;
    min-height:42px!important;
    padding:.35rem!important;
    text-align:center
}
.quantity-control button {
    width:42px;
    height:42px;
    border:1px solid var(--pil-periwinkle);
    border-radius:50%;
    background:#fff;
    color:var(--pil-periwinkle);
    font-size:1.25rem;
    line-height:1
}
.quantity-control button:hover {
    background:var(--pil-periwinkle);
    color:#fff
}
.contact-estimator .checkbox {
    margin:1.25rem 0
}
.contact-estimator .checkbox label {
    display:flex;
    align-items:flex-start;
    gap:.75rem;
    margin:0;
    font-weight:600;
    line-height:1.55
}
.contact-estimator input[type=checkbox] {
    width:18px!important;
    min-width:18px;
    min-height:18px!important;
    height:18px;
    margin:.18rem 0 0;
    accent-color:var(--pil-periwinkle)
}
.contact-estimator .btn-primary {
    margin-top:.5rem;
    padding:.85rem 1.35rem;
    border:1px solid var(--pil-periwinkle);
    border-radius:0;
    background:var(--pil-periwinkle);
    color:#fff;
    font-size:.78rem;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase
}
.contact-estimator .btn-primary:hover,.contact-estimator .btn-primary:focus {
    background:#3f526c;
    border-color:#3f526c
}
.hp-field {
    position:absolute!important;
    left:-10000px!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important
}
.contact-estimator :focus-visible {
    outline:3px solid #c6ae83;
    outline-offset:3px
}
@media (max-width:767px) {
    .pil-contact-page {
        padding:3rem 0
    }
    .contact-estimator section {
        padding:1.65rem 1.25rem;
        margin:1.25rem 0
    }
    .field-grid,.estimator-layout {
        grid-template-columns:1fr
    }
    .estimate-summary {
        position:static
    }
    .estimator-item {
        grid-template-columns:1fr
    }
    .quantity-control {
        justify-content:flex-start
    }
}
.contact-estimator__intro h1 em {
    color:#8798cf;
    font-family:Georgia,serif;
    font-weight:400
}
.estimator-layout>section {
    background:var(--pil-blush);
    border-color:#d7dfd0;
    box-shadow:0 12px 30px #35463014
}
.estimator-layout>section>p {
    max-width:42rem;
    color:var(--pil-muted);
    line-height:1.65
}
.estimate-summary {
    background:#fff!important;
    border-color:#e6ddd3!important;
    box-shadow:0 12px 30px #4d372c14!important
}
.estimate-summary>p:not(.estimate-total) {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:.75rem;
    align-items:baseline
}
.estimate-summary>p:not(.estimate-total) br {
    display:none
}
.estimate-summary>p:not(.estimate-total) strong {
    text-align:right
}
.estimate-summary .estimate-total {
    padding:1.45rem 0 1.2rem;
    border-top:1px solid #c7ae83;
    border-bottom:0;
    text-align:center;
    text-transform:uppercase;
    letter-spacing:.15em;
    font-size:.7rem
}
.estimate-summary .estimate-total strong {
    display:block;
    margin-top:.5rem;
    color:#7183bd;
    font-family:Georgia,serif;
    font-size:2rem;
    font-weight:400;
    letter-spacing:0;
    text-transform:none
}
.contact-estimator__card>h2 {
    position:relative;
    padding-bottom:.9rem
}
.contact-estimator__card>h2:after {
    position:absolute;
    bottom:0;
    left:0;
    width:42px;
    height:2px;
    background:var(--pil-champagne);
    content:""
}
@media (max-width:767px) {
    .estimate-summary>p:not(.estimate-total) {
        grid-template-columns:1fr
    }
    .estimate-summary>p:not(.estimate-total) strong {
        text-align:left
    }
}
.estimate-email-copy {
    margin-top:1.25rem;
    padding:1.1rem 1.2rem .85rem;
    border:1px solid #e6ddd3;
    background:#fdfbf8
}
.estimate-email-copy .form-group {
    margin-bottom:.35rem
}
.estimate-email-copy p {
    margin:0 0 .15rem 1.75rem;
    color:var(--pil-muted);
    font-size:.92rem;
    line-height:1.55
}
.estimate-summary {
    min-width:0;
    padding:0!important;
    overflow:hidden
}
.estimate-summary h2 {
    margin:0!important;
    padding:1.7rem 1.5rem 1.35rem;
    text-align:center;
    font-size:2.05rem
}
.estimate-summary>p {
    margin:0!important;
    padding:1rem 1.5rem
}
.estimate-summary>p:nth-of-type(1),.estimate-summary>p:nth-of-type(2) {
    display:grid;
    grid-template-columns:minmax(0,1fr) max-content;
    gap:1rem;
    align-items:start
}
.estimate-summary>p:nth-of-type(1) strong,.estimate-summary>p:nth-of-type(2) strong {
    white-space:nowrap;
    text-align:right
}
.estimate-summary .estimate-total {
    margin:0!important;
    padding:1.45rem 1.5rem 1.35rem!important
}
.estimate-summary .estimate-total strong {
    font-size:clamp(1.5rem,2.2vw,1.9rem);
    line-height:1.22
}
.estimate-summary>p:last-child {
    padding:1.4rem 1.5rem 1.55rem!important;
    background:#fcfbf8;
    color:#5f695f;
    font-size:.91rem;
    line-height:1.65
}
@media (max-width:767px) {
    .estimate-summary h2 {
        padding:1.5rem 1.25rem 1.15rem
    }
    .estimate-summary>p {
        padding-left:1.25rem;
        padding-right:1.25rem
    }
    .estimate-summary>p:last-child {
        padding-left:1.25rem!important;
        padding-right:1.25rem!important
    }
}

/* Keep iOS Safari's native date picker within its desktop-style two-column grid. */
.contact-estimator .field-grid > .form-group { min-width: 0; }
.contact-estimator input[type="date"] { box-sizing: border-box; min-width: 0; max-width: 100%; }

@media (max-width: 767px) {
    .contact-estimator__card .field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .contact-estimator__card .field-grid > .form-group { width: 100%; min-width: 0; }
    .contact-estimator__card input[type="date"] {
        display: block;
        width: 100%;
        min-width: 0;
        max-width: 100%;
        height: 46px;
        min-height: 46px;
        padding-right: .55rem;
        font-size: 16px;
        -webkit-appearance: none;
        appearance: none;
    }
    .contact-estimator__card input[type="date"]::-webkit-date-and-time-value { min-height: 1.15em; text-align: left; }
    .contact-estimator__card input[type="date"]::-webkit-datetime-edit,
    .contact-estimator__card input[type="date"]::-webkit-datetime-edit-fields-wrapper { padding: 0; }
    .contact-estimator__card input[type="date"]::-webkit-calendar-picker-indicator { margin: 0; padding: 0; opacity: 1; }
}
