.floating-contact { position: fixed; right: 1rem; bottom: 1rem; z-index: 110; display: grid; justify-items: end; gap: .5rem; }
.is-development-build .development-marker { bottom: 4.75rem; }
.floating-contact__toggle { display: inline-flex; min-height: 3rem; align-items: center; gap: .55rem; padding: .65rem 1rem; border: 1px solid #d7b777; border-radius: 999px; color: #fff; background: #17120d; box-shadow: 0 .35rem 1rem #0005; font-weight: 600; cursor: pointer; }
.floating-contact__menu { display: grid; min-width: 11rem; padding: .45rem; border: 1px solid #806e54; border-radius: .65rem; background: #111; box-shadow: 0 .5rem 1.5rem #0006; }
.floating-contact__menu a { padding: .65rem .8rem; color: #fff5d0; text-decoration: none; }
.floating-contact__menu a:hover, .floating-contact__menu a:focus-visible { background: #30271e; }
.consent-settings { position: fixed; left: .75rem; bottom: .75rem; z-index: 80; padding: .4rem .6rem; border: 1px solid #806e54; border-radius: .35rem; color: #fff5d0; background: #25211d; font-size: .72rem; cursor: pointer; }
.consent-banner { position: fixed; right: 1rem; bottom: 5rem; left: 1rem; z-index: 120; display: grid; grid-template-columns: 1fr auto; gap: 1rem 2rem; max-width: 72rem; margin-inline: auto; padding: 1.2rem; border: 1px solid #c4a97d; border-radius: .65rem; color: #fff; background: #171717; box-shadow: 0 .75rem 2rem #0008; }
.consent-banner :is(h2:where(:not([data-heading-display])), :where([data-heading-display="2"])), .consent-dialog :is(h2:where(:not([data-heading-display])), :where([data-heading-display="2"])) { margin: 0 0 .35rem; font-size: 1.15rem; }
.consent-banner p, .consent-dialog p { margin: 0; font-size: .9rem; }
.consent-banner__actions, .consent-dialog__actions { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; }
.consent-banner button, .consent-dialog button { min-height: 2.6rem; padding: .5rem .8rem; border: 1px solid #c4a97d; border-radius: .3rem; color: #fff; background: #32291f; cursor: pointer; }
.consent-dialog { width: min(36rem, calc(100% - 2rem)); padding: 0; border: 1px solid #806e54; border-radius: .65rem; color: #fff; background: #171717; }
.consent-dialog::backdrop { background: #000b; }
.consent-dialog form { display: grid; gap: 1rem; padding: 1.25rem; }
.consent-dialog label { display: flex; align-items: flex-start; gap: .55rem; }
.consent-dialog__status { min-height: 1.4em; color: #fff5d0; }
.privacy-embed { position: relative; min-height: 16rem; display: grid; place-content: center; gap: .75rem; overflow: hidden; color: #fff; background: #151515 center/cover no-repeat; text-align: center; isolation: isolate; }
.privacy-embed::before { position: absolute; z-index: -1; background: #0008; content: ""; inset: 0; }
.privacy-embed button { justify-self: center; padding: .7rem 1rem; border: 1px solid #fff; border-radius: 999px; color: #fff; background: #000b; cursor: pointer; }
.privacy-embed a { color: #fff; font-size: .82rem; }
.privacy-embed iframe { width: 100%; min-height: 20rem; border: 0; }
.privacy-embed--map { min-height: 29rem; color: #222; background: repeating-linear-gradient(45deg, #e8e8e8, #e8e8e8 12px, #f4f4f4 12px, #f4f4f4 24px); }
.privacy-embed--map::before { display: none; }
.privacy-embed--map button { color: #fff; background: #17120d; }
.contact-carousel { position: relative; }
.contact-carousel__viewport { overflow: hidden; }
.contact-carousel__track { display: flex; transition: transform .35s ease; touch-action: pan-y; }
.contact-carousel__slide { flex: 0 0 33.333%; padding: .35rem; }
.contact-carousel__slide img { width: 100%; aspect-ratio: 3/2; object-fit: cover; }
.contact-carousel__button { position: absolute; z-index: 2; top: 50%; width: 2.75rem; height: 2.75rem; border: 1px solid #c4a97d; border-radius: 50%; color: #fff; background: #17120de8; transform: translateY(-50%); cursor: pointer; }
.contact-carousel__button--prev { left: .65rem; }
.contact-carousel__button--next { right: .65rem; }
.contact-carousel__status { margin-top: .5rem; text-align: center; }
.service-form__error { min-height: 1.2em; color: #ffb4a8; font-size: .75rem; }
.service-form [aria-invalid="true"] { border-color: #ff7566; box-shadow: 0 0 0 2px #ff756633; }
.service-form__status:not(:empty) { position: static; width: auto; height: auto; padding: .6rem .75rem; overflow: visible; clip-path: none; border-left: .25rem solid #c4a97d; }
.service-form__honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.is-development-build.review-without-marker .development-marker { display: none; }
@media (max-width: 57.6244rem) {
  .contact-carousel__slide { flex-basis: 50%; }
  .consent-banner { grid-template-columns: 1fr; }
}
@media (max-width: 40rem) {
  .contact-carousel__slide { flex-basis: 100%; }
  .floating-contact { right: .65rem; bottom: .65rem; }
  .floating-contact__toggle span:last-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .floating-contact__toggle { width: 3rem; padding: 0; justify-content: center; }
  .consent-settings { bottom: 4.25rem; }
  .consent-banner { right: .5rem; bottom: .5rem; left: .5rem; max-height: calc(100vh - 1rem); overflow: auto; }
}
@media (prefers-reduced-motion: reduce) { .contact-carousel__track { transition: none; } }

/* Reserve status space only after a user action produces a message. */
.service-form__status:empty { display: none; }

.consent-dialog__details { display: grid; gap: .5rem; }
.consent-dialog__details a { justify-self: start; color: #ead6ad; text-decoration: underline; }
.consent-dialog__status:empty { display: none; }
.consent-dialog button, .consent-banner button, .consent-settings { min-height: 44px; min-width: 44px; }
.consent-dialog :is(a, input, button):focus-visible,
.consent-banner button:focus-visible,
.consent-settings:focus-visible { outline: 2px solid #ead6ad; outline-offset: 3px; }
