/* Ivory, warm paper and taupe from Dune's landing palette. */
:root {
  --ink: #3e352e;
  --ivory: #faf8f4;
  --paper: #eee8df;
  --sand: #cdb89e;
  --ochre: #756657;
  --line: rgba(117, 102, 87, .22);
  --booking-white: #fffdf9;
  --booking-brown: #665344;
  --booking-muted: #665749;
}

html { background: var(--ivory); color-scheme: light; }
body.dune-booking { background: var(--ivory); color: var(--ink); }

.dune-booking .booking-header {
  background: var(--booking-white);
  border-color: var(--line);
}
.dune-booking .booking-brand img { filter: brightness(0); opacity: .78; }
.dune-booking .header-center,
.dune-booking .header-exit { color: var(--booking-muted); }
.dune-booking .header-exit:hover { color: var(--ink); }

.dune-booking .booking-rail {
  background: var(--booking-brown);
  color: var(--ivory);
  border-right-color: rgba(243, 238, 231, .18);
}
.dune-booking .rail-title { color: var(--paper); }
.dune-booking .step-list li { color: var(--ivory); }
.dune-booking .step-list li.is-active { color: var(--booking-white); }
.dune-booking .step-list li.is-complete { color: var(--booking-white); }
.dune-booking .rail-note { border-color: rgba(243, 238, 231, .22); }
.dune-booking .rail-note span { color: var(--paper); }
.dune-booking .rail-note p { color: rgba(243, 238, 231, .85); }

.dune-booking .step-kicker,
.dune-booking .step-intro em,
.dune-booking .block-label,
.dune-booking .idea-field > span,
.dune-booking .contact-fields label > span,
.dune-booking .summary-kicker { color: var(--booking-brown); }

.dune-booking .step-intro p,
.dune-booking .block-label small,
.dune-booking .zone-grid small,
.dune-booking .size-grid button small,
.dune-booking .idea-field > small,
.dune-booking .reference-upload small,
.dune-booking .consent,
.dune-booking .request-summary dt,
.dune-booking .request-summary p { color: var(--booking-muted); }

.dune-booking .artist-card-face { background-color: #665749; }
.dune-booking .artist-card-back {
  background:
    radial-gradient(circle at 92% 8%, rgba(205, 184, 158, .16), transparent 28%),
    linear-gradient(145deg, #756657, #665749 58%, #51463d);
}
.dune-booking .artist-back-kicker { color: var(--paper); }
.dune-booking .artist-card-back > p,
.dune-booking .artist-back-details > span { color: rgba(243, 238, 231, .85); }
.dune-booking .artist-portrait-placeholder {
  background: linear-gradient(145deg, #756657, #51463d);
}
.dune-booking .artist-skip { color: var(--booking-brown); }

.dune-booking .zone-grid button,
.dune-booking .size-grid button,
.dune-booking .style-grid button,
.dune-booking .zone-other-choice {
  color: var(--ink);
  border-color: var(--line);
  background: var(--booking-white);
}
.dune-booking .zone-grid button:hover,
.dune-booking .size-grid button:hover,
.dune-booking .style-grid button:hover,
.dune-booking .zone-other-choice:hover {
  border-color: var(--booking-brown);
  background: var(--paper);
}
.dune-booking .zone-grid button.is-selected,
.dune-booking .size-grid button.is-selected,
.dune-booking .style-grid button.is-selected,
.dune-booking .zone-other-choice.is-selected {
  border-color: var(--booking-brown);
  background: var(--booking-brown);
  color: var(--booking-white);
  box-shadow: inset 0 0 0 1px rgba(117, 102, 87, .1), 0 6px 18px rgba(81, 70, 61, .1);
}
.dune-booking .size-grid button.is-selected small { color: var(--booking-white); }
.dune-booking .zone-grid .zone-other-choice button {
  background: transparent;
  border: 0;
  box-shadow: none;
}
.dune-booking .zone-other-choice.is-selected button,
.dune-booking .zone-other-choice.is-selected input { color: var(--booking-white); }
.dune-booking .zone-other-choice input { border-bottom-color: rgba(255, 253, 249, .65); }
.dune-booking .zone-other-choice input:focus { border-bottom-color: var(--booking-white); }
.dune-booking .zone-other-choice input[aria-invalid="true"] { border-bottom-color: #ffe4cf; }

.dune-booking .zone-grid .zone-check,
.dune-booking .style-grid .style-check { border-color: rgba(117, 102, 87, .5); }
.dune-booking .zone-grid button.is-selected .zone-check,
.dune-booking .style-grid button.is-selected .style-check {
  background: var(--booking-white);
  border-color: var(--booking-white);
}
.dune-booking .zone-grid button.is-selected .zone-check::after,
.dune-booking .style-grid button.is-selected .style-check::after { border-color: var(--booking-brown); }

.dune-booking .idea-field textarea,
.dune-booking .contact-fields input {
  background-color: var(--booking-white);
  color: var(--ink);
  border-color: var(--line);
}
.dune-booking .contact-fields input:not([type="checkbox"]) {
  border: 1px solid var(--line);
  padding: .75rem .85rem;
}
.dune-booking .contact-fields input[type="checkbox"] { accent-color: var(--booking-brown); }
.dune-booking .contact-fields input::placeholder,
.dune-booking .idea-field textarea::placeholder { color: var(--booking-muted); opacity: 1; }
.dune-booking .contact-fields input:focus,
.dune-booking .idea-field textarea:focus { border-color: var(--booking-brown); }
.dune-booking .consent a { color: var(--ink); }

.dune-booking .reference-upload {
  background: var(--paper);
  border-color: rgba(117, 102, 87, .35);
}
.dune-booking .request-summary { background: var(--paper); border-color: var(--line); }
.dune-booking .request-summary dl div { border-color: var(--line); }
.dune-booking .request-summary dd { color: var(--ink); }

.dune-booking .form-actions {
  background: rgba(255, 253, 249, .96);
  border-color: var(--line);
}
.dune-booking .button-back { color: var(--booking-brown); }
.dune-booking .button-next {
  background: var(--booking-brown);
  color: var(--booking-white);
  border-color: var(--booking-brown);
}
.dune-booking .button-next:hover {
  background: var(--ink);
  color: var(--booking-white);
  border-color: var(--ink);
}
.dune-booking .progress-mobile {
  background: var(--paper);
  color: var(--booking-brown);
}
.dune-booking .progress-mobile i { background: var(--booking-brown); }
.dune-booking .booking-footer {
  background: var(--paper);
  color: var(--booking-muted);
  border-color: var(--line);
}
.dune-booking #next-button:focus-visible,
.dune-booking #back-button:focus-visible,
.dune-booking .zone-grid button:focus-visible,
.dune-booking .size-grid button:focus-visible,
.dune-booking .style-grid button:focus-visible {
  outline: 2px solid var(--booking-brown);
  outline-offset: 3px;
}

/* Natural portraits and warm, readable controls in every interaction state. */
.dune-booking .artist-card .artist-card-front::before,
.dune-booking .artist-card:hover .artist-card-front::before,
.dune-booking .artist-card.is-selected .artist-card-front::before {
  filter: none;
  background:
    linear-gradient(180deg, rgba(81,70,61,0) 0%, rgba(81,70,61,.04) 38%, rgba(81,70,61,.78) 72%, #51463d 100%),
    var(--artist-image) var(--artist-pos, center) / var(--artist-size, cover) no-repeat;
}
.dune-booking .artist-card,
.dune-booking .artist-card:hover {
  box-shadow: 0 18px 40px rgba(81,70,61,.16);
}
.dune-booking .artist-card.is-selected { box-shadow: 0 0 0 1px var(--booking-brown), 0 18px 40px rgba(81,70,61,.16); }
.dune-booking .artist-copy strong { color: var(--booking-white); text-shadow: 0 2px 16px rgba(81,70,61,.3); }
.dune-booking .artist-copy > span { color: var(--booking-white); }
.dune-booking .artist-copy small,
.dune-booking .artist-card:hover .artist-copy small,
.dune-booking .artist-card.is-selected .artist-copy small {
  color: var(--booking-white);
  background: var(--ink);
  border-color: var(--sand);
  text-shadow: none;
  box-shadow: none;
}
.dune-booking .artist-instagram,
.dune-booking .artist-choice-mark { background: var(--ink); color: var(--booking-white); border-color: var(--paper); }
.dune-booking .artist-card-back > em,
.dune-booking .artist-back-details b { color: var(--paper); }
.dune-booking .artist-availability { background: var(--ink); color: var(--booking-white); }
.dune-booking .artist-card.is-unavailable .artist-card-front::before { filter: none; opacity: .65; }
.dune-booking .artist-skip,
.dune-booking .artist-skip span,
.dune-booking .artist-skip:hover,
.dune-booking .artist-skip.is-selected { color: var(--ink); opacity: 1; }
.dune-booking .artist-skip {
  min-height: 44px;
  padding: .6rem .8rem;
  border: 1px solid var(--line);
  background: var(--booking-white);
  line-height: 1.6;
}
.dune-booking .artist-skip:hover,
.dune-booking .artist-skip.is-selected { background: var(--paper); border-color: var(--booking-brown); text-decoration-color: var(--booking-brown); }
.dune-booking .artist-skip:focus-visible { outline: 2px solid var(--booking-brown); outline-offset: 3px; }
.dune-booking .zone-other-choice input::placeholder { color: var(--booking-white); opacity: 1; }
.dune-booking .size-dot { border-color: var(--booking-brown); }
.dune-booking .size-grid button.is-selected .size-dot { border-color: var(--booking-white); }
.dune-booking .progress-mobile,
.dune-booking .booking-footer,
.dune-booking .request-summary dt,
.dune-booking .summary-kicker,
.dune-booking .reference-upload small,
.dune-booking .request-summary p { color: var(--ink); }
.dune-booking .artist-back-kicker,
.dune-booking .artist-card-back > em,
.dune-booking .artist-card-back > p,
.dune-booking .artist-back-details > span,
.dune-booking .artist-back-details b { color: var(--booking-white); }
.dune-booking .rail-title,
.dune-booking .rail-note span,
.dune-booking .rail-note p { color: var(--booking-white); }

/* Paper-led editorial palette: clear surfaces, natural portraits, restrained brown accents. */
.dune-booking .booking-rail {
  background: var(--paper);
  color: var(--ink);
  border-right-color: var(--line);
}
.dune-booking .rail-title,
.dune-booking .rail-note span,
.dune-booking .rail-note p,
.dune-booking .step-list li,
.dune-booking .step-list li.is-complete { color: var(--booking-muted); }
.dune-booking .step-list li { padding: .8rem .75rem; border-left: 2px solid transparent; }
.dune-booking .step-list li.is-active {
  color: var(--ink);
  background: var(--booking-white);
  border-left-color: var(--booking-brown);
}
.dune-booking .rail-note { border-color: var(--line); }
.dune-booking .artist-card { --artist-caption-height: 180px; }
.dune-booking .artist-card .artist-card-front::before,
.dune-booking .artist-card:hover .artist-card-front::before,
.dune-booking .artist-card.is-selected .artist-card-front::before {
  bottom: var(--artist-caption-height);
  background: var(--artist-image) var(--artist-pos, center) / var(--artist-size, cover) no-repeat;
  filter: none;
  transform: none;
}
.dune-booking .artist-card-face,
.dune-booking .artist-card-back {
  background: var(--booking-white);
  color: var(--ink);
  border-color: var(--line);
  box-shadow: none;
}
.dune-booking .artist-card-front::after { display: none; }
.dune-booking .artist-copy {
  inset: auto 0 0;
  height: var(--artist-caption-height);
  padding: 20px 22px;
  background: var(--booking-white);
}
.dune-booking .artist-grid .artist-card-shell .artist-card .artist-copy strong {
  color: var(--ink);
  font-size: clamp(28px, 2.5vw, 40px);
  line-height: 1;
  min-height: 0;
  max-width: 100%;
  text-shadow: none;
}
.dune-booking .artist-copy small,
.dune-booking .artist-card:hover .artist-copy small,
.dune-booking .artist-card.is-selected .artist-copy small {
  padding: 0;
  margin-bottom: 12px;
  background: transparent;
  color: var(--booking-muted);
  border: 0;
  border-radius: 0;
}
.dune-booking .artist-copy > span {
  color: var(--booking-brown);
  margin-top: 16px;
  padding-top: 12px;
  border-color: var(--line);
}
.dune-booking .artist-copy > span::after { border-color: var(--line); }
.dune-booking .artist-instagram,
.dune-booking .artist-choice-mark {
  background: var(--booking-white);
  color: var(--booking-brown);
  border-color: var(--line);
  backdrop-filter: none;
}
.dune-booking .artist-choice-mark::before,
.dune-booking .artist-choice-mark::after { background: var(--booking-brown); }
.dune-booking .artist-card-back > strong,
.dune-booking .artist-back-action { color: var(--ink); }
.dune-booking .artist-back-kicker,
.dune-booking .artist-card-back > em,
.dune-booking .artist-card-back > p,
.dune-booking .artist-back-details > span,
.dune-booking .artist-back-details b { color: var(--booking-muted); }
.dune-booking .artist-back-details,
.dune-booking .artist-back-action { border-color: var(--line); }
.dune-booking .artist-card-back::before { filter: brightness(0); opacity: .12; }
.dune-booking .artist-card,
.dune-booking .artist-card:hover,
.dune-booking .artist-card.is-selected { box-shadow: 0 8px 24px rgba(62,53,46,.07); }
.dune-booking .artist-card.is-selected { border-color: var(--booking-brown); }
.dune-booking .artist-skip {
  background: transparent;
  border-color: transparent;
}
.dune-booking .artist-skip:hover,
.dune-booking .artist-skip.is-selected { background: var(--paper); border-color: var(--line); }
.dune-booking .request-summary,
.dune-booking .reference-upload,
.dune-booking .progress-mobile,
.dune-booking .booking-footer { background: var(--paper); }
.dune-booking .step-intro em { color: var(--booking-brown); }
@media (max-width: 767px) {
  .dune-booking .artist-copy { padding: 20px; }
}
@media (min-width: 901px) {
  .dune-booking .booking-brand { grid-column: 1; justify-self: start; }
  .dune-booking .header-center { grid-column: 2; justify-self: center; }
  .dune-booking .step-list li { grid-template-columns: minmax(0, 1fr); gap: 0; text-align: center; }
  .dune-booking .step-list li > span { display: none; }
}
@media (max-width: 900px) {
  .dune-booking .booking-header { display: flex; align-items: center; gap: 8px; padding-inline: 20px; }
  .dune-booking .header-center { display: none; }
  .dune-booking .booking-brand { flex: 0 0 auto; margin-right: auto; }
  .dune-booking .booking-brand img { width: clamp(48px,10vw,78px); }
  .dune-booking .header-exit { flex: 0 0 auto; margin-right: 0; font-size: .58rem; }
  .dune-booking .booking-header .dune-language-switcher {
    position: static; inset: auto; transform: none; margin: 0; flex: 0 0 auto; gap: 4px;
  }
  .dune-booking .booking-header .dune-language-switcher > span { display: none; }
  .dune-booking .booking-header .dune-language-switcher button { width: 32px; min-width: 32px; min-height: 44px; padding-inline: 6px; }
}

/* Apply the saved zoom around the same focal point used in the editor. */
.dune-booking .artist-card-managed .artist-card-front::before,
.dune-booking .artist-card-managed:hover .artist-card-front::before,
.dune-booking .artist-card-managed.is-selected .artist-card-front::before {
  transform: scale(var(--artist-zoom, 1));
  transform-origin: var(--artist-pos, 50% 50%);
}
