@font-face { font-family:"Crime Portal OCR"; src:url("../fonts/crime-portal-ocr-regular.ttf") format("truetype"); font-weight:400; font-style:normal; font-display:block; ascent-override:82%; descent-override:18%; line-gap-override:0%; }
:root { --ink:#090909; --paper:#ecebe7; --muted:#a4a3a0; --line:#2b2b2b; --panel:rgba(210,210,210,.11); --vcr:"Crime Portal OCR",monospace; --mono-glow:-1.5px 0 4px rgba(42,205,211,.58),1.5px 0 4px rgba(231,65,197,.54),0 1px 3px rgba(68,220,117,.22); }
* { box-sizing:border-box; }
html { scroll-behavior:auto; scroll-padding-top:80px; }
html.tcp-scroll-ready { scroll-behavior:smooth; }
body { margin:0; background:var(--ink); color:var(--paper); font-family:var(--vcr); }

/* Elementor Canvas compatibility: remove its layout chrome without changing the mockup CSS. */
body.tcp-exact-build .elementor-location-header,
body.tcp-exact-build .elementor-location-footer { display:block!important; }
body.tcp-exact-build .elementor,
body.tcp-exact-build .elementor > .elementor-element,
body.tcp-exact-build .page.e-con { width:100%; max-width:none; margin:0; padding:0; gap:0; display:block; }
body.tcp-exact-build .page > .elementor-element,
body.tcp-exact-build .page .elementor-widget { margin:0; padding:0; }
body.tcp-exact-build .page .elementor-widget:not(:last-child) { margin-block-end:0; }
body.tcp-exact-build .page > .elementor-widget > .elementor-widget-container { width:100%; }
body.tcp-exact-build .page .e-con { max-width:none; padding:0; gap:0; }
body.tcp-exact-build .site-header > .elementor-widget,
body.tcp-exact-build .hero > .elementor-widget,
body.tcp-exact-build .submit > .elementor-widget,
body.tcp-exact-build .case-video > .elementor-widget,
body.tcp-exact-build .case-appeal > .elementor-widget,
body.tcp-exact-build .page > footer > .elementor-widget { width:100%; }
body.tcp-exact-build .case-grid > .elementor-widget,
body.tcp-exact-build .case-grid > .elementor-widget > .elementor-widget-container { height:100%; min-width:0; }
body.tcp-exact-build .case-grid > .elementor-widget:nth-child(2n) .case-card:not(.is-visible) { transition-delay:.08s; }
body.tcp-exact-build .case-summary > .elementor-widget,
body.tcp-exact-build .case-summary > .elementor-widget > .elementor-widget-container { width:100%; }
body.tcp-exact-build .page img { border-style:none; max-width:100%; }
body.tcp-exact-build .page iframe { border:0; }
body.tcp-exact-build .video-evidence iframe { display:block; width:100%; height:100%; }
body::before { content:""; position:fixed; inset:0; z-index:30; pointer-events:none; opacity:.05; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); }
body.tcp-exact-build .page { opacity:0; animation:none; }
html.tcp-scroll-ready body.tcp-exact-build .page { opacity:1; animation:page-fade 1.15s ease-out both; }
@keyframes page-fade { from{opacity:0} to{opacity:1} }
@keyframes page-exit { from{opacity:1} to{opacity:0} }
html.tcp-scroll-ready body.tcp-exact-build .page.is-exiting { animation:page-exit .38s ease both; pointer-events:none; }

/* Keep all page content available while editing. Elementor's preview iframe does
   not share the public-page reveal lifecycle, so front-end hidden states must not
   be allowed to conceal editable containers or widgets. */
body.elementor-editor-active.tcp-exact-build .page,
html.elementor-html body.tcp-exact-build .page {
  opacity:1!important;
  animation:none!important;
}
body.elementor-editor-active.tcp-exact-build :is([data-reveal],.tcp-reveal),
html.elementor-html body.tcp-exact-build :is([data-reveal],.tcp-reveal) {
  opacity:1!important;
  transform:none!important;
  animation:none!important;
  transition:none!important;
}
body.elementor-editor-active.tcp-exact-build .sources-panel,
html.elementor-html body.tcp-exact-build .sources-panel {
  grid-template-rows:1fr!important;
  opacity:1!important;
}
body.elementor-editor-active.tcp-exact-build .sources-panel > div,
html.elementor-html body.tcp-exact-build .sources-panel > div {
  overflow:visible!important;
}
a { color:inherit; text-decoration:none; }
button { font:inherit; }
.header-inner,.hero-content,.archive-inner,.submit-inner,.footer-inner { width:min(1120px,calc(100% - 80px)); margin-inline:auto; }
.site-header { height:92px; display:flex; align-items:center; border-bottom:1px solid transparent; position:fixed; inset:0 0 auto; z-index:25; transition:height .32s ease,background-color .32s ease,border-color .32s ease,backdrop-filter .32s ease; }
.header-inner { display:flex; align-items:center; justify-content:space-between; position:relative; }
.site-header.compact { height:64px; background:rgba(8,8,8,.88); border-color:var(--line); backdrop-filter:blur(14px); }
.brand { display:block; line-height:0; }
.brand img { display:block; width:225px; height:auto; transition:width .32s ease; }
.compact .brand img { width:184px; }
.nav { display:flex; align-items:center; gap:30px; font:400 13px/1 var(--vcr); letter-spacing:.04em; }
.nav a { transition:opacity .3s ease, text-shadow .3s ease; }
.nav a:hover { opacity:.9; text-shadow:-2px 0 5px rgba(43,212,217,.75),2px 0 5px rgba(240,75,216,.65); }
.nav a:hover { opacity:.68; }
.youtube-link { display:grid; place-items:center; color:#f1f1ed; }
.youtube-icon { display:block; width:25px; height:auto; }
.menu-button { display:none; color:var(--paper); background:none; border:0; }
.menu-label { position:relative; display:inline-grid; overflow:hidden; height:1em; min-width:3.5em; }
.menu-label span { grid-area:1/1; transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .3s ease; }
.menu-label span:last-child { opacity:0; transform:translateY(110%); }
.menu-icon { display:inline-block; margin-left:5px; font-size:16px; line-height:.7; transition:transform .3s cubic-bezier(.22,1,.36,1); }
.menu-button.is-open .menu-label span:first-child { opacity:0; transform:translateY(-110%); }
.menu-button.is-open .menu-label span:last-child { opacity:1; transform:translateY(0); }
.menu-button.is-open .menu-icon { transform:rotate(45deg); }
.hero { min-height:auto; padding:168px 0 112px; position:relative; display:grid; place-items:center; overflow:hidden; border-bottom:1px solid var(--line); text-align:center; background:#070707; }
.hero::after { content:""; position:absolute; inset:0; background:rgba(0,0,0,.23); pointer-events:none; }
.hero::before { content:""; position:absolute; inset:-14px 0; background:repeating-linear-gradient(0deg,rgba(7,13,28,.2) 0 2px,rgba(128,143,174,.055) 3px,transparent 4px 7px); opacity:.78; pointer-events:none; animation:hero-scan-roll 14s linear infinite; }
.hero-content { position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; }
.eyebrow { color:#aaa9a5; font:400 13px/1.2 var(--vcr); letter-spacing:.04em; }
h1 { font-family:var(--vcr); font-size:clamp(44px,5.8vw,82px); line-height:.92; letter-spacing:-.035em; margin:0 0 28px; font-weight:400; }
.vhs-title { position:relative; color:#e6e7e4; filter:blur(.22px); text-shadow:0 0 2px rgba(255,255,255,.88),0 0 6px rgba(218,225,236,.36),-2px 0 5px rgba(45,81,151,.24),2px 0 4px rgba(153,80,134,.16); }
.vhs-title span { position:relative; display:inline-block; white-space:nowrap; color:transparent; background:repeating-linear-gradient(0deg,#f0f0ed 0 2px,#d9dcd9 2px 3px,rgba(198,205,205,.58) 3px 4px,#ebebe8 5px 7px); background-size:100% 8px; background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; animation:letter-scan 7s linear infinite; }
.vhs-title span::before,.vhs-title span::after { content:attr(data-text); position:absolute; inset:0; pointer-events:none; -webkit-text-fill-color:rgba(226,230,228,.56); text-shadow:0 0 4px rgba(233,239,246,.35); overflow:hidden; opacity:0; }
.vhs-title span::before { transform:translateX(-2px); clip-path:inset(28% 0 58% 0); animation:tape-damage-a 3.9s steps(1,end) infinite; }
.vhs-title span::after { transform:translateX(3px); clip-path:inset(67% 0 20% 0); animation:tape-damage-b 4.7s steps(1,end) infinite; }
.vhs-title::before { content:""; position:absolute; z-index:3; left:-3%; right:-3%; top:47%; height:8px; background:linear-gradient(90deg,transparent 0 4%,rgba(182,196,215,.2) 14%,rgba(230,232,228,.15) 61%,transparent 96%); opacity:0; filter:blur(2px); mix-blend-mode:screen; pointer-events:none; animation:tracking-tear 3.4s steps(1,end) infinite; }
@keyframes hero-scan-roll { from{transform:translateY(14px)} to{transform:translateY(0)} }
@keyframes letter-scan { from{background-position:0 8px} to{background-position:0 0} }
@keyframes tape-damage-a { 0%,17%,20%,55%,58%,100%{opacity:0;transform:translateX(0)} 18%{opacity:.75;transform:translateX(-5px)} 19%{opacity:.42;transform:translateX(3px)} 56%{opacity:.58;transform:translateX(4px)} 57%{opacity:.32;transform:translateX(-2px)} }
@keyframes tape-damage-b { 0%,33%,36%,79%,82%,100%{opacity:0;transform:translateX(0)} 34%{opacity:.62;transform:translateX(6px)} 35%{opacity:.28;transform:translateX(-3px)} 80%{opacity:.5;transform:translateX(-5px)} 81%{opacity:.2;transform:translateX(2px)} }
@keyframes tracking-tear { 0%,42%,45%,73%,76%,100%{opacity:0;transform:translate(0,0) scaleY(1)} 43%{opacity:.7;transform:translate(7px,-5px) scaleY(1.8)} 44%{opacity:.3;transform:translate(-4px,3px) scaleY(.7)} 74%{opacity:.45;transform:translate(-8px,8px) scaleY(1.3)} 75%{opacity:.2;transform:translate(4px,-2px) scaleY(.5)} }
.hero-copy { width:min(610px,100%); font-size:17px; line-height:1.65; color:#b3b1ad; margin:0; }
.hero-actions { margin-top:35px; display:flex; align-items:center; justify-content:center; gap:32px; }
a.button,button.button { display:inline-flex; align-items:center; justify-content:center; padding:16px 18px; font:400 13px/1 var(--vcr); letter-spacing:.03em; border:1px solid; transition:background-color .3s ease,color .3s ease,box-shadow .3s ease; }
a.button.primary,button.button.primary { background:var(--paper); color:#111; border-color:var(--paper); }
a.button.secondary,button.button.secondary { background:transparent; color:var(--paper); border-color:#646464; }
a.button:hover,button.button:hover { background:#d8d8d5; color:#080808; box-shadow:-4px 0 12px rgba(26,214,218,.35),4px 0 12px rgba(241,57,201,.35); }
.text-link { font:400 13px var(--vcr); letter-spacing:.02em; border-bottom:1px solid #555; padding-bottom:5px; }
.archive { padding:92px 0; }
.section-intro { margin-bottom:58px; }
h2 { font-family:var(--vcr); font-size:clamp(42px,5vw,72px); font-weight:400; letter-spacing:-.025em; line-height:.95; margin:0; }
.section-intro h2 { font-size:clamp(31px,3.5vw,44px); }
.section-copy { color:#aaa9a5; font-size:16px; line-height:1.7; max-width:440px; margin:0; }
.case-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:42px 28px; align-items:stretch; }
.case-card-shell { position:relative; min-width:0; height:100%; }
.case-card { min-width:0; height:100%; display:flex; flex-direction:column; font-family:var(--vcr); color:var(--paper); border:1px solid transparent; background:var(--panel); transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease,background-color .35s ease; }
.case-card:hover, .case-card:focus-visible { transform:translateY(-7px); border-color:#737373; background:rgba(220,220,220,.16); box-shadow:-7px 0 18px rgba(37,200,207,.12),7px 0 18px rgba(234,59,198,.12),0 18px 30px rgba(0,0,0,.28); outline:none; }
.case-image { position:relative; overflow:hidden; aspect-ratio:16/9; background:#171717; }
.case-image::after { content:""; position:absolute; inset:0; background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(0,0,0,.12) 3px); mix-blend-mode:multiply; pointer-events:none; }
.case-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.7) contrast(1.08) brightness(.85); transition:transform .5s,filter .5s; }
.case-card:hover .case-image img { transform:scale(1.025); filter:saturate(.95) contrast(1.05) brightness(.97); }
.case-card-shell:hover .case-image img,.case-card-shell:focus-within .case-image img { transform:scale(1.025); filter:saturate(.95) contrast(1.05) brightness(.97); }
.case-number { position:absolute; z-index:2; top:14px; font:400 12px/1 var(--vcr); letter-spacing:.03em; }
.case-number { left:14px; background:#080808; padding:7px 9px; }
.case-info { padding:21px 22px 24px; flex:1; }
.case-meta { display:flex; align-items:center; justify-content:flex-start; gap:11px; color:var(--paper); font:400 14px/1.2 var(--vcr); letter-spacing:.025em; }
.case-meta i { color:#5f5f5f; font-style:normal; }
.case-card h3 { font-family:var(--vcr); font-size:clamp(25px,2.3vw,35px); font-weight:400; line-height:1.05; letter-spacing:-.02em; margin:17px 0 12px; }
.case-info > p { color:var(--paper); font:400 14px/1.65 var(--vcr); letter-spacing:.015em; max-width:94%; margin:0; }
.archive-action { display:flex; justify-content:center; margin-top:48px; }
.submit { position:relative; overflow:hidden; padding:78px 0; border-bottom:1px solid var(--line); background:linear-gradient(110deg,#101010,#171717 50%,#101010); }
.submit-inner { display:grid; grid-template-columns:1.1fr .9fr; gap:8vw; align-items:center; }
.submit::before { content:""; position:absolute; width:45%; height:180%; right:5%; top:-40%; background:radial-gradient(ellipse,rgba(41,211,210,.11),transparent 55%),radial-gradient(ellipse at 65% 55%,rgba(238,54,193,.11),transparent 55%); filter:blur(25px); }
.submit > * { position:relative; z-index:1; }
.submit h2 { font-size:clamp(25px,2.8vw,36px); line-height:1.16; text-transform:none; }
.submit-copy { font-size:17px; line-height:1.65; max-width:440px; align-self:center; }
.submit-copy p { margin:0 0 28px; }
.button.light { background:var(--paper); color:#0a0a0a; border-color:var(--paper); }
footer { padding:58px 0 24px; }
.footer-top,.footer-bottom { display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
.footer-top { padding-bottom:58px; }
.footer-brand img { width:230px; }
footer p { margin:0; color:#8c8b88; font:400 13px/1.5 var(--vcr); letter-spacing:.02em; }
.footer-top p { text-align:right; color:#b4b3af; }
.footer-bottom { border-top:1px solid var(--line); padding-top:23px; align-items:center; }
.footer-bottom a { transition:opacity .3s ease; }
.footer-bottom a:hover { opacity:.68; }
:is([data-reveal],.tcp-reveal) { opacity:0; transform:translateY(18px); animation:none!important; transition:opacity .75s ease,transform .75s cubic-bezier(.22,1,.36,1); transition-delay:var(--tcp-reveal-delay,0s); }
:is([data-reveal],.tcp-reveal).is-visible { opacity:1; transform:none; }
.case-card:nth-child(2n):not(.is-visible) { transition-delay:.08s; }
@media (max-width:1700px) { .header-inner,.hero-content,.archive-inner,.submit-inner,.footer-inner { max-width:1120px; } }
@media (max-width:850px) {
  .header-inner,.hero-content,.archive-inner,.submit-inner,.footer-inner { width:calc(100% - 44px); }
  .site-header,.site-header.compact { height:68px; }.brand img,.compact .brand img { width:172px; }
  .menu-button { display:block; font:400 12px var(--vcr); letter-spacing:.03em; }
  .header-inner > .brand,.header-inner > .menu-button { position:relative; z-index:3; }
  .nav { display:flex; position:fixed; inset:0; min-height:100vh; min-height:100dvh; padding:104px 22px 54px; background:rgba(8,8,8,.985); border:0; flex-direction:column; align-items:flex-start; justify-content:center; gap:25px; z-index:2; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .3s ease,visibility 0s linear .3s; }
  .nav.open { opacity:1; visibility:visible; pointer-events:auto; transition:opacity .3s ease,visibility 0s linear 0s; }.youtube-link { display:grid !important; }
  .hero { padding:132px 0 82px; }.hero-actions { flex-direction:column; gap:18px; }.hero-copy { font-size:16px; }
  .archive { padding:76px 0; }.section-intro { margin-bottom:44px; }.case-grid { grid-template-columns:1fr; gap:34px; }.case-info > p { min-height:0; }
  .submit { padding:72px 0; }.submit-inner { grid-template-columns:1fr; gap:36px; }.submit-copy { max-width:100%; }
  footer { padding:48px 0 22px; }.footer-top { flex-direction:column; padding-bottom:44px; }.footer-top p { text-align:left; }.footer-brand img { width:210px; }
}
@media (max-width:480px) { h1 { font-size:clamp(39px,12vw,58px); }.case-meta { font-size:12px; flex-wrap:wrap; }.footer-bottom p { font-size:11px; } }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto} *{animation:none!important;transition:none!important} :is([data-reveal],.tcp-reveal){opacity:1;transform:none} }

/* Preserve the approved section geometry against Elementor's container reset. */
body.tcp-exact-build .page .site-header.e-con { display:flex; height:92px; position:fixed; inset:0 0 auto; z-index:25; }
body.tcp-exact-build .page .site-header.e-con.compact { height:64px; }
body.tcp-exact-build .page .hero.e-con { padding:168px 0 112px; }
body.tcp-exact-build .page .hero h1 { font-family:var(--vcr); font-size:clamp(44px,5.8vw,82px); font-weight:400; line-height:.92; letter-spacing:-.035em; }
body.tcp-exact-build .page .hero .hero-copy { font-family:var(--vcr); font-size:17px; font-weight:400; line-height:1.65; letter-spacing:normal; }
body.tcp-exact-build .page .archive.e-con { padding:92px 0; }
body.tcp-exact-build .page .submit.e-con { padding:78px 0; }
body.tcp-exact-build .page > footer.e-con { padding:58px 0 24px; }
body.tcp-exact-build .page .case-hero.e-con { padding:168px 0 104px; }
body.tcp-exact-build .page .case-video.e-con { padding:88px 0; }
body.tcp-exact-build .page .sources.e-con { padding:72px 0 88px; }
body.tcp-exact-build .page .case-appeal.e-con { padding:88px 0; }
body.tcp-exact-build .page .case-container.e-con { width:min(1120px,calc(100% - 80px)); margin-inline:auto; }
body.tcp-exact-build .page .case-summary .evidence { width:86%; margin:0 auto; }
body.tcp-exact-build .page .case-summary blockquote { margin:0 7% 72px; }
body.tcp-exact-build .page .case-summary blockquote,
body.tcp-exact-build .page .case-summary blockquote p { font-style:normal; }
body.tcp-exact-build .page .case-summary blockquote:last-child { margin-bottom:0; }
body.tcp-exact-build .page .case-summary > .elementor-widget > .elementor-widget-container > .evidence {
  margin-bottom:72px;
}
body.tcp-exact-build .page .poster-play { font-size:0; padding-left:0; }
body.tcp-exact-build .page .poster-play::before { content:""; width:0; height:0; margin-left:4px; border-top:11px solid transparent; border-bottom:11px solid transparent; border-left:18px solid var(--paper); }
body.tcp-exact-build .page .sources-toggle:hover,
body.tcp-exact-build .page .sources-toggle:focus,
body.tcp-exact-build .page .sources-toggle:active { color:var(--paper); background:none; border-color:transparent; box-shadow:none; }
body.admin-bar.tcp-exact-build .page .site-header.e-con { top:32px; }
body.admin-bar.tcp-exact-build .video-lightbox { padding-top:108px; }
body.admin-bar.tcp-exact-build .lightbox-close { top:57px; }

@media (max-width:850px) {
  body.tcp-exact-build .page .site-header.e-con,
  body.tcp-exact-build .page .site-header.e-con.compact { height:68px; }
  body.tcp-exact-build .page .hero.e-con { padding:132px 0 82px; }
  body.tcp-exact-build .page .hero .hero-copy { font-size:16px; }
  body.tcp-exact-build .page .archive.e-con { padding:76px 0; }
  body.tcp-exact-build .page .submit.e-con { padding:72px 0; }
  body.tcp-exact-build .page > footer.e-con { padding:48px 0 22px; }
  body.tcp-exact-build .page .case-hero.e-con { padding:132px 0 78px; }
  body.tcp-exact-build .page .case-video.e-con { padding:64px 0; }
  body.tcp-exact-build .page .sources.e-con { padding:58px 0 76px; }
  body.tcp-exact-build .page .case-appeal.e-con { padding:76px 0; }
  body.tcp-exact-build .page .case-container.e-con { width:calc(100% - 44px); }
  body.tcp-exact-build .page .case-summary .evidence { width:100%; }
  body.tcp-exact-build .page .case-summary blockquote { margin:0 0 58px; }
}
@media (max-width:480px) {
  body.tcp-exact-build .page .hero h1 { font-size:clamp(39px,12vw,58px); }
  body.tcp-exact-build .page.tcp-home-build .hero h1 { transform:translateX(60px); }
  body.tcp-exact-build .page .hero .hero-copy { width:440px; max-width:none; letter-spacing:.06em; }
}
@media (max-width:782px) {
  body.admin-bar.tcp-exact-build .page .site-header.e-con { top:46px; }
  body.admin-bar.tcp-exact-build .video-lightbox { padding-top:122px; }
  body.admin-bar.tcp-exact-build .lightbox-close { top:71px; }
}

/* Case detail */
.case-container { width:min(1120px,calc(100% - 80px)); margin-inline:auto; }
.case-hero { padding:168px 0 104px; }
.case-hero h1 { margin:0 0 27px; }
.case-hero .case-title-lines.lines-2 { font-size:clamp(40px,5vw,72px); }
.case-hero .case-title-lines.lines-3 { font-size:clamp(34px,4.2vw,62px); line-height:.94; }
.case-hero-meta { display:flex; align-items:center; justify-content:center; gap:14px; color:#b8b7b3; font:400 14px/1.3 var(--vcr); letter-spacing:.035em; }
.case-hero-meta i { color:#535353; font-style:normal; }
.case-video { padding:88px 0; }
.evidence-media { position:relative; overflow:hidden; border:1px solid #3b3b3b; background:#111; box-shadow:0 22px 50px rgba(0,0,0,.3); }
.video-poster { position:relative; display:block; width:100%; aspect-ratio:16/9; padding:0; overflow:hidden; cursor:pointer; border:1px solid #3b3b3b; background:#111; color:var(--paper); }
.video-poster::after { content:""; position:absolute; inset:0; background:rgba(0,0,0,.15); transition:background-color .3s ease; }
.video-poster img { width:100%; height:100%; display:block; object-fit:cover; filter:saturate(.72) contrast(1.05); transition:transform .5s ease,filter .5s ease; }
.poster-play { position:absolute; z-index:2; left:50%; top:50%; display:grid; place-items:center; width:78px; height:78px; transform:translate(-50%,-50%); border-radius:50%; background:rgba(8,8,8,.86); border:1px solid #d9d8d4; font-size:25px; padding-left:5px; transition:transform .3s ease,box-shadow .3s ease; }
.video-poster:hover img { transform:scale(1.02); filter:saturate(.92) contrast(1.05); }
.video-poster:hover .poster-play { transform:translate(-50%,-50%) scale(1.08); box-shadow:var(--mono-glow); }
.case-summary { padding-bottom:0; }
.case-section-title { border-top:1px solid var(--line); padding-top:44px; margin-bottom:42px; }
.case-section-title h2 { font-size:clamp(31px,3.5vw,44px); }
.story-grid,.story-grid.reverse { display:grid; grid-template-columns:1fr; gap:42px; align-items:start; margin:0 0 72px; }
.story-grid.last-story { margin-bottom:0; }
.story-grid.reverse .story-copy { order:1; }
.story-grid.reverse .evidence { order:2; }
.story-copy { font-size:17px; line-height:1.78; color:#cfceca; }
.story-copy p { margin:0 0 25px; }
.story-copy .lead { color:var(--paper); font-size:17px; line-height:1.78; }
.story-copy h3 { margin:0 0 26px; color:var(--paper); font-size:clamp(22px,2.3vw,30px); font-weight:400; line-height:1.12; }
.evidence { width:86%; margin:0 auto; min-width:0; background:rgba(210,210,210,.08); border:1px solid #383838; }
.evidence-media { aspect-ratio:16/10; border:0; box-shadow:none; }
.evidence-media img { width:100%; height:100%; display:block; object-fit:cover; filter:saturate(.72) contrast(1.05); }
.evidence-media.portrait img { object-fit:contain; background:#e8e8e5; }
.video-evidence { aspect-ratio:16/9; }
.evidence figcaption { padding:18px 20px 20px; font-size:12px; line-height:1.55; color:#aaa9a5; }
.evidence figcaption p { margin:0; }
.evidence figcaption b { color:var(--paper); font-weight:400; }
.case-summary blockquote { margin:0 7% 72px; padding:38px 44px; border-left:2px solid #d7d7d3; background:rgba(210,210,210,.07); }
.case-summary blockquote:last-child { margin-bottom:0; }
.case-summary blockquote p { margin:0 0 20px; color:var(--paper); font-size:clamp(19px,2vw,26px); line-height:1.5; }
.case-summary blockquote cite { color:#8e8d89; font-size:13px; font-style:normal; line-height:1.5; }
.case-appeal { padding:88px 0; border-block:1px solid var(--line); background:linear-gradient(110deg,#101010,#171717 50%,#101010); }
.appeal-inner { display:grid; grid-template-columns:1.1fr .9fr; gap:9vw; align-items:center; }
.appeal-inner h2 { font-size:clamp(25px,2.8vw,36px); line-height:1.16; }
.appeal-inner p { color:#c3c2be; font-size:16px; line-height:1.7; margin:0 0 28px; }
.sources { padding:72px 0 88px; }
.sources-disclosure { border-block:1px solid var(--line); }
.sources-toggle { width:100%; cursor:pointer; display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:28px; padding:28px 3px; color:var(--paper); background:none; border:0; text-align:left; font-size:18px; }
.sources-toggle small { color:#858480; font-size:12px; }
.sources-toggle i { font-size:23px; font-style:normal; transition:transform .3s cubic-bezier(.22,1,.36,1); }
.sources-disclosure.is-open .sources-toggle i { transform:rotate(45deg); }
.sources-panel { display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows .55s cubic-bezier(.22,1,.36,1),opacity .35s ease; }
.sources-panel > div { min-height:0; overflow:hidden; }
.sources-disclosure.is-open .sources-panel { grid-template-rows:1fr; opacity:1; }
.sources ol { list-style:none; margin:0; padding:8px 0 30px; }
.sources li { display:grid; grid-template-columns:175px 1fr; gap:30px; padding:20px 3px; border-top:1px solid #222; }
.sources time { color:#777673; font-size:12px; white-space:nowrap; }
.sources li a { display:block; }
.sources li span { color:var(--paper); font-size:14px; }
.sources li a:hover span { text-shadow:var(--mono-glow); }
.video-lightbox { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:76px 5vw 5vw; background:rgba(0,0,0,.94); backdrop-filter:blur(8px); animation:page-fade .3s ease both; }
.lightbox-player { width:min(1280px,100%); aspect-ratio:16/9; background:#000; border:1px solid #444; box-shadow:0 0 70px rgba(0,0,0,.8); }
.lightbox-player iframe { width:100%; height:100%; display:block; border:0; }
.lightbox-close { position:absolute; top:25px; right:5vw; padding:8px 0; color:var(--paper); background:none; border:0; cursor:pointer; font-size:13px; letter-spacing:.04em; }
.lightbox-close span { display:inline-block; margin-left:7px; font-size:20px; vertical-align:-2px; }
@media (max-width:850px) {
  .case-container { width:calc(100% - 44px); }
  .case-hero { padding:132px 0 78px; }
  .case-hero-meta { flex-wrap:wrap; gap:8px 10px; font-size:11px; }
  .case-hero h1 { margin:0 0 23px; }
  .case-hero .case-title-lines.lines-2 { font-size:clamp(34px,10vw,52px); }
  .case-hero .case-title-lines.lines-3 { font-size:clamp(28px,8.5vw,44px); }
  .case-video { padding:64px 0; }
  .case-section-title { margin-bottom:32px; }
  .story-grid,.story-grid.reverse { gap:32px; margin-bottom:58px; }
  .story-copy,.story-copy .lead { font-size:15px; }
  .evidence { width:100%; }
  .case-summary blockquote { margin:0 0 58px; padding:30px 24px; }
  .appeal-inner { grid-template-columns:1fr; gap:34px; }
  .case-summary { padding-bottom:0; }
  .case-appeal { padding:76px 0; }
  .sources { padding:58px 0 76px; }
  .sources-toggle { gap:15px; font-size:15px; }
  .sources li { grid-template-columns:1fr; gap:8px; }
}

/* Elementor/theme parity hardening. These rules deliberately come last so the
   active kit cannot replace the approved mockup typography and geometry. */
body.tcp-exact-build .page,
body.tcp-exact-build .page h1,
body.tcp-exact-build .page h2,
body.tcp-exact-build .page h3,
body.tcp-exact-build .page p,
body.tcp-exact-build .page a,
body.tcp-exact-build .page button,
body.tcp-exact-build .page small,
body.tcp-exact-build .page time,
body.tcp-exact-build .page cite,
body.tcp-exact-build .page strong,
body.tcp-exact-build .page b {
  font-family:var(--vcr);
  font-weight:400;
}

/* `.page .e-con { gap:0 }` is needed for neutral Elementor containers, but the
   investigation grid is the exception and must retain the mockup's two gaps. */
body.tcp-exact-build .page .case-grid.e-con {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  row-gap:42px;
  column-gap:28px;
  align-items:stretch;
}
/* The reveal completion rule also sets transform:none; reassert the card lift. */
body.tcp-exact-build .page .case-card.is-visible:hover,
body.tcp-exact-build .page .case-card.is-visible:focus-visible {
  transform:translate3d(0,-7px,0);
}

/* Dynamic investigation cards keep a stationary wrapper so the lifted card
   never falls out of its own hover area. */
body.tcp-exact-build .page .case-card-shell:hover .case-card,
body.tcp-exact-build .page .case-card-shell:focus-within .case-card {
  transform:translate3d(0,-7px,0);
  border-color:transparent;
  background:rgba(220,220,220,.16);
  box-shadow:-7px 0 18px rgba(37,200,207,.12),7px 0 18px rgba(234,59,198,.12),0 18px 30px rgba(0,0,0,.28);
  outline:none;
}
body.tcp-exact-build .page .case-card-shell:hover .case-card::after,
body.tcp-exact-build .page .case-card-shell:focus-within .case-card::after {
  border-color:#737373;
}

/* Static pages */
body.tcp-exact-build .page .static-hero.e-con { padding:168px 0 92px; }
.static-hero h1 { margin-bottom:0; }
.content-page { padding:88px 0 96px; }
.content-page > .elementor-widget { width:100%; }
.content-page > .elementor-widget + .elementor-widget { margin-top:72px!important; }
.content-heading,.content-intro,.about-copy { max-width:820px; }
.content-heading h2,.content-intro h2,.about-copy h2,.testimonials h2,.cross-cta h2 {
  font-size:clamp(25px,2.8vw,36px);
  line-height:1.16;
  margin:0 0 28px;
}
.content-heading p,.content-intro p,.about-copy p,.cross-cta p {
  color:#cfceca;
  font-size:17px;
  line-height:1.78;
  margin:0 0 25px;
}
.content-heading p:last-child,.content-intro p:last-child,.about-copy p:last-child,.cross-cta p:last-child { margin-bottom:0; }
.investigations-page .content-page { width:min(1120px,calc(100% - 80px)); }
.investigations-page .content-heading { margin-bottom:58px; }
.investigations-page .content-page > .elementor-widget + .elementor-widget { margin-top:0!important; }
.cross-cta { padding:44px; border:1px solid #383838; background:rgba(210,210,210,.07); }
.cross-cta p { max-width:720px; margin-bottom:28px; }
.dual-actions { display:flex; flex-wrap:wrap; gap:18px; }

/* Contact Form 7 */
.tcp-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.tcp-form-grid .full { grid-column:1/-1; }
.tcp-form-grid label { display:grid; gap:11px; color:#b4b3af; font-size:13px; line-height:1.45; }
.tcp-form-grid input:not([type="submit"]),.tcp-form-grid textarea,.tcp-form-grid select {
  width:100%; min-height:54px; padding:14px 16px; border:1px solid #494949; border-radius:0; outline:0;
  background:#111; color:var(--paper); font:400 15px/1.45 var(--vcr); transition:border-color .2s,box-shadow .2s;
}
.tcp-form-grid textarea { min-height:180px; resize:vertical; }
.tcp-form-grid input:focus,.tcp-form-grid textarea:focus,.tcp-form-grid select:focus { border-color:#777; box-shadow:var(--mono-glow); }
.tcp-form-grid input[type="submit"] {
  appearance:none; border:1px solid var(--paper); border-radius:0; padding:16px 18px; cursor:pointer;
  background:var(--paper); color:#111; font:400 13px/1 var(--vcr); letter-spacing:.03em;
}
.tcp-form-grid .consent { display:block; color:#92918e; }
.tcp-form-grid .consent .wpcf7-list-item { margin:0; }
.tcp-form-grid .consent input { width:auto; min-height:0; margin-right:10px; }
.wpcf7 form .wpcf7-response-output { margin:28px 0 0; padding:15px 16px; border:1px solid #555; border-radius:0; color:var(--paper); }
.wpcf7-not-valid-tip { margin-top:8px; color:#e6a9d8; font-size:12px; }

/* Top-level pages use the same 1120px body rhythm as the case pages. Elementor
   and CF7 can otherwise collapse the article/widget width and vertical inset. */
body.tcp-exact-build .page.tcp-static-build .content-page.e-con {
  width:min(1120px,calc(100% - 80px));
  max-width:none;
  padding-top:88px!important;
  padding-bottom:96px!important;
}
body.tcp-exact-build .page.tcp-static-build .content-page > .elementor-widget,
body.tcp-exact-build .page.tcp-static-build .content-page > .elementor-widget > .elementor-widget-container,
body.tcp-exact-build .page.tcp-static-build .wpcf7,
body.tcp-exact-build .page.tcp-static-build .wpcf7 form,
body.tcp-exact-build .page.tcp-static-build .tcp-form-grid {
  width:100%;
  max-width:none;
}
body.tcp-exact-build .page.tcp-static-build .tcp-form-grid label {
  padding-top:6px;
}

/* About and testimonials */
.about-copy { padding-bottom:72px; border-bottom:1px solid var(--line); }
.testimonials > header { margin-bottom:34px; }
.testimonial-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.testimonial-grid blockquote { margin:0; padding:30px; border:1px solid #383838; background:rgba(210,210,210,.07); }
.testimonial-grid blockquote p { margin:0 0 24px; color:var(--paper); font-size:17px; line-height:1.62; }
.testimonial-grid blockquote cite { color:#8e8d89; font-size:12px; font-style:normal; line-height:1.5; }

@media (max-width:850px) {
  body.tcp-exact-build .page .static-hero.e-con { padding:132px 0 72px; }
  .content-page { padding:64px 0 76px; }
  .content-page > .elementor-widget + .elementor-widget { margin-top:58px!important; }
  .investigations-page .content-page { width:calc(100% - 44px); }
  .tcp-form-grid,.testimonial-grid { grid-template-columns:1fr; }
  .tcp-form-grid .full { grid-column:auto; }
  .cross-cta { padding:30px 24px; }
  .content-heading p,.content-intro p,.about-copy p,.cross-cta p { font-size:15px; }
  body.tcp-exact-build .page.tcp-static-build .content-page.e-con {
    width:calc(100% - 44px);
    padding-top:64px!important;
    padding-bottom:76px!important;
  }
}

body.tcp-exact-build .page .button,
body.tcp-exact-build .page button,
body.tcp-exact-build .video-lightbox .lightbox-player {
  border-radius:0!important;
}

/* Elementor's canvas made the common hero wash visibly darker than the mockup. */
body.tcp-exact-build .page .hero.e-con::after {
  background:rgba(0,0,0,.08);
}

/* Quote attribution typography must not depend on Elementor's rich-text
   markup. Editing a linked attribution can leave font-size styles on the
   cite, its link, or an extra wrapping paragraph, so normalise every form. */
body.tcp-exact-build .page .case-summary blockquote > cite,
body.tcp-exact-build .page .case-summary blockquote > p:last-child:not(:first-child) {
  display:block;
  margin-top:24px!important;
  margin-bottom:0!important;
}
body.tcp-exact-build .page .case-summary blockquote > p:last-child:not(:first-child) > cite {
  margin-top:0!important;
}
body.tcp-exact-build .page .case-summary blockquote cite,
body.tcp-exact-build .page .case-summary blockquote cite *,
body.tcp-exact-build .page .case-summary blockquote > p:last-child:not(:first-child),
body.tcp-exact-build .page .case-summary blockquote > p:last-child:not(:first-child) * {
  color:#8e8d89!important;
  font-family:var(--vcr)!important;
  font-size:13px!important;
  font-style:normal!important;
  font-weight:400!important;
  line-height:1.5!important;
  text-shadow:none!important;
}
body.tcp-exact-build .page .video-poster {
  border-radius:0!important;
}
body.tcp-exact-build .page .video-privacy-note {
  margin:12px 0 0;
  color:#858480;
  font-size:11px;
  line-height:1.55;
  letter-spacing:.01em;
}
body.tcp-exact-build .page .video-privacy-note a {
  color:#aaa9a5;
  border-bottom:1px solid #555;
}
body.tcp-exact-build .page .poster-play {
  padding:0;
  font-size:0;
}
body.tcp-exact-build .page .poster-play::before {
  content:none;
}
body.tcp-exact-build .page .poster-play svg {
  display:block;
  width:26px;
  height:26px;
  margin-left:3px;
  fill:currentColor;
}

/* Every quote is the last child inside its own Elementor widget. Collapse the
   margin only for the article's final widget, not the earlier quotation. */
body.tcp-exact-build .page .case-summary > .elementor-widget:not(:last-child) blockquote:last-child {
  margin-bottom:72px;
}
body.tcp-exact-build .page .case-summary > .elementor-widget:last-child blockquote:last-child {
  margin-bottom:0;
}
body.tcp-exact-build .page .evidence figcaption {
  padding:20px;
}

/* Elementor can replace a semantic figcaption with a paragraph when its text is
   edited. Treat the caption widget as the canonical box so either markup keeps
   identical typography and spacing, without accidental nested double-padding. */
body.tcp-exact-build .page .evidence > .tcp-figcaption {
  width:100%;
  color:#aaa9a5;
  font:400 12px/1.55 var(--vcr);
}
body.tcp-exact-build .page .evidence > .tcp-figcaption > .elementor-widget-container {
  width:100%;
  padding:20px!important;
  color:inherit;
  font:inherit;
}
body.tcp-exact-build .page .evidence > .tcp-figcaption :where(figcaption,p) {
  margin:0!important;
  padding:0!important;
  color:inherit;
  font:inherit;
}
body.tcp-exact-build .page .evidence > .tcp-figcaption :where(span,a,b,strong,em,i) {
  font:inherit;
}
body.tcp-exact-build .page .evidence > .tcp-figcaption :where(b,strong) {
  color:var(--paper);
  font-weight:400;
}

body.tcp-exact-build .page .site-header.e-con.compact {
  height:64px!important;
  min-height:64px!important;
  padding-top:0!important;
  padding-bottom:0!important;
}
body.tcp-exact-build .page .site-header.e-con.compact > .elementor-widget,
body.tcp-exact-build .page .site-header.e-con.compact > .elementor-widget > .elementor-widget-container,
body.tcp-exact-build .page .site-header.e-con.compact .header-inner {
  min-height:0;
  padding-top:0;
  padding-bottom:0;
}

/* Keep the hover hit-area stationary while the card itself lifts. This avoids
   the lower edge repeatedly entering and leaving :hover. */
body.tcp-exact-build .page .case-grid > .elementor-widget {
  position:relative;
}
body.tcp-exact-build .page .case-card {
  position:relative;
  backface-visibility:hidden;
}
body.tcp-exact-build .page .case-card::before {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-7px;
  height:7px;
}
body.tcp-exact-build .page .case-card::after {
  content:"";
  position:absolute;
  z-index:5;
  inset:0;
  border:1px solid transparent;
  pointer-events:none;
  transition:border-color .35s ease;
}
body.tcp-exact-build .page .case-grid > .elementor-widget:hover .case-card.is-visible,
body.tcp-exact-build .page .case-grid > .elementor-widget:focus-within .case-card.is-visible {
  transform:translate3d(0,-7px,0);
  border-color:transparent;
  background:rgba(220,220,220,.16);
  box-shadow:-7px 0 18px rgba(37,200,207,.12),7px 0 18px rgba(234,59,198,.12),0 18px 30px rgba(0,0,0,.28);
}
body.tcp-exact-build .page .case-card.is-visible:hover,
body.tcp-exact-build .page .case-card.is-visible:focus-visible {
  border-color:transparent;
  box-shadow:-7px 0 18px rgba(37,200,207,.12),7px 0 18px rgba(234,59,198,.12),0 18px 30px rgba(0,0,0,.28);
}
body.tcp-exact-build .page .case-grid > .elementor-widget:hover .case-card.is-visible::after,
body.tcp-exact-build .page .case-grid > .elementor-widget:focus-within .case-card.is-visible::after,
body.tcp-exact-build .page .case-card.is-visible:hover::after,
body.tcp-exact-build .page .case-card.is-visible:focus-visible::after {
  border-color:#737373;
}

/* The article rule belongs to the full-width section, while its content stays
   aligned to the 1120px case column. */
body.tcp-exact-build .page.case-page {
  overflow-x:clip;
}
body.tcp-exact-build .page .case-summary {
  position:relative;
}
body.tcp-exact-build .page .case-summary::before {
  content:"";
  position:absolute;
  z-index:1;
  top:0;
  left:50%;
  width:100vw;
  height:1px;
  transform:translateX(-50%);
  background:var(--line);
  pointer-events:none;
}
body.tcp-exact-build .page .case-section-title {
  border-top:0;
  padding-top:72px;
  margin-bottom:42px;
}
body.tcp-exact-build .page .story-copy .lead {
  color:inherit;
}

body.tcp-exact-build .page .sources-heading {
  margin:0;
  font:inherit;
  line-height:normal;
  letter-spacing:normal;
}

/* Match the primary-navigation hover treatment and suppress Elementor's
   global white button hover fill. */
body.tcp-exact-build .lightbox-close,
body.tcp-exact-build .lightbox-close:hover,
body.tcp-exact-build .lightbox-close:focus-visible,
body.tcp-exact-build .lightbox-close:active {
  color:var(--paper);
  background:transparent!important;
  border-color:transparent!important;
  border-radius:0!important;
  box-shadow:none!important;
}
body.tcp-exact-build .lightbox-close {
  transition:opacity .3s ease,text-shadow .3s ease;
}
body.tcp-exact-build .lightbox-close:hover,
body.tcp-exact-build .lightbox-close:focus-visible {
  opacity:.68;
  outline:none;
  text-shadow:-2px 0 5px rgba(43,212,217,.75),2px 0 5px rgba(240,75,216,.65);
}
@keyframes lightbox-fade-out {
  from { opacity:1; }
  to { opacity:0; }
}
body.tcp-exact-build .video-lightbox.is-closing {
  animation:lightbox-fade-out .3s ease both;
  pointer-events:none;
}

@media (max-width:850px) {
  body.tcp-exact-build .page .case-grid.e-con {
    grid-template-columns:1fr;
    row-gap:34px;
    column-gap:0;
  }
  body.tcp-exact-build .page .case-summary > .elementor-widget:not(:last-child) blockquote:last-child {
    margin-bottom:58px;
  }
  body.tcp-exact-build .page .site-header.e-con.compact {
    height:68px!important;
    min-height:68px!important;
  }
  body.tcp-exact-build .page .case-section-title {
    padding-top:58px;
    margin-bottom:32px;
  }
  body.tcp-exact-build .page .case-summary > .elementor-widget > .elementor-widget-container > .evidence {
    margin-bottom:58px;
  }
}

/* Final dynamic-grid safeguards after the Elementor parity rules above. */
body.tcp-exact-build .page .tcp-element-dynamic-case-grid,
body.tcp-exact-build .page .tcp-element-all-investigations,
body.tcp-exact-build .page .tcp-element-dynamic-case-grid > .elementor-widget-container,
body.tcp-exact-build .page .tcp-element-all-investigations > .elementor-widget-container { width:100%; }
body.tcp-exact-build .page .case-card-shell:hover .case-card,
body.tcp-exact-build .page .case-card-shell:focus-within .case-card {
  transform:translate3d(0,-7px,0);
  border-color:transparent;
  background:rgba(220,220,220,.16);
  box-shadow:-7px 0 18px rgba(37,200,207,.12),7px 0 18px rgba(234,59,198,.12),0 18px 30px rgba(0,0,0,.28);
}
body.tcp-exact-build .page .case-card-shell:hover .case-card::after,
body.tcp-exact-build .page .case-card-shell:focus-within .case-card::after { border-color:#737373; }
.testimonial-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
body.tcp-exact-build .page .case-hero h1.case-title-lines.lines-2 { font-size:clamp(40px,5vw,72px); }
body.tcp-exact-build .page .case-hero h1.case-title-lines.lines-3 { font-size:clamp(34px,4.2vw,62px); line-height:.94; }
@media (max-width:850px) { .testimonial-grid { grid-template-columns:1fr; } }
@media (max-width:850px) {
  body.tcp-exact-build .page .case-hero h1.case-title-lines.lines-2 { font-size:clamp(34px,10vw,52px); }
  body.tcp-exact-build .page .case-hero h1.case-title-lines.lines-3 { font-size:clamp(28px,8.5vw,44px); }
}
@media (max-width:480px) {
  body.tcp-exact-build .page.tcp-home-build .hero h1 {
    font-size:clamp(30px,7.8vw,46px);
    transform:none;
  }
  body.tcp-exact-build .page .hero-copy {
    align-self:stretch;
    width:auto!important;
    max-width:none!important;
  }
  body.tcp-exact-build .page .case-hero h1.case-title-lines.lines-1 {
    font-size:clamp(25px,var(--case-title-mobile,10.6vw),46px);
  }
  body.tcp-exact-build .page .case-hero h1.vhs-title:not(.case-title-lines) {
    font-size:clamp(34px,10.6vw,46px);
  }
}

/* Native Elementor document structure (v3). Every visible section is built
   from containers and editable Elementor widgets; these selectors bridge the
   small wrapper differences from the approved front-end design. */
body.tcp-exact-build .page .tcp-native-block.e-con,
body.tcp-exact-build .page .tcp-native-block > .e-con { width:100%; }
body.tcp-exact-build .page .header-inner.e-con,
body.tcp-exact-build .page .hero-content.e-con,
body.tcp-exact-build .page .archive-inner.e-con,
body.tcp-exact-build .page .submit-inner.e-con,
body.tcp-exact-build .page .footer-inner.e-con {
  width:min(1120px,calc(100% - 80px));
  margin-inline:auto;
}
body.tcp-exact-build .page .header-inner.e-con,
body.tcp-exact-build .page .footer-top.e-con,
body.tcp-exact-build .page .footer-bottom.e-con { display:flex; flex-direction:row!important; }
body.tcp-exact-build .page .header-inner.e-con { align-items:center; justify-content:space-between; }
body.tcp-exact-build .page .footer-top.e-con,
body.tcp-exact-build .page .footer-bottom.e-con { justify-content:space-between; gap:40px!important; }
body.tcp-exact-build .page .nav.e-con { display:flex; flex-direction:row!important; align-items:center; width:auto; gap:30px!important; }
body.tcp-exact-build .page .brand.elementor-widget-image { width:auto; }
body.tcp-exact-build .page .brand .elementor-widget-container,
body.tcp-exact-build .page .brand a { display:block; line-height:0; }
body.tcp-exact-build .page .nav-link,
body.tcp-exact-build .page .youtube-link,
body.tcp-exact-build .page .menu-button { width:auto; }
body.tcp-exact-build .page .nav > .elementor-widget { width:auto; }
body.tcp-exact-build .page .nav-link .elementor-button,
body.tcp-exact-build .page .nav > .elementor-widget-button .elementor-button,
body.tcp-exact-build .page .menu-button .elementor-button {
  min-height:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--paper);
  box-shadow:none;
  font:400 13px/1 var(--vcr);
  letter-spacing:.04em;
  transition:color .3s ease,opacity .3s ease,text-shadow .3s ease;
}
body.tcp-exact-build .page .menu-button .elementor-button-text {
  transition:opacity .3s ease,transform .3s cubic-bezier(.22,1,.36,1);
}
body.tcp-exact-build .page .menu-button .elementor-button-text.is-changing {
  opacity:0;
  transform:translateY(-8px);
}
body.tcp-exact-build .page .youtube-link .elementor-icon {
  padding:0;
  border:0;
  color:var(--paper);
  font-size:25px;
}
body.tcp-exact-build .page .hero-content.e-con { display:flex; }
body.tcp-exact-build .page .vhs-title .elementor-heading-title {
  position:relative;
  color:#e6e7e4;
  font:400 clamp(44px,5.8vw,82px)/.92 var(--vcr);
  letter-spacing:-.035em;
  margin:0 0 28px;
}
body.tcp-exact-build .page .elementor-heading-title { color:inherit; }
body.tcp-exact-build .page .case-hero .vhs-title .elementor-heading-title { margin-bottom:27px; }
body.tcp-exact-build .page .static-hero .vhs-title .elementor-heading-title { margin-bottom:0; }
body.tcp-exact-build .page .hero-copy p { margin:0; color:#b3b1ad; }
body.tcp-exact-build .page .hero-actions.e-con { display:flex; flex-direction:row!important; width:auto; gap:32px!important; }
body.tcp-exact-build .page .button { width:auto; padding:0; border:0; background:transparent; }
body.tcp-exact-build .page .button .elementor-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:16px 18px;
  border:1px solid;
  border-radius:0;
  font:400 13px/1 var(--vcr);
  letter-spacing:.03em;
  transition:background-color .3s ease,color .3s ease,box-shadow .3s ease,border-color .3s ease;
}
body.tcp-exact-build .page .button.primary .elementor-button,
body.tcp-exact-build .page .button.light .elementor-button { background:var(--paper); color:#111; border-color:var(--paper); }
body.tcp-exact-build .page .button.secondary .elementor-button { background:transparent; color:var(--paper); border-color:#646464; }
body.tcp-exact-build .page .button .elementor-button:hover {
  background:#d8d8d5;
  color:#080808;
  box-shadow:-4px 0 12px rgba(26,214,218,.35),4px 0 12px rgba(241,57,201,.35);
}
body.tcp-exact-build .page .submit-inner.e-con,
body.tcp-exact-build .page .appeal-inner.e-con { display:grid; }
body.tcp-exact-build .page .submit-inner.e-con { grid-template-columns:1.1fr .9fr; gap:8vw!important; }
body.tcp-exact-build .page .appeal-inner.e-con { grid-template-columns:1.1fr .9fr; gap:9vw!important; }
body.tcp-exact-build .page .section-intro.e-con { display:block; }
body.tcp-exact-build .page .section-intro .elementor-heading-title { font:400 clamp(31px,3.5vw,44px)/.95 var(--vcr); letter-spacing:-.025em; }
body.tcp-exact-build .page .case-hero-meta.e-con { display:flex; flex-direction:row!important; width:auto; gap:14px!important; }
body.tcp-exact-build .page .case-hero-meta .elementor-widget { width:auto; color:inherit; font:inherit; }
body.tcp-exact-build .page .case-hero-meta .elementor-widget-container,
body.tcp-exact-build .page .case-hero-meta span,
body.tcp-exact-build .page .case-hero-meta i { margin:0; color:inherit; font:inherit; }
body.tcp-exact-build .page .story-grid.e-con { display:grid; gap:42px!important; }
body.tcp-exact-build .page .story-copy.e-con { display:block; }
body.tcp-exact-build .page .story-copy > .elementor-widget-text-editor:not(:last-child) { margin-bottom:25px; }
body.tcp-exact-build .page .story-copy h3.elementor-heading-title { margin:0 0 26px; }
body.tcp-exact-build .page .story-copy p { margin:0; }
body.tcp-exact-build .page .story-copy p { color:#cfceca!important; }
body.tcp-exact-build .page .evidence.e-con { display:flex; }
body.tcp-exact-build .page .evidence-media.e-con { display:block; width:100%; }
body.tcp-exact-build .page .evidence-media .elementor-widget-image,
body.tcp-exact-build .page .evidence-media .elementor-widget-container,
body.tcp-exact-build .page .evidence-media a { width:100%; height:100%; display:block; }
body.tcp-exact-build .page .evidence-media img { width:100%; height:100%; object-fit:cover; }
body.tcp-exact-build .page figcaption.e-con { display:block; }
body.tcp-exact-build .page figcaption .elementor-widget-text-editor,
body.tcp-exact-build .page figcaption .elementor-widget-container { width:100%; }
body.tcp-exact-build .page blockquote.e-con { display:block; }
body.tcp-exact-build .page blockquote > .elementor-widget-text-editor:first-child { margin-bottom:20px; }
body.tcp-exact-build .page blockquote p { margin:0; }
body.tcp-exact-build .page .video-poster.elementor-widget-image {
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  cursor:pointer;
  border:1px solid #3b3b3b;
  background:#111;
}
body.tcp-exact-build .page .video-poster .elementor-widget-container,
body.tcp-exact-build .page .video-poster a { display:block; width:100%; height:100%; position:relative; }
body.tcp-exact-build .page .video-poster img { width:100%; height:100%; object-fit:cover; transition:transform .45s,filter .45s; }
body.tcp-exact-build .page .video-poster .elementor-widget-container::before {
  content:"";
  position:absolute;
  z-index:4;
  left:50%; top:50%;
  width:78px; height:78px;
  transform:translate(-50%,-50%);
  border:1px solid rgba(255,255,255,.75);
  border-radius:50%;
  background:rgba(0,0,0,.42);
  transition:transform .3s ease,box-shadow .3s ease;
  pointer-events:none;
}
body.tcp-exact-build .page .video-poster .elementor-widget-container::after {
  content:"";
  position:absolute;
  z-index:5;
  left:calc(50% + 4px); top:50%;
  transform:translate(-50%,-50%);
  border-top:11px solid transparent;
  border-bottom:11px solid transparent;
  border-left:18px solid var(--paper);
  pointer-events:none;
}
body.tcp-exact-build .page .video-poster:hover img { transform:scale(1.02); filter:saturate(.92) contrast(1.05); }
body.tcp-exact-build .page .video-poster:hover .elementor-widget-container::before { transform:translate(-50%,-50%) scale(1.08); box-shadow:var(--mono-glow); }

/* Embedded evidence players (for example Drive-hosted CCTV) receive the same
   play treatment automatically and open in the shared investigation lightbox. */
body.tcp-exact-build .page .video-evidence { position:relative; }
body.tcp-exact-build .page .embedded-video-trigger {
  position:absolute;
  z-index:6;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  cursor:pointer;
  color:var(--paper);
  background:rgba(0,0,0,.15);
  transition:background-color .3s ease;
}
body.tcp-exact-build .page .embedded-video-trigger:hover { background:rgba(0,0,0,.08); }
body.tcp-exact-build .page .embedded-video-trigger:hover .poster-play {
  transform:translate(-50%,-50%) scale(1.08);
  box-shadow:var(--mono-glow);
}

/* Let each investigation image or video thumbnail set its own natural height. */
body.tcp-exact-build .page .video-poster,
body.tcp-exact-build .page .evidence-media,
body.tcp-exact-build .page .evidence-media.video-evidence,
body.tcp-exact-build .page .evidence-media.video-evidence .video-poster {
  aspect-ratio:auto!important;
  height:auto!important;
  background:transparent!important;
}
body.tcp-exact-build .page .video-poster img,
body.tcp-exact-build .page .evidence-media img,
body.tcp-exact-build .page .evidence-media.video-evidence .video-poster img {
  width:100%!important;
  height:auto!important;
  object-fit:initial!important;
  object-position:center!important;
  background:transparent!important;
  display:block;
}
body.tcp-exact-build .page .video-poster .elementor-widget-container,
body.tcp-exact-build .page .video-poster a,
body.tcp-exact-build .page .evidence-media .elementor-widget-image,
body.tcp-exact-build .page .evidence-media .elementor-widget-container,
body.tcp-exact-build .page .evidence-media a {
  height:auto!important;
}
body.tcp-exact-build .page .evidence-media iframe {
  display:block;
  width:100%;
  height:auto!important;
  aspect-ratio:16/9;
}
body.tcp-exact-build .page .video-privacy-note p { margin:12px 0 0; color:#858480; font-size:11px; line-height:1.55; }
body.tcp-exact-build .page .sources-toggle { display:block; width:100%; padding:0; }
body.tcp-exact-build .page .sources-toggle .elementor-button {
  display:flex;
  width:100%;
  justify-content:space-between;
  padding:28px 3px;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--paper);
  font:400 18px/1.3 var(--vcr);
  text-align:left;
}
body.tcp-exact-build .page .sources-toggle .elementor-button::after { content:"+"; font-size:23px; transition:transform .3s cubic-bezier(.22,1,.36,1); }
body.tcp-exact-build .page .sources-disclosure.is-open .sources-toggle .elementor-button::after { transform:rotate(45deg); }
body.tcp-exact-build .page .sources-panel.e-con { display:grid; }
body.tcp-exact-build .page .sources-panel > .e-con { min-height:0; overflow:hidden; }
body.tcp-exact-build .page .content-page > .e-con + .e-con { margin-top:72px!important; }
body.tcp-exact-build .page .content-heading.e-con,
body.tcp-exact-build .page .content-intro.e-con,
body.tcp-exact-build .page .about-copy.e-con { display:block; max-width:820px; }
body.tcp-exact-build .page .content-heading > .elementor-widget + .elementor-widget,
body.tcp-exact-build .page .content-intro > .elementor-widget + .elementor-widget,
body.tcp-exact-build .page .about-copy > .elementor-widget + .elementor-widget { margin-top:25px; }
body.tcp-exact-build .page .cross-cta.e-con { display:block; }
body.tcp-exact-build .page .cross-cta > .elementor-widget + .elementor-widget,
body.tcp-exact-build .page .cross-cta > .e-con + .elementor-widget { margin-top:28px; }
body.tcp-exact-build .page .dual-actions.e-con { display:flex; flex-direction:row!important; gap:18px!important; }
body.tcp-exact-build .page .testimonials.e-con { display:block; }
body.tcp-exact-build .page .testimonial-grid.e-con { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px!important; }
body.tcp-exact-build .page .testimonial-grid blockquote.e-con { display:block; }

@media (max-width:850px) {
  body.tcp-exact-build .page .header-inner.e-con,
  body.tcp-exact-build .page .hero-content.e-con,
  body.tcp-exact-build .page .archive-inner.e-con,
  body.tcp-exact-build .page .submit-inner.e-con,
  body.tcp-exact-build .page .footer-inner.e-con { width:calc(100% - 44px); }
  body.tcp-exact-build .page .nav.e-con { display:none; }
  body.tcp-exact-build .page .nav.e-con.open { display:flex; flex-direction:column!important; align-items:flex-start; }
  body.tcp-exact-build .page .menu-button { display:block; }
  body.tcp-exact-build .page .menu-button .elementor-button { font-size:12px; }
  body.tcp-exact-build .page .hero-actions.e-con { flex-direction:column!important; gap:18px!important; }
  body.tcp-exact-build .page .submit-inner.e-con { grid-template-columns:1fr; gap:36px!important; }
  body.tcp-exact-build .page .appeal-inner.e-con { grid-template-columns:1fr; gap:34px!important; }
  body.tcp-exact-build .page .story-grid.e-con { gap:32px!important; }
  body.tcp-exact-build .page .testimonial-grid.e-con { grid-template-columns:1fr; }
  body.tcp-exact-build .page .footer-top.e-con { flex-direction:column!important; }
  body.tcp-exact-build .page .content-page > .e-con + .e-con { margin-top:58px!important; }
}

/* Native-layout regression repairs. */
body.tcp-exact-build .page .case-summary .evidence.e-con {
  width:86%!important;
  margin-inline:auto!important;
}
body.tcp-exact-build .page .case-summary .story-grid.e-con {
  gap:72px!important;
}
body.tcp-exact-build .page .case-summary > .tcp-native-block:not(:last-child):has(> .evidence),
body.tcp-exact-build .page .case-summary > .tcp-native-block:not(:last-child):has(> .tcp-blockquote),
body.tcp-exact-build .page .case-summary > .tcp-block-evidence:not(:last-child),
body.tcp-exact-build .page .case-summary > .tcp-block-quote:not(:last-child) {
  margin-bottom:72px!important;
}
/* The final summary block owns the same section gap as every earlier block.
   Moving the gap out of Sources keeps duplicated/new Elementor sections
   consistent regardless of which content type ends the article. */
body.tcp-exact-build .page .case-summary > .tcp-native-block:last-child {
  margin-bottom:72px!important;
}
/* A section originally generated as the final story keeps `last-story` when a
   user later adds another Elementor block beneath it. Restore the standard
   narrative gap whenever that section is no longer actually last. */
body.tcp-exact-build .page .case-summary > .tcp-native-block:not(:last-child)
  .story-grid.last-story {
  margin-bottom:72px!important;
}
body.tcp-exact-build .page .sources.e-con {
  padding-top:0!important;
}
body.tcp-exact-build .page .case-appeal .appeal-inner.case-container.e-con {
  width:min(1120px,calc(100% - 80px))!important;
  max-width:none!important;
  margin-inline:auto!important;
}
body.tcp-exact-build .page .sources-heading .sources-toggle {
  width:100%;
  min-height:80px;
  cursor:pointer;
  display:grid;
  grid-template-columns:1fr auto auto;
  align-items:center;
  gap:28px;
  padding:28px 3px;
  color:var(--paper);
  background:transparent!important;
  border:0;
  border-radius:0;
  text-align:left;
  font:400 18px/1.3 var(--vcr);
}
body.tcp-exact-build .page .sources-heading .sources-toggle small {
  color:#858480;
  font-size:12px;
}
body.tcp-exact-build .page .sources-heading .sources-toggle i {
  font-size:23px;
  font-style:normal;
}
body.tcp-exact-build .page .sources-heading .sources-toggle:hover,
body.tcp-exact-build .page .sources-heading .sources-toggle:focus-visible {
  color:var(--paper);
  background:transparent!important;
  box-shadow:none!important;
  text-shadow:var(--mono-glow);
  outline:none;
}

/* Keep interactive transitions consistent and limit button hover paint to the
   actual control rather than its full-width Elementor widget. */
body.tcp-exact-build .page a:not([data-reveal]):not(.tcp-reveal),
body.tcp-exact-build .page button:not([data-reveal]):not(.tcp-reveal),
body.tcp-exact-build .video-lightbox button {
  transition-duration:.3s!important;
}
body.tcp-exact-build .page .sources li a span {
  transition:text-shadow .3s ease;
}

/* CTA controls align with their copy; hero and archive actions stay centred. */
body.tcp-exact-build .page :is(.submit,.case-appeal,.cross-cta,.about-cta) .elementor-widget-button {
  width:max-content!important;
  max-width:100%;
  justify-self:start!important;
  align-self:start!important;
}
body.tcp-exact-build .page :is(.submit,.case-appeal,.cross-cta,.about-cta) .elementor-button-wrapper {
  text-align:left!important;
}
body.tcp-exact-build .page :is(.submit,.case-appeal,.cross-cta,.about-cta) .dual-actions {
  justify-content:flex-start!important;
}
body.tcp-exact-build .page .footer-inner.e-con {
  display:flex;
  flex-direction:column!important;
}
body.tcp-exact-build .page .footer-top.e-con {
  align-items:flex-start;
  padding-bottom:58px!important;
}
body.tcp-exact-build .page .footer-bottom.e-con {
  align-items:center;
  padding-top:23px!important;
  border-top:1px solid var(--line);
}
body.tcp-exact-build .page .about-copy.e-con { padding-bottom:72px!important; border-bottom:0!important; }
body.tcp-exact-build .page .testimonials.e-con > header.e-con {
  margin-bottom:34px!important;
}
body.tcp-exact-build .page .cross-cta.e-con {
  padding:44px!important;
  border:1px solid #383838;
  background:rgba(210,210,210,.07);
}
body.tcp-exact-build .page .cross-cta.e-con > * + * {
  margin-top:28px!important;
}

@media (max-width:850px) {
  body.tcp-exact-build .page .case-summary .evidence.e-con { width:100%!important; }
  body.tcp-exact-build .page .case-summary > .tcp-native-block:not(:last-child):has(> .evidence),
  body.tcp-exact-build .page .case-summary > .tcp-native-block:not(:last-child):has(> .tcp-blockquote),
  body.tcp-exact-build .page .case-summary > .tcp-block-evidence:not(:last-child),
  body.tcp-exact-build .page .case-summary > .tcp-block-quote:not(:last-child) { margin-bottom:58px!important; }
  body.tcp-exact-build .page .case-summary > .tcp-native-block:last-child { margin-bottom:58px!important; }
  body.tcp-exact-build .page .case-summary > .tcp-native-block:not(:last-child)
    .story-grid.last-story { margin-bottom:58px!important; }
  body.tcp-exact-build .page .case-summary .story-grid.e-con { gap:58px!important; }
  body.tcp-exact-build .page .case-appeal .appeal-inner.case-container.e-con { width:calc(100% - 44px)!important; }
  body.tcp-exact-build .page .sources-heading .sources-toggle { min-height:72px; gap:15px; font-size:15px; }
  body.tcp-exact-build .page .footer-top.e-con { padding-bottom:44px!important; }
  body.tcp-exact-build .page .about-copy.e-con { padding-bottom:58px!important; }
  body.tcp-exact-build .page .cross-cta.e-con { padding:30px 24px!important; }
}

/* Keep investigation prose rhythm consistent even when paragraph content is
   edited or split into additional Elementor paragraphs. Component paragraphs
   (quotes and evidence captions) retain their own spacing rules. */
body.tcp-exact-build .page .case-summary .elementor-widget-text-editor p {
  margin-top:0!important;
  margin-bottom:20px!important;
}
body.tcp-exact-build .page .case-summary :is(blockquote,figcaption,.evidence-caption) p {
  margin-bottom:0!important;
}

/* The shared section gap begins after the final line of prose. Elementor's
   text widget otherwise contributes its 20px paragraph margin on top of the
   72px container gap, making the space above media visibly larger. */
body.tcp-exact-build .page .case-summary .story-copy > .elementor-widget:last-child p:last-child {
  margin-bottom:0!important;
}

/* Launch refinements and global UAE template geometry. */
body.tcp-exact-build.menu-open { overflow:hidden; }
body.tcp-exact-build .elementor-location-header { position:relative; z-index:25; }
body.tcp-exact-build .elementor-location-header .site-header.e-con {
  display:flex;
  height:92px;
  position:fixed;
  inset:0 0 auto;
  z-index:25;
  padding:0!important;
  gap:0!important;
}
body.admin-bar.tcp-exact-build .elementor-location-header .site-header.e-con { top:32px; }
body.tcp-exact-build .elementor-location-header .site-header.e-con.compact { height:64px; }
body.tcp-exact-build .elementor-location-header .site-header.e-con > .tcp-native-block,
body.tcp-exact-build .elementor-location-header .site-header.e-con > .tcp-native-block > .elementor-widget-container { width:100%; }
body.tcp-exact-build .elementor-location-header .header-inner.e-con {
  width:min(1120px,calc(100% - 80px));
  margin-inline:auto;
  display:flex;
  flex-direction:row!important;
  align-items:center;
  justify-content:space-between;
}
body.tcp-exact-build .elementor-location-header .nav.e-con {
  display:flex;
  flex-direction:row!important;
  align-items:center;
  width:auto;
  gap:30px!important;
}
body.tcp-exact-build .elementor-location-header .nav > .elementor-widget,
body.tcp-exact-build .elementor-location-header :is(.nav-link,.youtube-link,.menu-button) { width:auto; }
body.tcp-exact-build .elementor-location-header :is(.nav-link,.nav > .elementor-widget-button,.menu-button) .elementor-button {
  min-width:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--paper);
  font:400 13px/1 var(--vcr);
  letter-spacing:.04em;
  transition:opacity .3s ease,text-shadow .3s ease;
}
body.tcp-exact-build .elementor-location-header .nav .elementor-button:hover {
  opacity:.9;
  background:transparent;
  color:var(--paper);
  box-shadow:none;
  text-shadow:-2px 0 5px rgba(43,212,217,.75),2px 0 5px rgba(240,75,216,.65);
}
body.tcp-exact-build .elementor-location-header .menu-button { display:none; }

/* UAE's Canvas compatibility renderer outputs the template contents directly,
   without an .elementor-location-header wrapper. */
body.tcp-exact-build .tcp-global-header.site-header.e-con {
  display:flex!important;
  height:92px;
  position:fixed;
  inset:0 0 auto;
  z-index:25;
  padding:0!important;
  gap:0!important;
}
body.admin-bar.tcp-exact-build .tcp-global-header.site-header.e-con { top:32px; }
body.tcp-exact-build .tcp-global-header.site-header.e-con.compact { height:64px; }
body.tcp-exact-build .tcp-global-header > .tcp-native-block,
body.tcp-exact-build .tcp-global-header > .tcp-native-block > .elementor-widget-container { width:100%; }
body.tcp-exact-build .tcp-global-header > .tcp-native-block {
  height:100%;
  min-height:0!important;
  padding:0!important;
  gap:0!important;
}
body.tcp-exact-build .tcp-global-header .header-inner.e-con {
  width:min(1120px,calc(100% - 80px));
  margin-inline:auto;
  height:100%;
  min-height:0!important;
  padding:0!important;
  gap:0!important;
  display:flex;
  flex-direction:row!important;
  align-items:center;
  justify-content:space-between;
}
body.tcp-exact-build .tcp-global-header .brand.elementor-widget-image { width:auto; }
body.tcp-exact-build .tcp-global-header .brand .elementor-widget-container,
body.tcp-exact-build .tcp-global-header .brand a { display:block; line-height:0; }
body.tcp-exact-build .tcp-global-header .nav.e-con { display:flex; flex-direction:row!important; align-items:center; width:auto; gap:30px!important; }
body.tcp-exact-build .tcp-global-header .nav > .elementor-widget,
body.tcp-exact-build .tcp-global-header :is(.youtube-link,.menu-button) { width:auto; }
body.tcp-exact-build .tcp-global-header :is(.nav > .elementor-widget-button,.menu-button) .elementor-button {
  min-width:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--paper);
  font:400 13px/1 var(--vcr);
  letter-spacing:.04em;
  transition:opacity .3s ease,text-shadow .3s ease;
}
body.tcp-exact-build .tcp-global-header .nav .elementor-button:hover { opacity:.9; background:transparent; color:var(--paper); box-shadow:none; text-shadow:-2px 0 5px rgba(43,212,217,.75),2px 0 5px rgba(240,75,216,.65); }
body.tcp-exact-build .tcp-global-header .youtube-link .elementor-icon {
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--paper);
  font-size:25px;
  transition:color .3s ease,text-shadow .3s ease,filter .3s ease;
}
body.tcp-exact-build .tcp-global-header .youtube-link .elementor-icon:hover { color:var(--paper); filter:drop-shadow(-2px 0 4px rgba(43,212,217,.7)) drop-shadow(2px 0 4px rgba(240,75,216,.6)); }
body.tcp-exact-build .tcp-global-header .menu-button { display:none; }

body.tcp-exact-build .elementor-location-footer { background:var(--ink); }
body.tcp-exact-build .elementor-location-footer > footer { padding:58px 0 24px; }
body.tcp-exact-build .elementor-location-footer .tcp-site-footer.e-con { display:block; padding:0!important; }
body.tcp-exact-build .elementor-location-footer .footer-inner.e-con {
  width:min(1120px,calc(100% - 80px));
  margin-inline:auto;
  display:flex;
  flex-direction:column!important;
}
body.tcp-exact-build .elementor-location-footer .footer-top.e-con { align-items:flex-start; padding-bottom:58px!important; }
body.tcp-exact-build .elementor-location-footer .footer-bottom.e-con { align-items:center; padding-top:23px!important; border-top:1px solid var(--line); }
body.tcp-exact-build .tcp-global-footer.e-con { display:block; padding:58px 0 24px!important; background:var(--ink); }
body.tcp-exact-build .tcp-global-footer > .tcp-native-block { width:100%; padding:0!important; gap:0!important; }
body.tcp-exact-build .tcp-global-footer .footer-inner.e-con { width:min(1120px,calc(100% - 80px)); margin-inline:auto; padding:0!important; gap:0!important; display:flex; flex-direction:column!important; }
body.tcp-exact-build .tcp-global-footer :is(.footer-top,.footer-bottom).e-con { display:flex; flex-direction:row!important; justify-content:space-between; gap:40px!important; }
body.tcp-exact-build .tcp-global-footer .footer-top.e-con { align-items:flex-start; padding:0 0 58px!important; }
body.tcp-exact-build .tcp-global-footer .footer-bottom.e-con { align-items:center; padding:23px 0 0!important; border-top:1px solid var(--line); }
body.tcp-exact-build .tcp-global-footer .footer-brand.elementor-widget-image { width:auto; }
body.tcp-exact-build .tcp-global-footer .footer-statement.e-con { display:flex; flex-direction:column!important; align-items:flex-end; width:auto; padding:0!important; gap:12px!important; }
body.tcp-exact-build .tcp-global-footer .footer-policy-links.e-con { display:flex; flex-direction:row!important; justify-content:flex-end; width:auto; padding:0!important; gap:18px!important; }
body.tcp-exact-build .tcp-global-footer .footer-policy-links > .elementor-widget { width:auto; }
body.tcp-exact-build .tcp-global-footer .footer-policy-links .elementor-button {
  min-height:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#8c8b88;
  box-shadow:none;
  font:400 12px/1.4 var(--vcr);
  transition:color .3s ease,text-shadow .3s ease;
}
body.tcp-exact-build .tcp-global-footer .footer-policy-links .elementor-button:hover { background:transparent; color:var(--paper); box-shadow:none; text-shadow:var(--mono-glow); }
body.tcp-exact-build .tcp-global-footer .youtube-link .elementor-icon { padding:0; border:0; border-radius:0; background:transparent; color:var(--paper); font-size:25px; }
.footer-statement { display:flex; flex-direction:column; align-items:flex-end; gap:12px; }
.footer-statement > p { text-align:right; color:#b4b3af; }
.footer-policy-links { display:flex; justify-content:flex-end; gap:18px; color:#8c8b88; font:400 12px/1.4 var(--vcr); }
.footer-policy-links a { transition:color .3s ease,text-shadow .3s ease; }
.footer-policy-links a:hover { color:var(--paper); text-shadow:var(--mono-glow); }

/* About sections retain the body rhythm without divider rules. */
body.tcp-exact-build .page.about-page .about-copy,
body.tcp-exact-build .page.about-page .about-copy.e-con { border-bottom:0!important; }
body.tcp-exact-build .page.about-page .tcp-element-about-standards,
body.tcp-exact-build .page.about-page .tcp-element-about-standards > .about-copy { width:100%; max-width:none!important; }
body.tcp-exact-build .page.about-page .tcp-element-about-research,
body.tcp-exact-build .page.about-page .tcp-element-about-research > .about-copy { width:100%; max-width:none!important; }
body.tcp-exact-build .page.about-page .about-copy.e-con { padding-bottom:0!important; }

/* Forms keep a clear edge around the form itself and align consent controls. */
body.tcp-exact-build .page.form-page :is(.tcp-element-contact-form,.tcp-element-case-submission-form) { margin-top:24px!important; }
body.tcp-exact-build .page.form-page :is(.tcp-element-contact-form,.tcp-element-case-submission-form) .tcp-form-grid > .full:last-child { margin-bottom:28px; }
body.tcp-exact-build .page.form-page .tcp-form-grid .consent .wpcf7-list-item > label {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:start;
  gap:12px;
  text-align:left;
}
body.tcp-exact-build .page.form-page .tcp-form-grid .consent input[type="checkbox"] { margin:3px 0 0!important; }

/* Privacy and cookie policies use the same boxed typography as other pages. */
.policy-page .content-page { padding-top:88px; padding-bottom:96px; }
.policy-content { width:100%; max-width:920px; }
.policy-content h2 { margin:56px 0 22px; font-size:clamp(23px,2.4vw,32px); line-height:1.18; }
.policy-content h2:first-child { margin-top:0; }
.policy-content h3 { margin:36px 0 16px; font-size:21px; font-weight:400; }
.policy-content :is(p,li) { color:#cfceca; font-size:16px; line-height:1.75; }
.policy-content p { margin:0 0 20px; }
.policy-content :is(ul,ol) { margin:0 0 26px; padding-left:24px; }
.policy-content a { border-bottom:1px solid #626262; transition:color .3s ease,text-shadow .3s ease,border-color .3s ease; }
.policy-content a:hover { color:#fff; border-color:#aaa; text-shadow:var(--mono-glow); }
.policy-content .cky-banner-element { display:inline-flex; padding:16px 18px; border:1px solid var(--paper); border-radius:0; background:var(--paper); color:#111; cursor:pointer; font:400 13px/1 var(--vcr); letter-spacing:.03em; transition:background-color .3s ease,color .3s ease,box-shadow .3s ease; }
.policy-content .cky-banner-element:hover { background:#d8d8d5; box-shadow:-4px 0 12px rgba(26,214,218,.35),4px 0 12px rgba(241,57,201,.35); }
.tcp-cookie-audit-fallback[hidden] { display:none!important; }
.tcp-cookie-audit-fallback { margin:4px 0 56px; border:1px solid #3a3a3a; font-family:var(--vcr)!important; font-weight:400!important; }
.cky-audit-table-element:has(.cky-cookie-audit-table,table) { margin-bottom:56px!important; }
.tcp-cookie-audit-row { display:grid; grid-template-columns:minmax(150px,.8fr) minmax(190px,1fr) minmax(90px,.55fr) minmax(260px,1.7fr); }
.tcp-cookie-audit-row + .tcp-cookie-audit-row { border-top:1px solid #3a3a3a; }
.tcp-cookie-audit-row > span { min-width:0; padding:15px 16px; color:#c8c7c3; font:400 13px/1.55 var(--vcr)!important; letter-spacing:.015em; overflow-wrap:anywhere; }
.tcp-cookie-audit-row > span + span { border-left:1px solid #3a3a3a; }
.tcp-cookie-audit-row.tcp-cookie-audit-head > span { color:var(--paper); background:#171717; font-size:12px; }
.tcp-cookie-audit-row > .elementor-widget { min-width:0; }
.tcp-cookie-audit-row > .elementor-widget + .elementor-widget { border-left:1px solid #3a3a3a; }
.tcp-cookie-audit-row > .elementor-widget > .elementor-widget-container { padding:15px 16px!important; }
.tcp-cookie-audit-row :is(span,p) { margin:0!important; padding:0!important; color:#c8c7c3!important; font:400 13px/1.55 var(--vcr)!important; letter-spacing:.015em!important; overflow-wrap:anywhere; }
.tcp-cookie-audit-row.tcp-cookie-audit-head > .elementor-widget { background:#171717; }
.tcp-cookie-audit-row.tcp-cookie-audit-head :is(span,p) { color:var(--paper)!important; font-size:12px!important; }

/* A fixed black veil makes navigation fade the entire viewport—including the
   UAE header and footer—rather than fading only the page document beneath it. */
body.tcp-exact-build::after {
  content:"";
  position:fixed;
  z-index:99999;
  inset:0;
  pointer-events:none;
  background:#000;
  opacity:1;
  transition:opacity .42s ease;
}
html.tcp-scroll-ready body.tcp-exact-build::after { opacity:0; }
html.tcp-scroll-ready body.tcp-exact-build.tcp-page-exit::after { opacity:1; }

/* CookieYes branding: banner, preference centre and revisit control. */
:is(.cky-consent-container,.cky-modal,.cky-preference-center,.cky-btn-revisit-wrapper,.cky-btn-revisit-wrapper *) { font-family:var(--vcr)!important; }
.cky-consent-container .cky-consent-bar,
.cky-modal .cky-preference-center { border:1px solid #3a3a3a!important; border-radius:0!important; background:#101010!important; color:var(--paper)!important; box-shadow:-8px 0 26px rgba(34,204,211,.1),8px 0 26px rgba(235,60,198,.1),0 22px 60px rgba(0,0,0,.55)!important; }
:is(.cky-consent-container,.cky-modal) :is(.cky-title,.cky-preference-title,.cky-accordion-header-des,.cky-accordion-header-des *,.cky-notice-des,.cky-notice-des *,.cky-preference-content-wrapper,.cky-preference-content-wrapper *,.cky-gpc-wrapper .cky-gpc-desc) { color:var(--paper)!important; }
:is(.cky-consent-container,.cky-modal) :is(.cky-notice-des,.cky-notice-des *,.cky-preference-content-wrapper,.cky-preference-content-wrapper *,.cky-accordion-header-des,.cky-accordion-header-des *) { color:#b8b7b3!important; }
:is(.cky-consent-container,.cky-modal) a { color:var(--paper)!important; transition:text-shadow .3s ease,opacity .3s ease!important; }
:is(.cky-consent-container,.cky-modal) a:hover { opacity:.9!important; text-shadow:var(--mono-glow)!important; }
.cky-btn { border-radius:0!important; font:400 12px/1 var(--vcr)!important; letter-spacing:.03em!important; transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease!important; }
.cky-btn-accept { border-color:var(--paper)!important; background:var(--paper)!important; color:#111!important; }
:is(.cky-btn-reject,.cky-btn-customize,.cky-btn-preferences) { border-color:#666!important; background:transparent!important; color:var(--paper)!important; }
.cky-btn:hover { opacity:1!important; background:#d8d8d5!important; color:#080808!important; box-shadow:-4px 0 12px rgba(26,214,218,.35),4px 0 12px rgba(241,57,201,.35)!important; }
.cky-modal :is(.cky-preference-header,.cky-preference-body-wrapper,.cky-accordion-wrapper,.cky-footer-wrapper) { background:#101010!important; border-color:#343434!important; }
.cky-modal .cky-footer-shadow { background:linear-gradient(180deg,rgba(16,16,16,0) 0%,#101010 100%)!important; }
.cky-modal [data-cky-tag="detail-powered-by"] { border-top:1px solid #343434!important; border-radius:0!important; background:#101010!important; color:#8c8b88!important; }
.cky-modal [data-cky-tag="detail-powered-by"] img { opacity:.66; filter:grayscale(1) invert(1); }
.cky-btn-close { color:var(--paper)!important; transition:filter .3s ease!important; }
.cky-btn-close:hover { filter:drop-shadow(-2px 0 4px rgba(43,212,217,.8)) drop-shadow(2px 0 4px rgba(240,75,216,.7)); }
.cky-btn-revisit-wrapper { width:46px!important; height:46px!important; border:1px solid #575757!important; border-radius:0!important; background:#111!important; box-shadow:-3px 0 10px rgba(26,214,218,.2),3px 0 10px rgba(241,57,201,.2)!important; transition:border-color .3s ease,box-shadow .3s ease!important; }
.cky-btn-revisit-wrapper:hover { border-color:#aaa!important; box-shadow:-4px 0 13px rgba(26,214,218,.38),4px 0 13px rgba(241,57,201,.38)!important; }

@media (max-width:850px) {
  body.tcp-exact-build .elementor-location-header .site-header.e-con,
  body.tcp-exact-build .elementor-location-header .site-header.e-con.compact { height:68px; }
  body.tcp-exact-build .elementor-location-header .header-inner.e-con,
  body.tcp-exact-build .elementor-location-footer .footer-inner.e-con { width:calc(100% - 44px); }
  body.tcp-exact-build .elementor-location-header .menu-button { display:block; position:relative; z-index:4; }
  body.tcp-exact-build .elementor-location-header .menu-button .elementor-button { font-size:12px; }
  body.tcp-exact-build .elementor-location-header .nav.e-con {
    display:flex;
    position:fixed;
    inset:0;
    width:100%;
    min-height:100vh;
    min-height:100dvh;
    padding:104px 22px 54px!important;
    flex-direction:column!important;
    align-items:flex-start;
    justify-content:center;
    gap:25px!important;
    background:rgba(8,8,8,.985);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .3s ease,visibility 0s linear .3s;
  }
  body.tcp-exact-build .elementor-location-header .nav.e-con.open { opacity:1; visibility:visible; pointer-events:auto; transition:opacity .3s ease,visibility 0s linear 0s; }
  body.tcp-exact-build .tcp-global-header.site-header.e-con,
  body.tcp-exact-build .tcp-global-header.site-header.e-con.compact { height:68px; }
  body.tcp-exact-build .tcp-global-header .header-inner.e-con,
  body.tcp-exact-build .tcp-global-footer .footer-inner.e-con { width:calc(100% - 44px); }
  body.tcp-exact-build .tcp-global-header .menu-button { display:block; position:relative; z-index:4; }
  body.tcp-exact-build .tcp-global-header .menu-button .elementor-button { font-size:12px; }
  body.tcp-exact-build .tcp-global-header .nav.e-con {
    display:flex;
    position:fixed;
    inset:0;
    width:100%;
    min-height:100vh;
    min-height:100dvh;
    padding:104px 22px 54px!important;
    flex-direction:column!important;
    align-items:flex-start;
    justify-content:center;
    gap:25px!important;
    background:rgba(8,8,8,.985);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .3s ease,visibility 0s linear .3s;
  }
  body.tcp-exact-build .tcp-global-header .nav.e-con.open { opacity:1; visibility:visible; pointer-events:auto; transition:opacity .3s ease,visibility 0s linear 0s; }
  body.tcp-exact-build .tcp-global-footer.e-con { padding:48px 0 22px!important; }
  body.tcp-exact-build .tcp-global-footer .footer-top.e-con { padding-bottom:44px!important; }
  body.tcp-exact-build .tcp-global-footer .footer-top.e-con { flex-direction:column!important; align-items:center; gap:30px!important; padding:0 0 44px!important; }
  body.tcp-exact-build .tcp-global-footer .footer-bottom.e-con { flex-direction:row!important; align-items:center; gap:24px!important; padding:20px 0 0!important; }
  body.tcp-exact-build .tcp-global-footer .footer-brand.elementor-widget-image { width:auto!important; }
  body.tcp-exact-build .tcp-global-footer .footer-statement.e-con { width:100%; align-items:center; }
  body.tcp-exact-build .tcp-global-footer .footer-statement p { text-align:center!important; }
  body.tcp-exact-build .tcp-global-footer .footer-policy-links.e-con { justify-content:center; flex-wrap:wrap; }
  body.tcp-exact-build .elementor-location-footer .footer-top.e-con { padding-bottom:44px!important; }
  .footer-statement { align-items:flex-start; }
  .footer-statement > p { text-align:left; }
  .footer-policy-links { justify-content:flex-start; }
  .policy-page .content-page { padding-top:64px; padding-bottom:76px; }
  .policy-content :is(p,li) { font-size:15px; }
  .tcp-cookie-audit-row { grid-template-columns:1fr; }
  .tcp-cookie-audit-row > span { padding:12px 14px; }
  .tcp-cookie-audit-row > span + span { border-left:0; border-top:1px solid #303030; }
  .tcp-cookie-audit-row > .elementor-widget + .elementor-widget { border-left:0; border-top:1px solid #303030; }
  .tcp-cookie-audit-row > .elementor-widget > .elementor-widget-container { padding:12px 14px!important; }
  .tcp-cookie-audit-row:not(.tcp-cookie-audit-head) > span::before { display:block; margin-bottom:4px; color:#858480; font-size:11px; }
  .tcp-cookie-audit-row:not(.tcp-cookie-audit-head) > :is(span,.elementor-widget):nth-child(1)::before { content:"COOKIE / SERVICE"; }
  .tcp-cookie-audit-row:not(.tcp-cookie-audit-head) > :is(span,.elementor-widget):nth-child(2)::before { content:"CATEGORY"; }
  .tcp-cookie-audit-row:not(.tcp-cookie-audit-head) > :is(span,.elementor-widget):nth-child(3)::before { content:"DURATION"; }
  .tcp-cookie-audit-row:not(.tcp-cookie-audit-head) > :is(span,.elementor-widget):nth-child(4)::before { content:"PURPOSE"; }
  .tcp-cookie-audit-row:not(.tcp-cookie-audit-head) > .elementor-widget::before { display:block; padding:10px 14px 0; color:#858480; font:400 11px/1.4 var(--vcr); }
  .tcp-cookie-audit-head { display:none; }
  .cky-btn-revisit-wrapper.cky-revisit-bottom-left { left:14px!important; bottom:76px!important; }
}
@media (max-width:782px) {
  body.admin-bar.tcp-exact-build .elementor-location-header .site-header.e-con,
  body.admin-bar.tcp-exact-build .tcp-global-header.site-header.e-con { top:46px; }
}

/* The temporary front page must paint the entire visual viewport. */
html:has(body.tcp-construction-page),
body.tcp-construction-page {
  min-height:100%;
  background:#090909!important;
}
body.tcp-construction-page::before {
  content:"";
  position:fixed;
  z-index:-1;
  inset:0;
  background:#090909;
}
body.tcp-construction-page .elementor.elementor-1951,
body.tcp-construction-page .elementor.elementor-1951 > .e-con,
body.tcp-construction-page .elementor.elementor-1951 > .elementor-element {
  min-height:100vh!important;
  min-height:100svh!important;
  background-color:#090909!important;
}
body.admin-bar.tcp-construction-page .elementor.elementor-1951,
body.admin-bar.tcp-construction-page .elementor.elementor-1951 > .e-con,
body.admin-bar.tcp-construction-page .elementor.elementor-1951 > .elementor-element {
  min-height:calc(100svh - 32px)!important;
}
@media (max-width:782px) {
  body.admin-bar.tcp-construction-page .elementor.elementor-1951,
  body.admin-bar.tcp-construction-page .elementor.elementor-1951 > .e-con,
  body.admin-bar.tcp-construction-page .elementor.elementor-1951 > .elementor-element {
    min-height:calc(100svh - 46px)!important;
  }
}
