@layer custom {
:root {
  --cnvs-themecolor: #2EC4B6;
  --cnvs-themecolor-rgb: 46,196,182;
  --cnvs-body-font: 'Schibsted Grotesk', sans-serif;
  --cnvs-primary-font: 'Schibsted Grotesk', sans-serif;
  --cnvs-secondary-font: 'Gloock', serif;

  --c-ground: #16181B;
  --c-ground-2: #1F2226;
  --c-ink: #F1F2F0;
  --c-muted: #A9AEB4;
  --c-accent: var(--cnvs-themecolor);
  --c-line: #343840;
  --c-light: #ECEBE7;
  --c-light-ink: #16181B;
  --c-light-muted: #3A3F45;

  --space-1: 4px;
  --space-2: 8px;
  --space-3: 16px;
  --space-4: 24px;
  --space-5: 40px;
  --space-6: 64px;
  --space-7: 96px;
  --band: 96px;
  --band-compact: 56px;
  --gutter: 24px;

  --fs-display: clamp(2.75rem, 6vw, 5.5rem);
  --fs-h1: clamp(2.75rem, 6vw, 5.5rem);
  --fs-h2: clamp(2rem, 3.4vw, 3rem);
  --fs-h3: 1.25rem;
  --fs-lead: 1.25rem;
  --fs-body: 1rem;
  --fs-small: 0.875rem;
  --fs-label: 0.8125rem;

  --radius-s: 6px;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
}

@media (max-width: 767px) {
  :root { --band: 56px; --band-compact: 40px; }
}

body { background: var(--c-ground); color: var(--c-ink); font-family: var(--cnvs-body-font); font-size: var(--fs-body); line-height: 1.6; }
#wrapper, #content { background: var(--c-ground); }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 3px; }

/* header */
#header.dark { --cnvs-header-sticky-bg: #16181B; }
@media (max-width: 991.98px) {
  #header-wrap { background: var(--c-ground); }
}
@media (min-width: 992px) {
  .is-expanded-menu #header .header-row { flex-wrap: nowrap; }
  .is-expanded-menu #header nav.primary-menu { margin-left: auto; margin-right: auto; }
}
@media (max-width: 575.98px) {
  .header-misc .cf-btn { display: none; }
}

/* buttons and links */
.cf-btn, .button.cf-btn {
  background: var(--c-accent);
  color: #0E1011;
  font-weight: 600;
  font-size: var(--fs-body);
  padding: var(--space-3) var(--space-4);
  height: auto;
  line-height: 1.2;
  border-radius: var(--radius-s);
  border: 0;
  text-shadow: none;
  transition: transform 160ms var(--ease-out), filter 200ms var(--ease-out);
}
.cf-btn:hover { background: var(--c-accent); color: #0E1011; filter: brightness(1.1); }
.cf-btn:active { transform: scale(0.97); }
.cf-btn-sm, .button.cf-btn-sm { padding: var(--space-2) var(--space-3); font-size: var(--fs-small); }
.cf-link { color: var(--c-ink); font-weight: 500; text-decoration: underline; text-decoration-color: var(--c-accent); text-decoration-thickness: 1px; text-underline-offset: 6px; transition: text-decoration-thickness 160ms var(--ease-out); }
.cf-link:hover { color: var(--c-ink); text-decoration-thickness: 3px; }

/* heading colours */
#wrapper h1, #wrapper h2, #wrapper h3 { color: var(--c-ink); }
#wrapper .cf-band h1, #wrapper .cf-band h2, #wrapper .cf-band h3,
#wrapper .cf-band-2 h1, #wrapper .cf-band-2 h2, #wrapper .cf-band-2 h3,
#wrapper .cf-price h3 { color: var(--c-ink); }
#wrapper .cf-light h2, #wrapper .cf-light h3 { color: var(--c-light-ink); }

/* services photo fills its column */
#services .lg\:col-4 { display: flex; flex-direction: column; }
.cf-services-img { flex: 1 1 auto; width: 100%; min-height: 240px; margin-top: var(--space-5); object-fit: cover; border-radius: var(--radius-s); }
@media (max-width: 991.98px) { .cf-services-img { flex: none; aspect-ratio: 3 / 2; min-height: 0; } }

/* hero */
.cf-hero .video-wrap { z-index: 0; }
.cf-hero .video-overlay { z-index: 1; }
.cf-hero-inner { z-index: 3; }
.cf-hero { position: relative; overflow: hidden; background: var(--c-ground); }
.cf-hero .video-wrap, .cf-hero .video-wrap video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cf-scrim { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(22,24,27,0.85), rgba(22,24,27,0.35)); }
.cf-hero-inner { position: relative; z-index: 2; padding-top: var(--space-6); padding-bottom: var(--space-6); }
.is-expanded-menu .cf-hero-inner { padding-top: calc(var(--cnvs-header-height, 100px) + var(--space-4)); }
.cf-timecode { font-size: var(--fs-label); font-weight: 600; text-transform: uppercase; letter-spacing: 0.12em; color: var(--c-accent); margin: 0 0 var(--space-4); }
.cf-display { font-family: var(--cnvs-secondary-font); font-weight: 400; font-size: var(--fs-display); line-height: 1.02; letter-spacing: -0.02em; color: var(--c-ink); max-width: 14ch; margin: 0 0 var(--space-4); }
.cf-lead { font-size: var(--fs-lead); line-height: 1.5; color: var(--c-ink); max-width: 36ch; margin: 0 0 var(--space-5); }
.cf-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
@media (max-width: 575.98px) { .cf-actions { flex-direction: column; align-items: flex-start; gap: var(--space-3); } }

/* bands */
.cf-band { padding: var(--band) 0; margin: 0; background: var(--c-ground); color: var(--c-ink); }
.cf-band-2 { background: var(--c-ground-2); }
.cf-light { background: var(--c-light); color: var(--c-light-ink); }
.cf-h2 { font-family: var(--cnvs-secondary-font); font-weight: 400; font-size: var(--fs-h2); line-height: 1.1; color: inherit; margin: 0 0 var(--space-3); }
.cf-muted { color: var(--c-muted); font-size: var(--fs-body); }
.cf-light .cf-muted { color: var(--c-light-muted); }
.cf-measure { max-width: 60ch; }
.cf-band h3 { font-size: var(--fs-h3); font-weight: 600; line-height: 1.3; color: inherit; margin: 0; }

/* services rows */
.cf-rows { list-style: none; margin: 0; padding: 0; }
.cf-rows li { display: grid; grid-template-columns: 1fr 1.4fr; gap: var(--gutter); padding: var(--space-4) 0; border-bottom: 1px solid var(--c-line); }
.cf-rows li:first-child { border-top: 1px solid var(--c-line); }
.cf-rows p { margin: 0; color: var(--c-muted); transition: color 200ms var(--ease-out); }
.cf-rows h3 { transition: color 200ms var(--ease-out); }
.cf-rows li:hover h3 { color: var(--c-accent); }
.cf-rows li:hover p { color: var(--c-ink); }
@media (max-width: 767px) { .cf-rows li { grid-template-columns: 1fr; gap: var(--space-2); } }

/* work tiles */
.cf-band .cf-gallery { margin-top: var(--space-5); }
.cf-tile { position: relative; display: block; border-radius: var(--radius-s); overflow: hidden; aspect-ratio: 3 / 2; background: var(--c-ground); transition: opacity 250ms var(--ease-out), transform 250ms var(--ease-out); }
.cf-tile img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cf-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14,16,17,0.85) 0%, rgba(14,16,17,0) 55%); }
.cf-play { position: absolute; top: 50%; left: 50%; z-index: 2; width: 56px; height: 56px; margin: -28px 0 0 -28px; border-radius: 50%; background: var(--c-accent); color: #0E1011; display: flex; align-items: center; justify-content: center; font-size: 1.75rem; transition: transform 200ms var(--ease-out); }
.cf-cap { position: absolute; left: var(--space-4); right: var(--space-4); bottom: var(--space-3); z-index: 2; display: flex; flex-direction: column; color: var(--c-ink); }
.cf-cap strong { font-size: var(--fs-h3); font-weight: 600; }
.cf-cap span { font-size: var(--fs-small); color: #C9CDD2; }
@media (hover: hover) and (pointer: fine) {
  .cf-gallery:hover .cf-tile { opacity: 0.55; }
  .cf-gallery .cf-tile:hover { opacity: 1; transform: translateY(-4px); }
  .cf-tile:hover .cf-play { transform: scale(1.1); }
}

/* audiences */
.cf-light .cf-h2 { margin-bottom: var(--space-5); }
.cf-who > div { border-top: 1px solid rgba(22,24,27,0.4); padding-top: var(--space-3); }
.cf-who h3 { font-family: var(--cnvs-secondary-font); font-weight: 400; font-size: clamp(1.5rem, 2.4vw, 2.25rem); margin-bottom: var(--space-2); }
.cf-who p { color: var(--c-light-muted); margin: 0; }

/* wide photo rows */
.cf-wide { margin: var(--space-5) 0 0; }
.cf-wide img { width: 100%; height: auto; aspect-ratio: 21 / 9; object-fit: cover; border-radius: var(--radius-s); display: block; }
.cf-wide figcaption { margin-top: var(--space-2); font-size: var(--fs-small); color: var(--c-muted); }
.cf-light .cf-wide figcaption { color: var(--c-light-muted); }

/* awards */
.cf-table { width: 100%; border-collapse: collapse; }
.cf-table td { padding: var(--space-3) var(--space-3) var(--space-3) 0; border-bottom: 1px solid var(--c-line); vertical-align: top; }
.cf-table tr:first-child td { border-top: 1px solid var(--c-line); }
.cf-table td:first-child { color: var(--c-accent); font-size: var(--fs-small); font-variant-numeric: tabular-nums; width: 80px; }
.cf-table td:nth-child(3) { color: var(--c-muted); }
@media (max-width: 767px) { .cf-table td { display: block; border: 0; padding: 0; } .cf-table tr { display: block; padding: var(--space-3) 0; border-bottom: 1px solid var(--c-line); } .cf-table tr:first-child { border-top: 1px solid var(--c-line); } }

/* studio */
.cf-studio-img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius-s); display: block; }
.cf-kit { list-style: none; margin: var(--space-4) 0 0; padding: 0; }
.cf-kit li { padding: var(--space-3) 0; border-bottom: 1px solid var(--c-line); color: var(--c-ink); }
.cf-kit li:first-child { border-top: 1px solid var(--c-line); }

/* pricing */
.cf-prices { margin-top: var(--space-5); }
.cf-price { height: 100%; background: var(--c-ground-2); border: 1px solid var(--c-line); border-radius: var(--radius-s); padding: var(--space-4); }
.cf-price-feat { border-color: var(--c-accent); }
.cf-price p { color: var(--c-muted); margin: 0; }
.cf-price .cf-amt { font-family: var(--cnvs-secondary-font); font-size: var(--fs-h2); color: var(--c-ink); line-height: 1.1; margin: var(--space-3) 0; }

/* testimonials */
#directors .owl-carousel { margin-top: var(--space-5); }
.cf-quote { height: 100%; background: var(--c-ground); border: 1px solid var(--c-line); border-radius: var(--radius-s); padding: var(--space-4); display: flex; flex-direction: column; justify-content: space-between; gap: var(--space-4); }
.cf-quote p { font-size: var(--fs-lead); line-height: 1.5; color: var(--c-ink); margin: 0; }
.cf-quote strong { display: block; font-weight: 600; color: var(--c-ink); }
.cf-quote span { font-size: var(--fs-small); color: var(--c-muted); }
#directors .owl-dots .owl-dot span { background: var(--c-line); }
#directors .owl-dots .owl-dot.active span { background: var(--c-accent); }

/* brief form on light band */
.cf-light label { font-size: var(--fs-small); font-weight: 600; color: var(--c-light-ink); margin-bottom: var(--space-2); }
.cf-light .cnvs-form-group { margin-bottom: var(--space-3); }
.cf-light .form-control:where(:not(.form-select)) { height: 48px; background: #fff; color: var(--c-light-ink); border: 1px solid #8A8F96; border-radius: var(--radius-s); font-size: var(--fs-body); }
.cf-light textarea.form-control:where(:not(.form-select)) { height: auto; }
.cf-light .form-control:where(:not(.form-select)):focus { border-color: var(--c-light-ink); outline: 2px solid var(--c-accent); outline-offset: 1px; box-shadow: none; }

/* footer */
#footer { --cnvs-footer-bg: #16181B; border-top: 1px solid var(--c-line); }
#footer .footer-widgets-wrap { padding: var(--band) 0 var(--band-compact); }
#footer .footer-widgets-wrap a.cf-mail { display: inline-block; font-family: var(--cnvs-secondary-font); font-size: clamp(1.75rem, 4.2vw, 3.5rem); line-height: 1.1; color: var(--c-ink); overflow-wrap: anywhere; margin-bottom: var(--space-3); }
#footer .footer-widgets-wrap a.cf-mail:hover { color: var(--c-accent); }
.cf-fmuted { color: var(--c-muted); margin: 0; }
.cf-flinks { list-style: none; margin: var(--space-4) 0 0; padding: 0; display: grid; gap: var(--space-2); }
#footer .footer-widgets-wrap .cf-flinks a { color: var(--c-ink); }
#footer .footer-widgets-wrap .cf-flinks a:hover { color: var(--c-accent); }
#footer #copyrights { background: #101214; color: var(--c-muted); border-top: 1px solid var(--c-line); }
#footer #copyrights a { color: var(--c-ink); text-decoration: underline; }

@media (prefers-reduced-motion: reduce) {
  .cf-hero video { display: none; }
  .cf-hero .video-wrap { background: url("images/video-production-02.webp") center / cover; }
  .cf-tile, .cf-play, .cf-rows p, .cf-rows h3, .cf-btn { transition: none; }
}

/* ---- inline overrides ---- */
:where(img[width][height]){height:auto}

:is(.content-wrap,.section):has([data-cx]){overflow-x:clip;overflow-y:visible}

.content-wrap {
  padding-top: 0;
  padding-bottom: 0;
}

.section {
  margin-top: 0;
  margin-bottom: 0;
}

#copyrights a:not(.button) { text-decoration: underline !important; text-underline-offset: 0.2em; }
#oc-testimonials .owl-dots .owl-dot { width: 24px; height: 24px; padding: 8px; margin-inline: 0; box-sizing: border-box; background-clip: content-box; }
}
