.bshContactPage { background: var(--bsh-color-white); }
.bshContactPage__pageContent { padding-bottom: clamp(70px, 8vw, 130px); }
.bshContactPage__contact { display: grid; grid-template-columns: minmax(0, .8fr) minmax(420px, 1fr); gap: clamp(70px, 10vw, 180px); align-items: start; padding-block: clamp(80px, 9vw, 150px); border-top: 1px solid rgb(94 94 94 / .18); }
.bshContactPage__intro h2 { max-width: 10ch; margin: 0; color: var(--bsh-color-headline); font-size: var(--bsh-fs-h1); font-weight: 400; line-height: .96; letter-spacing: -.055em; }
.bshContactPage__lead { max-width: 600px; margin-top: clamp(30px, 4vw, 58px); color: var(--bsh-color-body); font-size: var(--bsh-fs-lead); line-height: 1.65; }
.bshContactPage__details { display: grid; gap: 30px; margin-top: clamp(46px, 6vw, 86px); font-style: normal; }
.bshContactPage__details p { display: grid; grid-template-columns: clamp(86px, 7vw, 112px) minmax(0, 1fr); gap: 22px; align-items: baseline; margin: 0; }
.bshContactPage__detailsLabel { color: var(--bsh-color-pastel-2); font-size: .72rem; font-weight: 700; line-height: 1.2; letter-spacing: .14em; text-transform: uppercase; }
.bshContactPage__detailsValue { min-width: 0; line-height: 1.65; overflow-wrap: anywhere; }
.bshContactPage__details a { color: inherit; text-decoration: none; }
.bshContactPage__form :where(p) { margin: 0 0 24px; }
.bshContactPage__form :where(label) { display: grid; gap: 10px; color: var(--bsh-color-headline); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.bshContactPage__form :where(input:not([type="submit"]), textarea, select) { width: 100%; padding: 15px 0; border: 0; border-bottom: 1px solid rgb(94 94 94 / .3); border-radius: 0; color: var(--bsh-color-headline); background: transparent; font: inherit; }
.bshContactPage__form :where(textarea) { min-height: 150px; resize: vertical; }
.bshContactPage__form :where(input[type="submit"]) { min-width: 190px; min-height: var(--bsh-button-height); padding: 12px 28px; border: 1px solid var(--bsh-color-pastel-2); color: var(--bsh-color-white); background: var(--bsh-color-pastel-2); cursor: pointer; font: inherit; font-size: .76rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; transition: color .3s ease, background .3s ease; }
.bshContactPage__form :where(input[type="submit"]):hover { color: var(--bsh-color-pastel-2); background: transparent; }
.bshContactPage__form .bshCf7Grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; }
.bshContactPage__form .bshCf7Grid__full { grid-column: 1 / -1; }
.bshContactPage__form .wpcf7-acceptance .wpcf7-list-item { display: block; margin: 0; }
.bshContactPage__form .wpcf7-acceptance label { display: flex; gap: 13px; align-items: flex-start; width: fit-content; max-width: 100%; cursor: pointer; }
.bshContactPage__form .wpcf7-acceptance input[type="checkbox"] { appearance: none; -webkit-appearance: none; display: grid; flex: 0 0 20px; width: 20px; height: 20px; margin: 1px 0 0; padding: 0; place-content: center; border: 1px solid var(--bsh-color-pastel-2); border-radius: 2px; background: var(--bsh-color-white); cursor: pointer; transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease; }
.bshContactPage__form .wpcf7-acceptance input[type="checkbox"]::before { width: 10px; height: 6px; border: solid var(--bsh-color-white); border-width: 0 0 2px 2px; content: ''; opacity: 0; transform: translateY(-1px) rotate(-45deg) scale(.65); transition: opacity .18s ease, transform .18s ease; }
.bshContactPage__form .wpcf7-acceptance input[type="checkbox"]:checked { border-color: var(--bsh-color-pastel-2); background: var(--bsh-color-pastel-2); }
.bshContactPage__form .wpcf7-acceptance input[type="checkbox"]:checked::before { opacity: 1; transform: translateY(-1px) rotate(-45deg) scale(1); }
.bshContactPage__form .wpcf7-acceptance input[type="checkbox"]:focus-visible { outline: 2px solid var(--bsh-color-pastel-1); outline-offset: 3px; }
.bshContactPage__form .wpcf7-acceptance .wpcf7-list-item-label { color: var(--bsh-color-headline); font-size: .75rem; font-weight: 700; letter-spacing: .1em; line-height: 1.55; text-transform: uppercase; }
.bshContactPage__form .wpcf7-not-valid-tip { margin-top: 8px; font-size: .8rem; letter-spacing: 0; text-transform: none; }
.bshContactPage__aboveMap { padding-block: clamp(70px, 8vw, 130px); }
.bshContactPage__map { position: relative; width: 100%; height: min(72svh, 760px); min-height: 480px; overflow: hidden; background: #ece9e7; }
.bshContactPage__map iframe { display: block; width: 100%; height: 100%; border: 0; filter: saturate(.72) contrast(.94); }
.bshContactPage__mapLink { position: absolute; right: var(--bsh-container-pad); bottom: clamp(22px, 3vw, 42px); z-index: 2; width: auto; min-width: 210px; font-size: .76rem; }

@media (max-width: 900px) {
    .bshContactPage__contact { grid-template-columns: 1fr; gap: 70px; }
}

@media (max-width: 767px) {
    .bshContactPage__body { padding-bottom: 80px; }
    .bshContactPage__contact { padding-block: 72px; }
    .bshContactPage__details p { grid-template-columns: 1fr; gap: 6px; align-items: start; }
    .bshContactPage__map { min-height: 420px; }
    .bshContactPage__mapLink { right: 20px; bottom: 20px; left: 20px; width: auto; min-width: 0; }
    .bshContactPage__form .bshCf7Grid { grid-template-columns: 1fr; }
    .bshContactPage__form .bshCf7Grid__full { grid-column: auto; }
}
