/* ============================================================
   TRIBECA LISBOA — PRE-LAUNCH LANDING (standalone)
   Reuses responsive.css (.r-wrap/.r-band/tokens) + about.css
   (.ab-* editorial beats). Only adds landing-specific chrome:
   nav-less header, date hero, keyword impact, single news block,
   slimmed footer. Does NOT touch any shared component.
   ============================================================ */
.lp{ background:#000; color:#fff; font-family:var(--font-text); -webkit-font-smoothing:antialiased; }
.lp img, .lp video{ display:block; }

/* ---------- HEADER (no primary nav) ---------- */
.lp-hdr{ position:sticky; top:0; z-index:60; background:#000; border-bottom:1px solid var(--line-dark); }
.lp-hdr-inner{ height:82px; display:flex; align-items:center; justify-content:space-between;
  padding:0 var(--gut); max-width:var(--maxw); margin:0 auto; }
.lp-hdr-logo{ display:block; }
.lp-hdr-actions{ display:flex; align-items:center; gap:18px; }
.lp-hdr-ig{ color:#fff; display:flex; align-items:center; transition:color .15s; }
.lp-hdr-ig:hover{ color:var(--pink); }
.lp-lang{ display:flex; align-items:center; gap:7px; font-family:var(--font-text); font-weight:700; font-size:13px; letter-spacing:.04em; }
.lp-lang button{ background:none; border:none; padding:0; cursor:pointer; color:var(--fg-3); font:inherit; transition:color .15s; }
.lp-lang button.active{ color:#fff; }
.lp-lang button:hover{ color:var(--pink); }
.lp-lang .sep{ color:var(--fg-3); }

/* ---------- HERO (uses homepage .r-hero; sub needs leading for 2 lines) ---------- */
.lp-hero-sub{ line-height:1.28; max-width:34ch; }

/* ---------- HERO CTA chip → Tribeca Open Air (frosted dark glass, upright) ---------- */
.oa-chip{ align-self:flex-start; display:inline-flex; flex-direction:column; gap:9px;
  text-decoration:none; color:#fff; padding:18px 24px;
  background:rgba(8,8,12,.42); border:1px solid rgba(255,255,255,.22); border-radius:16px;
  -webkit-backdrop-filter:blur(11px) saturate(1.1); backdrop-filter:blur(11px) saturate(1.1);
  box-shadow:0 8px 24px rgba(0,0,0,.28);
  transition:transform .2s cubic-bezier(.16,1,.3,1), background .2s, border-color .2s; }
.oa-chip:hover{ transform:translateY(-2px); background:rgba(4,4,7,.58); border-color:rgba(255,255,255,.3); }
.oa-chip:focus-visible{ outline:2px solid var(--pink); outline-offset:3px; }
/* kicker echoes the Open Air section eyebrow; light pink so it never fights the title */
.oa-chip-kicker{ font-family:var(--font-text); font-weight:700; text-transform:uppercase;
  font-size:clamp(9px,1vw,11px); letter-spacing:.2em; line-height:1;
  color:color-mix(in srgb, var(--pink) 72%, #fff); }
.oa-chip-l1{ display:flex; align-items:center; gap:12px; white-space:nowrap; }
.oa-chip-title{ font-family:var(--font-display); font-weight:800; text-transform:uppercase;
  font-size:clamp(26px,3vw,38px); line-height:.94; letter-spacing:-.005em; white-space:nowrap; }
.oa-chip-arrow{ color:var(--pink); font-size:clamp(24px,2.8vw,34px); line-height:1; font-weight:700; }
.oa-chip-l2{ display:inline-flex; align-items:center; gap:12px; font-family:var(--font-text);
  font-weight:700; font-size:clamp(15px,1.6vw,19px); letter-spacing:.02em; color:rgba(255,255,255,.82); }
.oa-chip-toyota{ display:inline-flex; align-items:center; }
.oa-chip-toyota img{ height:20px; width:auto; display:block; filter:brightness(0) invert(1); }
@media (min-width:768px){ .oa-chip{ padding:22px 30px; gap:11px; } .oa-chip-toyota img{ height:24px; } }
@media (max-width:400px){ .oa-chip{ padding:15px 19px; gap:8px; } .oa-chip-toyota img{ height:17px; } }
@media (prefers-reduced-motion:reduce){ .oa-chip{ transition:none; } .oa-chip:hover{ transform:none; } }

/* ---------- SECTION 00 — About hub (sub-headline disciplines) ---------- */
.lp-disc{ margin:18px 0 0; display:flex; flex-wrap:wrap; gap:10px 14px; }
.lp-disc span{ font-family:var(--font-display); font-weight:800; text-transform:uppercase;
  font-size:clamp(20px,2.6vw,32px); line-height:1; letter-spacing:-.01em; color:#fff; }
.lp-disc .dot{ color:var(--fg-3); }

/* ---------- SECTION 03 — Impact keywords (visual-led) ---------- */
.lp-keys{ margin-top:8px; border-top:1px solid var(--line-dark); }
.lp-key{ display:flex; align-items:baseline; gap:20px; padding:18px 0; border-bottom:1px solid var(--line-dark);
  text-transform:uppercase; transition:padding-left .25s ease, color .25s ease; }
.lp-key:hover{ padding-left:14px; }
.lp-key .num{ font-family:var(--font-text); font-weight:700; font-size:13px; letter-spacing:.1em; color:var(--fg-3); min-width:38px; }
.lp-key .word{ font-family:var(--font-display); font-weight:900; letter-spacing:-.01em; line-height:.92;
  font-size:clamp(44px,9vw,116px); }
.lp-key:nth-child(1) .word{ color:#fff; }
.lp-key:nth-child(2) .word{ color:var(--pink); }
.lp-key:nth-child(3) .word{ color:var(--light-blue); }
.lp-key:nth-child(4) .word{ color:var(--vibes-hl, #ACD03A); }
.lp-key:nth-child(5) .word{ color:var(--yellow); }
.lp-impact-media{ width:100%; aspect-ratio:21/9; overflow:hidden; background:#222; margin-top:44px; }
.lp-impact-media img{ width:100%; height:100%; object-fit:cover; }

/* ---------- FROM THE FEED (clickable square tiles) ---------- */
.lp-feed-grid{ grid-template-columns:1fr 1fr; }
@media (min-width:680px){ .lp-feed-grid{ grid-template-columns:repeat(5,1fr); } }
.lp-feed-cell{ display:block; cursor:pointer; position:relative; }
.lp-feed-cell img{ transition:transform .4s cubic-bezier(.16,1,.3,1), opacity .2s; }
.lp-feed-cell:hover img{ transform:scale(1.06); opacity:.86; }

/* ---------- TRIBECA OPEN AIR — white band + film-card rail ---------- */
/* ---------- TRIBECA OPEN AIR — white band + film rail + modal ---------- */
/* Mirrors the design handoff (openair.css). White band, dark-ink head text,
   pink eyebrow/accent kept; dark poster cards sit on white for contrast.
   Reuses tokens + .r-wrap/.r-band/.r-rail/.r-ecard/.ab-* — no new colors. */
#open-air{ scroll-margin-top:var(--hdr-h); }
.oa-band{ background:#fff; }
.oa-band .ab-h{ color:var(--ink); }
.oa-band .ab-sub{ color:var(--ink); }
.oa-band .ab-body{ color:var(--ink); }
.oa-band .oa-sky{ color:var(--ink); }
.oa-head{ max-width:none; }
.oa-sky{ margin:20px 0 0; font-family:var(--font-text); font-weight:700;
  font-size:clamp(18px,2vw,24px); line-height:1.15; }
.oa-intro{ display:grid; gap:22px; margin-top:28px; }
@media (min-width:900px){ .oa-intro{ grid-template-columns:1fr 1fr; gap:56px; } }
.oa-intro .ab-body{ margin-top:0; }

/* rail + cards (portrait one-sheet posters, dark card on white) */
.oa-rail{ padding-top:40px; }
.oa-card{ display:flex; flex-direction:column; }
.oa-card .r-ecard-body{ display:flex; flex-direction:column; flex:1; }
.oa-card .r-ecard-media{ aspect-ratio:2/3; }               /* full portrait poster */
.oa-card .r-ecard-media > img{ object-position:top center; }
.oa-media-grad{ position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.55)); pointer-events:none; }
.oa-kicker{ position:absolute; left:0; bottom:0; z-index:2; display:inline-block;
  background:var(--pink); color:var(--indigo); font-family:var(--font-text); font-weight:700;
  font-size:12px; letter-spacing:.06em; text-transform:uppercase; padding:6px 10px; }

/* category block label (stand-in for the mark-*.svg wordmark) */
.oa-label{ display:inline-flex; align-items:center; height:32px; padding:0 12px;
  background:var(--film-bg); color:var(--film-hl);
  font-family:var(--font-display); font-weight:800; text-transform:uppercase;
  font-size:15px; letter-spacing:.04em; line-height:1; }

/* clickable poster + title (open the detail modal, same as "ver mais +") */
.oa-media-link{ display:block; cursor:pointer; text-decoration:none; }
.oa-media-link:focus-visible{ outline:2px solid var(--pink); outline-offset:2px; }
.oa-title-link{ color:inherit; text-decoration:none; cursor:pointer; transition:color .15s; }
.oa-title-link:hover{ color:var(--film-hl); }
.oa-title-link:focus-visible{ outline:2px solid var(--pink); outline-offset:2px; }
.oa-line{ color:#fff; font-family:var(--font-text); font-size:15px; line-height:1.4; margin:14px 0 0; }
.oa-line .g{ color:var(--fg-3); }
.oa-card .r-ecard-date{ margin:16px 0 4px; }
.oa-card-actions{ margin-top:auto; padding-top:28px; display:flex; flex-direction:column; gap:20px;
  align-items:flex-start; }

/* ---------- OPEN AIR — detail modal ---------- */
.oa-modal{ position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:24px; }
.oa-modal-scrim{ position:absolute; inset:0; background:rgba(0,0,0,.72); }
.oa-modal-panel{ position:relative; width:100%; max-width:720px; max-height:88vh; overflow-y:auto;
  background:#0b0b0b; border:1px solid var(--line-dark); }
.oa-modal-media{ position:relative; width:100%; aspect-ratio:16/9; background:#222; }
.oa-modal-media img{ width:100%; height:100%; object-fit:cover; object-position:top center; }
.oa-modal-x{ position:absolute; top:14px; right:14px; z-index:3; width:40px; height:40px; cursor:pointer;
  background:rgba(0,0,0,.55); border:1px solid rgba(255,255,255,.35); color:#fff; font-size:20px; line-height:1;
  display:flex; align-items:center; justify-content:center; transition:background .15s,border-color .15s; }
.oa-modal-x:hover{ background:var(--pink); border-color:var(--pink); color:#000; }
.oa-modal-body{ padding:28px var(--gut) 36px; }
@media (min-width:768px){ .oa-modal-body{ padding:32px 40px 40px; } }
.oa-modal-badge{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.oa-modal-kick{ font-family:var(--font-text); font-weight:700; font-size:12px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--pink); }
.oa-modal-title{ margin:0; font-family:var(--font-display); font-weight:800; text-transform:uppercase;
  font-size:clamp(30px,4.5vw,52px); line-height:.94; letter-spacing:-.01em; color:#fff; text-wrap:balance; }
.oa-modal-dir{ margin:10px 0 0; font-family:var(--font-text); font-weight:700; font-size:16px; color:var(--fg-3); }
.oa-modal-meta{ display:flex; flex-wrap:wrap; gap:8px 20px; margin:16px 0 0; color:#fff;
  font-family:var(--font-text); font-size:15px; }
.oa-modal-meta span{ display:inline-flex; align-items:center; gap:5px; }
.oa-dl{ margin:26px 0 0; border-top:1px solid var(--line-dark); }
.oa-dl-row{ padding:18px 0; border-bottom:1px solid var(--line-dark); display:grid; gap:6px; }
@media (min-width:600px){ .oa-dl-row{ grid-template-columns:180px 1fr; gap:24px; align-items:baseline; } }
.oa-dl-k{ font-family:var(--font-text); font-weight:700; font-size:12px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--fg-3); }
.oa-dl-v{ font-family:var(--font-text); font-size:16px; line-height:1.5; color:#fff; }
.oa-modal-cta{ margin-top:28px; }

/* ---------- FOOTER (slimmed: no nav, no X, no FAQs) ---------- */
.lp-ft{ background:#000; border-top:1px solid rgba(255,255,255,.22); padding-top:var(--band-y); padding-bottom:32px; }
.lp-ft-top{ display:flex; flex-direction:column; gap:28px; padding-bottom:44px; }
.lp-ft-brand{ display:flex; flex-direction:column; gap:18px; }
.lp-ft-brand img{ width:150px; height:auto; }
.lp-ft-tagline{ margin:0; color:var(--fg-3); font-family:var(--font-text); font-weight:700; font-size:13px;
  letter-spacing:.04em; text-transform:uppercase; }
.lp-ft-social{ display:flex; gap:12px; }
.lp-ft-social a{ width:44px; height:44px; border:1px solid var(--line-dark); color:#fff; display:flex;
  align-items:center; justify-content:center; transition:background .15s, border-color .15s, color .15s; }
.lp-ft-social a:hover{ background:var(--pink); border-color:var(--pink); color:#000; }
.lp-ft-legal{ display:flex; flex-direction:column; gap:14px; }
.lp-ft-legal h4{ margin:0 0 4px; color:var(--fg-3); font-family:var(--font-text); font-weight:700;
  font-size:12px; letter-spacing:.14em; text-transform:uppercase; }
.lp-ft-legal a{ color:#fff; font-family:var(--font-text); font-weight:700; font-size:15px; text-decoration:none; width:fit-content; transition:color .15s; }
.lp-ft-legal a:hover{ color:var(--pink); }
.lp-ft-partners{ display:flex; flex-direction:column; gap:32px; padding:40px 0; border-top:1px solid var(--line-dark); }
.lp-ft-label{ color:var(--fg-3); font-family:var(--font-text); font-weight:700; font-size:11px;
  letter-spacing:.12em; text-transform:uppercase; margin-bottom:16px; }
.lp-ft-logos{ display:flex; flex-wrap:wrap; align-items:center; column-gap:32px; row-gap:20px; }
.lp-plogo{ filter:brightness(0) invert(1); display:block; width:auto; height:auto; max-height:30px; max-width:118px; }
.lp-plogo--main{ max-height:44px; max-width:170px; }
.lp-plogo--sm{ max-height:26px; max-width:104px; opacity:.92; }
/* Rádio Renascença reads small next to the other partner logos — bump 15% */
.lp-plogo[src*="radio-renascenca"]{ max-height:29.9px; max-width:119.6px; }
.lp-ft-base{ display:flex; flex-direction:column; gap:14px; padding-top:28px; border-top:1px solid var(--line-dark); }
.lp-ft-copy{ color:var(--fg-3); font-family:var(--font-text); font-size:13px; letter-spacing:.02em; }
@media (min-width:768px){
  .lp-ft-top{ display:grid; grid-template-columns:2fr 1fr; gap:48px; align-items:start; }
  .lp-ft-partners{ display:grid; grid-template-columns:1.2fr 1fr 1.4fr; column-gap:48px; align-items:start; }
  .lp-ft-base{ flex-direction:row; justify-content:space-between; align-items:center; }
}
