.shc,
.shc * {
box-sizing: border-box;
}
.shc {
--shc-brand: #333;
--shc-text: #333;
--shc-muted: #666;
margin: 0 0 2rem;
border: 1px solid #ddd;
border-radius: 0;
background: #fff;
color: var(--shc-text);
overflow: hidden;
text-align: left;
}
.shc [hidden] { display: none !important; }
.shc__header { padding: 24px 24px 0; }
.shc__eyebrow { margin: 0 0 6px; color: var(--shc-brand); font-size: .8rem; font-weight: 600; }
.shc__header h2 { margin: 0 0 10px; color: var(--shc-text); font-size: clamp(1.35rem, 2.5vw, 1.8rem); line-height: 1.3; }
.shc__intro { margin: 0; color: var(--shc-muted); font-size: .95rem; line-height: 1.55; }
.shc__body { padding: 20px 24px 24px; }
.shc__rows { display: grid; gap: 12px; }
.shc__row {
display: grid;
grid-template-columns: minmax(0, 1.8fr) repeat(3, minmax(0, .72fr)) minmax(0, 1.2fr);
gap: 12px;
align-items: start;
margin: 0;
padding: 16px;
border: 1px solid #ddd;
border-radius: 0;
background: #fff;
min-width: 0;
}
.shc__field { display: grid; gap: 6px; min-width: 0; margin: 0; font-size: .85rem; font-weight: 500; }
.shc__field > span { line-height: 1.3; }
.shc input,
.shc select,
.shc textarea {
display: block;
width: 100%;
min-width: 0;
min-height: 44px;
margin: 0;
padding: 10px 11px;
border: 1px solid #ccc;
border-radius: 3px;
background: #fff;
color: var(--shc-text);
font: inherit;
font-size: 1rem;
line-height: 1.3;
box-shadow: none;
}
.shc select { padding-right: 30px; }
.shc textarea { min-height: 92px; resize: vertical; }
.shc input:focus,
.shc select:focus,
.shc textarea:focus { border-color: var(--shc-brand); outline: 2px solid var(--shc-brand); outline-offset: 2px; box-shadow: none; }
.shc [aria-invalid="true"] { border-color: var(--shc-brand); }
.shc__row-footer { display: grid; gap: 5px; min-width: 0; align-content: start; padding-top: 2px; }
.shc [data-shc-line-total] { display: block; font-size: 1rem; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.shc [data-shc-line-detail] { color: var(--shc-muted); font-size: .78rem; line-height: 1.45; overflow-wrap: anywhere; }
.shc button,
.shc .shc__send { min-height: 44px; min-width: 44px; font: inherit; line-height: 1.3; letter-spacing: normal; text-transform: none; }
.shc .shc__remove,
.shc .shc__add {
display: inline-flex;
justify-content: center;
align-items: center;
width: auto;
margin: 0;
padding: 10px 14px;
border: 1px solid #ccc;
border-radius: 3px;
background: #fff;
color: var(--shc-brand);
font-size: .9rem;
box-shadow: none;
cursor: pointer;
}
.shc__remove { justify-self: start; padding: 8px 10px; font-size: .78rem; }
.shc__add { margin-top: 12px; }
.shc__remove:hover:not(:disabled),
.shc__add:hover:not(:disabled) { background: #fff; color: var(--shc-brand); }
.shc button:disabled { opacity: .5; cursor: not-allowed; }
.shc button:focus-visible,
.shc__send:focus-visible { outline: 2px solid var(--shc-brand); outline-offset: 3px; }
.shc__location { min-width: 0; margin: 22px 0 0; padding: 0; border: 0; }
.shc__location legend { width: 100%; margin: 0 0 12px; padding: 0; color: var(--shc-text); font-size: 1rem; font-weight: 600; }
.shc__location-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; min-width: 0; }
.shc__optional { margin-top: 16px; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; }
.shc__optional > summary { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; min-height: 48px; padding: 12px 24px 12px 0; list-style: none; font-size: .85rem; cursor: pointer; }
.shc__optional > summary::-webkit-details-marker { display: none; }
.shc__optional > summary::after { content: '+'; position: absolute; right: 0; font-size: 1.2rem; }
.shc__optional[open] > summary::after { content: '−'; }
.shc__optional > summary > span { color: var(--shc-muted); font-size: .8rem; }
.shc__optional > summary:focus-visible { outline: 2px solid var(--shc-brand); outline-offset: 2px; }
.shc__optional-fields { display: grid; gap: 14px; padding: 0 0 16px; }
.shc__summary { margin-top: 22px; padding: 18px; border: 1px solid #ddd; border-radius: 0; background: #fff; }
.shc__summary-line { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin: 0 0 9px; font-size: .93rem; line-height: 1.45; }
.shc__summary-line > :first-child { min-width: 0; }
.shc__summary-line output { min-width: 0; max-width: 65%; flex-shrink: 1; text-align: right; overflow-wrap: anywhere; }
.shc__summary-total { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin: 12px 0 0; padding-top: 12px; border-top: 1px solid #ddd; color: var(--shc-brand); font-size: 1.12rem; font-weight: 600; }
.shc__summary-total > :first-child { min-width: 0; }
.shc__summary-total output { min-width: 0; max-width: 65%; flex-shrink: 1; text-align: right; overflow-wrap: anywhere; }
.shc__note { margin: 12px 0 0; color: var(--shc-muted); font-size: .82rem; line-height: 1.55; }
.shc__error { margin: 14px 0 0; padding: 11px 13px; border: 1px solid #888; border-radius: 3px; background: #fff; color: #333; font-size: .9rem; line-height: 1.45; }
.shc__error:empty { display: none; }
.shc .shc__send {
display: inline-flex;
align-items: center;
justify-content: center;
margin-top: 16px;
padding: 13px 20px;
border: 1px solid var(--shc-brand);
border-radius: 3px;
background: var(--shc-brand);
color: #fff;
font-size: 1rem;
font-weight: 600;
text-decoration: none;
white-space: normal;
text-align: center;
cursor: pointer;
}
.shc .shc__send { background: #fff; color: #333; border-color: #777; }
.shc .shc__send:hover,
.shc .shc__send:focus { background: #fff; color: #111; text-decoration: none; filter: none; border-color: #111; }
.shc__send[aria-disabled="true"] { opacity: .58; }
@media (max-width: 900px) {
.shc__row { gap: 9px; padding: 13px; }
.shc__field { font-size: .8rem; }
.shc input, .shc select { padding-left: 9px; }
}
@media (max-width: 760px) {
.shc { border-radius: 0; }
.shc__header { padding: 18px 16px 0; }
.shc__body { padding: 16px; }
.shc__row { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 12px; align-items: end; }
.shc__row > .shc__field:first-child { grid-column: 1 / -1; }
.shc__row-footer { grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; align-items: center; padding-top: 7px; border-top: 1px solid #ddd; }
.shc [data-shc-line-total] { grid-column: 1; grid-row: 1; }
.shc [data-shc-line-detail] { grid-column: 1; grid-row: 2; }
.shc__row-footer .shc__remove { grid-column: 2; grid-row: 1 / 3; justify-self: end; }
.shc__location-grid { grid-template-columns: minmax(0, 1fr); }
.shc__summary { padding: 15px; }
.shc__summary-line { gap: 12px; font-size: .88rem; }
.shc__summary-total { font-size: 1.02rem; }
.shc .shc__send { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
.shc * { scroll-behavior: auto; transition: none !important; }
} .shp { margin: 2rem 0; border: 1px solid #ddd; background: #fff; color: inherit; }
.shp__heading { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 20px 24px; border-bottom: 1px solid #ddd; }
.shp__heading h3 { width: auto; min-width: 0; margin: 0; font-size: 1.2rem; color: inherit; }
.shp__heading span { flex-shrink: 0; white-space: nowrap; font-size: .85rem; color: #666; }
.shp .shp__table { margin: 0; overflow-x: auto; }
.shp table { width: 100%; margin: 0; border-collapse: collapse; table-layout: auto; }
.shp table th, .shp table td { padding: 13px 24px; border: 0; border-bottom: 1px solid #eee; background: #fff !important; color: inherit; font-size: .95rem; }
.shp table th { font-size: .8rem; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: #666; }
.shp table th:last-child, .shp table td:last-child { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.shp table td:last-child { font-weight: 500; }
.shp table tbody tr:last-child td { border-bottom: 0; }
.shp table tr:has(td:empty):not(:has(td:not(:empty))) { display: none; }
.shp figcaption { margin: 0; padding: 16px 24px; border-top: 1px solid #ddd; color: #555; font-size: .85rem; line-height: 1.6; }
.shp figcaption br { display: none; }
.shp figcaption em { font-style: normal; }
.she, .she * { box-sizing: border-box; }
.she [hidden] { display: none !important; }
.she .she__trigger { position: fixed; left: 16px; bottom: 16px; z-index: 998; display: inline-flex; align-items: center; justify-content: center; width: 44px; min-width: 44px; height: 44px; margin: 0; padding: 0; border: 1px solid #bbb; border-radius: 3px; background: #fff; color: #333; box-shadow: 0 2px 6px rgba(0,0,0,.06); font: inherit; font-size: 1rem; line-height: 1.3; text-transform: none; letter-spacing: normal; cursor: pointer; }
.she .she__dialog { width: min(900px, calc(100% - 32px)); max-height: calc(100dvh - 48px); margin: auto; padding: 0; border: 1px solid #ccc; border-radius: 3px; background: #fff; color: #333; overflow-y: auto; overscroll-behavior: contain; }
.she__dialog::backdrop { background: rgba(0,0,0,.3); }
.she__header { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 24px; border-bottom: 1px solid #ddd; background: #fff; }
.she__header h2 { margin: 0; font-size: 1.35rem; color: inherit; }
.she .she__close { margin: 0; padding: 0; width: 44px; height: 44px; min-width: 44px; border: 1px solid #ddd; border-radius: 3px; background: #fff; color: #333; font-size: 26px; line-height: 1; cursor: pointer; }
.she__login, .she form[data-she-prices] { margin: 0; padding: 24px; }
.she__login { max-width: 480px; }
.she__login p { margin: 0 0 16px; }
.she input { width: 100%; min-width: 0; min-height: 44px; margin: 0; padding: 10px 12px; border: 1px solid #ccc; border-radius: 3px; background: #fff; color: #333; box-shadow: none; font: inherit; font-size: 16px; line-height: 1.4; }
.she input:focus { outline: 2px solid #555; outline-offset: 2px; border-color: #555; }
.she .she__button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin: 0; padding: 12px 18px; border: 1px solid #555; border-radius: 3px; background: #fff; color: #222; font: inherit; font-size: .9rem; font-weight: 600; letter-spacing: normal; line-height: 1.3; text-transform: none; cursor: pointer; }
.she__login .she__button { margin-top: 18px; }
.she .she__button--secondary { border-color: #ccc; font-weight: 400; }
.she button:hover { background: #fff; color: #111; border-color: #111; }
.she button:focus-visible { outline: 2px solid #555; outline-offset: 2px; }
.she button:disabled { opacity: .5; cursor: wait; }
.she__group { margin-bottom: 28px; }
.she__group h3 { margin: 0 0 12px; padding-bottom: 10px; border-bottom: 1px solid #ddd; color: inherit; font-size: 1rem; }
.she__row { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr) minmax(0, 1fr); gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid #eee; }
.she__label { font-size: .9rem; overflow-wrap: anywhere; }
.she__field { display: grid; gap: 5px; margin: 0; min-width: 0; }
.she__field span { color: #666; font-size: .75rem; font-weight: 400; }
.she__minimum { display: grid; gap: 7px; max-width: 300px; margin: 0 0 20px; font-size: .9rem; }
.she__actions { position: sticky; bottom: -24px; display: flex; flex-wrap: wrap; gap: 10px; padding: 16px 0; border-top: 1px solid #ddd; background: #fff; }
.she__help { margin: 4px 0 0; color: #666; font-size: .8rem; line-height: 1.5; }
.she__status { margin: 0 24px 24px; padding: 12px 14px; border: 1px solid #ccc; background: #fff; color: #333; font-size: .9rem; line-height: 1.6; }
@media (max-width: 760px) {
.shp__heading { padding: 16px; flex-wrap: wrap; gap: 4px; }
.shp table th, .shp table td { padding: 12px 14px; font-size: .875rem; }
.shp table th { font-size: .75rem; }
.shp table td:last-child { font-size: .875rem; white-space: normal; overflow-wrap: anywhere; }
.shp table th:first-child, .shp table td:first-child { width: 60%; }
.shp table th:last-child, .shp table td:last-child { width: 40%; }
.shp table td { overflow-wrap: anywhere; }
.shp figcaption { padding: 14px 16px; }
.she .she__trigger { left: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
.she .she__dialog { width: calc(100% - 20px); max-height: calc(100dvh - 24px); }
.she__header { padding: 12px 16px; }
.she__header h2 { font-size: 1.1rem; }
.she__login, .she form[data-she-prices] { padding: 16px; }
.she__row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; }
.she__label { grid-column: 1 / -1; }
.she__row > .she__field:nth-child(2):last-child { grid-column: 1 / -1; }
.she__actions { bottom: -16px; }
.she__status { margin: 0 16px 16px; }
}
.shs { margin: 32px 0 24px; color: inherit; background: #fff; }
.shs__heading { margin-bottom: 20px; }
.shs__heading h2 { margin: 0 0 8px; color: inherit; font-size: 1.45rem; }
.shs__heading p { margin: 0; color: #666; font-size: .82rem; }
.shs__group { margin: 0 0 10px; border: 1px solid #ddd; background: #fff; }
.shs__group > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 20px; color: #333; font-size: 1rem; font-weight: 600; list-style: none; cursor: pointer; }
.shs summary::-webkit-details-marker { display: none; }
.shs__group > summary > span { font-size: 1.2rem; font-weight: 400; flex-shrink: 0; }
.shs__group[open] > summary { border-bottom: 1px solid #ddd; }
.shs__group[open] > summary > span { transform: rotate(45deg); }
.shs summary:focus-visible { outline: 2px solid #555; outline-offset: 2px; }
.shs__questions { padding: 0 20px; }
.shs__item { margin: 0; border-bottom: 1px solid #eee; }
.shs__item:last-child { border-bottom: 0; }
.shs__item > summary { position: relative; padding: 15px 24px 15px 0; list-style: none; color: #444; font-size: .95rem; font-weight: 500; cursor: pointer; }
.shs__item > summary::after { content: '+'; position: absolute; right: 0; top: 15px; color: #666; }
.shs__item[open] > summary::after { content: '−'; }
.shs__answer { padding: 0 0 18px; color: #555; font-size: .9rem; line-height: 1.75; }
.shs__answer p { margin: 0 0 12px; }
.shs__answer p:last-child { margin-bottom: 0; }
.shs__answer a { color: inherit; text-decoration: underline; }
.shs__rates { list-style: none; margin: 10px 0 0 !important; padding: 0; }
.shs__rates li { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0; padding: 8px 0; border-bottom: 1px solid #eee; }
.shs__rates li:last-child { border-bottom: 0; }
.shs__rates strong { flex-shrink: 0; text-align: right; font-size: .86rem; font-weight: 500; font-variant-numeric: tabular-nums; }
@media (max-width: 760px) {
.shs__heading h2 { font-size: 1.2rem; }
.shs__group > summary { padding: 15px 16px; font-size: .9rem; }
.shs__questions { padding: 0 16px; }
.shs__item > summary { font-size: .85rem; }
.shs__answer { font-size: .85rem; }
.shs__rates li { flex-wrap: wrap; gap: 3px 12px; }
.shs__rates strong { font-size: .82rem; }
}.wpcf7 .screen-reader-response {
position: absolute;
overflow: hidden;
clip: rect(1px, 1px, 1px, 1px);
clip-path: inset(50%);
height: 1px;
width: 1px;
margin: -1px;
padding: 0;
border: 0;
word-wrap: normal !important;
}
.wpcf7 .hidden-fields-container {
display: none;
}
.wpcf7 form .wpcf7-response-output {
margin: 2em 0.5em 1em;
padding: 0.2em 1em;
border: 2px solid #00a0d2; }
.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output {
display: none;
}
.wpcf7 form.sent .wpcf7-response-output {
border-color: #46b450; }
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
border-color: #dc3232; }
.wpcf7 form.spam .wpcf7-response-output {
border-color: #f56e28; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
border-color: #ffb900; }
.wpcf7-form-control-wrap {
position: relative;
}
.wpcf7-not-valid-tip {
color: #dc3232; font-size: 1em;
font-weight: normal;
display: block;
}
.use-floating-validation-tip .wpcf7-not-valid-tip {
position: relative;
top: -2ex;
left: 1em;
z-index: 100;
border: 1px solid #dc3232;
background: #fff;
padding: .2em .8em;
width: 24em;
}
.wpcf7-list-item {
display: inline-block;
margin: 0 0 0 1em;
}
.wpcf7-list-item-label::before,
.wpcf7-list-item-label::after {
content: " ";
}
.wpcf7-spinner {
visibility: hidden;
display: inline-block;
background-color: #23282d; opacity: 0.75;
width: 24px;
height: 24px;
border: none;
border-radius: 100%;
padding: 0;
margin: 0 24px;
position: relative;
}
form.submitting .wpcf7-spinner {
visibility: visible;
}
.wpcf7-spinner::before {
content: '';
position: absolute;
background-color: #fbfbfc; top: 4px;
left: 4px;
width: 6px;
height: 6px;
border: none;
border-radius: 100%;
transform-origin: 8px 8px;
animation-name: spin;
animation-duration: 1000ms;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
@media (prefers-reduced-motion: reduce) {
.wpcf7-spinner::before {
animation-name: blink;
animation-duration: 2000ms;
}
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@keyframes blink {
from {
opacity: 0;
}
50% {
opacity: 1;
}
to {
opacity: 0;
}
}
.wpcf7 [inert] {
opacity: 0.5;
}
.wpcf7 input[type="file"] {
cursor: pointer;
}
.wpcf7 input[type="file"]:disabled {
cursor: default;
}
.wpcf7 .wpcf7-submit:disabled {
cursor: not-allowed;
}
.wpcf7 input[type="url"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] {
direction: ltr;
}
.wpcf7-reflection > output {
display: list-item;
list-style: none;
}
.wpcf7-reflection > output[hidden] {
display: none;
}