.mgag-booking {
  --mgag-bg: #0f1014;
  --mgag-primary: #c99615;
  --mgag-text: #fff;
  --mgag-surface: #242730;
  --mgag-border: #343741;
  --mgag-muted: #9ca3b2;
  --mgag-success: #69c17d;
  width: min(100%, 860px);
  margin: 0 auto;
  padding: clamp(30px, 5vw, 52px);
  border: 1px solid rgba(255,255,255,.04);
  border-radius: 24px;
  color: var(--mgag-text);
  background: var(--mgag-bg);
  box-shadow: 0 28px 90px rgba(0,0,0,.42);
  color-scheme: dark;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.5;
}

.mgag-booking,
.mgag-booking *,
.mgag-booking *::before,
.mgag-booking *::after { box-sizing: border-box; }

.mgag-booking__form { margin: 0; }

.mgag-booking__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 36px;
  align-items: end;
  margin-bottom: 38px;
  padding-bottom: 30px;
  border-bottom: 1px solid var(--mgag-border);
}

.mgag-booking__eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 13px;
  color: var(--mgag-primary);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .16em;
  line-height: 1;
  text-transform: uppercase;
}

.mgag-booking__eyebrow span { width: 25px; height: 2px; background: var(--mgag-primary); }

.mgag-booking h2 {
  margin: 0;
  color: var(--mgag-text);
  font-size: clamp(32px, 5vw, 40px);
  font-weight: 560;
  letter-spacing: -.035em;
  line-height: 1.1;
}

.mgag-booking__intro {
  max-width: 540px;
  margin: 14px 0 0;
  color: var(--mgag-muted);
  font-size: 15px;
  line-height: 1.6;
}

.mgag-booking__contact {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
  padding-bottom: 2px;
  color: var(--mgag-muted);
  font-size: 12px;
  line-height: 1.45;
  white-space: nowrap;
}

.mgag-booking__contact a {
  margin-bottom: 3px;
  color: var(--mgag-text);
  font-size: 14px;
  font-weight: 650;
  text-decoration: none;
}

.mgag-booking__contact a:hover { color: var(--mgag-primary); }

.mgag-booking__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 23px 24px;
}

.mgag-booking__field { min-width: 0; }
.mgag-booking__field--full { grid-column: 1 / -1; }

.mgag-booking label:not(.mgag-booking__privacy) {
  display: block;
  margin: 0 0 9px;
  color: var(--mgag-text);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .085em;
  line-height: 1.3;
  text-transform: uppercase;
}

.mgag-booking label span[aria-hidden="true"] { color: #ef5350; }

.mgag-booking__control { position: relative; }

.mgag-booking__control--select::after {
  position: absolute;
  top: 50%;
  right: 19px;
  width: 8px;
  height: 8px;
  margin-top: -6px;
  border-right: 2px solid var(--mgag-primary);
  border-bottom: 2px solid var(--mgag-primary);
  content: "";
  pointer-events: none;
  transform: rotate(45deg);
}

.mgag-booking input:not([type="checkbox"]),
.mgag-booking select,
.mgag-booking textarea {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 52px;
  margin: 0;
  padding: 14px 18px;
  border: 1px solid var(--mgag-border);
  border-radius: 12px;
  outline: 0;
  color: var(--mgag-text);
  background: var(--mgag-surface);
  box-shadow: none;
  font: inherit;
  font-size: 15px;
  line-height: 1.35;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.mgag-booking select {
  padding-right: 45px;
  overflow: hidden;
  appearance: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mgag-booking textarea {
  min-height: 132px;
  border-radius: 12px;
  resize: vertical;
}

.mgag-booking input::placeholder,
.mgag-booking textarea::placeholder { color: #7f8798; opacity: 1; }

.mgag-booking input:not([type="checkbox"]):hover,
.mgag-booking select:hover,
.mgag-booking textarea:hover { border-color: #4b4f5b; }

.mgag-booking input:not([type="checkbox"]):focus,
.mgag-booking select:focus,
.mgag-booking textarea:focus {
  border-color: var(--mgag-primary);
  box-shadow: 0 0 0 3px rgba(201,150,21,.18);
}

.mgag-booking input[type="date"] { padding-right: 48px; }
.mgag-booking input[type="date"]::-webkit-calendar-picker-indicator { cursor: pointer; filter: invert(72%) sepia(72%) saturate(706%) hue-rotate(4deg) brightness(83%); }

.mgag-booking select:disabled {
  cursor: not-allowed;
  opacity: .5;
}

.mgag-booking__status {
  display: flex;
  align-items: center;
  min-height: 0;
  margin: -6px 0 1px;
  color: var(--mgag-muted);
  font-size: 13px;
  line-height: 1.45;
}

.mgag-booking__status:empty { display: none; }

.mgag-booking__status::before {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin-right: 9px;
  border-radius: 50%;
  background: currentColor;
  content: "";
}

.mgag-booking__status.is-loading::before {
  width: 12px;
  height: 12px;
  border: 2px solid rgba(255,255,255,.18);
  border-top-color: var(--mgag-primary);
  background: transparent;
  animation: mgagSpin .75s linear infinite;
}

.mgag-booking__status.is-success { color: var(--mgag-success); }
.mgag-booking__status.is-warning { color: #e7bd57; }
.mgag-booking__status.is-error { color: #ff8b88; }
.mgag-booking__status.is-error,
.mgag-booking__status.is-success,
.mgag-booking__status.is-warning { animation: mgagStatusIn .3s ease both; }

.mgag-booking__privacy {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  margin: 22px 0 0;
  color: var(--mgag-muted);
  cursor: pointer;
  font-size: 12px;
  line-height: 1.55;
}

.mgag-booking__privacy input {
  width: 18px;
  height: 18px;
  margin: 1px 0 0;
  border: 1px solid #555a67;
  border-radius: 4px;
  accent-color: var(--mgag-primary);
}

.mgag-booking__privacy a { color: var(--mgag-text); text-decoration-color: var(--mgag-primary); text-underline-offset: 2px; }

.mgag-booking__footer {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 27px;
}

.mgag-booking__footer p {
  max-width: 340px;
  margin: 0;
  color: var(--mgag-muted);
  font-size: 12px;
  line-height: 1.5;
}

.mgag-booking__submit {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 132px;
  min-height: 52px;
  padding: 14px 25px;
  border: 1px solid #d9aa31;
  border-radius: 12px;
  overflow: hidden;
  color: #111216;
  background: var(--mgag-primary);
  box-shadow: 0 8px 24px rgba(201,150,21,.18);
  cursor: pointer;
  font: inherit;
  font-size: 15px;
  font-weight: 720;
  line-height: 1;
  transition: transform .2s ease, filter .2s ease, min-width .3s ease, background .3s ease, box-shadow .3s ease;
}

.mgag-booking__submit::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.32) 50%, transparent 75%);
  content: "";
  transform: translateX(-140%);
}

.mgag-booking__submit:hover { filter: brightness(1.07); transform: translateY(-2px); }
.mgag-booking__submit:hover::after { transform: translateX(140%); transition: transform .65s ease; }
.mgag-booking__submit:focus-visible { outline: 3px solid rgba(201,150,21,.35); outline-offset: 3px; }
.mgag-booking__submit:disabled { cursor: wait; filter: none; transform: none; }
.mgag-booking__submit-label { position: relative; z-index: 2; }
.mgag-booking__submit-icon { position: relative; z-index: 2; display: none; flex: 0 0 auto; }

.mgag-booking__submit.is-loading { min-width: 188px; }
.mgag-booking__submit.is-loading .mgag-booking__submit-icon {
  display: block;
  width: 18px;
  height: 18px;
  border: 2px solid rgba(15,16,20,.24);
  border-top-color: #0f1014;
  border-radius: 50%;
  animation: mgagSpin .7s linear infinite;
}

.mgag-booking__submit.is-success {
  min-width: 180px;
  background: #d8aa32;
  box-shadow: 0 0 0 7px rgba(201,150,21,.12), 0 14px 32px rgba(201,150,21,.22);
  animation: mgagButtonSuccess .45s cubic-bezier(.2,.8,.25,1) both;
}

.mgag-booking__submit.is-success .mgag-booking__submit-icon {
  display: block;
  width: 10px;
  height: 18px;
  margin-top: -4px;
  border-right: 3px solid #0f1014;
  border-bottom: 3px solid #0f1014;
  transform: rotate(45deg);
  animation: mgagCheckIn .35s .12s ease both;
}

.mgag-booking__submit.is-error { animation: mgagButtonShake .42s ease both; }
.mgag-booking__honeypot { position: absolute !important; left: -10000px !important; }

@keyframes mgagSpin { to { transform: rotate(360deg); } }
@keyframes mgagCheckIn { from { opacity: 0; transform: scale(.4) rotate(45deg); } to { opacity: 1; transform: scale(1) rotate(45deg); } }
@keyframes mgagButtonSuccess { 0% { transform: scale(.96); } 55% { transform: scale(1.04); } 100% { transform: scale(1); } }
@keyframes mgagButtonShake { 0%,100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 50% { transform: translateX(5px); } 75% { transform: translateX(-3px); } }
@keyframes mgagStatusIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }

@media (prefers-reduced-motion: reduce) {
  .mgag-booking *, .mgag-booking *::before, .mgag-booking *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media (max-width: 680px) {
  .mgag-booking { padding: 30px 26px; border-radius: 18px; }
  .mgag-booking__header { grid-template-columns: 1fr; gap: 18px; margin-bottom: 30px; padding-bottom: 25px; }
  .mgag-booking__contact { align-items: flex-start; }
  .mgag-booking__grid { grid-template-columns: 1fr; gap: 19px; }
  .mgag-booking__field--full { grid-column: auto; }
  .mgag-booking__status { margin-top: -2px; }
}

@media (max-width: 400px) {
  .mgag-booking { padding: 25px 20px; border-radius: 16px; }
  .mgag-booking h2 { font-size: 30px; }
  .mgag-booking__intro { font-size: 14px; }
  .mgag-booking__footer { align-items: stretch; flex-direction: column; gap: 13px; }
  .mgag-booking__submit { width: 100%; }
  .mgag-booking input:not([type="checkbox"]), .mgag-booking select, .mgag-booking textarea { font-size: 16px; }
}
