/* DJ/event page only. The shared brand, navigation and sticky action stay in styles.css. */
.dj-page { --page-pad: 24px; }
.dj-page section[id] { scroll-margin-top: 24px; }
.dj-page .dj-back { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: #c2b6d0; font-size: 12px; }
.dj-page .dj-back > span { color: var(--purple); font-size: 18px; }
.dj-page .dj-opening { padding-block: 29px 26px; background: #100d16; }
.dj-page .dj-opening .eyebrow { font-size: 10px; margin-bottom: 15px; }
.dj-page .dj-opening h1 { font-size: 33px; line-height: 1.12; letter-spacing: -.045em; }
.dj-page .dj-opening-lead { max-width: 400px; font-size: 16px; line-height: 1.6; color: #c3b7cf; margin-top: 17px; }
.dj-page .dj-hero-cta { margin-top: 23px; min-width: 170px; font-size: 14px; }
.dj-page .dj-opening-photo { margin: 27px 0 0; overflow: hidden; background: #1b1424; }
.dj-page .dj-opening-photo img { width: 100%; height: 190px; object-fit: cover; object-position: center 57%; }
.dj-page .dj-opening-photo figcaption { padding-top: 10px; background: #100d16; color: #aa99bb; font-size: 11px; line-height: 1.5; }
.dj-page .dj-services { padding-block: 39px 34px; }
.dj-page .dj-services-intro .eyebrow { font-size: 10px; margin-bottom: 13px; }
.dj-page .dj-services h2 { font-size: 30px; }
.dj-page .dj-services-intro > p:last-child { max-width: 410px; color: #706477; font-size: 15px; line-height: 1.7; margin-top: 17px; }
.dj-page .dj-service-list { list-style: none; padding: 0; margin: 28px 0 0; }
.dj-page .dj-service-list li { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 14px; border-top: 1px solid #ded6e3; padding-block: 17px; }
.dj-page .dj-service-number { font-size: 11px; line-height: 25px; color: #9273a5; }
.dj-page .dj-service-list h3 { font-size: 17px; line-height: 1.45; letter-spacing: -.025em; }
.dj-page .dj-service-list p { margin-top: 5px; color: #706477; font-size: 15px; line-height: 1.65; }
.dj-page .dj-enquiry { padding-block: 41px 48px; }
.dj-page .dj-enquiry .eyebrow { font-size: 10px; margin-bottom: 16px; }
.dj-page .dj-enquiry h2 { font-size: 30px; }
.dj-page .dj-enquiry-heading > p:not(.eyebrow) { margin-top: 18px; font-size: 15px; line-height: 1.7; }
.dj-page .preview-label { margin-top: 20px; font-size: 11px; color: #b5a0c7; }
.dj-page .dj-demo { margin-top: 29px; }
.dj-page .dj-form-intro { border-bottom: 1px solid #493650; padding-bottom: 17px; margin-bottom: 22px; color: #dfcfef; font-size: 15px; line-height: 1.6; }
.dj-page .demo-form label, .dj-page .demo-form legend { color: #ddd1e8; font-size: 15px; line-height: 1.5; }
.dj-page .demo-form label > span[aria-hidden], .dj-page .demo-form legend > span[aria-hidden] { color: var(--purple); }
.dj-page .dj-name-row { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 13px; }
.dj-page .dj-contact-row { margin-top: 20px; gap: 20px; }
.dj-page .demo-form input:not([type=checkbox]), .dj-page .demo-form textarea, .dj-page .demo-form select { width: 100%; min-width: 0; display: block; border: 1px solid #4b3d59; border-radius: 5px; background: #1c1325; color: #f9f8fc; font-family: inherit; font-size: 16px; line-height: 1.4; padding: 13px 14px; margin-top: 8px; }
.dj-page .demo-form input::placeholder, .dj-page .demo-form textarea::placeholder { color: #a08baf; font-size: 15px; }
.dj-page .demo-form select { min-height: 51px; padding-right: 30px; }
.dj-page .demo-form select:focus { border-color: var(--purple); }
.dj-page .demo-form select:required:invalid { color: #b6a4c4; }
.dj-page .demo-form select option { color: #f9f8fc; }
.dj-page .demo-form .dj-service-fieldset { margin-block: 27px; }
.dj-page .demo-form .dj-service-fieldset legend { margin-bottom: 8px; }
.dj-page .dj-field-help { color: #b19cc1; font-size: 13px; line-height: 1.6; }
.dj-page .dj-service-options { margin-top: 12px; border-top: 1px solid #3c2e47; }
.dj-page .dj-service-options label { display: flex; align-items: flex-start; gap: 12px; min-height: 48px; padding-block: 13px; border-bottom: 1px solid #3c2e47; cursor: pointer; font-size: 15px; font-weight: 400; }
.dj-page .dj-service-options input[type=checkbox] { display: block; flex: 0 0 19px; width: 19px; min-width: 19px; height: 19px; margin: 2px 0 0; padding: 0; border: 1px solid #897098; border-radius: 3px; accent-color: var(--purple); cursor: pointer; }
.dj-page .dj-service-options span { color: #d7c9e2; }
.dj-page .dj-service-options input:checked + span { color: #f4eaff; }
.dj-page .dj-service-fieldset[aria-invalid=true] .dj-service-options { border-top-color: #df9ab4; }
.dj-page .dj-field-error { font-size: 13px; line-height: 1.6; color: #f3afc9; margin-top: 10px; }
.dj-page .dj-field-error[hidden] { display: none; }
.dj-page .demo-form input[aria-invalid=true]:not([type=checkbox]), .dj-page .demo-form select[aria-invalid=true] { border-color: #df9ab4; }
.dj-page .dj-city-help { margin-top: 9px; }
.dj-page .dj-details-label { margin-top: 24px; }
.dj-page .optional { color: #b19cc1; font-size: 12px; font-weight: 400; }
.dj-page .demo-note { max-width: none; font-size: 12px; line-height: 1.7; color: #b19cc1; }
.dj-page .dj-required-note { margin-top: 15px; }
.dj-page .primary-button { margin-top: 18px; font-size: 15px; }
.dj-page .demo-feedback { font-size: 15px; line-height: 1.65; }
.dj-page .dj-footer-home { display: inline-flex; align-items: center; min-height: 44px; color: #b5a0c7; font-size: 12px; margin-left: auto; }
.dj-page .sticky-copy strong { font-size: 12px; }
.dj-page .sticky-copy span { font-size: 10px; }
@media (min-width: 430px) and (max-width: 767px) {
  .dj-page .dj-opening h1 { font-size: 35px; }
  .dj-page .dj-opening-photo img { height: 211px; }
}
@media (min-width: 768px) {
  .dj-page { --page-pad: 40px; }
  .dj-page .dj-opening { padding-block: 38px; }
  .dj-page .dj-opening-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); align-items: center; gap: 42px; }
  .dj-page .dj-opening h1 { font-size: 40px; }
  .dj-page .dj-opening-lead { margin-top: 20px; }
  .dj-page .dj-opening-photo { margin: 0; }
  .dj-page .dj-opening-photo img { height: 310px; }
  .dj-page .dj-opening-photo figcaption { font-size: 12px; }
  .dj-page .dj-services { padding-block: 55px; }
  .dj-page .dj-services-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); gap: 58px; }
  .dj-page .dj-services h2 { font-size: 36px; }
  .dj-page .dj-services-intro > p:last-child { font-size: 16px; }
  .dj-page .dj-service-list { margin: 0; }
  .dj-page .dj-service-list li { padding-block: 18px; }
  .dj-page .dj-service-list h3 { font-size: 18px; }
  .dj-page .dj-enquiry { padding-block: 59px; }
  .dj-page .dj-enquiry h2 { font-size: 36px; }
  .dj-page .dj-enquiry-heading > p:not(.eyebrow) { max-width: 390px; font-size: 16px; }
  .dj-page .dj-demo { margin-top: 0; }
  .dj-page .enquiry-grid { grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); gap: 58px; }
  .dj-page .dj-contact-row { grid-template-columns: minmax(0,1fr); }
  .dj-page .dj-footer-home { margin-left: 30px; }
  .dj-page .sticky-copy strong { font-size: 14px; }
  .dj-page .sticky-copy span { font-size: 11px; }
}
@media (min-width: 1184px) {
  .dj-page { --page-pad: 64px; }
  .dj-page .dj-opening { padding-block: 49px; }
  .dj-page .dj-opening-grid { gap: 80px; }
  .dj-page .dj-opening h1 { font-size: 48px; }
  .dj-page .dj-opening-photo img { height: 336px; }
  .dj-page .dj-services { padding-block: 68px; }
  .dj-page .dj-services h2 { font-size: 42px; }
  .dj-page .dj-services-grid, .dj-page .enquiry-grid { gap: 100px; }
  .dj-page .dj-enquiry { padding-block: 73px; }
  .dj-page .dj-enquiry h2 { font-size: 42px; }
  .dj-page .dj-contact-row { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
}
@media (max-width: 359px) {
  .dj-page { --page-pad: 20px; }
  .dj-page .dj-opening h1 { font-size: 30px; }
  .dj-page .dj-opening-photo img { height: 175px; }
  .dj-page .dj-enquiry h2 { font-size: 28px; }
}
