/* global window */
// ════════════════════════════════════════════════════════════
// FORMATS — full data for Moto.it ADV mini-site (hi-fi)
// ════════════════════════════════════════════════════════════

const CATEGORIES = [
  { key: "all",      label: "Tutti",      label_en: "All" },
  { key: "display",  label: "Display",    label_en: "Display" },
  { key: "rich",     label: "Rich Media", label_en: "Rich Media" },
  { key: "takeover", label: "Takeover",   label_en: "Takeover" },
  { key: "skin",     label: "Skin",       label_en: "Skin" },
  { key: "native",   label: "Native",     label_en: "Native" },
  { key: "video",    label: "Video",      label_en: "Video" },
  { key: "dem",      label: "Email",      label_en: "Email" },
];

const DEVICES = ["Desktop", "Mobile"];

const FORMATS = [
  // ── Display ───────────────────────────────────────────────
  {
    id: "leaderboard-desktop", name: "Leaderboard Desktop", cat: "display", catLabel: "DISPLAY",
    device: "Desktop", kind: "leaderboard", dim: "728×90", w: 728, h: 90, weight: "150 KB",
    files: "JPG, PNG, GIF, HTML5, third-party tag",
    specs: { Audio: "Non ammesso", "Safecount URL": "Consentito", "3rd-Party Impression Tracking": "Consentito" },
    specs_en: { Audio: "Not allowed", "Safecount URL": "Allowed", "3rd-Party Impression Tracking": "Allowed" },
    materials: ["Immagine 728×90 (JPG/PNG/GIF)", "Click URL univoco", "Impression tag (opzionale)"],
    materials_en: ["Image 728×90 (JPG/PNG/GIF)", "Unique click URL", "Impression tag (optional)"],
    note: "Per HTML5 fornire anche una versione fallback statica.",
    note_en: "For HTML5 creatives, also provide a static fallback image.",
  },
  {
    id: "leaderboard-mobile", name: "Leaderboard Mobile", cat: "display", catLabel: "DISPLAY",
    device: "Mobile", kind: "mobile-top", dim: "320×50", w: 320, h: 50, weight: "80 KB",
    files: "JPG, PNG, GIF, HTML5",
    specs: { Audio: "Non ammesso", "Safecount URL": "Consentito", "3rd-Party Impression Tracking": "Consentito" },
    specs_en: { Audio: "Not allowed", "Safecount URL": "Allowed", "3rd-Party Impression Tracking": "Allowed" },
    materials: ["Immagine 320×50 (JPG/PNG/GIF)", "Click URL univoco"],
    materials_en: ["Image 320×50 (JPG/PNG/GIF)", "Unique click URL"],
    note: "Formato sticky in fondo allo schermo: evitare testo ai bordi.",
    note_en: "Sticky format at the bottom of the screen: avoid text near the edges.",
  },
  {
    id: "masthead-desktop", name: "Masthead Desktop", cat: "display", catLabel: "DISPLAY",
    device: "Desktop", kind: "masthead", dim: "970×250", w: 970, h: 250, weight: "200 KB",
    files: "JPG, PNG, GIF, HTML5, third-party tag",
    specs: { Audio: "On click only", "Safecount URL": "Consentito", "3rd-Party Impression Tracking": "Consentito" },
    specs_en: { Audio: "On click only", "Safecount URL": "Allowed", "3rd-Party Impression Tracking": "Allowed" },
    materials: ["Immagine 970×250 (JPG/PNG)", "Click URL univoco", "Impression tag (1×1)", "Fallback statico se HTML5"],
    materials_en: ["Image 970×250 (JPG/PNG)", "Unique click URL", "Impression tag (1×1)", "Static fallback if HTML5"],
    note: "Per Javascript redirect: fornire il formato in anticipo per certificazione.",
    note_en: "For JavaScript redirect: provide the creative in advance for certification.",
  },
  {
    id: "masthead-mobile", name: "Masthead Mobile", cat: "display", catLabel: "DISPLAY",
    device: "Mobile", kind: "mobile-top", dim: "320×100", w: 320, h: 100, weight: "80 KB",
    files: "JPG, PNG, GIF, HTML5",
    specs: { Audio: "Non ammesso", "Safecount URL": "Consentito", "3rd-Party Impression Tracking": "Consentito" },
    specs_en: { Audio: "Not allowed", "Safecount URL": "Allowed", "3rd-Party Impression Tracking": "Allowed" },
    materials: ["Immagine 320×100 (JPG/PNG)", "Click URL univoco"],
    materials_en: ["Image 320×100 (JPG/PNG)", "Unique click URL"],
    note: "Posizionato in apertura pagina sotto l'header.",
    note_en: "Displayed at the top of the page, below the header.",
  },
  {
    id: "box-desktop", name: "Box", cat: "display", catLabel: "DISPLAY",
    device: "Desktop - Mobile", kind: "box", dim: "300×250", w: 300, h: 250, weight: "150 KB",
    files: "JPG, PNG, GIF, HTML5, third-party tag",
    specs: { Audio: "Non ammesso", "Safecount URL": "Consentito", "3rd-Party Impression Tracking": "Consentito" },
    specs_en: { Audio: "Not allowed", "Safecount URL": "Allowed", "3rd-Party Impression Tracking": "Allowed" },
    materials: ["Immagine 300×250 (JPG/PNG/GIF)", "Click URL univoco", "Impression tag (opzionale)"],
    materials_en: ["Image 300×250 (JPG/PNG/GIF)", "Unique click URL", "Impression tag (optional)"],
    note: "Formato sidebar classico. Evitare testo troppo vicino ai bordi.",
    note_en: "Classic sidebar format. Avoid text too close to the edges.",
  },
  {
    id: "halfpage-desktop", name: "Halfpage", cat: "display", catLabel: "DISPLAY",
    device: "Desktop", kind: "halfpage", dim: "300×600", w: 300, h: 600, weight: "200 KB",
    files: "JPG, PNG, GIF, HTML5, third-party tag",
    specs: { Audio: "Non ammesso", "Safecount URL": "Consentito", "3rd-Party Impression Tracking": "Consentito" },
    specs_en: { Audio: "Not allowed", "Safecount URL": "Allowed", "3rd-Party Impression Tracking": "Allowed" },
    materials: ["Immagine 300×600 (JPG/PNG/GIF)", "Click URL univoco", "Impression tag (opzionale)"],
    materials_en: ["Image 300×600 (JPG/PNG/GIF)", "Unique click URL", "Impression tag (optional)"],
    note: "Formato verticale di grande impatto. Occupa metà pagina in sidebar.",
    note_en: "High-impact vertical format. Occupies half the page in the sidebar.",
  },
  {
    id: "intext", name: "Intext", cat: "display", catLabel: "DISPLAY",
    device: "Desktop", kind: "intext", dim: "510×140", w: 510, h: 140, weight: "100 KB",
    files: "JPG, PNG, GIF",
    specs: { Audio: "Non ammesso", "Safecount URL": "Consentito", "3rd-Party Impression Tracking": "Consentito" },
    specs_en: { Audio: "Not allowed", "Safecount URL": "Allowed", "3rd-Party Impression Tracking": "Allowed" },
    materials: ["Immagine 510×140 (JPG/PNG)", "Click URL univoco"],
    materials_en: ["Image 510×140 (JPG/PNG)", "Unique click URL"],
    note: "Inserito tra i paragrafi dell'articolo: nessun contenuto sensibile ai bordi.",
    note_en: "Inserted between article paragraphs: avoid sensitive content near the edges.",
  },
  {
    id: "interstitial-mobile", name: "Interstitial Mobile", cat: "display", catLabel: "DISPLAY",
    device: "Mobile", kind: "mobile-interstitial", dim: "320×480", w: 320, h: 480, weight: "150 KB",
    files: "JPG, PNG",
    specs: { Audio: "On click only", "Safecount URL": "Consentito", "3rd-Party Impression Tracking": "Consentito" },
    specs_en: { Audio: "On click only", "Safecount URL": "Allowed", "3rd-Party Impression Tracking": "Allowed" },
    materials: ["Immagine 320×480 (JPG/PNG)", "Click URL univoco", "Pulsante chiusura visibile"],
    materials_en: ["Image 320×480 (JPG/PNG)", "Unique click URL", "Visible close button"],
    note: "Compare a tutto schermo: il tasto di chiusura deve essere sempre visibile.",
    note_en: "Full-screen format: the close button must always be visible.",
  },
  // ── Takeover ──────────────────────────────────────────────
  {
    id: "takeover", name: "Full Domination", cat: "takeover", catLabel: "TAKEOVER",
    device: "Desktop", kind: "takeover-pkg", dim: "Skin + Masthead + Box", w: 1800, h: 1050, weight: "300 KB / elem.",
    files: "JPG, PNG, HTML5",
    specs: {}, specs_en: {},
    specLinks: {},
    hideDimSchema: true,
    specGroups: [
      {
        title: "Formati desktop", title_en: "Desktop formats",
        chips: [
          { label: "Skin", value: "1800×1050", link: "skin-automotoit" },
          { label: "Masthead", value: "970×250", link: "masthead-desktop" },
          { label: "Box", value: "300×250", link: "box-rotator" },
        ]
      },
      {
        title: "Formati mobile", title_en: "Mobile formats",
        chips: [
          { label: "Masthead", value: "320×100", link: "masthead-mobile" },
          { label: "Box", value: "300×250", link: "box-rotator" },
        ]
      },
      {
        title: "Requisiti tecnici", title_en: "Technical requirements",
        chips: [
          { label: "Peso max", label_en: "Max weight", value: "300 KB / elemento", value_en: "300 KB / element" },
          { label: "File ammessi", label_en: "Accepted files", value: "JPG, PNG, HTML5" },
          { label: "Safe area", value: "Centrale 1000×600 libera", value_en: "Central 1000×600 clear" },
        ]
      }
    ],
    materials: ["Skin 1920×1080 (JPG/PNG)", "Masthead 970×250 (JPG/PNG)", "Box 300×250 (JPG/PNG/GIF)", "Background color HEX per skin", "Click URL per ciascun elemento"],
    materials_en: ["Skin 1920×1080 (JPG/PNG)", "Masthead 970×250 (JPG/PNG)", "Box 300×250 (JPG/PNG/GIF)", "Background color HEX for skin", "Click URL for each element"],
    note: "I tre formati vengono pubblicati simultaneamente sulla stessa pagina, garantendo la massima visibilità del brand. Consegnare tutti i materiali insieme almeno 3 giorni prima.",
    note_en: "The three formats are published simultaneously on the same page, ensuring maximum brand visibility. Deliver all materials together at least 3 business days in advance.",
  },
  {
    id: "takeover-mobile", name: "Full Domination Mobile", cat: "takeover", catLabel: "TAKEOVER",
    device: "Mobile", kind: "takeover-mobile", dim: "Masthead + Box", w: 320, h: 480, weight: "150 KB / elem.",
    files: "JPG, PNG, HTML5",
    specs: {}, specs_en: {},
    hideDimSchema: true,
    specGroups: [
      {
        title: "Formati inclusi", title_en: "Included formats",
        chips: [
          { label: "Masthead Mobile", value: "320×100", link: "masthead-mobile" },
          { label: "Box", value: "300×250", link: "box-desktop" },
        ]
      },
      {
        title: "Requisiti tecnici", title_en: "Technical requirements",
        chips: [
          { label: "Peso max", label_en: "Max weight", value: "150 KB / elemento", value_en: "150 KB / element" },
          { label: "File ammessi", label_en: "Accepted files", value: "JPG, PNG, HTML5" },
          { label: "Audio", value: "Non ammesso", value_en: "Not allowed" },
        ]
      }
    ],
    materials: ["Masthead 320×100 (JPG/PNG)", "Box 300×250 (JPG/PNG/GIF)", "Click URL per ciascun elemento"],
    materials_en: ["Masthead 320×100 (JPG/PNG)", "Box 300×250 (JPG/PNG/GIF)", "Click URL for each element"],
    note: "I due formati vengono pubblicati simultaneamente sulla stessa pagina mobile. Consegnare tutti i materiali insieme almeno 3 giorni prima.",
    note_en: "The two formats are published simultaneously on the same mobile page. Deliver all materials together at least 3 business days in advance.",
  },
  // ── Rich Media ────────────────────────────────────────────
  {
    id: "box-rotator", name: "Box Rotator / Cube", cat: "rich", catLabel: "RICH",
    device: "Desktop - Mobile", kind: "rotator", dim: "300×250", w: 300, h: 250, weight: "100 KB / frame",
    files: "JPG, GIF",
    specs: { Frame: "4 immagini a rotazione", "Peso": "Max 100 KB per immagine", Redirect: "Click URL per frame" },
    specs_en: { Frame: "4 rotating images", "Weight": "Max 100 KB per image", Redirect: "Click URL per frame" },
    materials: ["4 immagini 300×250 (JPG/GIF)", "Max 100 KB per immagine", "Click URL per ciascun frame", "Ordine di rotazione"],
    materials_en: ["4 images 300×250 (JPG/GIF)", "Max 100 KB per image", "Click URL for each frame", "Rotation order"],
    note: "Le 4 creatività ruotano in sequenza con effetto cube. Ogni frame può avere un click URL dedicato.",
    note_en: "The 4 creatives rotate in sequence with a cube effect. Each frame can have a dedicated click URL.",
  },
  {
    id: "halfpage-rotator", name: "Halfpage Rotator / Cube", cat: "rich", catLabel: "RICH",
    device: "Desktop", kind: "rotator", dim: "300×600", w: 300, h: 600, weight: "100 KB / frame",
    files: "JPG, GIF",
    specs: { Frame: "4 immagini a rotazione", "Peso": "Max 100 KB per immagine", Redirect: "Click URL per frame" },
    specs_en: { Frame: "4 rotating images", "Weight": "Max 100 KB per image", Redirect: "Click URL per frame" },
    materials: ["4 immagini 300×600 (JPG/GIF)", "Max 100 KB per immagine", "Click URL per ciascun frame", "Ordine di rotazione"],
    materials_en: ["4 images 300×600 (JPG/GIF)", "Max 100 KB per image", "Click URL for each frame", "Rotation order"],
    note: "Formato verticale a colonna. Le 4 creatività ruotano in sequenza con effetto cube.",
    note_en: "Vertical column format. The 4 creatives rotate in sequence with a cube effect.",
  },
  {
    id: "masthead-rotator", name: "Masthead Rotator / Cube", cat: "rich", catLabel: "RICH",
    device: "Desktop", kind: "rotator", dim: "970×250", w: 970, h: 250, weight: "100 KB / frame",
    files: "JPG, GIF",
    specs: { Frame: "4 immagini a rotazione", "Peso": "Max 100 KB per immagine", Redirect: "Click URL per frame" },
    specs_en: { Frame: "4 rotating images", "Weight": "Max 100 KB per image", Redirect: "Click URL per frame" },
    materials: ["4 immagini 970×250 (JPG/GIF)", "Max 100 KB per immagine", "Click URL per ciascun frame", "Ordine di rotazione"],
    materials_en: ["4 images 970×250 (JPG/GIF)", "Max 100 KB per image", "Click URL for each frame", "Rotation order"],
    note: "Banner orizzontale di apertura. Le 4 creatività ruotano in sequenza con effetto cube.",
    note_en: "Horizontal opening banner. The 4 creatives rotate in sequence with a cube effect.",
  },
  {
    id: "interscroller", name: "Interscroller Vertical", cat: "rich", catLabel: "RICH",
    device: "Mobile", kind: "interscroller", dim: "700×1600", w: 700, h: 1600, weight: "200 KB",
    files: "JPG, PNG, GIF",
    specs: { "Peso": "Max 200 KB", "Safecount URL": "Consentito", "3rd-Party Impression Tracking": "Consentito" },
    specs_en: { "Weight": "Max 200 KB", "Safecount URL": "Allowed", "3rd-Party Impression Tracking": "Allowed" },
    materials: ["Immagine background 700×1600 (JPG/PNG/GIF)", "Soggetto entro la safe area 700×879", "Click URL univoco", "Template PSD safe-area"],
    materials_en: ["Background image 700×1600 (JPG/PNG/GIF)", "Subject within safe area 700×879", "Unique click URL", "PSD safe-area template"],
    note: "Effetto reveal a tutto schermo durante lo scroll. Mantenere il soggetto entro la safe area visibile (700×879 px).",
    note_en: "Full-screen reveal effect while scrolling. Keep the subject within the visible safe area (700×879 px).",
    ctaButtons: [
      { label: "Scarica template ↓", href: "https://dem.moto.it/mailing/INTERSCROLLER-SAFE-AREA-TEMPLATE.psd" },
      { label: "Esempio Safe Area ↓", href: "https://dem.moto.it/mailing/INTERSCROLLER-SAFE-AREA-IMG.jpg" },
    ],
    ctaButtons_en: [
      { label: "Download template ↓", href: "https://dem.moto.it/mailing/INTERSCROLLER-SAFE-AREA-TEMPLATE.psd" },
      { label: "Safe Area example ↓", href: "https://dem.moto.it/mailing/INTERSCROLLER-SAFE-AREA-IMG.jpg" },
    ],
  },
  {
    id: "clipbanner", name: "Clipbanner", cat: "rich", catLabel: "RICH",
    device: "All", kind: "clipbanner", dim: "970×250px o 300×250px", w: 970, h: 250, weight: "",
    files: "MP4 + immagine BG",
    specs: { Video: "File MP4", Controlli: "Play / pausa / audio" },
    specs_en: { Video: "MP4 file", Controls: "Play / pause / audio" },
    materials: ["File video MP4 oppure URL embed", "Immagine di background", "Colore di sfondo (HEX)", "Click URL univoco"],
    materials_en: ["MP4 video file or embed URL", "Background image", "Background color (HEX)", "Unique click URL"],
    note: "Disponibile ma non ancora attivato sul network. Costruito su template Genecy (clipbanner): il video viene riprodotto in un riquadro sopra il background.",
    note_en: "Available but not yet activated on the network. Built on the Genecy (clipbanner) template: the video plays in a box overlaid on the background.",
  },
  // ── Skin ──────────────────────────────────────────────────
  {
    id: "skin-automotoit", name: "Skin Automoto.it e Moto.it", name_en: "Automoto.it & Moto.it Skin",
    cat: "skin", catLabel: "SKIN",
    device: "Desktop", kind: "skin", dim: "1800×1050", w: 1800, h: 1050, weight: "300 KB",
    files: "JPG, PNG",
    specs: {}, specs_en: {},
    materials: ["Skin PSD/PNG 1920×1080", "Background color HEX", "Click URL univoco"],
    materials_en: ["Skin PSD/PNG 1920×1080", "Background color HEX", "Unique click URL"],
    note: "Le aree laterali variano con la risoluzione: usare il template safe-area.",
    note_en: "Side areas vary with screen resolution: use the safe-area template.",
    ctaButtons: [
      { label: "Scarica template regular ↓", href: "http://dem.moto.it/mailing/2026-AMNetwork-SKIN-template-REGULAR.psd" },
      { label: "Scarica template large ↓", href: "https://dem.moto.it/mailing/2026-AMNetwork-SKIN-template-LARGE.psd" },
    ],
    ctaButtons_en: [
      { label: "Download regular template ↓", href: "http://dem.moto.it/mailing/2026-AMNetwork-SKIN-template-REGULAR.psd" },
      { label: "Download large template ↓", href: "https://dem.moto.it/mailing/2026-AMNetwork-SKIN-template-LARGE.psd" },
    ],
  },
  {
    id: "skin-vetrina", name: "Skin MOW", cat: "skin", catLabel: "SKIN",
    device: "Desktop", kind: "skin", dim: "1800×1050", w: 1800, h: 1050, weight: "300 KB",
    files: "JPG, PNG",
    specs: {}, specs_en: {},
    materials: ["Skin PSD/PNG", "Background color HEX", "Click URL univoco"],
    materials_en: ["Skin PSD/PNG", "Background color HEX", "Unique click URL"],
    note: "", note_en: "",
    ctaButtons: [
      { label: "Scarica template large ↓", href: "http://dem.moto.it/mailing/2026-Mowmag-Skin-Template.psd" },
    ],
    ctaButtons_en: [
      { label: "Download large template ↓", href: "http://dem.moto.it/mailing/2026-Mowmag-Skin-Template.psd" },
    ],
  },
  // ── Native ────────────────────────────────────────────────
  {
    id: "native", name: "Banner Native", name_en: "Native Ad", cat: "native", catLabel: "NATIVE",
    device: "All", kind: "native", dim: "1200×628 / 468×468", w: 1200, h: 628, weight: "200 KB / 150 KB",
    files: "JPG, GIF",
    specs: {}, specs_en: {},
    schemas: [
      { w: 1200, h: 628, label: "Orizzontale", label_en: "Horizontal" },
      { w: 468, h: 468, label: "Quadrato", label_en: "Square" },
    ],
    specGroups: [
      {
        title: "Formato orizzontale", title_en: "Horizontal format",
        chips: [
          { label: "Dimensioni", label_en: "Dimensions", value: "1200×628 px", mono: true, accent: true },
          { label: "File / Peso", label_en: "File / Weight", value: "JPG, GIF — max 200 KB" },
        ]
      },
      {
        title: "Formato quadrato", title_en: "Square format",
        chips: [
          { label: "Dimensioni", label_en: "Dimensions", value: "468×468 px", mono: true, accent: true },
          { label: "File / Peso", label_en: "File / Weight", value: "JPG, GIF — max 150 KB" },
        ]
      },
      {
        title: "Testi", title_en: "Copy",
        chips: [
          { label: "Titolo", label_en: "Title", value: "≤ 70 caratteri", value_en: "≤ 70 characters" },
          { label: "Descrizione", label_en: "Description", value: "≤ 130 caratteri", value_en: "≤ 130 characters" },
          { label: "Brand", value: "≤ 25 caratteri", value_en: "≤ 25 characters" },
        ]
      }
    ],
    materials: ["Immagine 1200×628 px (JPG/GIF, max 200 KB)", "Immagine 468×468 px (JPG/GIF, max 150 KB)", "Titolo (≤ 70 caratteri)", "Descrizione (≤ 130 caratteri)", "Nome brand (≤ 25 caratteri)", "Click URL univoco"],
    materials_en: ["Image 1200×628 px (JPG/GIF, max 200 KB)", "Image 468×468 px (JPG/GIF, max 150 KB)", "Title (≤ 70 characters)", "Description (≤ 130 characters)", "Brand name (≤ 25 characters)", "Unique click URL"],
    note: "Le immagini potranno subire dei ritagli al momento del caricamento in pagina, a seconda dell'ad position. Tenere il soggetto centrato.",
    note_en: "Images may be cropped when loaded on the page, depending on the ad position. Keep the subject centered.",
  },
  // ── Video ─────────────────────────────────────────────────
  {
    id: "video-preroll", name: "Video Preroll", cat: "video", catLabel: "VIDEO",
    device: "All", kind: "video", dim: "16:9", w: 1920, h: 1080, weight: "10 MB",
    files: "MP4, VAST/VPAID",
    specs: { Durata: "15 o 30 sec", Audio: "Ammesso", Risoluzione: "1920×1080 (16:9)" },
    specs_en: { Duration: "15 or 30 sec", Audio: "Allowed", Resolution: "1920×1080 (16:9)" },
    materials: ["File MP4 1920×1080", "oppure tag VAST", "Click URL univoco"],
    materials_en: ["MP4 file 1920×1080", "or VAST tag", "Unique click URL"],
    note: "Skip dopo 5 secondi. Bitrate consigliato 8 Mbps.",
    note_en: "Skippable after 5 seconds. Recommended bitrate: 8 Mbps.",
  },
  {
    id: "inread-video", name: "InRead Video", cat: "video", catLabel: "VIDEO",
    device: "All", kind: "video", dim: "16:9", w: 1920, h: 1080, weight: "10 MB",
    files: "MP4, VAST",
    specs: { Durata: "Max 30 sec", Audio: "On hover / click", Risoluzione: "1920×1080 (16:9)" },
    specs_en: { Duration: "Max 30 sec", Audio: "On hover / click", Resolution: "1920×1080 (16:9)" },
    materials: ["File MP4 16:9", "oppure tag VAST", "Click URL univoco"],
    materials_en: ["MP4 file 16:9", "or VAST tag", "Unique click URL"],
    note: "Parte in autoplay muto all'interno dell'articolo, senza audio iniziale.",
    note_en: "Autoplays muted within the article, with no initial audio.",
  },
  // ── Email / DEM ───────────────────────────────────────────
  {
    id: "dem", name: "DEM", cat: "dem", catLabel: "DEM",
    device: "Email", kind: "dem", dim: "MAX 750px", w: 750, h: 800, weight: "250 KB",
    files: "HTML, GIF, JPG",
    dimLabel: "Larghezza", dimLabel_en: "Width",
    specs: { Altezza: "Libera", Oggetto: "≤ 60 caratteri", Immagini: "Ospitate su server" },
    specs_en: { Height: "Unlimited", "Subject line": "≤ 60 characters", Images: "Server-hosted" },
    materials: ["File HTML (inline CSS)", "Immagini ospitate (URL)", "Oggetto email (≤ 60 car.)", "URL di destinazione", "Mail di preview/test"],
    materials_en: ["HTML file (inline CSS)", "Hosted images (URL)", "Email subject (≤ 60 char.)", "Destination URL", "Preview/test email"],
    note: "CSS inline obbligatorio. Forniamo URL di preview entro 24h.",
    note_en: "Inline CSS required. We provide a preview URL within 24 hours.",
  },
  {
    id: "sponsorship-nl", name: "Sponsorship Newsletter", cat: "dem", catLabel: "DEM",
    device: "Email", kind: "newsletter", dim: "600×200", w: 600, h: 200, weight: "80 KB",
    files: "JPG, PNG, HTML",
    specs: { Larghezza: "600px", Formato: "Banner 600×200", Oggetto: "Non richiesto", Immagini: "Ospitate o allegate" },
    specs_en: { Width: "600px", Format: "Banner 600×200", "Subject line": "Not required", Images: "Hosted or attached" },
    materials: ["Banner 600×200 (JPG/PNG)", "Click URL univoco", "Eventuale copy sponsor"],
    materials_en: ["Banner 600×200 (JPG/PNG)", "Unique click URL", "Sponsor copy (optional)"],
    note: "Spazio sponsor integrato nella newsletter Magazine.",
    note_en: "Sponsor slot integrated in the Magazine newsletter.",
  },
];

Object.assign(window, { FORMATS, CATEGORIES, DEVICES });
