.dc-mobile-reservation { display: none; }
@media (max-width: 767px) {
 header .dc-header-brand { flex: 1 1 0; width: auto; max-width: none; min-width: 0; padding-left: 0; padding-right: 10px; align-self: center; }
 header .dc-header-actions { display: flex; flex: 0 0 auto; width: auto; max-width: none; padding: 0; gap: 10px; align-items: center; justify-content: flex-end; }
 header .dc-mobile-reservation {
  display: inline-flex; align-items: center; justify-content: center; min-height: 42px;
  min-width: 114px; padding: 9px 18px; border: 2px solid #111; border-radius: 0;
  background: #fff; color: #111; font-size: 13px; font-weight: 700;
  line-height: 1.3; white-space: nowrap; text-decoration: none; text-transform: uppercase;
 }
 header .dc-mobile-reservation:hover { background: #f5f5f5; border-color: #111; color: #111; text-decoration: none; }
 header .dc-mobile-reservation:focus-visible { outline: 2px solid #111; outline-offset: 3px; }
 header #header_mobis .nav-button { top: 0; margin: 0 !important; width: 44px; height: 42px; padding: 11px 9px; }
}
.dc-reservation {
 --dc-yellow: #fbc123;
 box-sizing: border-box; width: min(816px, calc(100% - 32px)); max-width: 816px;
 max-height: calc(100dvh - 32px); margin: auto; padding: 40px 55px 52px;
 border: 0; background: #fff; color: #080808; font-family: inherit;
 font-size: 14px; line-height: 1.4; overscroll-behavior: contain;
}
.dc-reservation:not([open]), .dc-reservation [hidden] { display: none !important; }
.dc-reservation::backdrop { background: rgb(0 0 0 / 48%); }
html.dc-reservation-open { overflow: hidden; scrollbar-gutter: stable; }
.dc-reservation *, .dc-reservation *::before, .dc-reservation *::after { box-sizing: border-box; }
.dc-reservation-heading { display: grid; grid-template-columns: 86px 1fr 34px; gap: 16px; align-items: center; padding-bottom: 17px; border-bottom: 2px solid #111; margin-bottom: 34px; }
.dc-reservation-heading img { width: 86px; height: 50px; object-fit: contain; }
.dc-reservation .dc-reservation-heading h2,
.dc-reservation #dc-reservation-title {
 font-size: 21px; font-weight: 600; text-align: center; line-height: 1.3;
 margin: 0; padding: 0; letter-spacing: 0; outline: none !important;
}
.dc-reservation .dc-reservation-heading h2:focus,
.dc-reservation .dc-reservation-heading h2:focus-visible,
.dc-reservation #dc-reservation-title:focus,
.dc-reservation #dc-reservation-title:focus-visible {
 outline: none !important; box-shadow: none !important;
}
.dc-reservation .dc-reservation-close {
  display: grid;
  place-items: center;
  width: 33px;
  height: 33px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #000;
  color: var(--dc-yellow);
  font: 30px/1 Arial,sans-serif;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}
.dc-reservation .dc-reservation-close:hover,
.dc-reservation .dc-reservation-close:focus-visible {
  background: var(--dc-yellow);
  color: #000;
  transform: rotate(90deg) scale(1.12);
  box-shadow: 0 4px 12px rgba(251, 193, 35, 0.35);
  outline: none !important;
}
.dc-reservation-fields { display: grid; gap: 15px; }
.dc-reservation-row { display: grid; grid-template-columns: 32% 1fr; gap: 24px; align-items: start; }
.dc-reservation .dc-reservation-label { font-size: 16px; font-weight: 600; padding-top: 5px; margin: 0; }
.dc-reservation-pair { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 21px; align-items: center; }
.dc-reservation .wpcf7-form-control-wrap { display: block; width: 100%; min-width: 0 !important; }
.dc-reservation .dc-reservation-fields input,
.dc-reservation .dc-reservation-fields select,
.dc-reservation .dc-reservation-fields textarea {
 display: block; width: 100%; max-width: 100%; min-width: 0;
 box-sizing: border-box; border: 1px solid transparent; border-radius: 0;
 background-color: var(--dc-yellow); box-shadow: none; color: #111;
 font: inherit; font-size: 13px; line-height: normal; margin: 0;
}
.dc-reservation .dc-reservation-fields input,
.dc-reservation .dc-reservation-fields select {
 height: 35px; min-height: 35px; max-height: 35px; padding: 6px 13px;
}
.dc-reservation .dc-reservation-fields input[type="date"] {
 -webkit-appearance: none;
 -moz-appearance: none;
 appearance: none;
 background-color: var(--dc-yellow);
}
.dc-reservation .dc-reservation-fields input[type="date"]::-webkit-date-and-time-value {
 margin: 0; padding: 0; line-height: normal; min-height: 1.2em; text-align: left;
}
.dc-reservation .dc-reservation-fields textarea { height: 53px; resize: vertical; }
.dc-reservation .dc-reservation-fields input::placeholder, .dc-reservation .dc-reservation-fields textarea::placeholder { color: #816728; opacity: 1; }
.dc-reservation .dc-reservation-fields select:has(option[value=""]:checked) { color: #816728; }
.dc-reservation .dc-reservation-fields option { background: var(--dc-yellow); color: #111; }
.dc-reservation .dc-reservation-fields option:disabled { color: #999; background: #eee; }
.dc-reservation .dc-reservation-submit { display: block; width: 100%; margin: 34px 0 0; padding: 10px 16px; height: auto; min-height: 51px; border: 0; border-radius: 0; background: #000; color: var(--dc-yellow); font-family: inherit; font-size: 21px; font-weight: 600; line-height: 1.4; text-align: center; text-transform: none; cursor: pointer; }
.dc-reservation .dc-reservation-submit:hover { background: #222; text-decoration: none; }
.dc-reservation input.wpcf7-form-control.dc-reservation-submit { width: 100% !important; margin-right: 0 !important; float: none; color: var(--dc-yellow); text-transform: none; }
.dc-reservation .dc-reservation-submit:disabled { opacity: .6; cursor: wait; }
.dc-reservation :focus-visible { outline: 2px solid #755500; outline-offset: 3px; }
.dc-reservation .wpcf7 form { margin: 0; }
.dc-reservation .wpcf7 p { margin: 0; padding: 0; }
.dc-reservation .wpcf7-spinner { display: none; }
.dc-reservation .submitting .wpcf7-spinner { display: block; margin: 8px auto; }
.dc-reservation .wpcf7-not-valid-tip { margin-top: 4px; font-size: 12px; color: #a11; }
.dc-reservation .wpcf7 form .wpcf7-response-output {
 margin: 16px 0 0; padding: 11px 14px; border: 1px solid #e5a4a4;
 border-radius: 3px; background: #fff3f3; color: #a11;
 font-size: 13px; font-weight: 500; line-height: 1.5; text-align: left;
}
.dc-reservation .wpcf7 form:is(.invalid, .unaccepted, .failed, .aborted, .spam, .payment-required) .wpcf7-response-output {
 border-color: #e5a4a4; background: #fff3f3; color: #a11;
}
.dc-reservation .wpcf7 form.sent .wpcf7-response-output {
 border-color: #a3cfb2; background: #effaf2; color: #216b39;
}
.dc-reservation .wpcf7-turnstile { margin-top: 16px; }
.dc-reservation-thanks { text-align: center; margin: 0 0 24px; }
.dc-reservation .dc-reservation-thanks h3 { font-size: 21px; font-weight: 600; margin: 0 0 4px; }
.dc-reservation-thanks p { font-size: 12px; margin: 0; }
.dc-reservation-summary { margin: 0 0 40px; }
.dc-reservation-summary > div { display: grid; grid-template-columns: 140px 1fr; gap: 16px; padding: 7px 0; border-bottom: 1px solid #aaa; }
.dc-reservation-summary > div:last-child { border-bottom: 0; }
.dc-reservation-summary dt, .dc-reservation-summary dd { margin: 0; font-weight: 600; }
.dc-reservation-summary dd { text-align: right; overflow-wrap: anywhere; white-space: pre-wrap; }
.dc-reservation-notice { text-align: center; font-size: 12px; margin: 0 0 12px; }
.dc-reservation #dc-reservation-confirmation .dc-reservation-submit { margin-top: 0; }
@media (max-width: 600px) {
 .dc-reservation { width: calc(100% - 48px); max-height: calc(100dvh - 48px); padding: 24px 24px 32px; }
 .dc-reservation-heading {
  grid-template-columns: 1fr 32px; gap: 16px 12px;
  padding-bottom: 0; border-bottom: 0; margin-bottom: 24px;
 }
 .dc-reservation-heading img { grid-column: 1; grid-row: 1; width: 66px; height: 42px; }
 .dc-reservation .dc-reservation-close { grid-column: 2; grid-row: 1; width: 28px; height: 28px; justify-self: end; font-size: 25px; }
 .dc-reservation .dc-reservation-heading h2 {
  grid-column: 1 / -1; grid-row: 2; border-top: 1px solid #111;
  padding-top: 26px; font-size: 18px; line-height: 1.35;
 }
 .dc-reservation-fields { gap: 24px; }
 .dc-reservation-row { grid-template-columns: 1fr; gap: 10px; }
 .dc-reservation-pair { grid-template-columns: minmax(0, 1fr); gap: 12px; }
 .dc-reservation .dc-reservation-fields input, .dc-reservation .dc-reservation-fields select {
  height: 38px; padding: 8px 12px; font-size: 16px;
 }
 .dc-reservation .dc-reservation-fields textarea { height: 68px; padding: 10px 12px; font-size: 16px; }
 .dc-reservation .dc-reservation-label { font-size: 14px; padding-top: 0; }
 .dc-reservation #dc-time {
  appearance: none; padding-right: 38px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 11px center; background-size: 19px;
 }
 .dc-reservation .dc-reservation-submit { margin-top: 24px; min-height: 38px; padding: 7px 12px; font-size: 16px; }
 .dc-reservation-summary > div { grid-template-columns: 105px 1fr; }
 .dc-reservation .dc-reservation-thanks h3 { font-size: 18px; }
}
@media (max-width: 360px) {
 .dc-reservation { padding: 20px 18px 28px; }
 .dc-reservation .dc-reservation-heading h2 { font-size: 16px; }
}

/* Contact choices and booking fields share one form. */
.dc-reservation #dc-reservation-booking .wpcf7-form {
 display: grid; grid-template-columns: minmax(0, 196px) minmax(0, 1fr);
 column-gap: 60px; row-gap: 0; align-items: start;
}
.dc-reservation-chat { grid-column: 1; grid-row: 1 / 3; min-width: 0; }
.dc-reservation .dc-reservation-chat h3,
.dc-reservation .dc-reservation-form-title {
 padding: 0; margin: 0 0 26px; font-size: 21px; line-height: 1.35;
 font-weight: 600; letter-spacing: 0; text-transform: none;
}
.dc-reservation-form-title { grid-column: 2; grid-row: 1; }
.dc-reservation-chat-links {
 display: grid; grid-template-columns: repeat(2, 44px); justify-content: center;
 align-content: center; gap: 22px; min-height: 166px; padding: 24px;
 background: var(--dc-yellow);
}
.dc-reservation-chat-links a {
 display: flex; align-items: center; justify-content: center;
 width: 44px; height: 44px; text-decoration: none;
}
.dc-reservation-chat-links a:hover { transform: translateY(-2px); }
.dc-reservation-chat-links img, .dc-reservation-chat-links svg {
 display: block; max-width: 42px; max-height: 42px; margin: 0; object-fit: contain;
}
.dc-reservation #dc-reservation-booking .dc-reservation-fields { grid-column: 2; grid-row: 2; }
.dc-reservation #dc-reservation-booking .wpcf7-form > :is(.dc-reservation-submit, .wpcf7-turnstile, .cf7-cf-turnstile, .wpcf7-response-output, .wpcf7-spinner) { grid-column: 1 / -1; }
.dc-reservation #dc-reservation-booking .wpcf7-form > br { display: none; }
@media (min-width: 601px) {
 .dc-reservation #dc-reservation-booking .wpcf7-form > .dc-reservation-submit { grid-column: 2; }
 .dc-reservation #dc-reservation-booking .dc-reservation-row { grid-template-columns: minmax(0, 1fr); gap: 0; }
 .dc-reservation #dc-reservation-booking .dc-reservation-label {
  position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden;
  clip-path: inset(50%); white-space: nowrap;
 }
 .dc-reservation #dc-reservation-booking .dc-reservation-fields textarea { padding: 8px 13px; }
}
@media (min-width: 601px) and (max-width: 800px) {
 .dc-reservation #dc-reservation-booking .wpcf7-form { grid-template-columns: minmax(0, 160px) minmax(0, 1fr); column-gap: 26px; }
 .dc-reservation .dc-reservation-chat h3, .dc-reservation .dc-reservation-form-title { font-size: 18px; }
}
@media (max-width: 600px) {
 .dc-reservation #dc-reservation-booking .wpcf7-form { grid-template-columns: minmax(0, 1fr); }
 .dc-reservation #dc-reservation-title { padding-top: 26px; font-size: 18px; }
 .dc-reservation-chat { grid-column: 1; grid-row: auto; margin-bottom: 26px; }
 .dc-reservation .dc-reservation-chat h3, .dc-reservation .dc-reservation-form-title {
  font-size: 14px; line-height: 1.4; text-align: center; margin: 0 0 16px;
 }
 .dc-reservation .dc-reservation-form-title { grid-column: 1; grid-row: auto; margin-bottom: 16px; }
 .dc-reservation-chat-links { grid-template-columns: repeat(4, 36px); gap: 20px; min-height: 86px; padding: 18px 10px; }
 .dc-reservation-chat-links a { width: 36px; height: 44px; }
 .dc-reservation #dc-reservation-booking .dc-reservation-fields {
  grid-column: 1; grid-row: auto; padding: 28px; background: var(--dc-yellow);
 }
 .dc-reservation #dc-reservation-booking .dc-reservation-fields :is(input, select, textarea) { background-color: #fff; }
 .dc-reservation #dc-reservation-booking .dc-reservation-fields option { background: #fff; }
 .dc-reservation #dc-reservation-booking .dc-reservation-fields :is(input, textarea)::placeholder { color: #777; }
 .dc-reservation #dc-reservation-booking .dc-reservation-fields select:has(option[value=""]:checked) { color: #777; }
}
@media (max-width: 360px) {
 .dc-reservation #dc-reservation-booking .dc-reservation-fields { padding: 24px 20px; }
}
