/* Cine Makers v2 — cinema dark.
   Structural styles live inline on the markup (ported verbatim from the design).
   This file owns only what an inline style cannot express: resets inside .cm2,
   hover and focus states, the mobile nav, and long-form prose. */

.cm2, .cm2 *, .cm2 *::before, .cm2 *::after { box-sizing: border-box; }
.cm2 {
  background: #121212;
  color: #F2F0EC;
  font-family: Sora, system-ui, -apple-system, sans-serif;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
}
.cm2 h1, .cm2 h2, .cm2 h3, .cm2 h4, .cm2 h5, .cm2 h6 {
  font-family: 'Instrument Serif', Georgia, serif;
  font-weight: 400;
  margin: 0;
}
.cm2 p, .cm2 ul, .cm2 ol, .cm2 dl, .cm2 dt, .cm2 dd,
.cm2 figure, .cm2 figcaption, .cm2 blockquote, .cm2 address { margin: 0; }
.cm2 a { color: inherit; text-decoration: none; }
.cm2 img { display: block; max-width: 100%; }
.cm2 ul, .cm2 ol { list-style: none; padding: 0; }
.cm2 svg { flex: 0 0 auto; }

/* —— hover + focus states —— */
.cm2-btn:hover { background: #FFAE4A; color: #121212; }
.cm2-btn-ghost:hover { border-color: #F69321; color: #F69321; }
.cm2-ul:hover { border-bottom-color: #F69321; color: #FFAE4A; }
.cm2-row:hover { background: #171716; }
.cm2-row-alt:hover { background: #161615; }
.cm2-inklink:hover { color: #F69321; }
.cm2-dimlink:hover { color: #F69321; }
.cm2-poster:hover { opacity: 0.82; }
.cm2-social:hover { border-color: #F69321; color: #F69321; }
.cm2-nav-link:hover { color: #F69321 !important; }
.cm2 a:focus-visible,
.cm2 button:focus-visible,
.cm2 input:focus-visible,
.cm2 select:focus-visible,
.cm2 textarea:focus-visible {
  outline: 2px solid #F69321;
  outline-offset: 3px;
}
.cm2 ::selection { background: #F69321; color: #121212; }
.cm2 input:focus, .cm2 textarea:focus, .cm2 select:focus { border-color: #F69321; }
.cm2 ::placeholder { color: #6E6C66; opacity: 1; }

/* —— header: sticky, with a mobile drawer —— */
.cm2-header { position: sticky; top: 0; z-index: 60; }
.cm2-menu-btn { display: none; }
.cm2-mobile-nav { display: none; }
@media (max-width: 939px) {
  /* the header markup carries inline display values, so these must win */
  .cm2-nav { display: none !important; }
  .cm2-menu-btn { display: flex !important; }
  .cm2-header.is-open .cm2-mobile-nav { display: grid !important; }
}

/* —— long-form prose (film synopses, article bodies) —— */
.cm2-prose > *:first-child { margin-top: 0; }
.cm2-prose h2 {
  font-size: clamp(28px, 3.4vw, 44px);
  line-height: 1.06;
  letter-spacing: -0.02em;
  margin: clamp(40px, 5vw, 60px) 0 20px;
}
.cm2-prose h3 { font-size: clamp(22px, 2.6vw, 30px); line-height: 1.1; margin: 34px 0 14px; }
.cm2-prose h4 { font-size: 21px; line-height: 1.2; margin: 28px 0 12px; }
.cm2-prose p {
  font-size: 17.5px;
  line-height: 1.85;
  color: #C9C7C1;
  font-weight: 300;
  margin: 0 0 24px;
}
.cm2-prose > ul, .cm2-prose > ol {
  margin: 0 0 28px;
  border-top: 1px solid rgba(242,240,236,0.13);
}
.cm2-prose > ul > li, .cm2-prose > ol > li {
  padding: 15px 2px;
  border-bottom: 1px solid rgba(242,240,236,0.13);
  font-size: 15.5px;
  line-height: 1.7;
  color: #C9C7C1;
  font-weight: 300;
}
.cm2-prose > ul > li > strong:first-child,
.cm2-prose > ol > li > strong:first-child {
  display: block;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #6E6C66;
  margin-bottom: 7px;
}
.cm2-prose > ul > li > strong:not(:first-child) { color: #F2F0EC; font-weight: 400; }
.cm2-prose blockquote {
  border-left: 2px solid #F69321;
  background: rgba(246,147,33,0.08);
  padding: 24px 26px;
  margin: 0 0 28px;
}
.cm2-prose blockquote p {
  font-family: 'Instrument Serif', Georgia, serif;
  font-size: clamp(20px, 2.4vw, 28px);
  line-height: 1.3;
  color: #F2F0EC;
  margin: 0 0 14px;
}
.cm2-prose blockquote p:last-child { margin-bottom: 0; }
.cm2-prose blockquote cite {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #F69321;
  font-style: normal;
}
.cm2-prose a { color: #F69321; border-bottom: 1px solid rgba(246,147,33,0.45); }
.cm2-prose a:hover { border-bottom-color: #F69321; color: #FFAE4A; }
.cm2-prose figure, .cm2-prose img { margin: 0 0 28px; }
.cm2-prose figcaption {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #6E6C66;
  padding-top: 12px;
}
.cm2-prose hr {
  border: 0;
  border-top: 1px solid rgba(242,240,236,0.13);
  margin: clamp(36px, 4vw, 52px) 0;
}
.cm2-prose strong { color: #F2F0EC; font-weight: 400; }
.cm2-prose em { font-style: italic; }
.cm2-prose table { width: 100%; border-collapse: collapse; margin: 0 0 28px; }
.cm2-prose th, .cm2-prose td {
  text-align: left;
  padding: 14px 12px;
  border-bottom: 1px solid rgba(242,240,236,0.13);
  font-size: 15px;
  color: #C9C7C1;
}
.cm2-prose th {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #6E6C66;
}

/* —— pagination on the blog archive —— */
.cm2 .wp-block-query-pagination {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding-top: 28px;
  border-top: 1px solid rgba(242,240,236,0.13);
}
.cm2 .wp-block-query-pagination a { color: #F69321; }
.cm2 .wp-block-query-pagination .current { color: #F2F0EC; }

/* —— the editor needs the same ground so text stays legible —— */
.editor-styles-wrapper .cm2 { background: #121212; }
/* —— WPForms, dressed as the v2 enquiry panel —— */
.cm2 .wpforms-container,
.cm2 .wpforms-container-full { margin: 0; }
.cm2 .wpforms-form { display: grid; gap: 20px; }
.cm2 .wpforms-form .wpforms-field { padding: 0; }
.cm2 .wpforms-form .wpforms-field-label,
.cm2 .wpforms-form .wpforms-field-label-inline {
  font-family: 'JetBrains Mono', ui-monospace, monospace !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #A2A09A !important;
  display: block;
  margin: 0 0 9px;
}
.cm2 .wpforms-form .wpforms-required-label { color: #6E6C66 !important; }
.cm2 .wpforms-form input[type=text],
.cm2 .wpforms-form input[type=email],
.cm2 .wpforms-form input[type=tel],
.cm2 .wpforms-form input[type=url],
.cm2 .wpforms-form input[type=number],
.cm2 .wpforms-form input[type=date],
.cm2 .wpforms-form select,
.cm2 .wpforms-form textarea {
  background: #121212 !important;
  border: 1px solid rgba(242,240,236,0.18) !important;
  border-radius: 0 !important;
  color: #F2F0EC !important;
  font-family: Sora, system-ui, sans-serif !important;
  font-size: 16px !important;
  font-weight: 300;
  padding: 14px 16px !important;
  min-height: 48px;
  width: 100%;
  box-shadow: none !important;
}
.cm2 .wpforms-form textarea { min-height: 140px; resize: vertical; }
.cm2 .wpforms-form input:focus,
.cm2 .wpforms-form select:focus,
.cm2 .wpforms-form textarea:focus { border-color: #F69321 !important; }
.cm2 .wpforms-form .wpforms-field-description,
.cm2 .wpforms-form .wpforms-field-sublabel {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #6E6C66 !important;
  margin-top: 8px;
}
.cm2 .wpforms-form button[type=submit],
.cm2 .wpforms-form .wpforms-submit {
  background: #F69321 !important;
  color: #121212 !important;
  border: 0 !important;
  border-radius: 0 !important;
  font-family: 'JetBrains Mono', ui-monospace, monospace !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 18px 34px !important;
  min-height: 48px;
  cursor: pointer;
  width: auto;
  justify-self: start;
}
.cm2 .wpforms-form button[type=submit]:hover,
.cm2 .wpforms-form .wpforms-submit:hover { background: #FFAE4A !important; }
.cm2 .wpforms-form .wpforms-error,
.cm2 .wpforms-form label.wpforms-error {
  color: #FFAE4A !important;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.1em;
}
.cm2 .wpforms-confirmation-container,
.cm2 .wpforms-confirmation-container-full {
  background: rgba(246,147,33,0.08) !important;
  border: 0 !important;
  border-left: 2px solid #F69321 !important;
  border-radius: 0 !important;
  color: #F2F0EC !important;
  padding: 22px 24px !important;
}
.cm2 .wpforms-confirmation-container p { color: #F2F0EC !important; margin: 0; }
.cm2-nav-link { transition: color 140ms ease; }
.cm2-header .cm2-nav-link:hover, .cm2-header .cm2-nav-link:focus-visible { color: #F69321 !important; }

.cm2-mobile-nav { display: none; }
.cm2-menu-btn { display: none; }
@media (min-width: 940px) { .cm2-menu-btn { display: none !important; } }

/* ---- mobile ---- */
@media (max-width: 939px) {
  /* the drawer sits under a solid bar, including over the home hero */
  body.home .cm2-header.is-open, .cm2-header.is-open { background: #121212 !important; }
  body.home .cm2-header.is-open::before { opacity: 0; }
  .cm2-mobile-nav { max-height: calc(100svh - 64px); overflow-y: auto; }
}
@media (max-width: 599px) {
  .cm2 h1 { letter-spacing: -0.02em; }
  .cm2 p, .cm2 li { text-wrap: pretty; }
  /* stacked, full-width call-to-action buttons read better than half-rows */
  .cm2-btn, .cm2-btn-ghost { display: block; width: 100%; text-align: center; }
  .cm2-header .cm2-btn, .cm2-mobile-nav .cm2-btn { width: auto; }
  .cm2-mobile-nav .cm2-btn { width: 100%; }
}


/* ---- enquiry form: field rhythm and native controls ---- */
.cm2 .wpforms-form .wpforms-field-container { display: grid; gap: 26px; }
.cm2 .wpforms-form .wpforms-field { margin: 0 !important; }
.cm2 .wpforms-form fieldset { border: 0; margin: 0; padding: 0; min-inline-size: 0; }
.cm2 .wpforms-form .wpforms-label-hide { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* checkboxes and radios must not inherit the text-input shell */
.cm2 .wpforms-form input[type=checkbox],
.cm2 .wpforms-form input[type=radio] {
  -webkit-appearance: none; appearance: none;
  width: 18px !important; height: 18px !important;
  min-width: 0 !important; min-height: 0 !important;
  padding: 0 !important; margin: 2px 0 0 !important;
  flex: 0 0 auto;
  background: #121212 !important;
  border: 1px solid rgba(242,240,236,0.34) !important;
  border-radius: 0 !important;
  display: grid; place-content: center;
  cursor: pointer; box-shadow: none !important;
}
.cm2 .wpforms-form input[type=radio] { border-radius: 9999px !important; }
.cm2 .wpforms-form input[type=checkbox]:checked,
.cm2 .wpforms-form input[type=radio]:checked { background: #F69321 !important; border-color: #F69321 !important; }
.cm2 .wpforms-form input[type=checkbox]:checked::after { content: ''; width: 9px; height: 5px; border-left: 2px solid #121212; border-bottom: 2px solid #121212; transform: translateY(-1px) rotate(-45deg); }
.cm2 .wpforms-form input[type=radio]:checked::after { content: ''; width: 7px; height: 7px; border-radius: 9999px; background: #121212; }
.cm2 .wpforms-form input[type=checkbox]:focus-visible,
.cm2 .wpforms-form input[type=radio]:focus-visible { outline: 2px solid #F69321; outline-offset: 2px; }

/* the box sits beside its wrapping label, not under it */
.cm2 .wpforms-form .wpforms-field-checkbox ul,
.cm2 .wpforms-form .wpforms-field-radio ul,
.cm2 .wpforms-form .wpforms-field-gdpr-checkbox ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.cm2 .wpforms-form .wpforms-field-checkbox li,
.cm2 .wpforms-form .wpforms-field-radio li,
.cm2 .wpforms-form .wpforms-field-gdpr-checkbox li { display: flex; align-items: flex-start; gap: 12px; margin: 0; }
.cm2 .wpforms-form .wpforms-field-label-inline { display: block; margin: 0 !important; line-height: 1.7 !important; cursor: pointer; }

/* ---- WPForms plugin CSS is disabled (Settings > disable-css = 3); the theme owns the form ---- */
.cm2 .wpforms-field-hp,
.cm2 .wpforms-error-noscript,
.cm2 .wpforms-hidden,
.cm2 .wpforms-submit-spinner { display: none !important; }
.cm2 .wpforms-form input[type=text],
.cm2 .wpforms-form input[type=email],
.cm2 .wpforms-form input[type=tel],
.cm2 .wpforms-form input[type=url],
.cm2 .wpforms-form input[type=number],
.cm2 .wpforms-form input[type=date],
.cm2 .wpforms-form select { height: auto !important; line-height: 1.4 !important; }
.cm2 .wpforms-form input[type=checkbox],
.cm2 .wpforms-form input[type=radio] { -webkit-appearance: none !important; appearance: none !important; }
