/* ============================================================
   CINEMA FOR ALL — MINIMAL theme
   Editorial, airy, type-led. One restrained accent.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Schibsted+Grotesk:ital,wght@0,400..800;1,400..600&family=Newsreader:ital,opsz,wght@0,6..72,300..600;1,6..72,300..600&display=swap');

:root{
  --paper:#F3F1EB;        /* warm off-white */
  --paper-2:#ECE9E1;      /* lifted panel */
  --ink:#18181B;          /* near-black */
  --ink-2:#3A3A3D;
  --ink-soft:#76746E;     /* muted */
  --line:rgba(24,24,27,0.12);
  --line-2:rgba(24,24,27,0.07);
  --accent:#D8402E;       /* cinema red */
  --accent-deep:#B83322;

  --sans:'Schibsted Grotesk', system-ui, sans-serif;
  --serif:'Newsreader', Georgia, serif;

  --maxw:1180px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:18px; line-height:1.6; font-weight:400;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--accent); color:var(--paper); }

.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 36px; }
.wrap--wide{ max-width:1340px; }
.section{ padding:130px 0; }
.section--sm{ padding:88px 0; }
hr.rule{ border:0; height:1px; background:var(--line); margin:0; }

/* ---------- type ---------- */
.kicker{ font-family:var(--sans); font-weight:600; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); display:inline-flex; align-items:center; gap:10px; }
.kicker::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--accent); }
.kicker--plain::before{ display:none; }

h1,h2,h3{ font-family:var(--sans); font-weight:700; margin:0; letter-spacing:-.03em; line-height:1.02; }
.display{ font-size:clamp(46px,8vw,110px); font-weight:800; letter-spacing:-.045em; line-height:.94; }
.h1{ font-size:clamp(40px,5.6vw,82px); font-weight:800; letter-spacing:-.04em; line-height:.98; }
.h2{ font-size:clamp(30px,4vw,58px); font-weight:700; letter-spacing:-.035em; line-height:1.02; }
.h3{ font-size:clamp(22px,2.2vw,30px); font-weight:600; letter-spacing:-.02em; }
.serif-it{ font-family:var(--serif); font-style:italic; font-weight:400; letter-spacing:-.01em; }
.accent{ color:var(--accent); }
.lead{ font-size:clamp(19px,1.7vw,24px); line-height:1.5; color:var(--ink-2); max-width:56ch; font-weight:400; }
.muted{ color:var(--ink-soft); }
.small{ font-size:15px; }
.tnum{ font-variant-numeric:tabular-nums; }

/* ---------- buttons ---------- */
.btn{ font-family:var(--sans); font-weight:600; font-size:16px; display:inline-flex; align-items:center; gap:.55em;
  padding:15px 26px; border-radius:100px; background:var(--ink); color:var(--paper); border:1px solid var(--ink);
  cursor:pointer; transition:background .3s var(--ease), color .3s, border-color .3s, transform .3s var(--ease); }
.btn:hover{ background:var(--accent); border-color:var(--accent); transform:translateY(-2px); }
.btn .arr{ transition:transform .3s var(--ease); }
.btn:hover .arr{ transform:translateX(4px); }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn--ghost:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); transform:translateY(-2px); }
.tlink{ font-weight:600; display:inline-flex; align-items:center; gap:.5em; padding-bottom:3px; border-bottom:1.5px solid var(--ink); transition:gap .3s var(--ease), border-color .3s, color .3s; }
.tlink:hover{ gap:.85em; color:var(--accent); border-color:var(--accent); }

/* ---------- nav ---------- */
.nav{ position:fixed; inset:0 0 auto 0; z-index:200; display:flex; align-items:center; justify-content:space-between;
  padding:24px 36px; transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s; }
.nav.scrolled{ background:rgba(243,241,235,.86); backdrop-filter:blur(12px); padding:14px 36px; box-shadow:0 1px 0 var(--line); }
.brand{ display:inline-flex; align-items:baseline; gap:9px; font-weight:700; font-size:20px; letter-spacing:-.02em; }
.brand i{ width:9px; height:9px; border-radius:50%; background:var(--accent); display:inline-block; position:relative; top:-1px; }
.nav__links{ display:flex; gap:30px; align-items:center; }
.nav__links a{ font-size:15.5px; font-weight:500; color:var(--ink-2); position:relative; padding:4px 0; }
.nav__links a::after{ content:""; position:absolute; left:0; bottom:0; height:1.5px; width:0; background:var(--accent); transition:width .3s var(--ease); }
.nav__links a:hover::after, .nav__links a.active::after{ width:100%; }
.nav__links a.active{ color:var(--ink); }
.nav__cta{ display:flex; align-items:center; gap:14px; }
.nav__burger{ display:none; background:none; border:0; cursor:pointer; flex-direction:column; gap:5px; padding:8px; }
.nav__burger span{ width:24px; height:2px; background:var(--ink); display:block; transition:.3s; }

/* ---------- image slots (minimal) ---------- */
image-slot{ --is-bg:var(--paper-2); --is-fg:var(--ink-soft);
  background:var(--paper-2); box-shadow:inset 0 0 0 1px var(--line-2);
  font-family:var(--sans); }
.media{ position:relative; overflow:hidden; }
.media image-slot{ width:100%; height:100%; }
.cap{ font-size:13px; color:var(--ink-soft); margin-top:14px; display:flex; gap:10px; align-items:center; }
.cap::before{ content:""; width:18px; height:1px; background:var(--ink-soft); }

/* ---------- reveal ---------- */
[data-reveal]{ opacity:0; transform:translateY(24px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
[data-reveal].in{ opacity:1; transform:none; }
[data-reveal-delay="1"]{ transition-delay:.08s; }
[data-reveal-delay="2"]{ transition-delay:.16s; }
[data-reveal-delay="3"]{ transition-delay:.24s; }
[data-reveal-delay="4"]{ transition-delay:.32s; }
.mask-line{ overflow:hidden; display:block; }
.mask-line > *{ display:block; transform:translateY(110%); transition:transform 1s var(--ease); }
.mask-line.in > *{ transform:none; }
.mask-line[data-d="1"] > *{ transition-delay:.08s; }
.mask-line[data-d="2"] > *{ transition-delay:.16s; }

/* ---------- footer ---------- */
.foot{ border-top:1px solid var(--line); padding:80px 0 40px; }
.foot__top{ display:grid; grid-template-columns:1.7fr 1fr 1fr 1.4fr; gap:44px; }
.foot h4{ font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); margin:0 0 16px; }
.foot a.fl{ display:block; color:var(--ink-2); font-size:15px; padding:5px 0; transition:color .2s; }
.foot a.fl:hover{ color:var(--accent); }
.foot__bottom{ display:flex; justify-content:space-between; align-items:center; margin-top:60px; padding-top:26px; border-top:1px solid var(--line); flex-wrap:wrap; gap:16px; }
.foot__bottom small{ font-size:13px; color:var(--ink-soft); }

@media (max-width:920px){
  body{ font-size:17px; }
  .section{ padding:84px 0; }
  .nav__links{ position:fixed; inset:0 0 0 auto; width:78%; max-width:340px; background:var(--paper); flex-direction:column; align-items:flex-start; justify-content:center; padding:40px; gap:22px; transform:translateX(100%); transition:transform .4s var(--ease); z-index:210; box-shadow:-20px 0 60px rgba(0,0,0,.1); }
  .nav__links.open{ transform:none; }
  .nav__links a{ font-size:24px; font-weight:600; }
  .nav__burger{ display:flex; z-index:220; }
  .nav__cta .btn:not(.nav__burger){ display:none; }
  .foot__top{ grid-template-columns:1fr 1fr; gap:32px; }
}
