/* =============================================================
   DAV Media — Global Stylesheet
   Brand: Dark cinematic, African film distribution
   ============================================================= */

/* ── 0. GOOGLE FONTS (loaded in <head>) ─────────────────────── */
/* Bebas Neue | DM Sans 300/400/500 | Cormorant Garamond 300/400/600/700 + italics */

/* ── 1. CSS CUSTOM PROPERTIES ────────────────────────────────── */
:root {
  /* Colours */
  --orange:       #d95f0e;
  --orange-light: #f07830;
  --orange-dim:   #7a3408;
  --orange-glow:  rgba(217, 95, 14, 0.15);
  --black:        #080808;
  --dark:         #0f0f0f;
  --dark2:        #141414;
  --dark3:        #1d1d1d;
  --white:        #ffffff;
  --off-white:    #f0ece6;
  --grey:         #888888;
  --grey2:        #4a4a4a;

  /* Typography */
  --font-display: 'Bebas Neue', sans-serif;
  --font-body:    'DM Sans', sans-serif;
  --font-serif:   'Cormorant Garamond', serif;

  /* Spacing */
  --section-pad:  7rem 0;
  --container-w:  1200px;
  --container-px: 1.5rem;

  /* Transitions */
  --transition:   0.25s ease;
  --transition-slow: 0.4s ease;

  /* Borders */
  --radius:       4px;
  --radius-lg:    8px;

  /* Shadows */
  --shadow-card:  0 4px 24px rgba(0, 0, 0, 0.6);
  --shadow-hover: 0 8px 40px rgba(217, 95, 14, 0.25);
}

/* ── 2. RESET & BASE ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family:      var(--font-body);
  background-color: var(--black);
  color:            var(--off-white);
  line-height:      1.7;
  font-weight:      400;
  min-height:       100vh;
  overflow-x:       hidden;
}

img { display: block; max-width: 100%; height: auto; }
a  { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font: inherit; }
input, textarea, select { font: inherit; }

h1, h2, h3, h4, h5, h6 {
  font-family:  var(--font-display);
  font-weight:  400;
  line-height:  1.1;
  letter-spacing: 0.04em;
  color: var(--white);
}

p { margin-bottom: 1rem; }
p:last-child { margin-bottom: 0; }

/* ── 3. FILM GRAIN TEXTURE ───────────────────────────────────── */
body::before {
  content:        '';
  position:       fixed;
  inset:          0;
  pointer-events: none;
  z-index:        9998;
  opacity:        0.035;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size:   256px 256px;
}

/* ── 4. UTILITIES ────────────────────────────────────────────── */
.container {
  max-width:     var(--container-w);
  margin-inline: auto;
  padding-inline: var(--container-px);
}

.section { padding: var(--section-pad); }
.section--dark2 { background-color: var(--dark2); }
.section--dark { background-color: var(--dark); }

/* Bebas Neue background watermark label */
.section-label {
  display:         block;
  font-family:     var(--font-display);
  font-size:       clamp(4rem, 10vw, 8rem);
  color:           var(--orange);
  opacity:         0.05;
  letter-spacing:  0.12em;
  line-height:     1;
  pointer-events:  none;
  user-select:     none;
  position:        absolute;
  top:             1rem;
  left:            var(--container-px);
  white-space:     nowrap;
}

.section-header {
  position:    relative;
  margin-bottom: 3rem;
  overflow:    hidden;
  padding-top: 1.5rem;
}

.section-header h2 {
  font-family:   var(--font-display);
  font-size:     clamp(2.5rem, 5vw, 3.5rem);
  letter-spacing: 0.08em;
  color:         var(--white);
}

.section-header__sub {
  font-family: var(--font-serif);
  font-size:   1.1rem;
  color:       var(--grey);
  font-style:  italic;
  margin-top:  0.5rem;
}

.section-header__line {
  display:    block;
  width:      60px;
  height:     3px;
  background: var(--orange);
  margin-top: 1rem;
}

/* Badge */
.badge {
  display:         inline-block;
  font-family:     var(--font-body);
  font-size:       0.65rem;
  font-weight:     500;
  letter-spacing:  0.12em;
  text-transform:  uppercase;
  background:      var(--orange-glow);
  color:           var(--orange-light);
  border:          1px solid rgba(217, 95, 14, 0.3);
  padding:         0.2rem 0.6rem;
  border-radius:   2px;
  white-space:     nowrap;
}
.badge--year {
  background: rgba(255,255,255,0.05);
  color:      var(--grey);
  border-color: rgba(255,255,255,0.1);
}

/* Two-column grid utility */
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.three-col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.four-col { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; }

/* Screen-reader only */
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ── 5. BUTTONS ──────────────────────────────────────────────── */
.btn {
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
  gap:             0.5rem;
  font-family:     var(--font-body);
  font-size:       0.7rem;
  font-weight:     500;
  letter-spacing:  0.22em;
  text-transform:  uppercase;
  padding:         0.75rem 1.75rem;
  border-radius:   var(--radius);
  border:          2px solid transparent;
  transition:      all var(--transition);
  white-space:     nowrap;
  text-decoration: none;
  cursor:          pointer;
  line-height:     1;
}
.btn-primary {
  background: var(--orange);
  color:      var(--white);
  border-color: var(--orange);
}
.btn-primary:hover, .btn-primary:focus-visible {
  background:  var(--orange-light);
  border-color: var(--orange-light);
  outline:     none;
  transform:   translateY(-1px);
}
.btn-outline {
  background:  transparent;
  color:       var(--orange);
  border-color: var(--orange);
}
.btn-outline:hover, .btn-outline:focus-visible {
  background:  var(--orange-glow);
  outline:     none;
  transform:   translateY(-1px);
}
.btn--sm {
  font-size: 0.6rem;
  padding:   0.5rem 1.1rem;
}
.btn--lg {
  font-size: 0.75rem;
  padding:   1rem 2.5rem;
}
.btn--ghost {
  background:  transparent;
  color:       var(--grey);
  border-color: var(--grey2);
}
.btn--ghost:hover { color: var(--white); border-color: var(--white); }

/* ── 6. NAVBAR ───────────────────────────────────────────────── */
.navbar {
  position:         fixed;
  top:              0;
  left:             0;
  right:            0;
  z-index:          1000;
  height:           68px;
  background:       rgba(8, 8, 8, 0.96);
  border-bottom:    1px solid #1a1a1a;
  backdrop-filter:  blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition:       background var(--transition), box-shadow var(--transition);
}
.navbar.scrolled {
  background:   rgba(8, 8, 8, 0.99);
  box-shadow:   0 2px 30px rgba(0,0,0,0.8);
}
.navbar__inner {
  display:        flex;
  align-items:    center;
  justify-content: space-between;
  height:         100%;
}
.navbar__logo {
  font-family:     var(--font-display);
  font-size:       1.6rem;
  letter-spacing:  0.12em;
  color:           var(--white);
  transition:      color var(--transition);
}
.navbar__logo:hover { color: var(--off-white); }
.navbar__logo-dot { color: var(--orange); }

.navbar__list {
  display:      flex;
  align-items:  center;
  gap:          2.5rem;
}
.navbar__link {
  font-family:     var(--font-body);
  font-size:       0.8rem;
  font-weight:     400;
  letter-spacing:  0.1em;
  text-transform:  uppercase;
  color:           var(--grey);
  transition:      color var(--transition);
  position:        relative;
  padding-bottom:  2px;
}
.navbar__link::after {
  content:    '';
  position:   absolute;
  bottom:     -2px;
  left:       0;
  right:      100%;
  height:     1px;
  background: var(--orange);
  transition: right var(--transition);
}
.navbar__link:hover,
.navbar__link:focus-visible { color: var(--white); outline: none; }
.navbar__link:hover::after,
.navbar__link--active::after { right: 0; }
.navbar__link--active { color: var(--orange) !important; }

.navbar__cta {
  font-size:    0.65rem !important;
  padding:      0.5rem 1.25rem !important;
}
.navbar__cta.navbar__link--active {
  color: var(--white) !important;
}

/* Hamburger */
.navbar__hamburger {
  display:        none;
  flex-direction: column;
  gap:            5px;
  padding:        4px;
  background:     transparent;
  border:         none;
  cursor:         pointer;
}
.navbar__hamburger-bar {
  display:          block;
  width:            24px;
  height:           2px;
  background:       var(--white);
  transition:       transform var(--transition), opacity var(--transition);
  transform-origin: center;
}
.navbar__hamburger[aria-expanded="true"] .navbar__hamburger-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.navbar__hamburger[aria-expanded="true"] .navbar__hamburger-bar:nth-child(2) { opacity: 0; }
.navbar__hamburger[aria-expanded="true"] .navbar__hamburger-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile menu */
.navbar__mobile {
  background:   rgba(8, 8, 8, 0.98);
  border-top:   1px solid var(--dark3);
  position:     absolute;
  top:          68px;
  left:         0;
  right:        0;
  padding:      1.5rem var(--container-px);
  display:      none;
}
.navbar__mobile:not([hidden]) { display: block; }
.navbar__mobile-list { display: flex; flex-direction: column; gap: 0; }
.navbar__mobile-link {
  display:       block;
  padding:       0.9rem 0;
  border-bottom: 1px solid var(--dark3);
  font-size:     0.9rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color:         var(--grey);
  transition:    color var(--transition);
}
.navbar__mobile-link:hover,
.navbar__mobile-link.active { color: var(--orange); }

/* ── 7. PAGE HERO (non-homepage) ─────────────────────────────── */
.page-hero {
  background:     var(--dark2);
  border-bottom:  1px solid var(--dark3);
  padding:        8rem 0 4rem;
  position:       relative;
  overflow:       hidden;
}
.page-hero::before {
  content:    '';
  position:   absolute;
  inset:      0;
  background: radial-gradient(ellipse 80% 60% at 50% 100%, rgba(217,95,14,0.07), transparent);
  pointer-events: none;
}
.page-hero__label {
  font-family:  var(--font-display);
  font-size:    clamp(6rem, 15vw, 12rem);
  color:        var(--orange);
  opacity:      0.04;
  position:     absolute;
  bottom:       -1rem;
  right:        -1rem;
  line-height:  1;
  pointer-events: none;
  user-select:  none;
}
.page-hero__content { position: relative; z-index: 1; }
.page-hero h1 {
  font-family:   var(--font-display);
  font-size:     clamp(3rem, 7vw, 5.5rem);
  letter-spacing: 0.06em;
  line-height:   1;
  margin-bottom: 0.75rem;
}
.page-hero__sub {
  font-family:  var(--font-serif);
  font-size:    1.15rem;
  color:        var(--grey);
  font-style:   italic;
}

/* ── 8. HERO SECTION (Homepage) ──────────────────────────────── */
.hero {
  position:       relative;
  min-height:     100vh;
  display:        flex;
  align-items:    center;
  overflow:       hidden;
  background:     var(--black);
  padding-top:    68px;
}
.hero__bg {
  position:   absolute;
  inset:      0;
  background: radial-gradient(ellipse 70% 80% at 30% 50%, rgba(217,95,14,0.12), transparent 60%),
              radial-gradient(ellipse 50% 60% at 80% 30%, rgba(122,52,8,0.08), transparent 50%);
  pointer-events: none;
}
.hero__watermark {
  position:       absolute;
  inset:          0;
  display:        flex;
  align-items:    center;
  justify-content: flex-end;
  padding-right:  2rem;
  pointer-events: none;
  user-select:    none;
  overflow:       hidden;
}
.hero__watermark-text {
  font-family:   var(--font-display);
  font-size:     clamp(6rem, 18vw, 16rem);
  color:         var(--orange);
  opacity:       0.04;
  line-height:   0.85;
  letter-spacing: 0.06em;
  white-space:   nowrap;
  transform:     rotate(-5deg);
}
.hero__accent-line {
  position:   absolute;
  right:      0;
  top:        0;
  bottom:     0;
  width:      4px;
  background: linear-gradient(to bottom, transparent, var(--orange), var(--orange-dim), transparent);
  opacity:    0.6;
}
.hero__inner {
  position:   relative;
  z-index:    2;
  max-width:  700px;
}
.hero__eyebrow {
  font-family:   var(--font-body);
  font-size:     0.7rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color:         var(--orange);
  margin-bottom: 1.5rem;
  display:       flex;
  align-items:   center;
  gap:           1rem;
}
.hero__eyebrow::before {
  content:    '';
  display:    block;
  width:      40px;
  height:     1px;
  background: var(--orange);
}
.hero h1 {
  font-family:   var(--font-serif);
  font-style:    italic;
  font-weight:   600;
  font-size:     clamp(3rem, 7vw, 5.5rem);
  line-height:   1.05;
  color:         var(--white);
  margin-bottom: 1.5rem;
}
.hero h1 em {
  color:       var(--orange-light);
  font-style:  italic;
}
.hero__desc {
  font-family:  var(--font-body);
  font-size:    1.05rem;
  color:        var(--grey);
  max-width:    520px;
  margin-bottom: 2.5rem;
  line-height:  1.8;
}
.hero__actions {
  display:    flex;
  gap:        1rem;
  flex-wrap:  wrap;
}
.hero__scroll-hint {
  position:   absolute;
  bottom:     2rem;
  left:       50%;
  transform:  translateX(-50%);
  font-size:  0.65rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color:      var(--grey2);
  display:    flex;
  flex-direction: column;
  align-items: center;
  gap:        0.5rem;
  animation:  bounce 2s ease-in-out infinite;
}
.hero__scroll-hint svg { animation: bounce 2s ease-in-out infinite; }
@keyframes bounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(6px); }
}
.hero__scroll-hint svg { animation: none; }

/* ── 9. STATS STRIP ──────────────────────────────────────────── */
.stats-strip {
  background:     var(--dark2);
  border-top:     1px solid var(--dark3);
  border-bottom:  1px solid var(--dark3);
  padding:        2.5rem 0;
}
.stats-strip__inner {
  display:         flex;
  align-items:     center;
  justify-content: space-around;
  gap:             2rem;
  flex-wrap:       wrap;
}
.stat-item {
  text-align:  center;
  flex:        1;
  min-width:   140px;
}
.stat-item__number {
  display:       block;
  font-family:   var(--font-display);
  font-size:     clamp(2rem, 5vw, 3rem);
  color:         var(--orange);
  letter-spacing: 0.04em;
  line-height:   1;
}
.stat-item__label {
  display:       block;
  font-size:     0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color:         var(--grey);
  margin-top:    0.4rem;
}
.stats-strip__divider {
  width:      1px;
  height:     40px;
  background: var(--dark3);
}

/* ── 10. FILM CARDS ──────────────────────────────────────────── */
.films-grid {
  display:               grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap:                   1.75rem;
}

.film-card {
  background:    var(--dark2);
  border:        1px solid var(--dark3);
  border-radius: var(--radius-lg);
  overflow:      hidden;
  transition:    transform var(--transition), border-color var(--transition), box-shadow var(--transition);
  display:       flex;
  flex-direction: column;
}
.film-card:hover {
  transform:    translateY(-5px);
  border-color: rgba(217,95,14,0.5);
  box-shadow:   var(--shadow-hover);
}
.film-card__poster-link { display: block; }
.film-card__poster-wrap {
  position:       relative;
  aspect-ratio:   2/3;
  overflow:       hidden;
  background:     var(--dark3);
}
.film-card__poster {
  width:      100%;
  height:     100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}
.film-card:hover .film-card__poster { transform: scale(1.05); }

.film-card__overlay {
  position:   absolute;
  inset:      0;
  background: rgba(8,8,8,0.82);
  display:    flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap:        0.75rem;
  opacity:    0;
  transition: opacity var(--transition);
  padding:    1rem;
}
.film-card:hover .film-card__overlay { opacity: 1; }
.film-card__trailer-btn { pointer-events: auto; }

.film-card__info {
  padding:        1rem 1rem 1.25rem;
  display:        flex;
  flex-direction: column;
  gap:            0.4rem;
  flex:           1;
}
.film-card__title {
  font-family:   var(--font-body);
  font-size:     0.95rem;
  font-weight:   500;
  color:         var(--white);
  margin-top:    0.25rem;
  line-height:   1.3;
}
.film-card__title a:hover { color: var(--orange-light); }

.film-card__actions {
  display:    flex;
  gap:        0.5rem;
  margin-top: 0.5rem;
  flex-wrap:  wrap;
}

/* ── 11. ARTICLE CARDS ───────────────────────────────────────── */
.articles-grid {
  display:               grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap:                   2rem;
}
.article-card {
  background:    var(--dark2);
  border:        1px solid var(--dark3);
  border-radius: var(--radius-lg);
  overflow:      hidden;
  transition:    transform var(--transition), border-color var(--transition), box-shadow var(--transition);
  display:       flex;
  flex-direction: column;
}
.article-card:hover {
  transform:    translateY(-4px);
  border-color: rgba(217,95,14,0.4);
  box-shadow:   var(--shadow-hover);
}
.article-card__img-link { display: block; overflow: hidden; }
.article-card__img {
  width:        100%;
  aspect-ratio: 16/10;
  object-fit:   cover;
  transition:   transform var(--transition-slow);
}
.article-card:hover .article-card__img { transform: scale(1.04); }
.article-card__body { padding: 1.25rem; display: flex; flex-direction: column; gap: 0.5rem; flex: 1; }
.article-card__meta { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }
.article-card__meta time { font-size: 0.75rem; color: var(--grey); }
.article-card__title { font-family: var(--font-body); font-size: 1rem; font-weight: 500; line-height: 1.4; }
.article-card__title a:hover { color: var(--orange-light); }
.article-card__excerpt { font-size: 0.875rem; color: var(--grey); line-height: 1.65; }
.article-card__read-more { font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--orange); margin-top: auto; padding-top: 0.75rem; }
.article-card__read-more:hover { color: var(--orange-light); }

/* ── 12. FEATURED SECTION (homepage) ─────────────────────────── */
.featured-films { padding: var(--section-pad); position: relative; }
.featured-films .section-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 2.5rem; }
.featured-films .section-header h2 { margin-bottom: 0; }

/* ── 13. MISSION TEASER ──────────────────────────────────────── */
.mission-teaser {
  padding:    var(--section-pad);
  background: var(--dark2);
  border-top: 1px solid var(--dark3);
  border-bottom: 1px solid var(--dark3);
  position:   relative;
  overflow:   hidden;
}
.mission-teaser::before {
  content:    '';
  position:   absolute;
  inset:      0;
  background: radial-gradient(ellipse 60% 80% at 100% 50%, rgba(217,95,14,0.06), transparent);
  pointer-events: none;
}
.mission-teaser__text { position: relative; z-index: 1; }
.mission-teaser__text h2 {
  font-family:  var(--font-display);
  font-size:    clamp(2rem, 4vw, 3rem);
  letter-spacing: 0.06em;
  margin-bottom: 1.5rem;
}
.mission-teaser__text p {
  font-size:    1.05rem;
  color:        var(--grey);
  line-height:  1.9;
  max-width:    540px;
}
.mission-teaser__visual {
  position:   relative;
  display:    flex;
  align-items: center;
  justify-content: center;
}
.mission-teaser__big-text {
  font-family:   var(--font-display);
  font-size:     clamp(4rem, 12vw, 9rem);
  color:         var(--orange);
  opacity:       0.06;
  line-height:   0.9;
  letter-spacing: 0.04em;
  text-align:    center;
  position:      absolute;
}
.mission-teaser__stat {
  text-align:  center;
  padding:     2rem;
  position:    relative;
  z-index:     1;
}
.mission-teaser__stat-num {
  font-family:  var(--font-display);
  font-size:    clamp(3rem, 8vw, 5rem);
  color:        var(--orange);
  display:      block;
  line-height:  1;
}
.mission-teaser__stat-label {
  font-size:    0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color:        var(--grey);
  margin-top:   0.5rem;
}

/* ── 14. FILTER BAR (Films page) ─────────────────────────────── */
.filter-bar {
  background:   var(--dark2);
  border:       1px solid var(--dark3);
  border-radius: var(--radius-lg);
  padding:      1.25rem 1.5rem;
  margin-bottom: 2.5rem;
  display:      flex;
  gap:          1rem;
  flex-wrap:    wrap;
  align-items:  flex-end;
}
.filter-bar__group {
  display:        flex;
  flex-direction: column;
  gap:            0.4rem;
  flex:           1;
  min-width:      160px;
}
.filter-bar__label {
  font-size:     0.65rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color:         var(--grey);
}
.filter-bar select,
.filter-bar input {
  background:   var(--dark3);
  border:       1px solid var(--grey2);
  border-radius: var(--radius);
  color:        var(--white);
  padding:      0.55rem 0.85rem;
  font-size:    0.85rem;
  width:        100%;
  transition:   border-color var(--transition);
  appearance:   none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23888' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  padding-right: 2rem;
}
.filter-bar select:focus,
.filter-bar input:focus {
  border-color: var(--orange);
  outline:      none;
}
.filter-bar__reset {
  align-self:  flex-end;
  margin-left: auto;
}

/* ── 15. FILM DETAIL PAGE ────────────────────────────────────── */
.film-detail { padding-top: 68px; }
.film-banner {
  width:          100%;
  height:         clamp(300px, 50vw, 520px);
  object-fit:     cover;
  object-position: center top;
  display:        block;
}
.film-banner-wrap {
  position:   relative;
  overflow:   hidden;
  background: var(--dark3);
}
.film-banner-wrap::after {
  content:    '';
  position:   absolute;
  bottom:     0;
  left:       0;
  right:      0;
  height:     60%;
  background: linear-gradient(to bottom, transparent, var(--black));
  pointer-events: none;
}
.film-detail__header {
  position:      relative;
  z-index:       2;
  margin-top:    -6rem;
  padding:       0 0 3rem;
}
.film-detail__poster-row {
  display:    flex;
  gap:        2.5rem;
  align-items: flex-end;
}
.film-detail__poster-img {
  width:         200px;
  flex-shrink:   0;
  border-radius: var(--radius-lg);
  border:        3px solid var(--dark3);
  box-shadow:    var(--shadow-card);
}
.film-detail__meta { flex: 1; padding-bottom: 0.5rem; }
.film-detail__meta h1 {
  font-family:   var(--font-display);
  font-size:     clamp(2.5rem, 6vw, 4.5rem);
  letter-spacing: 0.06em;
  line-height:   1;
  margin-bottom: 0.5rem;
}
.film-detail__tagline {
  font-family:  var(--font-serif);
  font-style:   italic;
  font-size:    1.2rem;
  color:        var(--grey);
  margin-bottom: 1rem;
}
.film-detail__tags { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1.25rem; }
.film-detail__attrs { display: flex; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.film-detail__attr { font-size: 0.8rem; color: var(--grey); }
.film-detail__attr strong { color: var(--off-white); font-weight: 500; display: block; font-size: 0.65rem; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 0.15rem; }

.film-detail__body { display: grid; grid-template-columns: 1fr 340px; gap: 3rem; padding: 3rem 0; }
.film-detail__synopsis h2, .film-detail__cast h2, .film-detail__awards h2 {
  font-family:   var(--font-display);
  font-size:     1.5rem;
  letter-spacing: 0.08em;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom:  1px solid var(--dark3);
}
.film-detail__synopsis p { color: var(--grey); line-height: 1.9; }
.film-detail__trailer-wrap { margin: 2.5rem 0; }
.film-detail__trailer-wrap h2 {
  font-family:   var(--font-display);
  font-size:     1.5rem;
  letter-spacing: 0.08em;
  margin-bottom: 1rem;
}
.film-detail__iframe-container {
  position:       relative;
  padding-bottom: 56.25%;
  height:         0;
  overflow:       hidden;
  border-radius:  var(--radius-lg);
  background:     var(--dark3);
}
.film-detail__iframe-container iframe {
  position:  absolute;
  inset:     0;
  width:     100%;
  height:    100%;
  border:    0;
}
.film-detail__sidebar > * + * { margin-top: 2rem; }
.film-detail__sidebar-box {
  background:    var(--dark2);
  border:        1px solid var(--dark3);
  border-radius: var(--radius-lg);
  padding:       1.5rem;
}
.film-detail__sidebar-box h3 {
  font-family:   var(--font-display);
  font-size:     1.1rem;
  letter-spacing: 0.1em;
  margin-bottom: 1rem;
  color:         var(--orange);
}
.film-detail__cast-list { font-size: 0.85rem; color: var(--grey); line-height: 2; }
.film-detail__awards-list li {
  font-size:     0.85rem;
  color:         var(--grey);
  padding:       0.4rem 0;
  border-bottom: 1px solid var(--dark3);
  display:       flex;
  gap:           0.5rem;
  align-items:   flex-start;
}
.film-detail__awards-list li::before { content: '★'; color: var(--orange); flex-shrink: 0; }

.film-detail__cta {
  background:    var(--dark2);
  border:        1px solid rgba(217,95,14,0.25);
  border-radius: var(--radius-lg);
  padding:       2.5rem;
  text-align:    center;
  margin:        2rem 0 3rem;
}
.film-detail__cta h2 { font-size: 1.8rem; margin-bottom: 0.5rem; }
.film-detail__cta p { color: var(--grey); margin-bottom: 1.5rem; }
.film-detail__cta-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* ── 16. ARTICLE / BLOG ──────────────────────────────────────── */
.article-header { padding: 8rem 0 3rem; background: var(--dark2); border-bottom: 1px solid var(--dark3); }
.article-header__meta { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; margin-bottom: 1.25rem; }
.article-header__author { font-size: 0.8rem; color: var(--grey); }
.article-header h1 {
  font-family:   var(--font-display);
  font-size:     clamp(2rem, 5vw, 3.5rem);
  letter-spacing: 0.04em;
  line-height:   1.1;
  max-width:     820px;
  margin-bottom: 0;
}
.article-featured-img {
  width:         100%;
  max-height:    520px;
  object-fit:    cover;
  border-radius: var(--radius-lg);
  margin-bottom: 2.5rem;
}
.article-body {
  display:               grid;
  grid-template-columns: 1fr 280px;
  gap:                   3rem;
  padding:               3rem 0 5rem;
  align-items:           start;
}
.article-content {
  font-size:   1rem;
  line-height: 1.9;
  color:       var(--off-white);
}
.article-content h2 { font-family: var(--font-display); font-size: 1.8rem; letter-spacing: 0.06em; margin: 2rem 0 1rem; }
.article-content h3 { font-family: var(--font-display); font-size: 1.4rem; letter-spacing: 0.06em; margin: 1.5rem 0 0.75rem; }
.article-content p  { margin-bottom: 1.25rem; color: var(--grey); }
.article-content a  { color: var(--orange-light); text-decoration: underline; }
.article-content a:hover { color: var(--orange); }
.article-content ul, .article-content ol { margin: 1rem 0 1rem 1.5rem; color: var(--grey); }
.article-content li { margin-bottom: 0.4rem; }
.article-content blockquote {
  border-left: 3px solid var(--orange);
  padding:     1rem 1.5rem;
  margin:      1.5rem 0;
  background:  var(--dark2);
  border-radius: 0 var(--radius) var(--radius) 0;
  font-family: var(--font-serif);
  font-style:  italic;
  color:       var(--off-white);
  font-size:   1.1rem;
}

.article-sidebar { position: sticky; top: 88px; }
.article-share {
  background:    var(--dark2);
  border:        1px solid var(--dark3);
  border-radius: var(--radius-lg);
  padding:       1.25rem;
  margin-bottom: 1.5rem;
}
.article-share h3 { font-family: var(--font-display); font-size: 1rem; letter-spacing: 0.1em; margin-bottom: 0.75rem; }
.article-share__links { display: flex; flex-direction: column; gap: 0.5rem; }
.article-share__link {
  display:      flex;
  align-items:  center;
  gap:          0.5rem;
  font-size:    0.8rem;
  color:        var(--grey);
  padding:      0.5rem 0.75rem;
  border-radius: var(--radius);
  background:   var(--dark3);
  transition:   background var(--transition), color var(--transition);
}
.article-share__link:hover { background: var(--orange-glow); color: var(--orange-light); }

/* ── 17. ABOUT PAGE ──────────────────────────────────────────── */
.about-story { padding: var(--section-pad); }
.about-team  { padding: var(--section-pad); background: var(--dark2); border-top: 1px solid var(--dark3); }
.about-reach { padding: var(--section-pad); }

.team-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 2rem; margin-top: 2rem; }
.team-card {
  text-align:    center;
  background:    var(--dark2);
  border:        1px solid var(--dark3);
  border-radius: var(--radius-lg);
  padding:       2rem 1.5rem;
  transition:    border-color var(--transition);
}
.team-card:hover { border-color: rgba(217,95,14,0.4); }
.team-card__avatar {
  width:         80px;
  height:        80px;
  border-radius: 50%;
  object-fit:    cover;
  margin:        0 auto 1rem;
  border:        2px solid var(--dark3);
}
.team-card__name { font-family: var(--font-body); font-size: 0.95rem; font-weight: 500; }
.team-card__role { font-size: 0.75rem; color: var(--orange); letter-spacing: 0.1em; text-transform: uppercase; margin-top: 0.25rem; }
.team-card__bio  { font-size: 0.82rem; color: var(--grey); margin-top: 0.75rem; line-height: 1.6; }

.reach-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 1.5rem; margin-top: 2rem; }
.reach-stat {
  background:    var(--dark2);
  border:        1px solid var(--dark3);
  border-radius: var(--radius-lg);
  padding:       1.75rem 1.5rem;
  border-left:   3px solid var(--orange);
}
.reach-stat__number { font-family: var(--font-display); font-size: 2.5rem; color: var(--orange); }
.reach-stat__label  { font-size: 0.8rem; color: var(--grey); letter-spacing: 0.1em; text-transform: uppercase; margin-top: 0.25rem; }

/* ── 18. CONTACT PAGE ────────────────────────────────────────── */
.contact-section { padding: var(--section-pad); }
.contact-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 4rem; align-items: start; }
.contact-info h2 { font-family: var(--font-display); font-size: 2rem; letter-spacing: 0.06em; margin-bottom: 1rem; }
.contact-info p  { color: var(--grey); line-height: 1.9; }
.contact-info__items { margin-top: 2rem; display: flex; flex-direction: column; gap: 1.25rem; }
.contact-info__item {
  display:    flex;
  gap:        1rem;
  align-items: flex-start;
}
.contact-info__icon {
  width:          40px;
  height:         40px;
  background:     var(--orange-glow);
  border:         1px solid rgba(217,95,14,0.25);
  border-radius:  var(--radius);
  display:        flex;
  align-items:    center;
  justify-content: center;
  flex-shrink:    0;
  color:          var(--orange);
}
.contact-info__label { font-size: 0.65rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--grey); display: block; margin-bottom: 0.15rem; }
.contact-info__value { font-size: 0.9rem; color: var(--off-white); }
.contact-info__value a:hover { color: var(--orange-light); }

/* Contact Form */
.contact-form {
  background:    var(--dark2);
  border:        1px solid var(--dark3);
  border-radius: var(--radius-lg);
  padding:       2.5rem;
}
.form-group { margin-bottom: 1.25rem; }
.form-label {
  display:       block;
  font-size:     0.65rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color:         var(--grey);
  margin-bottom: 0.4rem;
}
.form-control {
  width:         100%;
  background:    var(--dark3);
  border:        1px solid var(--grey2);
  border-radius: var(--radius);
  color:         var(--white);
  padding:       0.75rem 1rem;
  font-size:     0.9rem;
  transition:    border-color var(--transition);
  display:       block;
}
.form-control:focus { border-color: var(--orange); outline: none; }
.form-control::placeholder { color: var(--grey2); }
textarea.form-control { resize: vertical; min-height: 140px; }
select.form-control { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23888' d='M1 1l5 5 5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.5rem; }
.form-note { font-size: 0.75rem; color: var(--grey); margin-top: 0.3rem; }
.form-submit { margin-top: 1.5rem; }

/* ── 19. VIDEO MODAL ─────────────────────────────────────────── */
.video-modal {
  position:        fixed;
  inset:           0;
  z-index:         9999;
  display:         flex;
  align-items:     center;
  justify-content: center;
  padding:         1.5rem;
  opacity:         0;
  pointer-events:  none;
  transition:      opacity var(--transition);
}
.video-modal:not([hidden]) { opacity: 1; pointer-events: auto; }
.video-modal__overlay {
  position:   absolute;
  inset:      0;
  background: rgba(0,0,0,0.92);
  backdrop-filter: blur(4px);
}
.video-modal__container {
  position:      relative;
  z-index:       1;
  width:         100%;
  max-width:     900px;
  background:    var(--dark2);
  border:        1px solid var(--dark3);
  border-radius: var(--radius-lg);
  overflow:      hidden;
  transform:     scale(0.95);
  transition:    transform var(--transition);
}
.video-modal:not([hidden]) .video-modal__container { transform: scale(1); }
.video-modal__header {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  padding:         1rem 1.25rem;
  border-bottom:   1px solid var(--dark3);
}
.video-modal__title { font-family: var(--font-display); font-size: 1.1rem; letter-spacing: 0.08em; }
.video-modal__close {
  width:          36px;
  height:         36px;
  display:        flex;
  align-items:    center;
  justify-content: center;
  background:     var(--dark3);
  border-radius:  50%;
  font-size:      1.25rem;
  color:          var(--grey);
  transition:     background var(--transition), color var(--transition);
  line-height:    1;
}
.video-modal__close:hover { background: var(--orange); color: var(--white); }
.video-modal__iframe-wrap {
  position:       relative;
  padding-bottom: 56.25%;
  height:         0;
}
.video-modal__iframe-wrap iframe {
  position: absolute;
  inset:    0;
  width:    100%;
  height:   100%;
  border:   0;
}

/* ── 20. WHATSAPP FAB ────────────────────────────────────────── */
.whatsapp-fab {
  position:       fixed;
  bottom:         1.75rem;
  right:          1.75rem;
  z-index:        998;
  width:          56px;
  height:         56px;
  background:     #25D366;
  border-radius:  50%;
  display:        flex;
  align-items:    center;
  justify-content: center;
  box-shadow:     0 4px 20px rgba(37, 211, 102, 0.35);
  transition:     transform var(--transition), box-shadow var(--transition);
  color:          var(--white);
}
.whatsapp-fab:hover {
  transform:  translateY(-3px) scale(1.05);
  box-shadow: 0 8px 28px rgba(37, 211, 102, 0.5);
}

/* ── 21. FOOTER ──────────────────────────────────────────────── */
.footer {
  background:     var(--dark2);
  border-top:     1px solid var(--dark3);
  padding-top:    4rem;
  margin-top:     auto;
}
.footer__inner {
  display:               grid;
  grid-template-columns: 1.5fr 1fr 1.2fr;
  gap:                   3rem;
  padding-bottom:        3rem;
  border-bottom:         1px solid var(--dark3);
}
.footer__logo {
  font-family:   var(--font-display);
  font-size:     1.5rem;
  letter-spacing: 0.12em;
  color:         var(--white);
  display:       inline-block;
  margin-bottom: 0.75rem;
}
.footer__logo-dot { color: var(--orange); }
.footer__tagline { font-family: var(--font-serif); font-style: italic; color: var(--grey); font-size: 0.9rem; line-height: 1.6; max-width: 280px; margin-bottom: 1.25rem; }
.footer__social { display: flex; gap: 0.75rem; }
.footer__social-link { color: var(--grey); transition: color var(--transition); padding: 4px; }
.footer__social-link:hover { color: var(--orange); }

.footer__col-title { font-family: var(--font-display); font-size: 0.9rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--orange); margin-bottom: 1rem; }
.footer__list { display: flex; flex-direction: column; gap: 0.5rem; }
.footer__link { font-size: 0.85rem; color: var(--grey); display: flex; align-items: center; gap: 0.4rem; transition: color var(--transition); }
.footer__link:hover { color: var(--off-white); }
.footer__whatsapp:hover { color: #25D366; }
.footer__location { font-size: 0.85rem; color: var(--grey); display: flex; align-items: center; gap: 0.4rem; }

.footer__bottom { padding: 1.25rem 0; }
.footer__bottom-inner { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.footer__copyright { font-size: 0.75rem; color: var(--grey2); }
.footer__domain    { font-size: 0.75rem; color: var(--grey2); font-family: var(--font-display); letter-spacing: 0.1em; }

/* ── 22. FLASH MESSAGES ──────────────────────────────────────── */
@keyframes flash-in {
  from { opacity: 0; transform: translateX(-50%) translateY(-12px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}
@keyframes flash-in-inline {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.flash {
  position:      fixed;
  top:           80px; /* just below the 68px navbar */
  left:          50%;
  transform:     translateX(-50%);
  z-index:       1100;
  display:       flex;
  align-items:   center;
  justify-content: space-between;
  gap:           1rem;
  padding:       1rem 1.25rem;
  border-radius: var(--radius);
  border:        1px solid;
  width:         min(92vw, 540px);
  box-shadow:    0 8px 32px rgba(0,0,0,0.5);
  animation:     flash-in 0.25s ease forwards;
}
.flash--inline {
  position:      static;
  transform:     none;
  width:         100%;
  margin-bottom: 1.5rem;
  box-shadow:    none;
  animation:     flash-in-inline 0.25s ease forwards;
}
.flash--success { background: rgba(20,40,20,0.97); border-color: rgba(34,197,94,0.4); color: #86efac; }
.flash--error   { background: rgba(40,15,15,0.97); border-color: rgba(239,68,68,0.4);  color: #fca5a5; }
.flash--warning { background: rgba(40,30,10,0.97); border-color: rgba(245,158,11,0.4); color: #fcd34d; }
.flash--info    { background: rgba(15,25,45,0.97); border-color: rgba(59,130,246,0.4);  color: #93c5fd; }
.flash__close   { font-size: 1.25rem; color: inherit; opacity: 0.7; flex-shrink: 0; }
.flash__close:hover { opacity: 1; }

/* ── 23. PAGINATION ──────────────────────────────────────────── */
.pagination { margin-top: 3rem; }
.pagination__list { display: flex; justify-content: center; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
.pagination__btn {
  display:       flex;
  align-items:   center;
  justify-content: center;
  min-width:     36px;
  height:        36px;
  padding:       0 0.5rem;
  border:        1px solid var(--dark3);
  border-radius: var(--radius);
  font-size:     0.8rem;
  color:         var(--grey);
  background:    var(--dark2);
  transition:    all var(--transition);
}
.pagination__btn:hover { border-color: var(--orange); color: var(--orange); }
.pagination__btn--active { background: var(--orange); border-color: var(--orange); color: var(--white); }
.pagination__ellipsis { color: var(--grey2); padding: 0 0.25rem; }

/* ── 24. RELATED FILMS ───────────────────────────────────────── */
.related-films { padding: 3rem 0 5rem; border-top: 1px solid var(--dark3); }
.related-films h2 { font-family: var(--font-display); font-size: 1.6rem; letter-spacing: 0.08em; margin-bottom: 1.5rem; }

/* ── 25. NO RESULTS ──────────────────────────────────────────── */
.no-results {
  text-align:  center;
  padding:     5rem 1rem;
  color:       var(--grey);
}
.no-results__icon { font-size: 3rem; opacity: 0.3; margin-bottom: 1rem; }
.no-results h2 { font-family: var(--font-display); font-size: 1.5rem; letter-spacing: 0.1em; margin-bottom: 0.5rem; color: var(--grey); }

/* ── 26. RESPONSIVE ──────────────────────────────────────────── */
@media (max-width: 1024px) {
  .two-col  { grid-template-columns: 1fr; gap: 2.5rem; }
  .three-col { grid-template-columns: repeat(2, 1fr); }
  .film-detail__body { grid-template-columns: 1fr; }
  .film-detail__sidebar { position: static; }
  .article-body { grid-template-columns: 1fr; }
  .article-sidebar { position: static; }
  .contact-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .footer__inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  :root { --section-pad: 4.5rem 0; }
  .navbar__nav  { display: none; }
  .navbar__hamburger { display: flex; }
  .three-col { grid-template-columns: 1fr; }
  .four-col  { grid-template-columns: repeat(2, 1fr); }
  .stats-strip__inner { gap: 1.5rem; }
  .stats-strip__divider { display: none; }
  .hero h1 { font-size: clamp(2.5rem, 8vw, 3.5rem); }
  .film-detail__poster-row { flex-direction: column; }
  .film-detail__poster-img { width: 140px; }
  .films-grid { grid-template-columns: repeat(2, 1fr); }
  .filter-bar { flex-direction: column; }
  .footer__inner { grid-template-columns: 1fr; gap: 2rem; }
  .contact-form { padding: 1.5rem; }
}

@media (max-width: 480px) {
  .films-grid { grid-template-columns: 1fr 1fr; gap: 1rem; }
  .articles-grid { grid-template-columns: 1fr; }
  .hero__actions { flex-direction: column; }
  .film-detail__cta-actions { flex-direction: column; align-items: stretch; }
  .footer__bottom-inner { flex-direction: column; text-align: center; }
}

/* ── 27. FOCUS STYLES (accessibility) ───────────────────────── */
:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }
