/*
Theme Name: Cine Makers
Theme URI: https://cinemakers.com.np
Author: Cine Makers Pvt. Ltd.
Description: Cinema-dark film production theme: Instrument Serif display, JetBrains Mono metadata, Sora body, signal orange sampled from the Cine Makers mark.
Template: twentytwentyfive
Version: 3.0.1789108539
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: cinemakers
*/

/* ==========================================================================
   DESIGN TOKENS — swap these values to re-skin the whole site
   ========================================================================== */
:root {
  /* Colour — cinema dark, accent sampled from the logo camera */
  --cm-ink:            #121212;  /* primary ground — page background         */
  --cm-ink-deep:       #0B0B0B;  /* footer black                             */
  --cm-ink-soft:       #0E0E0E;  /* alternate section ground                 */
  --cm-paper:          #F2F0EC;  /* ink — primary text on dark               */
  --cm-paper-warm:     #0E0E0E;  /* was cream; now alternate dark ground     */
  --cm-gold:           #F69321;  /* accent — logo orange                     */
  --cm-gold-bright:    #FFAE4A;  /* accent hover                             */
  --cm-gold-deep:      #F69321;  /* accent, single value across grounds      */
  --cm-gold-rule:      rgba(246, 147, 33, 0.45);
  --cm-rule-dark:      rgba(242, 240, 236, 0.13);
  --cm-rule-light:     rgba(242, 240, 236, 0.13);
  --cm-text-on-dark:   #A2A09A;
  --cm-text-on-light:  #A2A09A;
  --cm-text-faint:     #6E6C66;

  /* Typography */
  --cm-font-display:   "Instrument Serif", Georgia, serif;
  --cm-font-body:      "Sora", system-ui, -apple-system, sans-serif;
  --cm-font-mono:      "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;
  --cm-tracking-label: 0.20em;
  --cm-tracking-tight: -0.02em;
  --cm-leading-tight:  1.02;
  --cm-leading-body:   1.75;

  /* Spacing */
  --cm-space-3xs: 8px;
  --cm-space-2xs: 12px;
  --cm-space-xs:  16px;
  --cm-space-sm:  24px;
  --cm-space-md:  32px;
  --cm-space-lg:  48px;
  --cm-space-xl:  clamp(48px, 6vw, 80px);
  --cm-space-2xl: clamp(64px, 9vw, 120px);

  /* Border radius — sharp by default; raise for a softer brand */
  --cm-radius-none: 0;
  --cm-radius-sm:   0;
  --cm-radius-md:   0;
  --cm-radius-pill: 9999px;

  /* Layout */
  --cm-container: 1240px;
  --cm-measure:   68ch;
}

/* ==========================================================================
   Base
   ========================================================================== */
body {
  background: var(--cm-ink);
  color: var(--cm-paper);
  font-family: var(--cm-font-body);
  -webkit-font-smoothing: antialiased;
  text-wrap: pretty;
}

h1, h2, h3, h4 { text-wrap: balance; }

a { color: var(--cm-gold); text-decoration: none; transition: color 140ms ease; }
a:hover { color: var(--cm-gold-bright); }

:where(a, button, input, select, textarea, summary, .wp-block-button__link):focus-visible {
  outline: 2px solid var(--cm-gold);
  outline-offset: 3px;
}

/* Skip link */
.cm-skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 999;
  background: var(--cm-gold); color: var(--cm-ink);
  padding: 12px 20px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase;
}
.cm-skip-link:focus { left: 8px; top: 8px; }

/* ==========================================================================
   Utility classes used by the block layouts
   ========================================================================== */

/* Small uppercase call-sheet label */
.cm-label {
  font-size: 11.5px !important;
  letter-spacing: var(--cm-tracking-label);
  text-transform: uppercase;
  font-weight: 500;
}

/* Big display numerals (01, 02, 2000 …) */
.cm-numeral {
  font-family: var(--cm-font-display);
  line-height: 1;
  color: var(--cm-gold);
}

/* Gold hairline separators */
.cm-rule { border-top: 1px solid var(--cm-gold-rule); height: 0; margin: 0; }

/* Card grids that separate with 1px rules instead of gaps */
.cm-hairline-grid { gap: 1px !important; background: var(--cm-rule-light); }
.cm-hairline-grid > .wp-block-column,
.cm-hairline-grid > .wp-block-group { background: var(--cm-paper); }
.cm-hairline-grid--dark { background: var(--cm-rule-dark); }
.cm-hairline-grid--dark > .wp-block-column,
.cm-hairline-grid--dark > .wp-block-group { background: var(--cm-ink); }

/* Media placeholder frames with gold corner marks */
.cm-frame {
  position: relative;
  background: var(--cm-ink-soft);
  border: 1px solid var(--cm-gold-rule);
}
.cm-frame::before, .cm-frame::after {
  content: ""; position: absolute; width: 26px; height: 26px; pointer-events: none;
}
.cm-frame::before { top: 14px; left: 14px; border-top: 1px solid var(--cm-gold); border-left: 1px solid var(--cm-gold); }
.cm-frame::after { bottom: 14px; right: 14px; border-bottom: 1px solid var(--cm-gold); border-right: 1px solid var(--cm-gold); }

/* Cards that light up on hover */
.cm-card { transition: border-color 140ms ease, background-color 140ms ease; }
.cm-card:hover { border-color: var(--cm-gold) !important; }

/* ==========================================================================
   Buttons
   ========================================================================== */
.wp-block-button__link {
  border-radius: var(--cm-radius-sm);
  font-family: var(--cm-font-body);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 17px 34px;
  min-height: 48px;
  transition: background-color 140ms ease, color 140ms ease, border-color 140ms ease;
}
.wp-block-button.is-style-outline .wp-block-button__link {
  border: 1px solid var(--cm-gold-rule);
  color: var(--cm-gold);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  border-color: var(--cm-gold);
  background: rgba(198, 166, 100, 0.08);
}

/* ==========================================================================
   Site header
   ========================================================================== */
.cm-header { position: sticky; top: 0; z-index: 50; background: rgba(11, 11, 12, 0.94); }
.cm-nav a { color: #9A968E; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; }
.cm-nav a:hover { color: var(--cm-gold); }
.cm-nav p { margin: 0; }
.cm-wordmark { font-family: var(--cm-font-display); font-size: 21px; color: var(--cm-paper) !important; line-height: 1; }
.cm-wordmark-sub { font-size: 9.5px !important; letter-spacing: 0.24em; text-transform: uppercase; color: #8C8983 !important; }
.cm-dot { width: 9px; height: 9px; border-radius: var(--cm-radius-pill); background: var(--cm-gold); display: block; flex: none; }

/* ==========================================================================
   FAQ accordion (CSS only — details / summary)
   ========================================================================== */
.cm-faq details { border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
.cm-faq summary {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 24px;
  cursor: pointer; padding: 26px 0; list-style: none;
  font-family: var(--cm-font-display); font-size: clamp(19px, 2.2vw, 24px);
  color: var(--cm-paper); line-height: 1.3;
}
.cm-faq summary::-webkit-details-marker { display: none; }
.cm-faq summary::marker { content: ""; }
.cm-faq summary::after {
  content: "+"; flex: none; color: var(--cm-gold); font-family: var(--cm-font-body);
  font-size: 24px; line-height: 1; transition: transform 140ms ease;
}
.cm-faq details[open] summary::after { transform: rotate(45deg); }
.cm-faq details p {
  font-size: 16px; line-height: var(--cm-leading-body); color: var(--cm-text-on-dark);
  margin: 0 0 28px; font-weight: 300; max-width: 70ch;
}

/* ==========================================================================
   Comparison table
   ========================================================================== */
.cm-compare { overflow-x: auto; }
.cm-compare table { width: 100%; border-collapse: collapse; min-width: 640px; font-size: 15.5px; }
.cm-compare caption {
  text-align: left; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase;
  color: #6E6C66; padding-bottom: 16px;
}
.cm-compare thead th {
  text-align: left; padding: 16px 18px; border-bottom: 1px solid var(--cm-ink);
  font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 500;
}
.cm-compare thead th:nth-child(2) { background: var(--cm-ink); color: var(--cm-gold); font-weight: 600; }
.cm-compare thead th:last-child { color: #6E6C66; }
.cm-compare tbody td { padding: 20px 18px; border-bottom: 1px solid var(--cm-rule-light); vertical-align: top; font-weight: 300; color: #A2A09A; }
.cm-compare tbody td:nth-child(1) { font-weight: 500; color: var(--cm-ink); padding-left: 0; }
.cm-compare tbody td:nth-child(2) { background: var(--cm-paper); color: #C9C7C1; }
.cm-compare tbody tr:last-child th,
.cm-compare tbody tr:last-child td { border-bottom: none; }

/* ==========================================================================
   Contact form (WPForms + native fallbacks)
   ========================================================================== */
.cm-form label,
.wpforms-field-label {
  font-size: 11.5px !important; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--cm-gold) !important; font-weight: 500 !important; display: block; margin-bottom: 8px;
}
.cm-form input, .cm-form select, .cm-form textarea,
.wpforms-field input, .wpforms-field select, .wpforms-field textarea {
  background: var(--cm-ink-soft) !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  border-radius: var(--cm-radius-sm) !important;
  color: var(--cm-paper) !important;
  font-family: var(--cm-font-body) !important;
  font-size: 16px !important;
  padding: 14px 16px !important;
  min-height: 48px;
  width: 100%;
  transition: border-color 140ms ease;
}
.cm-form input:focus, .cm-form textarea:focus, .cm-form select:focus,
.wpforms-field input:focus, .wpforms-field textarea:focus {
  border-color: var(--cm-gold) !important;
}
.cm-form textarea { resize: vertical; }
.cm-form button, .wpforms-submit {
  background: var(--cm-gold) !important; color: var(--cm-ink) !important;
  border: none !important; border-radius: var(--cm-radius-sm) !important;
  font-family: var(--cm-font-body) !important; font-size: 12.5px !important; font-weight: 600 !important;
  letter-spacing: 0.16em; text-transform: uppercase;
  padding: 17px 38px !important; min-height: 48px; cursor: pointer;
  transition: background-color 140ms ease;
}
.cm-form button:hover, .wpforms-submit:hover { background: var(--cm-gold-bright) !important; }
.cm-form .cm-field { display: grid; gap: 8px; margin-bottom: 22px; }
.cm-form .cm-field-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 22px; }

/* ==========================================================================
   Footer
   ========================================================================== */
.cm-footer { background: var(--cm-ink-deep); border-top: 1px solid var(--cm-gold-rule); }
.cm-footer a { color: #A2A09A; font-weight: 300; }
.cm-footer a:hover { color: var(--cm-gold); }
.cm-social a {
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border: 1px solid rgba(255, 255, 255, 0.16);
  color: #9A968E; transition: border-color 140ms ease, color 140ms ease;
}
.cm-social a:hover { border-color: var(--cm-gold); color: var(--cm-gold); }
.cm-social svg { width: 16px; height: 16px; fill: currentColor; }

/* ==========================================================================
   Prose defaults inside dark and light sections
   ========================================================================== */
.cm-section-dark p { color: var(--cm-text-on-dark); font-weight: 300; }
.cm-section-light p { color: var(--cm-text-on-light); font-weight: 300; }
.cm-section-dark .cm-label { color: var(--cm-gold) !important; }
.cm-section-light .cm-label { color: var(--cm-gold-deep) !important; }

/* Bulleted service lists rendered as gold-ruled items */
.cm-ticks ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.cm-ticks li {
  font-size: 15px; color: #A2A09A; font-weight: 300;
  padding-left: 20px; border-left: 1px solid rgba(198, 166, 100, 0.4);
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

/* Wordmark link inherits white, not the gold link colour */
.cm-wordmark a, .cm-footer .cm-wordmark { color: var(--cm-paper) !important; text-decoration: none; }
.cm-wordmark a:hover { color: var(--cm-gold) !important; }
.cm-nav .wp-block-buttons { margin: 0; }
.cm-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.cm-footer .wp-block-list li { font-weight: 300; }

/* ==========================================================================
   Imagery
   ========================================================================== */
.cm-media { position: relative; overflow: hidden; border: 1px solid var(--cm-gold-rule); }
.cm-media img, .cm-media .wp-block-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cm-media figure { margin: 0; height: 100%; }

/* Cinematic grade: crush the mids slightly so gold type stays legible on top */
.cm-media--graded img { filter: saturate(0.85) contrast(1.06) brightness(0.92); }

/* Tile in the on-set grid: gold border on hover, no motion */
.cm-tile { position: relative; overflow: hidden; border: 1px solid rgba(242,240,236,0.13); transition: border-color 140ms ease; }
.cm-tile:hover { border-color: var(--cm-gold); }
.cm-tile img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(0.9) contrast(1.04); }
.cm-tile figure { margin: 0; height: 100%; }
.cm-tile figcaption {
  position: absolute; left: 0; right: 0; bottom: 0; margin: 0;
  padding: 40px 16px 14px;
  background: linear-gradient(to top, rgba(5,5,5,0.88), rgba(5,5,5,0));
  font-size: 11.5px; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--cm-gold); text-align: left;
}

/* Cover blocks used as full-bleed film frames */
.cm-cover .wp-block-cover__background { background: rgba(5,5,5,0.62) !important; }
.cm-cover.wp-block-cover { border-top: 1px solid var(--cm-gold-rule); border-bottom: 1px solid var(--cm-gold-rule); }

/* Corner marks over an image frame */
.cm-marks { position: relative; }
.cm-marks::before, .cm-marks::after { content: ""; position: absolute; width: 26px; height: 26px; pointer-events: none; z-index: 2; }
.cm-marks::before { top: 14px; left: 14px; border-top: 1px solid var(--cm-gold); border-left: 1px solid var(--cm-gold); }
.cm-marks::after { bottom: 14px; right: 14px; border-bottom: 1px solid var(--cm-gold); border-right: 1px solid var(--cm-gold); }

/* Portrait / landscape aspect helpers for image columns */
.cm-ratio-4x5 { aspect-ratio: 4 / 5; }
.cm-ratio-3x2 { aspect-ratio: 3 / 2; }
.cm-ratio-16x9 { aspect-ratio: 16 / 9; }
.cm-ratio-1x1 { aspect-ratio: 1 / 1; }

/* ==========================================================================
   Nav + button contrast fixes (override the global gold link colour)
   ========================================================================== */
.cm-nav a,
.cm-nav p a {
  color: rgba(255,255,255,0.74) !important;
  font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 400; text-decoration: none;
}
.cm-nav a:hover, .cm-nav p a:hover { color: var(--cm-gold) !important; }

/* Buttons: ink text on gold, never the gold link colour */
.wp-block-button__link,
.wp-block-button__link:visited,
.wp-block-button .wp-block-button__link,
.cm-nav .wp-block-button__link {
  color: var(--cm-ink) !important;
  background-color: var(--cm-gold);
  text-decoration: none;
}
.wp-block-button__link:hover { color: var(--cm-ink) !important; background-color: var(--cm-gold-bright); }

/* Outline buttons keep gold text on transparent */
.wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link:visited {
  color: var(--cm-gold) !important;
  background-color: transparent;
  border: 1px solid rgba(198,166,100,0.5);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  color: var(--cm-gold-bright) !important;
  background-color: rgba(198,166,100,0.08);
  border-color: var(--cm-gold);
}

/* Dark-on-light CTA variant (ink button on the warm-white sections) */
.wp-block-button__link.has-ink-background-color { color: var(--cm-gold) !important; }
.wp-block-button__link.has-ink-background-color:hover { background-color: #C9C7C1 !important; color: var(--cm-gold-bright) !important; }

/* Footer + body links stay legible against the near-black */
.cm-footer a, .cm-footer .wp-block-list a { color: #A2A09A !important; }
.cm-footer a:hover, .cm-footer .wp-block-list a:hover { color: var(--cm-gold) !important; }

/* Admin bar offset so the sticky header is not hidden behind it */
.admin-bar .cm-header { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar .cm-header { top: 46px; } }

/* Article cards */
.cm-article { border: 1px solid rgba(242,240,236,0.13); transition: border-color 140ms ease; height: 100%; }
.cm-article:hover { border-color: var(--cm-gold); }
.cm-article .wp-block-image { margin: 0; }
.cm-article .wp-block-image img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; filter: saturate(0.9) contrast(1.04); }
.cm-article h3 { margin: 0; }
.cm-article h3 a { color: var(--cm-paper) !important; text-decoration: none; }
.cm-article:hover h3 a { color: var(--cm-gold) !important; }

/* ==========================================================================
   Articles — index cards and single-post reading column
   ========================================================================== */
.cm-article-card {
  border: 1px solid rgba(242,240,236,0.13);
  background: var(--cm-ink-soft);
  transition: border-color 140ms ease;
  height: 100%;
  display: flex; flex-direction: column;
}
.cm-article-card:hover { border-color: var(--cm-gold); }
.cm-article-card .wp-block-post-featured-image { margin: 0; }
.cm-article-card .wp-block-post-featured-image img {
  display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover;
  filter: saturate(0.9) contrast(1.04);
}
.cm-article-card .wp-block-post-title { margin: 0; }
.cm-article-card .wp-block-post-title a { color: var(--cm-paper) !important; text-decoration: none; }
.cm-article-card:hover .wp-block-post-title a { color: var(--cm-gold) !important; }
.cm-article-card .wp-block-post-date,
.cm-article-card .wp-block-post-date time {
  font-size: 11.5px; letter-spacing: 0.2em; text-transform: uppercase; color: #8C8983;
}
.cm-article-card .wp-block-post-excerpt__excerpt { color: rgba(255,255,255,0.55); font-size: 14.5px; line-height: 1.6; }
.cm-article-card .wp-block-post-excerpt__more-link { display: none; }

/* Pagination */
.wp-block-query-pagination { margin-top: 48px; }
.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
  font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: #9A968E;
  padding: 10px 14px; border: 1px solid rgba(255,255,255,0.14);
}
.wp-block-query-pagination .page-numbers.current { color: var(--cm-ink); background: var(--cm-gold); border-color: var(--cm-gold); }
.wp-block-query-pagination a:hover { color: var(--cm-gold); border-color: var(--cm-gold); }

/* Single article reading column */
.cm-single-body p,
.cm-single-body li {
  font-size: 17px; line-height: 1.8; color: rgba(255,255,255,0.72); font-weight: 300;
}
.cm-single-body p { margin: 0 0 24px; }
.cm-single-body h2, .cm-single-body h3, .cm-single-body h4 {
  font-family: var(--cm-font-display); font-weight: 500; color: var(--cm-paper);
  line-height: 1.2; margin: 48px 0 18px;
}
.cm-single-body h2 { font-size: clamp(26px, 3.2vw, 36px); }
.cm-single-body h3 { font-size: clamp(22px, 2.6vw, 28px); }
.cm-single-body h4 { font-size: 21px; }
.cm-single-body ul, .cm-single-body ol { margin: 0 0 24px; padding-left: 22px; display: grid; gap: 10px; }
.cm-single-body li::marker { color: var(--cm-gold); }
.cm-single-body a { color: var(--cm-gold) !important; border-bottom: 1px solid rgba(198,166,100,0.4); }
.cm-single-body a:hover { color: var(--cm-gold-bright) !important; border-color: var(--cm-gold); }
.cm-single-body strong { color: var(--cm-paper); font-weight: 500; }
.cm-single-body img { max-width: 100%; height: auto; }
.cm-single-hero img { display: block; width: 100%; aspect-ratio: 16 / 7; object-fit: cover; border: 1px solid var(--cm-gold-rule); }

/* ==========================================================================
   Films — catalogue cards and single-film pages
   ========================================================================== */

/* Poster tiles in the catalogue */
.cm-film-card { display: flex; flex-direction: column; height: 100%; }
.cm-film-card .wp-block-post-featured-image {
  margin: 0 0 18px;
  border: 1px solid rgba(255,255,255,0.12);
  transition: border-color 140ms ease;
  overflow: hidden;
}
.cm-film-card:hover .wp-block-post-featured-image { border-color: var(--cm-gold); }
.cm-film-card .wp-block-post-featured-image img {
  display: block; width: 100%; aspect-ratio: 2 / 3; object-fit: cover;
  filter: saturate(0.92) contrast(1.03);
}
.cm-film-card .wp-block-post-title { margin: 0; }
.cm-film-card .wp-block-post-title a { color: var(--cm-paper) !important; text-decoration: none; }
.cm-film-card:hover .wp-block-post-title a { color: var(--cm-gold) !important; }
.cm-film-card .wp-block-post-excerpt__excerpt { color: rgba(255,255,255,0.55); font-size: 14.5px; line-height: 1.6; }
.cm-film-card .wp-block-post-excerpt__more-link { display: none; }

/* Films with no poster yet still hold their slot */
.cm-film-card .wp-block-post-featured-image:empty {
  aspect-ratio: 2 / 3;
  background: var(--cm-ink-soft);
  border-color: var(--cm-gold-rule);
}

/* The detail line under a film title */
.cm-film-meta {
  color: var(--cm-gold) !important;
  margin: 0 !important;
  font-size: 11.5px !important;
  letter-spacing: var(--cm-tracking-label);
  text-transform: uppercase;
}

/* Single-film poster */
.cm-film-poster .wp-block-post-featured-image { margin: 0; border: 1px solid var(--cm-gold-rule); }
.cm-film-poster img { display: block; width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }

/* Credits / specifications / festivals — label left, value right */
.cm-deflist { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 0; }
.cm-deflist li {
  display: grid;
  grid-template-columns: minmax(140px, 34%) 1fr;
  gap: 12px 24px;
  padding: 14px 0;
  border-bottom: 1px solid var(--cm-rule-dark);
  font-size: 15.5px !important;
  line-height: 1.55;
  color: rgba(255,255,255,0.72);
}
.cm-deflist li:last-child { border-bottom: none; }
.cm-deflist li strong {
  color: var(--cm-gold);
  font-weight: 500;
  font-size: 11.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding-top: 3px;
}
@media (max-width: 560px) {
  .cm-deflist li { grid-template-columns: 1fr; gap: 6px; }
}

/* ==========================================================================
   Films — index rows and single-film page
   ========================================================================== */
.cm-film-row { display: grid; grid-template-columns: minmax(0, 200px) minmax(0, 1fr); gap: clamp(20px, 4vw, 44px); padding: clamp(28px, 4vw, 40px) 0; border-bottom: 1px solid rgba(242,240,236,0.13); align-items: start; }
.cm-film-row:last-of-type { border-bottom: none; }
@media (max-width: 640px) { .cm-film-row { grid-template-columns: minmax(0, 130px) minmax(0, 1fr); } }
.cm-film-poster { border: 1px solid rgba(255,255,255,0.12); overflow: hidden; transition: border-color 140ms ease; }
.cm-film-poster:hover { border-color: var(--cm-gold); }
.cm-film-poster img { display: block; width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }
.cm-film-row h2 a, .cm-film-row h3 a { color: var(--cm-paper) !important; text-decoration: none; }
.cm-film-row:hover h2 a, .cm-film-row:hover h3 a { color: var(--cm-gold) !important; }
.cm-film-hero-poster { border: 1px solid var(--cm-gold-rule); overflow: hidden; }
.cm-film-hero-poster img { display: block; width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }
.cm-credits { margin: 0; display: grid; gap: 1px; background: rgba(242,240,236,0.13); border: 1px solid rgba(242,240,236,0.13); }
.cm-credit { background: var(--cm-ink); padding: 15px 20px; display: grid; grid-template-columns: minmax(0, 92px) minmax(0, 1fr); gap: 16px; align-items: baseline; }
.cm-credits dt { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--cm-gold); margin: 0; }
.cm-credits dd { margin: 0; font-size: 15.5px; color: var(--cm-paper); font-weight: 300; }
.cm-film-body p, .cm-film-body li { font-size: 17px; line-height: 1.8; color: rgba(255,255,255,0.72); font-weight: 300; }
.cm-film-body p { margin: 0 0 24px; }
.cm-film-body h2, .cm-film-body h3 { font-family: var(--cm-font-display); font-weight: 500; color: var(--cm-paper); line-height: 1.2; margin: 44px 0 16px; }
.cm-film-body h2 { font-size: clamp(24px, 3vw, 32px); }
.cm-film-body h3 { font-size: clamp(21px, 2.4vw, 26px); }
.cm-film-body ul, .cm-film-body ol { margin: 0 0 24px; padding-left: 22px; display: grid; gap: 10px; }
.cm-film-body li::marker { color: var(--cm-gold); }
.cm-film-body a { color: var(--cm-gold) !important; border-bottom: 1px solid rgba(198,166,100,0.4); }
.cm-film-body strong { color: var(--cm-paper); font-weight: 500; }

/* ==========================================================================
   Logo lockup
   ========================================================================== */
.cm-logo { display: flex; align-items: center; text-decoration: none; }
.cm-logo img { display: block; height: 46px; width: auto; }
.cm-footer .cm-logo img { height: 42px; }
@media (max-width: 600px) { .cm-logo img { height: 38px; } }
.cm-logo:hover { opacity: 0.85; }

.cm-logo { display: inline-flex !important; align-items: center; text-decoration: none; flex: 0 0 auto; max-width: 300px; }
.cm-logo img { display: block !important; height: 46px !important; width: auto !important; max-width: none !important; }
.cm-footer .cm-logo img, .wp-block-group.cm-footer .cm-logo img { height: 42px !important; }
@media (max-width: 600px) { .cm-logo img { height: 34px !important; } }

/* Nav colour — hardened */
header.cm-header .cm-nav p a, header.cm-header .cm-nav a:not(.wp-block-button__link) { color: #C9C7C1 !important; }
header.cm-header .cm-nav p a:hover, header.cm-header .cm-nav a:not(.wp-block-button__link):hover { color: var(--cm-gold) !important; }
header.cm-header .cm-nav .wp-block-button__link, header.cm-header .cm-nav .wp-element-button { color: #0B0B0C !important; background-color: var(--cm-gold) !important; font-weight: 600 !important; }
header.cm-header .cm-nav .wp-block-button__link:hover, header.cm-header .cm-nav .wp-element-button:hover { color: #0B0B0C !important; background-color: #FFAE4A !important; }

/* Tighter vertical rhythm */
header.cm-header { padding-top: 11px !important; padding-bottom: 11px !important; }
.cm-logo img { height: 40px !important; }
.cm-footer .cm-logo img { height: 36px !important; }
@media (max-width: 600px) { .cm-logo img { height: 32px !important; } }
.cm-film-row { padding-top: clamp(18px, 2.4vw, 26px) !important; padding-bottom: clamp(18px, 2.4vw, 26px) !important; }
.cm-credit { padding: 11px 16px !important; }
.cm-film-body h2, .cm-film-body h3 { margin-top: 30px !important; margin-bottom: 12px !important; }
.cm-film-body p { margin-bottom: 16px !important; }
.cm-film-body ul, .cm-film-body ol { margin-bottom: 16px !important; }
.cm-film-body ul li, .cm-film-body ol li { line-height: 1.65; }
main h1, main h2, main h3 { text-wrap: pretty; }

/* Service cards — whole box clickable */
.cm-service-card { position: relative; transition: background-color 140ms ease; }
.cm-service-card:hover { background: #131313; }
.cm-service-card h3 a { color: inherit !important; text-decoration: none; }
.cm-service-card h3 a::after { content: ""; position: absolute; inset: 0; }
.cm-service-card:hover h3 a { color: var(--cm-gold-deep, #F69321) !important; }
.cm-service-card h3 a:focus-visible { outline: 2px solid var(--cm-gold); outline-offset: 3px; }
.cm-service-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.cm-service-links a { color: rgba(255,255,255,0.72) !important; text-decoration: none; }
.cm-service-links a:hover { color: var(--cm-gold) !important; }

/* ==========================================================================
   v1.1 — larger menu, mobile dropdown, distinct boxes, tighter footer
   ========================================================================== */

/* --- Menu: larger logo, larger nav ------------------------------------- */
header.cm-header { padding-top: 14px !important; padding-bottom: 14px !important; }
.cm-logo img { height: 54px !important; }
.cm-footer .cm-logo img, .wp-block-group.cm-footer .cm-logo img { height: 44px !important; }
@media (max-width: 600px) { .cm-logo img { height: 42px !important; } }
header.cm-header .cm-nav { gap: 30px !important; }
header.cm-header .cm-nav p a,
header.cm-header .cm-nav a:not(.wp-block-button__link) {
  font-size: 14px !important; font-weight: 500 !important; letter-spacing: 0.15em;
  padding: 6px 0;
}
header.cm-header .cm-nav .wp-block-button__link,
header.cm-header .cm-nav .wp-element-button {
  font-size: 14px !important; padding: 14px 24px !important;
}

/* --- Mobile dropdown menu --------------------------------------------- */
.cm-nav-toggle {
  display: none; align-items: center; gap: 10px;
  background: transparent; border: 1px solid rgba(198, 166, 100, 0.45);
  color: var(--cm-gold); font-family: var(--cm-font-body);
  font-size: 13px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
  padding: 12px 16px; min-height: 48px; cursor: pointer; border-radius: 0;
  transition: border-color 140ms ease, background-color 140ms ease;
}
.cm-nav-toggle:hover { border-color: var(--cm-gold); background: rgba(198, 166, 100, 0.08); }
.cm-nav-bars { display: grid; gap: 4px; width: 18px; }
.cm-nav-bars span { display: block; height: 1.6px; background: currentColor; }

@media (max-width: 899px) {
  header.cm-header .cm-nav-toggle { display: inline-flex; }
  header.cm-header .cm-nav { display: none !important; }
  header.cm-header.cm-nav-open .cm-nav {
    display: flex !important; position: absolute; left: 0; right: 0; top: 100%;
    flex-direction: column !important; align-items: stretch !important;
    gap: 0 !important; background: var(--cm-ink);
    border-top: 1px solid var(--cm-gold-rule); border-bottom: 1px solid var(--cm-gold-rule);
    padding: 8px 24px 20px; z-index: 60;
  }
  header.cm-header .cm-nav p { width: 100%; margin: 0; }
  header.cm-header .cm-nav p a {
    display: block; padding: 16px 0 !important; font-size: 16px !important;
    border-bottom: 1px solid rgba(242,240,236,0.13);
  }
  header.cm-header .cm-nav .wp-block-buttons { width: 100%; margin-top: 14px !important; }
  header.cm-header .cm-nav .wp-block-button { width: 100%; }
  header.cm-header .cm-nav .wp-block-button__link {
    display: block; width: 100%; text-align: center;
    font-size: 15px !important; padding: 16px 20px !important;
  }
}

/* --- Hero: taller, clearer image -------------------------------------- */
.cm-hero.wp-block-cover { min-height: 92vh !important; align-items: flex-end; }
.cm-hero .wp-block-cover__background {
  opacity: 1 !important;
  background: linear-gradient(rgba(11, 11, 12, 0.28), rgba(11, 11, 12, 0.74)) !important;
}
.cm-hero h1, .cm-hero .cm-label { text-shadow: 0 2px 24px rgba(0, 0, 0, 0.55); }
.cm-hero .cm-label { font-size: 13px !important; color: var(--cm-gold-bright) !important; }
.cm-hero .wp-block-button__link { padding: 18px 36px !important; font-size: 13px !important; }
.cm-hero .wp-block-button.is-style-outline .wp-block-button__link {
  background-color: rgba(11, 11, 12, 0.35) !important;
  border-color: rgba(224, 197, 128, 0.6);
  color: var(--cm-gold-bright) !important;
}

/* --- Distinct boxes: hairline grids become separated cards ------------- */
.cm-hairline-grid { gap: 18px !important; background: transparent !important; border: 0 !important; }
.cm-hairline-grid > .wp-block-column,
.cm-hairline-grid > .wp-block-group {
  background: var(--cm-paper) !important;
  border: 1px solid rgba(242,240,236,0.13);
  transition: border-color 140ms ease, background-color 140ms ease;
}
.cm-hairline-grid > .wp-block-column:hover,
.cm-hairline-grid > .wp-block-group:hover { border-color: var(--cm-gold) !important; }
.cm-hairline-grid--dark > .wp-block-column,
.cm-hairline-grid--dark > .wp-block-group {
  background: #131316 !important; border-color: rgba(198, 166, 100, 0.22);
}
.cm-hairline-grid--dark > .wp-block-column:hover,
.cm-hairline-grid--dark > .wp-block-group:hover { background: #17171B !important; }
@media (max-width: 781px) {
  .cm-hairline-grid.is-not-stacked-on-mobile { flex-wrap: wrap !important; }
  .cm-hairline-grid.is-not-stacked-on-mobile > .wp-block-column { flex-basis: 100% !important; }
}

/* Service cards read as their own boxes */
.cm-service-card { border: 1px solid rgba(242,240,236,0.13) !important; background: var(--cm-paper) !important; }
.cm-service-card:hover { border-color: var(--cm-gold) !important; background: #FBFAF7 !important; }
.cm-numeral { font-weight: 600; }

/* On-set tiles: framed box, caption beneath the frame */
.cm-tile { background: #131316; border-color: rgba(198, 166, 100, 0.22); padding: 10px; }
.cm-tile figcaption {
  position: static !important; background: none !important;
  padding: 14px 6px 6px !important; font-weight: 600;
}

/* Film meta, credits and festival lines as separate boxes */
.cm-credits {
  gap: 12px !important; background: transparent !important; border: 0 !important;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}
.cm-credit {
  background: #131316 !important; border: 1px solid rgba(198, 166, 100, 0.22);
  grid-template-columns: 1fr !important; gap: 6px !important; padding: 16px 18px !important;
}
.cm-deflist { gap: 12px !important; }
.cm-deflist li {
  background: #131316; border: 1px solid rgba(198, 166, 100, 0.22);
  border-bottom: 1px solid rgba(198, 166, 100, 0.22) !important;
  padding: 14px 18px !important;
}

/* Comparison table sits in one white panel */
.cm-compare {
  background: var(--cm-paper); border: 1px solid rgba(242,240,236,0.13);
  padding: clamp(16px, 2.5vw, 28px);
}
.cm-compare table { min-width: 620px; }
.cm-compare thead th { font-weight: 700 !important; }
.cm-compare thead th:nth-child(2) { color: var(--cm-gold-bright) !important; }

/* --- Weight: gold labels and section headings ------------------------- */
.cm-label { font-weight: 700 !important; font-size: 12px !important; letter-spacing: 0.22em; }
.cm-section-light .cm-label { color: #F69321 !important; }
main h2, .cm-section-dark h2, .cm-section-light h2 { font-weight: 600 !important; }
.cm-founder-name { font-weight: 700 !important; }

/* --- Footer: tighter, flush to the section above ---------------------- */
.cm-footer {
  padding-top: clamp(36px, 4.5vw, 52px) !important;
  padding-bottom: 20px !important;
  margin-top: 0 !important;
}
.cm-footer .wp-block-columns { gap: clamp(24px, 3vw, 40px) !important; }
.cm-footer ul { gap: 9px !important; }
.cm-footer a, .cm-footer .wp-block-list li, .cm-footer address { font-size: 14.5px !important; }
.cm-footer .cm-label { margin-bottom: 14px !important; }
.wp-site-blocks > footer, .wp-site-blocks > .cm-footer { margin-top: 0 !important; }
.wp-block-post-content > :last-child { margin-block-end: 0 !important; }

/* --- Shared contact section (parts/contact.html) ---------------------- */
.cm-contact-part { display: block; margin: 0 !important; }
.cm-contact.wp-block-cover { border-bottom: 0 !important; margin-bottom: 0 !important; }
.cm-contact .wp-block-cover__background {
  opacity: 1 !important;
  background: linear-gradient(rgba(11, 11, 12, 0.86), rgba(11, 11, 12, 0.92)) !important;
}
.cm-contact-cards { display: grid; gap: 12px; max-width: 420px; }
.cm-contact-card { background: #131316; border: 1px solid rgba(198, 166, 100, 0.22); }
.cm-contact-card a { color: var(--cm-paper) !important; }
.cm-contact-card a:hover { color: var(--cm-gold-bright) !important; }
.cm-form-panel { background: #131316; border: 1px solid rgba(198, 166, 100, 0.22); }
.cm-form-panel .wpforms-container, .cm-form-panel .wpforms-form { margin: 0 !important; }
.wpforms-field-label { font-weight: 700 !important; font-size: 12px !important; }
.cm-contact-info-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

/* --- Mobile pass ------------------------------------------------------ */
@media (max-width: 640px) {
  .cm-film-row { grid-template-columns: minmax(0, 120px) minmax(0, 1fr) !important; }
  .cm-deflist li { grid-template-columns: 1fr !important; }
}

/* --- Reading columns on the cream ground ------------------------------ */
.cm-film-body.cm-section-light p, .cm-film-body.cm-section-light li,
.cm-single-body.cm-section-light p, .cm-single-body.cm-section-light li { color: #C9C7C1 !important; }
.cm-film-body.cm-section-light h2, .cm-film-body.cm-section-light h3,
.cm-single-body.cm-section-light h2, .cm-single-body.cm-section-light h3, .cm-single-body.cm-section-light h4 {
  color: var(--cm-ink) !important; font-weight: 600 !important;
}
.cm-section-light .cm-deflist li { background: var(--cm-paper) !important; border-color: rgba(242,240,236,0.13) !important; color: #C9C7C1 !important; }
.cm-section-light .cm-deflist li strong { color: #F69321 !important; font-weight: 700 !important; }
.cm-section-light blockquote { border-color: rgba(242,240,236,0.13) !important; color: #C9C7C1 !important; }
.cm-section-light blockquote cite, .cm-section-light blockquote footer { color: #F69321 !important; }
.cm-section-light a { color: #F69321; }
.cm-section-light a:hover { color: var(--cm-ink); }


/* ============================================================
   v12 \u2014 section seams, contact CTA band, black stat strip
   ============================================================ */

/* No black bleed between full-bleed sections: they butt together */
main#cm-main > .wp-block-post-content > * + *,
.wp-block-post-content > * + * { margin-block-start: 0 !important; }
main#cm-main > .wp-block-post-content { display: block; }
main#cm-main > .wp-block-post-content > section,
main#cm-main > .wp-block-post-content > .wp-block-cover { margin-block: 0 !important; }

/* Shared contact CTA band (replaces the per-page form) */
.cm-contact-cta.wp-block-cover { border-bottom: 0 !important; margin-bottom: 0 !important; }
.cm-contact-cta .wp-block-cover__background {
  background: linear-gradient(rgba(11,11,12,0.72), rgba(11,11,12,0.86)) !important;
}
.cm-contact-cta h2 { color: #F2F0EC; font-weight: 600 !important; }
.cm-contact-cta .cm-cta-meta a { color: #C9C7C1; border-bottom: 1px solid rgba(246,147,33,0.45); }
.cm-contact-cta .cm-cta-meta a:hover { color: var(--cm-gold-bright); border-color: var(--cm-gold); }
.cm-contact-cta .wp-block-buttons { justify-content: center; }

/* Black stat strip */
.cm-statstrip { background: var(--cm-ink) !important; }
.cm-statstrip .cm-stat {
  background: #131316; border: 1px solid rgba(198,166,100,0.22);
  transition: border-color 140ms ease, background-color 140ms ease;
}
.cm-statstrip .cm-stat:hover { border-color: var(--cm-gold); background: #17171B; }
.cm-statstrip .cm-numeral { color: #F2F0EC !important; }
.cm-statstrip .cm-stat p:last-child { color: #A2A09A !important; }

/* Contact page \u2014 all black */
.cm-contactpage .cm-panel { background: #131316; border: 1px solid rgba(198,166,100,0.22); }
.cm-contactpage .cm-panel .cm-label { color: var(--cm-gold) !important; }
.cm-contactpage .cm-panel a { color: #F2F0EC; border-bottom: 1px solid rgba(246,147,33,0.45); }
.cm-contactpage .cm-panel a:hover { color: var(--cm-gold-bright); border-color: var(--cm-gold); }
.cm-map { border: 1px solid rgba(198,166,100,0.22); background: #131316; line-height: 0; }
.cm-map iframe { display: block; width: 100%; height: clamp(320px, 42vw, 460px); border: 0; filter: grayscale(1) invert(0.92) contrast(0.86); }

/* No black seam between header, main and the template parts either */
.wp-site-blocks > * + * { margin-block-start: 0 !important; }
.wp-site-blocks > .wp-block-template-part { margin-block: 0 !important; }

/* Stat strip on small screens: 2x2 grid, then a single column */
@media (max-width: 781px) {
  .cm-statstrip .wp-block-columns { display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px; }
  .cm-statstrip .wp-block-column.cm-stat { flex-basis: auto !important; padding: 22px 20px !important; }
  .cm-statstrip .cm-numeral { font-size: 46px !important; line-height: 1.05; }
  .cm-statstrip .cm-stat p:last-child { font-size: 13.5px !important; }
}
@media (max-width: 460px) {
  .cm-statstrip .wp-block-columns { grid-template-columns: 1fr; }
  .cm-statstrip .cm-numeral { font-size: 42px !important; }
}

/* Comparison table becomes stacked cards on small screens */
@media (max-width: 820px) {
  .cm-compare { overflow: visible !important; }
  .cm-compare table { min-width: 0 !important; display: block; border-collapse: separate; }
  .cm-compare thead { display: none; }
  .cm-compare tbody { display: grid; gap: 16px; }
  .cm-compare tbody tr {
    display: block; background: #131313; border: 1px solid rgba(242,240,236,0.13); padding: 20px 20px 18px;
  }
  .cm-compare tbody td { display: block; padding: 0; border: 0; }
  .cm-compare tbody td + td { margin-top: 16px; padding-top: 16px; border-top: 1px solid #EDE8DE; }
  .cm-compare tbody td:first-child {
    font-family: 'Instrument Serif', Georgia, serif; font-weight: 600; font-size: 21px; line-height: 1.2;
    color: #F2F0EC; background: none;
  }
  .cm-compare tbody td + td::before {
    content: attr(data-label); display: block; margin-bottom: 8px;
    font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 11px; font-weight: 700;
    letter-spacing: 0.16em; text-transform: uppercase; color: #F69321;
  }
  .cm-compare tbody td:nth-child(2) { background: none; color: #C9C7C1; font-size: 15.5px; line-height: 1.6; }
  .cm-compare tbody td:nth-child(3) { color: #6E6A62; font-size: 15px; line-height: 1.6; }
  .cm-compare tbody td:nth-child(3)::before { color: #8C8983; }
  .cm-compare tbody tr:last-child td { border-bottom: 0; }
  .cm-compare .wp-element-caption { margin-top: 14px; }
}

/* ==========================================================================
   v13 comparison table
   ========================================================================== */
.cm-compare {
  background: transparent !important; border: 0 !important; padding: 0 !important;
  overflow-x: auto; overflow-y: visible;
}
.cm-compare > .wp-block-table,
.cm-compare .wp-block-table { max-width: none !important; width: 100%; margin: 0; }
.cm-compare table {
  width: 100%; min-width: 720px; border-collapse: separate; border-spacing: 0;
  font-size: 15.5px; table-layout: fixed;
}
.cm-compare col { }
.cm-compare thead th {
  text-align: left; vertical-align: bottom; padding: 14px 22px;
  font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 11.5px; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase; border-bottom: 1px solid var(--cm-ink);
  background: transparent; color: #55524C;
}
.cm-compare thead th:first-child { width: 24%; padding-left: 0; }
.cm-compare thead th:nth-child(2) {
  width: 40%; background: var(--cm-ink) !important; color: var(--cm-gold-bright) !important;
  border-bottom-color: var(--cm-ink);
}
.cm-compare thead th:last-child { width: 36%; color: #6E6C66 !important; }
.cm-compare tbody td {
  padding: 22px; vertical-align: top; font-weight: 300; line-height: 1.6;
  border-bottom: 1px solid rgba(242,240,236,0.13); background: transparent; color: #6E6A62;
}
.cm-compare tbody td:first-child {
  padding-left: 0; padding-right: 28px;
  font-family: 'Instrument Serif', Georgia, serif; font-size: 19px; font-weight: 600;
  line-height: 1.25; color: var(--cm-ink);
}
.cm-compare tbody td:nth-child(2) {
  background: #131313 !important; color: #C9C7C1; font-weight: 400;
  border-left: 1px solid #E6DFCE; border-right: 1px solid #E6DFCE;
}
.cm-compare tbody tr:last-child td:nth-child(2) { border-bottom: 1px solid #E6DFCE; }
.cm-compare tbody tr:last-child td:first-child,
.cm-compare tbody tr:last-child td:last-child { border-bottom: 1px solid rgba(242,240,236,0.13); }
.cm-compare tbody tr:hover td:nth-child(2) { background: #FBFAF7 !important; }
.cm-compare .wp-element-caption, .cm-compare figcaption {
  margin: 18px 0 0; text-align: left; font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 12px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: #6E6C66;
}
@media (max-width: 820px) {
  .cm-compare table { min-width: 0 !important; table-layout: auto; }
  .cm-compare tbody td:nth-child(2) { border-left: 0; border-right: 0; }
  .cm-compare tbody td:first-child { padding-right: 0; font-size: 21px; }
  .cm-compare .wp-element-caption, .cm-compare figcaption { margin-top: 14px; }
}

/* v13 mobile cards re-assert \u2014 must sit after the desktop table rules */
@media (max-width: 820px) {
  .cm-compare { overflow: visible !important; }
  .cm-compare table { min-width: 0 !important; display: block; table-layout: auto; border-collapse: separate; }
  .cm-compare thead { display: none; }
  .cm-compare tbody { display: grid; gap: 16px; }
  .cm-compare tbody tr { display: block; background: #131313; border: 1px solid rgba(242,240,236,0.13); padding: 20px 20px 18px; }
  .cm-compare tbody tr:hover td:nth-child(2) { background: transparent !important; }
  .cm-compare tbody td,
  .cm-compare tbody tr:last-child td { display: block; padding: 0 !important; border: 0 !important; background: transparent !important; }
  .cm-compare tbody td + td { margin-top: 16px; padding-top: 16px !important; border-top: 1px solid #EDE8DE !important; }
  .cm-compare tbody td:first-child { font-family: 'Instrument Serif', Georgia, serif; font-weight: 600; font-size: 21px; line-height: 1.2; color: #F2F0EC; }
  .cm-compare tbody td + td::before {
    content: attr(data-label); display: block; margin-bottom: 8px;
    font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 11px; font-weight: 700;
    letter-spacing: 0.16em; text-transform: uppercase; color: #F69321;
  }
  .cm-compare tbody td:nth-child(2) { color: #C9C7C1; font-size: 15.5px; line-height: 1.6; }
  .cm-compare tbody td:nth-child(3) { color: #6E6A62; font-size: 15px; line-height: 1.6; }
  .cm-compare tbody td:nth-child(3)::before { color: #8C8983; }
}

/* ==========================================================================
   v14 comparison table panel
   ========================================================================== */
.cm-compare {
  background: #131313 !important; border: 1px solid rgba(242,240,236,0.13) !important;
  padding: 0 !important; overflow: hidden !important;
  box-shadow: 0 1px 0 rgba(11,11,12,0.04);
}
.cm-compare table { min-width: 0 !important; width: 100%; table-layout: fixed; }
.cm-compare thead th { background: transparent; border-bottom: 1px solid rgba(242,240,236,0.13); padding: 15px 26px; }
.cm-compare thead th:first-child { padding-left: 26px; width: 24%; }
.cm-compare thead th:nth-child(2) { background: var(--cm-ink) !important; border-bottom-color: var(--cm-ink); }
.cm-compare tbody td { padding: 24px 26px; border-bottom: 1px solid #EDE8DC; }
.cm-compare tbody td:first-child { padding-left: 26px !important; padding-right: 30px; }
.cm-compare tbody td:nth-child(2) {
  background: #FBF9F4 !important; border-left: 1px solid #E6DFCE; border-right: 1px solid #E6DFCE;
}
.cm-compare tbody tr:hover td:nth-child(2) { background: #F7F4EC !important; }
.cm-compare tbody tr:last-child td { border-bottom: 0 !important; }
.cm-compare .wp-element-caption, .cm-compare figcaption {
  margin: 0; padding: 14px 26px; background: transparent; border-top: 1px solid rgba(242,240,236,0.13);
}
@media (max-width: 820px) {
  .cm-compare { background: transparent !important; border: 0 !important; overflow: visible !important; box-shadow: none; }
  .cm-compare tbody td:first-child { padding-left: 0 !important; padding-right: 0; }
  .cm-compare tbody td:nth-child(2) { background: transparent !important; }
  .cm-compare .wp-element-caption, .cm-compare figcaption { padding: 0; background: transparent; border-top: 0; margin-top: 14px; }
}

/* ==========================================================================
   v15 match prototype rhythm
   ========================================================================== */
/* One section rhythm everywhere, as in the approved design */
main .cm-section-dark,
main .cm-section-light,
main > .wp-block-post-content > section {
  padding-top: clamp(56px, 7vw, 92px) !important;
  padding-bottom: clamp(56px, 7vw, 92px) !important;
}
/* Inner-page body sections sit a step tighter */
main .cm-single-body, main .cm-film-body {
  padding-top: clamp(48px, 6vw, 80px) !important;
  padding-bottom: clamp(48px, 6vw, 80px) !important;
}
/* Section that follows a hero keeps its short top edge */
main .cm-statstrip { padding-top: clamp(40px, 5vw, 60px) !important; padding-bottom: clamp(40px, 5vw, 60px) !important; }
.cm-contact-cta.wp-block-cover {
  padding-top: clamp(56px, 7vw, 92px) !important;
  padding-bottom: clamp(56px, 7vw, 88px) !important;
}

/* Type scale, matched to the design */
body { line-height: 1.75; }
.cm-label { font-size: 12px !important; font-weight: 700 !important; letter-spacing: 0.22em; }
main h2, .cm-section-dark h2, .cm-section-light h2 { font-weight: 600 !important; line-height: 1.08; }
main h3, .cm-section-dark h3, .cm-section-light h3 { font-weight: 600 !important; line-height: 1.25; }
.wp-block-button__link, .wp-element-button { font-size: 13px !important; letter-spacing: 0.16em; font-weight: 600 !important; }
.cm-hero h1 { font-weight: 400; line-height: 1.02; }
main h1 { font-weight: 400; }
.cm-numeral { font-weight: 600; }


/* 2026 revision: sticky header, no stray gaps. */
.wp-site-blocks > .wp-block-template-part:first-child { position: sticky; top: 0; z-index: 200; }
.wp-block-template-part:has(> .cm2 > .cm2-header) { position: sticky; top: 0; z-index: 200; }
.wp-site-blocks { overflow: visible; }
#cm-main p:empty, .cm2 + p:empty { display: none !important; margin: 0 !important; }

/* Films + Insights: poster grid flush to the hero. */
body.page-id-40 .cm2 > section:first-of-type, body.page-id-230 .cm2 > section:first-of-type { border-bottom: 0 !important; }
body.page-id-40 .cm2 > section:nth-of-type(2), body.page-id-230 .cm2 > section:nth-of-type(2) { margin-top: 0 !important; }
/* Films + Insights: the hero copy needs room above the poster grid. */
body.page-id-40 .cm2 > section:first-of-type, body.page-id-230 .cm2 > section:first-of-type { padding-bottom: clamp(44px,5.2vw,76px) !important; }
body.page-id-40 .cm2 > section:nth-of-type(2), body.page-id-230 .cm2 > section:nth-of-type(2) { padding-top: clamp(40px,4.8vw,68px) !important; }

/* 2026 revision: header nav flush right so the logo gap and the Enquire gap match. */
.cm2-header .cm2-nav { margin-left: auto !important; margin-right: 0 !important; }
.cm2-header .cm2-menu-btn { margin-left: auto !important; }
.cm2-header > div:first-child { justify-content: flex-start !important; }

/* Header: wpautop wraps the menu button in a <p>, which becomes an invisible
   flex item at the right end and breaks the left/right edge symmetry. */
.cm2-header p { display: contents !important; }
.cm2-header > div:first-child > p:empty { display: none !important; }

/* Home: header floats over the hero image until you scroll past it. */
body.home .wp-block-template-part:has(.cm2-header) { position: fixed; top: 0; left: 0; right: 0; z-index: 200; }
body.home.admin-bar .wp-block-template-part:has(.cm2-header) { top: 32px; }
@media screen and (max-width: 782px) { body.home.admin-bar .wp-block-template-part:has(.cm2-header) { top: 46px; } }
body.home #cm-main .cm2 > section:first-of-type { min-height: 100svh !important; }
body.home .cm2-header {
  background: transparent !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  border-bottom-color: transparent !important;
  transition: background-color 220ms ease, border-color 220ms ease;
}
body.home .cm2-header::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; z-index: -1;
  background-image: linear-gradient(to bottom, rgba(18,18,18,0.62) 0%, rgba(18,18,18,0.34) 55%, rgba(18,18,18,0) 100%);
  transition: opacity 220ms ease;
}
body.home .cm2-header .cm2-nav-link { color: #F2F0EC; text-shadow: 0 1px 12px rgba(18,18,18,0.6); }
body.home .cm2-header .cm2-nav-link[aria-current='page'] { color: #F69321; }
body.home .cm2-header .cm2-nav-link:hover { color: #F69321 !important; }
body.home .cm2-header img { filter: drop-shadow(0 1px 10px rgba(18,18,18,0.55)); }
/* past the hero: the solid bar returns */
body.home .cm2-header.is-solid {
  background: rgba(18,18,18,0.92) !important;
  backdrop-filter: blur(14px) !important; -webkit-backdrop-filter: blur(14px) !important;
  border-bottom-color: rgba(242,240,236,0.13) !important;
}
body.home .cm2-header.is-solid::before { opacity: 0; }
body.home .cm2-header.is-solid .cm2-nav-link { color: #F2F0EC; text-shadow: none; }
body.home .cm2-header.is-solid .cm2-nav-link[aria-current='page'] { color: #F69321; }
body.home .cm2-header.is-solid img { filter: none; }
body.home .cm2-header.is-open { background: #121212 !important; }
body.home .wp-block-template-part:has(.cm2-header), body.home .wp-block-template-part:has(.cm2-header) > .cm2 { background: transparent !important; }
