{"id":27401375,"date":"2026-10-25T16:04:58","date_gmt":"2026-10-25T15:04:58","guid":{"rendered":"https:\/\/www.digiaccion.com\/?page_id=27401375"},"modified":"2026-10-25T16:12:33","modified_gmt":"2026-10-25T15:12:33","slug":"quotation-marks-symbols","status":"publish","type":"page","link":"https:\/\/www.digiaccion.com\/en\/quotation-marks-symbols\/","title":{"rendered":"Em dash and quotation marks to copy and paste: curly quotes, guillemets and apostrophes"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_flex_section preset--module--divi-section--default\">\n<div class=\"et_pb_row_0 et_pb_row et_flex_row preset--module--divi-row--default\">\n<div class=\"et_pb_column_0 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone preset--module--divi-column--default\">\n<div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><!-- DigiAcci\u00f3n | Herramienta: Quotation marks and writing symbols to copy | English | entrega v13 | 2026-10-20\n     Pegar tal cual en el m\u00f3dulo C\u00f3digo de la \u00fanica secci\u00f3n de la p\u00e1gina. Sin secci\u00f3n de contacto debajo: el c\u00f3digo\n     termina con su propio CTA (contacto y WhatsApp) y los servicios.\n     Los estilos se cargan desde verticales.css del hosting (v12). Dentro: HTML (ra\u00edz .dgv.dgt), JSON-LD\n     (WebApplication creada por DigiAcci\u00f3n + FAQPage) y JS. Sin caracteres de 4 bytes: los emojis van como entidades. -->\n<link rel=\"stylesheet\" id=\"dgv-css\" href=\"https:\/\/www.digiaccion.com\/wp-content\/uploads\/digiaccion-verticales\/verticales.css?v=12\">\n<div class=\"dgv dgt ui-no-swap\" lang=\"en\" data-dgv=\"herramienta-simbolos\" data-dgt=\"simbolos\">\n<svg class=\"dgv-sprite\" aria-hidden=\"true\" focusable=\"false\"><symbol id=\"dgv-i-arrow\" viewBox=\"0 0 24 24\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/symbol><symbol id=\"dgv-i-bed\" viewBox=\"0 0 24 24\"><path d=\"M3 18.5V6M3 14h18v4.5M21 14v-2.5a3 3 0 0 0-3-3h-7v5.5\"\/><circle cx=\"7\" cy=\"11\" r=\"2\"\/><\/symbol><symbol id=\"dgv-i-bolt\" viewBox=\"0 0 24 24\"><path d=\"M13 2.5 4.5 13.5H11l-1 8 8.5-11H12l1-8z\"\/><\/symbol><symbol id=\"dgv-i-briefcase\" viewBox=\"0 0 24 24\"><rect x=\"3.5\" y=\"7\" width=\"17\" height=\"12.5\" rx=\"2.5\"\/><path d=\"M9 7V5.5A1.5 1.5 0 0 1 10.5 4h3A1.5 1.5 0 0 1 15 5.5V7M3.5 12.5h17\"\/><\/symbol><symbol id=\"dgv-i-chart\" viewBox=\"0 0 24 24\"><path d=\"M4 19.5h16M7 16v-4M12 16V8M17 16V5\"\/><\/symbol><symbol id=\"dgv-i-check\" viewBox=\"0 0 24 24\"><path d=\"m5 12.5 4.5 4.5L19 7.5\"\/><\/symbol><symbol id=\"dgv-i-chev\" viewBox=\"0 0 24 24\"><path d=\"m6 9 6 6 6-6\"\/><\/symbol><symbol id=\"dgv-i-compass\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"4.5\" r=\"1.5\"\/><path d=\"M11.2 5.8 5.5 20M12.8 5.8 18.5 20M8 14h8\"\/><\/symbol><symbol id=\"dgv-i-copy\" viewBox=\"0 0 24 24\"><rect x=\"8.5\" y=\"8.5\" width=\"11\" height=\"11\" rx=\"2.2\"\/><path d=\"M15.5 8.5V6.7a2.2 2.2 0 0 0-2.2-2.2H6.7a2.2 2.2 0 0 0-2.2 2.2v6.6a2.2 2.2 0 0 0 2.2 2.2h1.8\"\/><\/symbol><symbol id=\"dgv-i-cpu\" viewBox=\"0 0 24 24\"><rect x=\"6\" y=\"6\" width=\"12\" height=\"12\" rx=\"2\"\/><rect x=\"9.5\" y=\"9.5\" width=\"5\" height=\"5\" rx=\"1\"\/><path d=\"M9.5 3v3M14.5 3v3M9.5 18v3M14.5 18v3M3 9.5h3M3 14.5h3M18 9.5h3M18 14.5h3\"\/><\/symbol><symbol id=\"dgv-i-crane\" viewBox=\"0 0 24 24\"><path d=\"M5 21V4l13 3H5M9 4l9 3M18 7v5M16.5 12h3v2.5h-3zM3 21h8\"\/><\/symbol><symbol id=\"dgv-i-dumbbell\" viewBox=\"0 0 24 24\"><path d=\"M6.5 6.5v11M17.5 6.5v11M3.5 9v6M20.5 9v6M6.5 12h11\"\/><\/symbol><symbol id=\"dgv-i-food\" viewBox=\"0 0 24 24\"><path d=\"M7 3v8M5 3v5a2 2 0 0 0 4 0V3M7 11v10M16.5 21V3c-2 1.5-3 4-3 7 0 1.5.8 2.5 3 2.5\"\/><\/symbol><symbol id=\"dgv-i-hanger\" viewBox=\"0 0 24 24\"><path d=\"M12 8.5a2 2 0 1 1 2-2c0 1-.8 1.4-1.4 1.8-.4.3-.6.6-.6 1.2v.5L3.5 15.5a1.5 1.5 0 0 0 .9 2.7h15.2a1.5 1.5 0 0 0 .9-2.7L12 10\"\/><\/symbol><symbol id=\"dgv-i-health\" viewBox=\"0 0 24 24\"><path d=\"M12 20s-7.5-4.6-7.5-10A4.3 4.3 0 0 1 12 7.5 4.3 4.3 0 0 1 19.5 10c0 5.4-7.5 10-7.5 10z\"\/><path d=\"M9.5 12h5M12 9.5v5\"\/><\/symbol><symbol id=\"dgv-i-home\" viewBox=\"0 0 24 24\"><path d=\"M3.5 11 12 4l8.5 7\"\/><path d=\"M5.5 9.5V20h13V9.5M10 20v-5.5h4V20\"\/><\/symbol><symbol id=\"dgv-i-kana\" viewBox=\"0 0 24 24\"><path d=\"M5 8h9M9.5 5c-.5 6-2 10-4.5 13M8 12c3 0 7 1 9 5M16 5.5l2.5 2.5\"\/><\/symbol><symbol id=\"dgv-i-layout\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2.5\"\/><path d=\"M3 9h18M9 9v11\"\/><\/symbol><symbol id=\"dgv-i-megaphone\" viewBox=\"0 0 24 24\"><path d=\"M4 10v4a1 1 0 0 0 1 1h2l6 4.5v-15L7 9H5a1 1 0 0 0-1 1z\"\/><path d=\"M16.5 9a4 4 0 0 1 0 6M19 6.5a7.5 7.5 0 0 1 0 11\"\/><\/symbol><symbol id=\"dgv-i-mountain\" viewBox=\"0 0 24 24\"><path d=\"M2.5 20 9 9.5l3.5 5.5 2.5-3.5 6.5 8.5z\"\/><circle cx=\"17\" cy=\"6\" r=\"2\"\/><\/symbol><symbol id=\"dgv-i-palette\" viewBox=\"0 0 24 24\"><path d=\"M12 3a9 9 0 1 0 0 18c1.1 0 1.8-.9 1.8-1.9 0-.5-.2-.9-.5-1.3-.3-.3-.5-.8-.5-1.3 0-1 .8-1.8 1.8-1.8H17a4 4 0 0 0 4-4C21 6.6 17 3 12 3z\"\/><circle cx=\"7.5\" cy=\"11\" r=\"1.1\"\/><circle cx=\"10.5\" cy=\"7.4\" r=\"1.1\"\/><circle cx=\"15\" cy=\"7.8\" r=\"1.1\"\/><\/symbol><symbol id=\"dgv-i-paw\" viewBox=\"0 0 24 24\"><circle cx=\"7\" cy=\"10\" r=\"1.8\"\/><circle cx=\"10.5\" cy=\"6.5\" r=\"1.8\"\/><circle cx=\"14.5\" cy=\"6.5\" r=\"1.8\"\/><circle cx=\"18\" cy=\"10\" r=\"1.8\"\/><path d=\"M12.5 11.5c-2.5 0-5 3.5-5 5.5 0 1.5 1 2.5 2.5 2.5 1 0 1.6-.5 2.5-.5s1.5.5 2.5.5c1.5 0 2.5-1 2.5-2.5 0-2-2.5-5.5-5-5.5z\"\/><\/symbol><symbol id=\"dgv-i-pen\" viewBox=\"0 0 24 24\"><path d=\"M12.5 19.5 19 13l-2.5-2.5L10 17v2.5zM15 9l-2-5-8 3 3 8 5-2M5 7l4 4\"\/><\/symbol><symbol id=\"dgv-i-ruler\" viewBox=\"0 0 24 24\"><rect x=\"2.5\" y=\"8\" width=\"19\" height=\"8\" rx=\"1.5\"\/><path d=\"M6.5 8v3M10 8v4.5M13.5 8v3M17 8v4.5\"\/><\/symbol><symbol id=\"dgv-i-scale\" viewBox=\"0 0 24 24\"><path d=\"M12 4v16M8 20h8M5 7h14M5 7l-2.5 6a2.5 2.5 0 0 0 5 0zM19 7l-2.5 6a2.5 2.5 0 0 0 5 0z\"\/><\/symbol><symbol id=\"dgv-i-search\" viewBox=\"0 0 24 24\"><circle cx=\"11\" cy=\"11\" r=\"7\"\/><path d=\"m20 20-3.5-3.5\"\/><\/symbol><symbol id=\"dgv-i-shop\" viewBox=\"0 0 24 24\"><path d=\"M4 9h16l-1.4-4.5H5.4zM5 9v11h14V9M9.5 20v-5.5h5V20\"\/><\/symbol><symbol id=\"dgv-i-smile\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"8.5\"\/><path d=\"M8.5 14.2c.9 1.3 2.1 2 3.5 2s2.6-.7 3.5-2\"\/><circle cx=\"9.2\" cy=\"10\" r=\".9\"\/><circle cx=\"14.8\" cy=\"10\" r=\".9\"\/><\/symbol><symbol id=\"dgv-i-sparkles\" viewBox=\"0 0 24 24\"><path d=\"M11 3.5l1.7 4.6 4.6 1.7-4.6 1.7L11 16.1l-1.7-4.6L4.7 9.8l4.6-1.7z\"\/><path d=\"M18 14.5l.8 2.1 2.1.8-2.1.8-.8 2.1-.8-2.1-2.1-.8 2.1-.8z\"\/><\/symbol><symbol id=\"dgv-i-star\" viewBox=\"0 0 24 24\"><path d=\"M12 2.8l2.8 5.8 6.3.9-4.6 4.4 1.1 6.3L12 17.3l-5.6 2.9 1.1-6.3L2.9 9.5l6.3-.9z\"\/><\/symbol><symbol id=\"dgv-i-target\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"8.5\"\/><circle cx=\"12\" cy=\"12\" r=\"4.5\"\/><circle cx=\"12\" cy=\"12\" r=\".6\"\/><\/symbol><symbol id=\"dgv-i-trash\" viewBox=\"0 0 24 24\"><path d=\"M5 7h14M10 7V5h4v2M7 7l1 12h8l1-12\"\/><\/symbol><symbol id=\"dgv-i-video\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"6\" width=\"13\" height=\"12\" rx=\"2.5\"\/><path d=\"m16 10 5-3v10l-5-3\"\/><\/symbol><symbol id=\"dgv-i-whatsapp\" viewBox=\"0 0 24 24\"><path d=\"M20 11.6A8.4 8.4 0 0 1 7.6 19L4 20l1-3.5A8.4 8.4 0 1 1 20 11.6z\"\/><path d=\"M9.3 8.4c.3-.4.7-.4 1-.4l.6 1.6c.1.2 0 .5-.1.6l-.5.6c.6 1.1 1.5 2 2.6 2.6l.6-.5c.2-.1.4-.2.6-.1l1.6.6c0 .4-.1.8-.4 1.1-.5.4-1.1.6-1.7.5-2.6-.5-4.6-2.5-5.1-5.1-.1-.6.1-1.1.5-1.5z\"\/><\/symbol><symbol id=\"dgv-i-wrench\" viewBox=\"0 0 24 24\"><path d=\"M14.5 5.5a4.5 4.5 0 0 0 5.6 5.6L12 19.2a2 2 0 0 1-2.8 0l-.4-.4a2 2 0 0 1 0-2.8l8.1-8.1\"\/><path d=\"M14.5 5.5 17 3l4 4-2.5 2.5\"\/><\/symbol><symbol id=\"dgv-i-x\" viewBox=\"0 0 24 24\"><path d=\"M6.5 6.5l11 11M17.5 6.5l-11 11\"\/><\/symbol><\/svg>\n<section class=\"dgv-sec dgt-hero\" aria-labelledby=\"dgt-h1\">\n<div class=\"dgv-fx\" aria-hidden=\"true\"><div class=\"dgv-beams dgv-beams--soft\"><\/div><\/div>\n<div class=\"dgv-wrap dgt-hero-in\" data-dgv-r>\n<p class=\"dgt-kicker\"><span class=\"dgv-live\" aria-hidden=\"true\"><\/span>Free tool by DigiAcci\u00f3n<\/p>\n<h1 class=\"dgt-h1\" id=\"dgt-h1\"><span class=\"dgv-grad\">Em dash and quotation marks to copy and paste: curly quotes, guillemets and apostrophes<\/span><\/h1>\n<p class=\"dgv-intro dgt-intro\">A free tool by DigiAcci\u00f3n, a digital marketing agency in Andorra. Copy quotation marks, primes, apostrophes, dashes and typographic symbols in one click with their Unicode, HTML and Alt codes, or paste a text to turn straight quotes into curly ones.<\/p>\n<ul class=\"dgt-badges\" role=\"list\"><li><svg class=\"dgv-i\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-check\"><\/use><\/svg>Free<\/li><li><svg class=\"dgv-i\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-check\"><\/use><\/svg>No sign-up<\/li><li><svg class=\"dgv-i\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-check\"><\/use><\/svg>One-click copy<\/li><\/ul>\n<\/div>\n<\/section>\n<section class=\"dgv-sec dgt-app-sec\" id=\"dgt-app\" aria-label=\"Tool\">\n<div class=\"dgv-wrap\">\n<div class=\"dgt-tool dgt-card\" data-dgt-grid data-detalle=\"simbolo\" data-ui=\"{&#34;copiado&#34;: &#34;Copied&#34;, &#34;f_simbolo&#34;: &#34;Symbol&#34;, &#34;calibrada&#34;: &#34;Ruler calibrated in this browser.&#34;, &#34;equiv&#34;: &#34;1 {u} = {px} px.&#34;, &#34;sin_calibrar&#34;: &#34;Not calibrated: the length is approximate. Press \\&#34;Calibrate\\&#34; to make it exact on your screen.&#34;, &#34;guardada&#34;: &#34;Calibration saved&#34;, &#34;aa_grande&#34;: &#34;AA large text&#34;, &#34;no_pasa&#34;: &#34;Fails&#34;, &#34;no_cabe&#34;: &#34;Up to {n} fits on your screen. Turn your phone sideways or use full screen.&#34;, &#34;pasa&#34;: &#34;Pass&#34;, &#34;jn_aprox&#34;: &#34;Spelled by sound: double-check it if it is for a tattoo or anything important.&#34;, &#34;jn_dic&#34;: &#34;Usual spelling in Japan.&#34;, &#34;regla_fija&#34;: &#34;Actual size {n} ruler&#34;}\">\n<div class=\"dgt-bar\">\n<label class=\"dgt-search\"><svg class=\"dgv-i\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-search\"><\/use><\/svg><span class=\"dgv-sr\">Search<\/span><input type=\"search\" placeholder=\"Search symbols by name\" autocomplete=\"off\" spellcheck=\"false\" data-dgt-q><\/label>\n<\/div>\n<div class=\"dgt-chips\" role=\"toolbar\" aria-label=\"Filter by group\"><button type=\"button\" class=\"is-on\" data-g=\"*\">All<\/button><button type=\"button\" data-g=\"comillas-latinas\">Guillemets<\/button><button type=\"button\" data-g=\"comillas-dobles\">Double \u201c\u00a0\u201d<\/button><button type=\"button\" data-g=\"comillas-simples\">Single \u2018\u00a0\u2019<\/button><button type=\"button\" data-g=\"comillas-decorativas\">Decorative<\/button><button type=\"button\" data-g=\"primas\">Primes \u2032\u00a0\u2033<\/button><button type=\"button\" data-g=\"apostrofos\">Apostrophes<\/button><button type=\"button\" data-g=\"puntuacion\">Punctuation<\/button><button type=\"button\" data-g=\"tipograficos\">Typographic<\/button><\/div>\n<div class=\"dgt-tray\" data-dgt-tray><span class=\"dgt-tray-l\">Your selection<\/span><output class=\"dgt-tray-t\" aria-live=\"polite\"><\/output><span class=\"dgt-tray-b\"><button type=\"button\" class=\"dgt-btn dgt-btn--pri\" data-act=\"copy-tray\"><svg class=\"dgv-i\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-copy\"><\/use><\/svg>Copy selection<\/button><button type=\"button\" class=\"dgt-btn\" data-act=\"clear-tray\" aria-label=\"Clear selection\"><svg class=\"dgv-i\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-trash\"><\/use><\/svg><\/button><\/span><\/div>\n<p class=\"dgt-empty\" data-dgt-empty hidden>No results for that search.<\/p>\n<section class=\"dgt-grp\" id=\"dgt-g-comillas-latinas\" data-g=\"comillas-latinas\" aria-labelledby=\"dgt-gh-comillas-latinas\">\n<div class=\"dgt-grp-h\"><h2 class=\"dgt-gh dgv-grad\" id=\"dgt-gh-comillas-latinas\">Guillemets \u00ab\u00a0\u00bb (angle quotation marks)<\/h2><p class=\"dgt-gd\">The quotation marks of French, Spanish and many other languages, plus the single guillemets \u2039\u00a0\u203a and a ready-made pair with room for your text.<\/p><\/div>\n<div class=\"dgt-grid\"><button type=\"button\" class=\"dgt-i\" data-c=\"AB\" aria-label=\"Left-pointing double angle quotation mark\" data-k=\"guillemet left french\" data-e=\"laquo\" data-a=\"174|0171\"><span class=\"dgt-g\">\u00ab<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"BB\" aria-label=\"Right-pointing double angle quotation mark\" data-k=\"guillemet right french\" data-e=\"raquo\" data-a=\"175|0187\"><span class=\"dgt-g\">\u00bb<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2039\" aria-label=\"Single left-pointing angle quotation mark\" data-k=\"single guillemet left\" data-e=\"lsaquo\" data-a=\"0139\"><span class=\"dgt-g\">\u2039<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"203A\" aria-label=\"Single right-pointing angle quotation mark\" data-k=\"single guillemet right\" data-e=\"rsaquo\" data-a=\"0155\"><span class=\"dgt-g\">\u203a<\/span><\/button><button type=\"button\" class=\"dgt-i dgt-i--w\" data-c=\"AB-20-20-BB\" aria-label=\"Guillemets with space for text\" data-k=\"pair\"><span class=\"dgt-g\">\u00ab  \u00bb<\/span><\/button><\/div>\n<\/section>\n<section class=\"dgt-grp\" id=\"dgt-g-comillas-dobles\" data-g=\"comillas-dobles\" aria-labelledby=\"dgt-gh-comillas-dobles\">\n<div class=\"dgt-grp-h\"><h2 class=\"dgt-gh dgv-grad\" id=\"dgt-gh-comillas-dobles\">Curly double quotes \u201c\u00a0\u201d and straight quotes<\/h2><p class=\"dgt-gd\">The standard quotation marks of American English, the low German mark and the straight quote used in code.<\/p><\/div>\n<div class=\"dgt-grid\"><button type=\"button\" class=\"dgt-i\" data-c=\"201C\" aria-label=\"Left double quotation mark\" data-k=\"smart curly quote open\" data-e=\"ldquo\" data-a=\"0147\"><span class=\"dgt-g\">\u201c<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"201D\" aria-label=\"Right double quotation mark\" data-k=\"smart curly quote close\" data-e=\"rdquo\" data-a=\"0148\"><span class=\"dgt-g\">\u201d<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"201E\" aria-label=\"Double low-9 quotation mark\" data-k=\"german low quote\" data-e=\"bdquo\" data-a=\"0132\"><span class=\"dgt-g\">\u201e<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"201F\" aria-label=\"Double high-reversed-9 quotation mark\" data-k=\"reversed quote\"><span class=\"dgt-g\">\u201f<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"22\" aria-label=\"Straight double quote (typewriter)\" data-k=\"straight dumb quote keyboard code\" data-e=\"quot\" data-a=\"34\"><span class=\"dgt-g\">&#34;<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"FF02\" aria-label=\"Fullwidth quotation mark\" data-k=\"fullwidth\"><span class=\"dgt-g\">\uff02<\/span><\/button><button type=\"button\" class=\"dgt-i dgt-i--w\" data-c=\"201C-20-201D\" aria-label=\"Double quotes with space for text\" data-k=\"pair\"><span class=\"dgt-g\">\u201c \u201d<\/span><\/button><\/div>\n<\/section>\n<section class=\"dgt-grp\" id=\"dgt-g-comillas-simples\" data-g=\"comillas-simples\" aria-labelledby=\"dgt-gh-comillas-simples\">\n<div class=\"dgt-grp-h\"><h2 class=\"dgt-gh dgv-grad\" id=\"dgt-gh-comillas-simples\">Single quotation marks \u2018\u00a0\u2019 to copy<\/h2><p class=\"dgt-gd\">For quotes within quotes; the closing mark is also the typographic apostrophe.<\/p><\/div>\n<div class=\"dgt-grid\"><button type=\"button\" class=\"dgt-i\" data-c=\"2018\" aria-label=\"Left single quotation mark\" data-k=\"single smart quote open\" data-e=\"lsquo\" data-a=\"0145\"><span class=\"dgt-g\">\u2018<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2019\" aria-label=\"Right single quotation mark (apostrophe)\" data-k=\"single smart quote close apostrophe\" data-e=\"rsquo\" data-a=\"0146\"><span class=\"dgt-g\">\u2019<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"201A\" aria-label=\"Single low-9 quotation mark\" data-k=\"low single quote\" data-e=\"sbquo\" data-a=\"0130\"><span class=\"dgt-g\">\u201a<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"201B\" aria-label=\"Single high-reversed-9 quotation mark\" data-k=\"reversed single\"><span class=\"dgt-g\">\u201b<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"27\" aria-label=\"Straight single quote (typewriter apostrophe)\" data-k=\"straight apostrophe keyboard\" data-a=\"39\"><span class=\"dgt-g\">&#39;<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"FF07\" aria-label=\"Fullwidth apostrophe\" data-k=\"fullwidth\"><span class=\"dgt-g\">\uff07<\/span><\/button><\/div>\n<\/section>\n<section class=\"dgt-grp\" id=\"dgt-g-comillas-decorativas\" data-g=\"comillas-decorativas\" aria-labelledby=\"dgt-gh-comillas-decorativas\">\n<div class=\"dgt-grp-h\"><h2 class=\"dgt-gh dgv-grad\" id=\"dgt-gh-comillas-decorativas\">Decorative and Japanese quotation marks<\/h2><p class=\"dgt-gd\">Ornamental quotes for pull quotes and designs, and the corner brackets used in Japanese and Chinese.<\/p><\/div>\n<div class=\"dgt-grid\"><button type=\"button\" class=\"dgt-i\" data-c=\"275D\" aria-label=\"Heavy double turned comma quotation mark ornament\" data-k=\"ornament fancy\"><span class=\"dgt-g\">\u275d<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"275E\" aria-label=\"Heavy double comma quotation mark ornament\" data-k=\"ornament fancy\"><span class=\"dgt-g\">\u275e<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"275B\" aria-label=\"Heavy single turned comma quotation mark ornament\" data-k=\"ornament\"><span class=\"dgt-g\">\u275b<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"275C\" aria-label=\"Heavy single comma quotation mark ornament\" data-k=\"ornament\"><span class=\"dgt-g\">\u275c<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"276E\" aria-label=\"Heavy left-pointing angle quotation mark ornament\" data-k=\"ornament angle\"><span class=\"dgt-g\">\u276e<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"276F\" aria-label=\"Heavy right-pointing angle quotation mark ornament\" data-k=\"ornament angle\"><span class=\"dgt-g\">\u276f<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"301D\" aria-label=\"Reversed double prime quotation mark\" data-k=\"cjk\"><span class=\"dgt-g\">\u301d<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"301E\" aria-label=\"Double prime quotation mark\" data-k=\"cjk\"><span class=\"dgt-g\">\u301e<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"301F\" aria-label=\"Low double prime quotation mark\" data-k=\"cjk\"><span class=\"dgt-g\">\u301f<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"300C\" aria-label=\"Left corner bracket (Japanese quote)\" data-k=\"japanese corner bracket\"><span class=\"dgt-g\">\u300c<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"300D\" aria-label=\"Right corner bracket (Japanese quote)\" data-k=\"japanese corner bracket\"><span class=\"dgt-g\">\u300d<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"300E\" aria-label=\"Left white corner bracket\" data-k=\"japanese\"><span class=\"dgt-g\">\u300e<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"300F\" aria-label=\"Right white corner bracket\" data-k=\"japanese\"><span class=\"dgt-g\">\u300f<\/span><\/button><\/div>\n<\/section>\n<section class=\"dgt-grp\" id=\"dgt-g-primas\" data-g=\"primas\" aria-labelledby=\"dgt-gh-primas\">\n<div class=\"dgt-grp-h\"><h2 class=\"dgt-gh dgv-grad\" id=\"dgt-gh-primas\">Prime symbols \u2032\u00a0\u2033 for feet, inches, minutes and seconds<\/h2><p class=\"dgt-gd\">The prime marks feet and minutes of arc; the double prime marks inches and seconds.<\/p><\/div>\n<div class=\"dgt-grid\"><button type=\"button\" class=\"dgt-i\" data-c=\"2032\" aria-label=\"Prime (minutes, feet)\" data-k=\"minutes feet coordinates\" data-e=\"prime\"><span class=\"dgt-g\">\u2032<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2033\" aria-label=\"Double prime (seconds, inches)\" data-k=\"seconds inches\" data-e=\"Prime\"><span class=\"dgt-g\">\u2033<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2034\" aria-label=\"Triple prime\" data-k=\"triple\"><span class=\"dgt-g\">\u2034<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2057\" aria-label=\"Quadruple prime\" data-k=\"quadruple\"><span class=\"dgt-g\">\u2057<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2035\" aria-label=\"Reversed prime\" data-k=\"reversed\"><span class=\"dgt-g\">\u2035<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2036\" aria-label=\"Reversed double prime\" data-k=\"reversed\"><span class=\"dgt-g\">\u2036<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2037\" aria-label=\"Reversed triple prime\" data-k=\"reversed\"><span class=\"dgt-g\">\u2037<\/span><\/button><\/div>\n<\/section>\n<section class=\"dgt-grp\" id=\"dgt-g-apostrofos\" data-g=\"apostrofos\" aria-labelledby=\"dgt-gh-apostrofos\">\n<div class=\"dgt-grp-h\"><h2 class=\"dgt-gh dgv-grad\" id=\"dgt-gh-apostrofos\">Apostrophe symbols: curly and straight<\/h2><p class=\"dgt-gd\">The typographic apostrophe, the straight keyboard one and the modifier letters used by other languages, such as the Hawaiian \u02bbokina.<\/p><\/div>\n<div class=\"dgt-grid\"><button type=\"button\" class=\"dgt-i\" data-c=\"2019\" aria-label=\"Typographic apostrophe\" data-k=\"curly apostrophe\" data-e=\"rsquo\" data-a=\"0146\"><span class=\"dgt-g\">\u2019<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"27\" aria-label=\"Straight apostrophe\" data-k=\"keyboard apostrophe\" data-a=\"39\"><span class=\"dgt-g\">&#39;<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2BC\" aria-label=\"Modifier letter apostrophe\" data-k=\"modifier\"><span class=\"dgt-g\">\u02bc<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2BB\" aria-label=\"Modifier letter turned comma (okina)\" data-k=\"okina hawaiian\"><span class=\"dgt-g\">\u02bb<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2EE\" aria-label=\"Modifier letter double apostrophe\" data-k=\"double\"><span class=\"dgt-g\">\u02ee<\/span><\/button><\/div>\n<\/section>\n<section class=\"dgt-grp\" id=\"dgt-g-puntuacion\" data-g=\"puntuacion\" aria-labelledby=\"dgt-gh-puntuacion\">\n<div class=\"dgt-grp-h\"><h2 class=\"dgt-gh dgv-grad\" id=\"dgt-gh-puntuacion\">Em dash, en dash, inverted question mark and other punctuation marks<\/h2><p class=\"dgt-gd\">Hyphens, the en dash and the em dash (plus the two-em and three-em dashes used in bibliographies), the Spanish \u00bf \u00a1, the ellipsis and combined marks.<\/p><\/div>\n<div class=\"dgt-grid\"><button type=\"button\" class=\"dgt-i\" data-c=\"BF\" aria-label=\"Inverted question mark\" data-k=\"spanish question\" data-e=\"iquest\" data-a=\"168|0191\"><span class=\"dgt-g\">\u00bf<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"A1\" aria-label=\"Inverted exclamation mark\" data-k=\"spanish exclamation\" data-e=\"iexcl\" data-a=\"173|0161\"><span class=\"dgt-g\">\u00a1<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2026\" aria-label=\"Ellipsis\" data-k=\"three dots\" data-e=\"hellip\" data-a=\"0133\"><span class=\"dgt-g\">\u2026<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2010\" aria-label=\"Hyphen\" data-k=\"hyphen\"><span class=\"dgt-g\">\u2010<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2011\" aria-label=\"Non-breaking hyphen\" data-k=\"non-breaking\"><span class=\"dgt-g\">\u2011<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2012\" aria-label=\"Figure dash\" data-k=\"figure\"><span class=\"dgt-g\">\u2012<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2013\" aria-label=\"En dash\" data-k=\"en dash range\" data-e=\"ndash\" data-a=\"0150\"><span class=\"dgt-g\">\u2013<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2014\" aria-label=\"Em dash\" data-k=\"em dash long\" data-e=\"mdash\" data-a=\"0151\"><span class=\"dgt-g\">\u2014<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2015\" aria-label=\"Horizontal bar\" data-k=\"quotation dash\"><span class=\"dgt-g\">\u2015<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"203D\" aria-label=\"Interrobang\" data-k=\"interrobang\"><span class=\"dgt-g\">\u203d<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2E18\" aria-label=\"Inverted interrobang\" data-k=\"inverted\"><span class=\"dgt-g\">\u2e18<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2049\" aria-label=\"Exclamation question mark\" data-k=\"double\"><span class=\"dgt-g\">\u2049<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2048\" aria-label=\"Question exclamation mark\" data-k=\"double\"><span class=\"dgt-g\">\u2048<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2047\" aria-label=\"Double question mark\" data-k=\"double\"><span class=\"dgt-g\">\u2047<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"203C\" aria-label=\"Double exclamation mark\" data-k=\"double\"><span class=\"dgt-g\">\u203c<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2E2E\" aria-label=\"Reversed question mark (irony)\" data-k=\"irony\"><span class=\"dgt-g\">\u2e2e<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2E3A\" aria-label=\"Two-em dash\" data-k=\"two em dash long bibliography\"><span class=\"dgt-g\">\u2e3a<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2E3B\" aria-label=\"Three-em dash\" data-k=\"three em dash long bibliography\"><span class=\"dgt-g\">\u2e3b<\/span><\/button><\/div>\n<\/section>\n<section class=\"dgt-grp\" id=\"dgt-g-tipograficos\" data-g=\"tipograficos\" aria-labelledby=\"dgt-gh-tipograficos\">\n<div class=\"dgt-grp-h\"><h2 class=\"dgt-gh dgv-grad\" id=\"dgt-gh-tipograficos\">Typographic symbols: section sign \u00a7, pilcrow \u00b6, copyright \u00a9 and degree \u00b0<\/h2><p class=\"dgt-gd\">Section sign, pilcrow, daggers, bullets, degree, ordinal indicators, marks such as \u00a9 \u00ae \u2122, the minus sign \u2212 and the ditto mark \u3003.<\/p><\/div>\n<div class=\"dgt-grid\"><button type=\"button\" class=\"dgt-i\" data-c=\"A7\" aria-label=\"Section sign\" data-k=\"section law\" data-e=\"sect\" data-a=\"0167\"><span class=\"dgt-g\">\u00a7<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"B6\" aria-label=\"Pilcrow (paragraph mark)\" data-k=\"paragraph\" data-e=\"para\" data-a=\"0182\"><span class=\"dgt-g\">\u00b6<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2020\" aria-label=\"Dagger\" data-k=\"dagger obelus\" data-e=\"dagger\" data-a=\"0134\"><span class=\"dgt-g\">\u2020<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2021\" aria-label=\"Double dagger\" data-k=\"double dagger\" data-e=\"Dagger\" data-a=\"0135\"><span class=\"dgt-g\">\u2021<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2022\" aria-label=\"Bullet\" data-k=\"bullet point list\" data-e=\"bull\" data-a=\"0149\"><span class=\"dgt-g\">\u2022<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2023\" aria-label=\"Triangular bullet\" data-k=\"list\"><span class=\"dgt-g\">\u2023<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"25E6\" aria-label=\"White bullet\" data-k=\"list\"><span class=\"dgt-g\">\u25e6<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2043\" aria-label=\"Hyphen bullet\" data-k=\"list\"><span class=\"dgt-g\">\u2043<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"203B\" aria-label=\"Reference mark\" data-k=\"note\"><span class=\"dgt-g\">\u203b<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2042\" aria-label=\"Asterism\" data-k=\"asterisks\"><span class=\"dgt-g\">\u2042<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"B0\" aria-label=\"Degree sign\" data-k=\"temperature\" data-e=\"deg\" data-a=\"248|0176\"><span class=\"dgt-g\">\u00b0<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"BA\" aria-label=\"Masculine ordinal indicator\" data-k=\"ordinal\" data-e=\"ordm\" data-a=\"167|0186\"><span class=\"dgt-g\">\u00ba<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"AA\" aria-label=\"Feminine ordinal indicator\" data-k=\"ordinal\" data-e=\"ordf\" data-a=\"166|0170\"><span class=\"dgt-g\">\u00aa<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"A9\" aria-label=\"Copyright sign\" data-k=\"copyright\" data-e=\"copy\" data-a=\"0169\"><span class=\"dgt-g\">\u00a9<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"AE\" aria-label=\"Registered sign\" data-k=\"registered\" data-e=\"reg\" data-a=\"0174\"><span class=\"dgt-g\">\u00ae<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2122\" aria-label=\"Trade mark sign\" data-k=\"trademark\" data-e=\"trade\" data-a=\"0153\"><span class=\"dgt-g\">\u2122<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2120\" aria-label=\"Service mark\" data-k=\"service mark\"><span class=\"dgt-g\">\u2120<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2030\" aria-label=\"Per mille sign\" data-k=\"per mille\" data-e=\"permil\" data-a=\"0137\"><span class=\"dgt-g\">\u2030<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2031\" aria-label=\"Per ten thousand sign\" data-k=\"basis point\"><span class=\"dgt-g\">\u2031<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"A6\" aria-label=\"Broken bar\" data-k=\"bar\" data-e=\"brvbar\" data-a=\"0166\"><span class=\"dgt-g\">\u00a6<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"AC\" aria-label=\"Not sign\" data-k=\"logic not\" data-e=\"not\" data-a=\"170|0172\"><span class=\"dgt-g\">\u00ac<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"B7\" aria-label=\"Middle dot\" data-k=\"interpunct\" data-e=\"middot\" data-a=\"250|0183\"><span class=\"dgt-g\">\u00b7<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"A8\" aria-label=\"Diaeresis\" data-k=\"umlaut\" data-e=\"uml\" data-a=\"0168\"><span class=\"dgt-g\">\u00a8<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"B4\" aria-label=\"Acute accent\" data-k=\"accent\" data-e=\"acute\" data-a=\"0180\"><span class=\"dgt-g\">\u00b4<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"60\" aria-label=\"Grave accent\" data-k=\"backtick\" data-a=\"96\"><span class=\"dgt-g\">`<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"2212\" aria-label=\"Minus sign\" data-k=\"minus subtract math\" data-e=\"minus\"><span class=\"dgt-g\">\u2212<\/span><\/button><button type=\"button\" class=\"dgt-i\" data-c=\"3003\" aria-label=\"Ditto mark\" data-k=\"ditto same as above\"><span class=\"dgt-g\">\u3003<\/span><\/button><\/div>\n<\/section>\n<div class=\"dgt-qc dgt-panel\" id=\"dgt-conversor\" data-dgt-qc>\n<h2 class=\"dgt-panel-t dgt-panel-t--h dgv-grad\">Smart quotes converter: straight quotes to curly quotes<\/h2><p class=\"dgt-note\">Paste text with straight quotes (\" and ') and choose the result: curly quotes, with single quotes inside double ones (\u201c \u2018 \u2019 \u201d), guillemets in the Spanish order (\u00ab \u201c \u2018 \u2019 \u201d \u00bb) or, the other way around, plain straight quotes for code. It tells opening from closing marks by context and turns straight apostrophes between letters (it's, don't) into curly ones (\u2019) unless you untick the box. Copy the result in one click.<\/p>\n<label class=\"dgt-field\"><span>Paste your text with straight quotes<\/span><textarea rows=\"3\" placeholder=\"She said, &#34;I love the song &#39;Today&#39;.&#34; Then she left.\" spellcheck=\"false\" data-qc-in><\/textarea><\/label>\n<div class=\"dgt-qc-opts\"><span class=\"dgt-qc-l\">Convert to<\/span><div class=\"dgt-seg\" role=\"radiogroup\" aria-label=\"Convert to\"><button type=\"button\" role=\"radio\" aria-checked=\"true\" data-qs=\"ing\">Curly \u201c \u201d<\/button><button type=\"button\" role=\"radio\" aria-checked=\"false\" data-qs=\"lat\">Guillemets \u00ab \u00bb<\/button><button type=\"button\" role=\"radio\" aria-checked=\"false\" data-qs=\"rect\">Straight<\/button><\/div><label class=\"dgt-check\"><input type=\"checkbox\" checked data-qc-ap><span>Typographic apostrophes (\u2019)<\/span><\/label><\/div>\n<div class=\"dgt-conv-out dgt-conv-out--1\"><div><small>Result<\/small><output data-dgt-qcout><\/output><button type=\"button\" class=\"dgt-btn dgt-btn--pri\" data-act=\"copy-out\" data-src=\"qcout\"><svg class=\"dgv-i\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-copy\"><\/use><\/svg>Copy<\/button><\/div><\/div>\n<\/div>\n<div class=\"dgt-detail\" data-dgt-detail hidden role=\"dialog\" aria-label=\"Details of the copied item\"><button type=\"button\" class=\"dgt-x\" data-act=\"close-detail\" aria-label=\"Close\"><svg class=\"dgv-i\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-x\"><\/use><\/svg><\/button><span class=\"dgt-detail-g\" data-f=\"g\"><\/span><div class=\"dgt-detail-b\"><p class=\"dgt-detail-n\" data-f=\"n\"><\/p><p class=\"dgt-detail-s\" data-f=\"s\">Copied<\/p><div class=\"dgt-fmts\" data-f=\"fmts\"><\/div><\/div><\/div>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"dgv-sec dgt-guide\">\n<div class=\"dgv-wrap\">\n<div class=\"dgv-head dgv-head--c\" data-dgv-r><h2 class=\"dgv-h2 dgv-h2--long dgv-grad\">How to type quotation marks and the em dash on any keyboard<\/h2><p class=\"dgv-intro\">If you would rather type than copy, these methods work on each system. Click any symbol in the tool to see its Alt code.<\/p><\/div><div class=\"dgt-cards dgt-cards--4\"><article class=\"dgv-card dgt-gcard\" data-dgv-r style=\"--dgv-d:0.00s\"><span class=\"dgt-num\" aria-hidden=\"true\">01<\/span><h3 class=\"dgv-h3\">Curly quotes on Windows<\/h3><p class=\"dgv-txt\">With Num Lock on, hold Alt and type 0147 for \u201c, 0148 for \u201d, 0145 for \u2018 and 0146 for \u2019 on the numeric keypad. Alt + 0151 gives the em dash and Alt + 0150 the en dash. No keypad? Press Windows + period to open the emoji panel and go to its symbols tab.<\/p><\/article><article class=\"dgv-card dgt-gcard\" data-dgv-r style=\"--dgv-d:0.08s\"><span class=\"dgt-num\" aria-hidden=\"true\">02<\/span><h3 class=\"dgv-h3\">Curly quotes on Mac<\/h3><p class=\"dgv-txt\">With the U.S. keyboard layout, Option + [ types \u201c and Option + Shift + [ types \u201d; Option + ] and Option + Shift + ] give \u2018 and \u2019. Option + Shift + hyphen is the em dash and Option + hyphen the en dash. For anything else, Control + Command + Space opens the Character Viewer.<\/p><\/article><article class=\"dgv-card dgt-gcard\" data-dgv-r style=\"--dgv-d:0.16s\"><span class=\"dgt-num\" aria-hidden=\"true\">03<\/span><p class=\"dgv-h3\">Quotation marks on iPhone<\/p><p class=\"dgv-txt\">Tap 123, then press and hold the quote key to choose curly quotes or guillemets; hold the hyphen for the en dash and em dash. Smart Punctuation, in Settings, General, Keyboard, turns straight quotes into curly ones as you type.<\/p><\/article><article class=\"dgv-card dgt-gcard\" data-dgv-r style=\"--dgv-d:0.00s\"><span class=\"dgt-num\" aria-hidden=\"true\">04<\/span><p class=\"dgv-h3\">Quotation marks on Android<\/p><p class=\"dgv-txt\">In Gboard, tap ?123 and press and hold the quote key to see curly quotes and guillemets. Holding the hyphen key shows the longer dashes.<\/p><\/article><\/div>\n<\/div>\n<\/section>\n<section class=\"dgv-sec dgt-guide\">\n<div class=\"dgv-wrap\">\n<div class=\"dgv-head dgv-head--c\" data-dgv-r><h2 class=\"dgv-h2 dgv-grad\">Quotation marks HTML codes, Alt codes and Unicode<\/h2><p class=\"dgv-intro\">A quick reference for the marks people look up most. Named HTML entities work in every modern browser, and when you copy a symbol in the tool you also get its CSS, JavaScript and URL codes.<\/p><\/div><div class=\"dgt-table-w\" data-dgv-r><table class=\"dgt-table\"><thead><tr><th scope=\"col\">Symbol<\/th><th scope=\"col\">Name<\/th><th scope=\"col\">Unicode<\/th><th scope=\"col\">HTML<\/th><th scope=\"col\">Alt code<\/th><\/tr><\/thead><tbody><tr><th scope=\"row\">\u201c<\/th><td>Left double quotation mark<\/td><td>U+201C<\/td><td>&amp;ldquo;<\/td><td>Alt + 0147<\/td><\/tr><tr><th scope=\"row\">\u201d<\/th><td>Right double quotation mark<\/td><td>U+201D<\/td><td>&amp;rdquo;<\/td><td>Alt + 0148<\/td><\/tr><tr><th scope=\"row\">\u2018<\/th><td>Left single quotation mark<\/td><td>U+2018<\/td><td>&amp;lsquo;<\/td><td>Alt + 0145<\/td><\/tr><tr><th scope=\"row\">\u2019<\/th><td>Right single quotation mark and apostrophe<\/td><td>U+2019<\/td><td>&amp;rsquo;<\/td><td>Alt + 0146<\/td><\/tr><tr><th scope=\"row\">\u00ab<\/th><td>Left guillemet<\/td><td>U+00AB<\/td><td>&amp;laquo;<\/td><td>Alt + 0171 or Alt + 174<\/td><\/tr><tr><th scope=\"row\">\u00bb<\/th><td>Right guillemet<\/td><td>U+00BB<\/td><td>&amp;raquo;<\/td><td>Alt + 0187 or Alt + 175<\/td><\/tr><tr><th scope=\"row\">\u2032<\/th><td>Prime (feet, minutes)<\/td><td>U+2032<\/td><td>&amp;prime;<\/td><td>None<\/td><\/tr><tr><th scope=\"row\">\u2033<\/th><td>Double prime (inches, seconds)<\/td><td>U+2033<\/td><td>&amp;Prime;<\/td><td>None<\/td><\/tr><tr><th scope=\"row\">em dash<\/th><td>Em dash<\/td><td>U+2014<\/td><td>&amp;mdash;<\/td><td>Alt + 0151<\/td><\/tr><tr><th scope=\"row\">en dash<\/th><td>En dash<\/td><td>U+2013<\/td><td>&amp;ndash;<\/td><td>Alt + 0150<\/td><\/tr><tr><th scope=\"row\">\u2026<\/th><td>Ellipsis<\/td><td>U+2026<\/td><td>&amp;hellip;<\/td><td>Alt + 0133<\/td><\/tr><tr><th scope=\"row\">\u00a7<\/th><td>Section sign<\/td><td>U+00A7<\/td><td>&amp;sect;<\/td><td>Alt + 0167<\/td><\/tr><tr><th scope=\"row\">\u00b0<\/th><td>Degree sign<\/td><td>U+00B0<\/td><td>&amp;deg;<\/td><td>Alt + 0176 or Alt + 248<\/td><\/tr><tr><th scope=\"row\">\u2212<\/th><td>Minus sign<\/td><td>U+2212<\/td><td>&amp;minus;<\/td><td>None<\/td><\/tr><tr><th scope=\"row\">\u3003<\/th><td>Ditto mark<\/td><td>U+3003<\/td><td>&amp;#x3003;<\/td><td>None<\/td><\/tr><\/tbody><\/table><\/div>\n<\/div>\n<\/section>\n<section class=\"dgv-sec dgt-guide\">\n<div class=\"dgv-wrap\">\n<div class=\"dgv-head dgv-head--c\" data-dgv-r><h2 class=\"dgv-h2 dgv-grad\">Curly quotes vs straight quotes vs primes<\/h2><p class=\"dgv-intro\">Three sets of marks that look alike and are easy to mix up. To switch a whole text from straight to curly quotes, or back, use the quote converter at the end of the tool.<\/p><\/div><div class=\"dgt-cards dgt-cards--3\"><article class=\"dgv-card dgt-gcard\" data-dgv-r style=\"--dgv-d:0.00s\"><span class=\"dgt-num\" aria-hidden=\"true\">01<\/span><h3 class=\"dgv-h3\">Curly quotes (smart quotes)<\/h3><p class=\"dgv-txt\">\u201c\u00a0\u201d and \u2018\u00a0\u2019 are the typographic quotation marks for text meant to be read: books, websites, emails and presentations.<\/p><\/article><article class=\"dgv-card dgt-gcard\" data-dgv-r style=\"--dgv-d:0.08s\"><span class=\"dgt-num\" aria-hidden=\"true\">02<\/span><h3 class=\"dgv-h3\">Straight quotes<\/h3><p class=\"dgv-txt\">The typewriter marks on your keyboard. Use them in code, HTML attributes, spreadsheet formulas and anywhere a program reads the text.<\/p><\/article><article class=\"dgv-card dgt-gcard\" data-dgv-r style=\"--dgv-d:0.16s\"><span class=\"dgt-num\" aria-hidden=\"true\">03<\/span><h3 class=\"dgv-h3\">Primes<\/h3><p class=\"dgv-txt\">\u2032 and \u2033 are for measurements: feet and inches, or minutes and seconds of arc. They are straight, slanted strokes, never curly.<\/p><\/article><\/div>\n<\/div>\n<\/section>\n<section class=\"dgv-sec dgv-faq-sec\" id=\"dgv-faq\">\n<div class=\"dgv-fx\" aria-hidden=\"true\"><div class=\"dgv-halo dgv-halo--t\"><\/div><\/div>\n<div class=\"dgv-wrap dgv-faq-wrap\">\n<div class=\"dgv-head dgv-head--c\" data-dgv-r><h2 class=\"dgv-h2 dgv-grad\">Quotation marks and symbols: frequently asked questions<\/h2><\/div>\n<div class=\"dgv-faq dgv-faq--2\"><div class=\"dgv-faq-col\">\n<div class=\"dgv-faq-item is-open\"><h3 class=\"dgv-faq-q\"><button class=\"dgv-faq-btn\" type=\"button\" id=\"dgv-faq-q1\" aria-expanded=\"true\" aria-controls=\"dgv-faq-a1\"><span>What is the symbol for quotation marks?<\/span><span class=\"dgv-pm\" aria-hidden=\"true\"><\/span><\/button><\/h3><div class=\"dgv-faq-a\" id=\"dgv-faq-a1\" role=\"region\" aria-labelledby=\"dgv-faq-q1\"><div><p>There is more than one. The standard English pair is \u201c\u00a0\u201d (U+201C and U+201D), the single pair is \u2018\u00a0\u2019 (U+2018 and U+2019) and the straight keyboard mark is \" (U+0022). Many other languages use guillemets \u00ab\u00a0\u00bb or low marks such as \u201e.<\/p><\/div><\/div><\/div>\n<div class=\"dgv-faq-item\"><h3 class=\"dgv-faq-q\"><button class=\"dgv-faq-btn\" type=\"button\" id=\"dgv-faq-q2\" aria-expanded=\"false\" aria-controls=\"dgv-faq-a2\"><span>How do I copy and paste straight quotation marks?<\/span><span class=\"dgv-pm\" aria-hidden=\"true\"><\/span><\/button><\/h3><div class=\"dgv-faq-a\" id=\"dgv-faq-a2\" role=\"region\" aria-labelledby=\"dgv-faq-q2\"><div><p>Click the straight quote in the double quotes group of this tool and it is copied as a plain U+0022, which is what code and spreadsheets expect. If your editor keeps changing it as you type, turn off smart quotes: in Word it is in the AutoCorrect options, and in Google Docs under Tools, Preferences. To straighten every quote in a text at once, paste it into the quote converter at the end of the tool and choose Straight.<\/p><\/div><\/div><\/div>\n<div class=\"dgv-faq-item\"><h3 class=\"dgv-faq-q\"><button class=\"dgv-faq-btn\" type=\"button\" id=\"dgv-faq-q3\" aria-expanded=\"false\" aria-controls=\"dgv-faq-a3\"><span>What are smart quotes?<\/span><span class=\"dgv-pm\" aria-hidden=\"true\"><\/span><\/button><\/h3><div class=\"dgv-faq-a\" id=\"dgv-faq-a3\" role=\"region\" aria-labelledby=\"dgv-faq-q3\"><div><p>Smart quotes are the curly quotation marks and apostrophes (\u201c \u201d \u2018 \u2019) that a word processor inserts when you type the straight keys (\" and '). They are called smart because the software picks the opening or closing mark for you. Use them in text people read; for code, spreadsheet formulas and HTML attributes, keep straight quotes.<\/p><\/div><\/div><\/div>\n<div class=\"dgv-faq-item\"><h3 class=\"dgv-faq-q\"><button class=\"dgv-faq-btn\" type=\"button\" id=\"dgv-faq-q4\" aria-expanded=\"false\" aria-controls=\"dgv-faq-a4\"><span>How do you convert straight quotes to curly quotes?<\/span><span class=\"dgv-pm\" aria-hidden=\"true\"><\/span><\/button><\/h3><div class=\"dgv-faq-a\" id=\"dgv-faq-a4\" role=\"region\" aria-labelledby=\"dgv-faq-q4\"><div><p>Paste the text into the quote converter at the end of this tool, choose Curly and copy the result: opening marks, closing marks and apostrophes are fixed in one go. In Word, turn on smart quotes and use Find and Replace to replace a straight double quote with the same straight double quote; Word swaps each one for the right curly mark. Repeat with the single quote.<\/p><\/div><\/div><\/div>\n<div class=\"dgv-faq-item\"><h3 class=\"dgv-faq-q\"><button class=\"dgv-faq-btn\" type=\"button\" id=\"dgv-faq-q5\" aria-expanded=\"false\" aria-controls=\"dgv-faq-a5\"><span>Does the period go inside or outside quotation marks?<\/span><span class=\"dgv-pm\" aria-hidden=\"true\"><\/span><\/button><\/h3><div class=\"dgv-faq-a\" id=\"dgv-faq-a5\" role=\"region\" aria-labelledby=\"dgv-faq-q5\"><div><p>In American English, periods and commas go inside the closing quotation mark, even when they are not part of the quote. British English usually places them outside unless they belong to the quoted words. Question marks and exclamation points go inside only when they are part of the quote.<\/p><\/div><\/div><\/div>\n<div class=\"dgv-faq-item\"><h3 class=\"dgv-faq-q\"><button class=\"dgv-faq-btn\" type=\"button\" id=\"dgv-faq-q6\" aria-expanded=\"false\" aria-controls=\"dgv-faq-a6\"><span>Is an em dash just two hyphens?<\/span><span class=\"dgv-pm\" aria-hidden=\"true\"><\/span><\/button><\/h3><div class=\"dgv-faq-a\" id=\"dgv-faq-a6\" role=\"region\" aria-labelledby=\"dgv-faq-q6\"><div><p>No. Two hyphens are the old typewriter stand-in for an em dash, which is a single character, U+2014. Microsoft Word can replace two hyphens between words with a real em dash as you type, but in plain text, code or a web form the hyphens stay as they are.<\/p><\/div><\/div><\/div><\/div><div class=\"dgv-faq-col\">\n<div class=\"dgv-faq-item\"><h3 class=\"dgv-faq-q\"><button class=\"dgv-faq-btn\" type=\"button\" id=\"dgv-faq-q7\" aria-expanded=\"false\" aria-controls=\"dgv-faq-a7\"><span>How do you type an em dash?<\/span><span class=\"dgv-pm\" aria-hidden=\"true\"><\/span><\/button><\/h3><div class=\"dgv-faq-a\" id=\"dgv-faq-a7\" role=\"region\" aria-labelledby=\"dgv-faq-q7\"><div><p>On Windows, hold Alt and type 0151 on the numeric keypad; in Word, Ctrl + Alt + the minus key on the keypad also works. On a Mac with the U.S. layout, press Option + Shift + hyphen. On iPhone and Android, press and hold the hyphen key and slide to the longest dash.<\/p><\/div><\/div><\/div>\n<div class=\"dgv-faq-item\"><h3 class=\"dgv-faq-q\"><button class=\"dgv-faq-btn\" type=\"button\" id=\"dgv-faq-q8\" aria-expanded=\"false\" aria-controls=\"dgv-faq-a8\"><span>Should there be spaces around an em dash?<\/span><span class=\"dgv-pm\" aria-hidden=\"true\"><\/span><\/button><\/h3><div class=\"dgv-faq-a\" id=\"dgv-faq-a8\" role=\"region\" aria-labelledby=\"dgv-faq-q8\"><div><p>It depends on the style guide. The Chicago Manual of Style and most book publishers use no spaces, while AP style, common in US newspapers, puts a space on each side. Many British publishers use a spaced en dash instead. Pick one style and keep it consistent.<\/p><\/div><\/div><\/div>\n<div class=\"dgv-faq-item\"><h3 class=\"dgv-faq-q\"><button class=\"dgv-faq-btn\" type=\"button\" id=\"dgv-faq-q9\" aria-expanded=\"false\" aria-controls=\"dgv-faq-a9\"><span>Why do people say em dashes are a sign of AI writing?<\/span><span class=\"dgv-pm\" aria-hidden=\"true\"><\/span><\/button><\/h3><div class=\"dgv-faq-a\" id=\"dgv-faq-a9\" role=\"region\" aria-labelledby=\"dgv-faq-q9\"><div><p>Chatbots often use em dashes several times per paragraph, far more than most people do, so heavy use has become a common tell of AI-generated text. The mark itself is perfectly correct; what stands out is the frequency.<\/p><\/div><\/div><\/div>\n<div class=\"dgv-faq-item\"><h3 class=\"dgv-faq-q\"><button class=\"dgv-faq-btn\" type=\"button\" id=\"dgv-faq-q10\" aria-expanded=\"false\" aria-controls=\"dgv-faq-a10\"><span>What is the prime symbol?<\/span><span class=\"dgv-pm\" aria-hidden=\"true\"><\/span><\/button><\/h3><div class=\"dgv-faq-a\" id=\"dgv-faq-a10\" role=\"region\" aria-labelledby=\"dgv-faq-q10\"><div><p>The prime \u2032 (U+2032) is a slanted mark used for feet, for minutes of arc and, in math, for derivatives and related variables, as in f\u2032(x) or A\u2032. The double prime \u2033 (U+2033) marks inches and seconds of arc.<\/p><\/div><\/div><\/div>\n<div class=\"dgv-faq-item\"><h3 class=\"dgv-faq-q\"><button class=\"dgv-faq-btn\" type=\"button\" id=\"dgv-faq-q11\" aria-expanded=\"false\" aria-controls=\"dgv-faq-a11\"><span>Is the prime symbol the same as an apostrophe?<\/span><span class=\"dgv-pm\" aria-hidden=\"true\"><\/span><\/button><\/h3><div class=\"dgv-faq-a\" id=\"dgv-faq-a11\" role=\"region\" aria-labelledby=\"dgv-faq-q11\"><div><p>No. They look similar, but the apostrophe is U+2019 (curly) or U+0027 (straight) and the prime is U+2032, a separate character with a straighter, slanted shape. Use the prime for measurements and the apostrophe for words like don\u2019t.<\/p><\/div><\/div><\/div>\n<div class=\"dgv-faq-item\"><h3 class=\"dgv-faq-q\"><button class=\"dgv-faq-btn\" type=\"button\" id=\"dgv-faq-q12\" aria-expanded=\"false\" aria-controls=\"dgv-faq-a12\"><span>How do you type an upside down question mark?<\/span><span class=\"dgv-pm\" aria-hidden=\"true\"><\/span><\/button><\/h3><div class=\"dgv-faq-a\" id=\"dgv-faq-a12\" role=\"region\" aria-labelledby=\"dgv-faq-q12\"><div><p>On Windows, hold Alt and type 0191 (or 168) on the numeric keypad; Alt + 0161 gives the inverted exclamation mark. On iPhone and Android, press and hold the question mark key. You can also click \u00bf or \u00a1 in the punctuation group of this tool.<\/p><\/div><\/div><\/div><\/div>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"dgv-sec dgv-more-sec\" id=\"dgv-leer-mas\">\n<div class=\"dgv-wrap dgv-more-grid\">\n<div class=\"dgv-card dgv-more-card\" data-dgv-r>\n<p class=\"dgv-more-t dgv-grad\">Guide to quotation marks, primes and typographic symbols<\/p><p class=\"dgv-more-s\">What each mark is, when to use it and how to type it<\/p>\n<div class=\"dgv-more\" id=\"dgv-more-body\" data-dgv-more><div class=\"dgv-prose\"><h2>Quotation marks copy and paste, free and with no sign-up<\/h2><p>This page gathers the quotation marks, primes, apostrophes, dashes and typographic symbols that are missing from your keyboard or hard to find. Click any symbol and it goes straight to your clipboard, then paste it wherever you need it with Ctrl + V (Command + V on a Mac). If you need several, they add up in \u201cYour selection\u201d so you can copy them all at once. To find a mark quickly, type its name in the search box (prime, dash or guillemet, for example) or use the group filters.<\/p><p>Each time you copy, the tool shows the character\u2019s name, its Unicode code point, the HTML entity, its CSS and JavaScript escapes, the URL encoding and, when there is one, the Windows Alt code. It works for writing a well-punctuated text and for laying out a website, a PDF or a slide deck without straight quotes where curly ones should be. If the text is already written, the quote converter at the end of the tool fixes all its straight quotes at once.<\/p><p>It was built by DigiAcci\u00f3n, a <a href=\"https:\/\/www.digiaccion.com\/en\/\">digital marketing agency in Andorra<\/a> based in La Massana. We work on <a href=\"https:\/\/www.digiaccion.com\/en\/web-design-agency-in-andorra\/\">web design<\/a>, <a href=\"https:\/\/www.digiaccion.com\/en\/seo-organic-positioning-agency-andorra\/\">SEO<\/a>, GEO (visibility in AI search), Google Ads, Meta Ads, video, graphic design and online stores. The tool is free, needs no sign-up, has nothing to install and runs in your browser, on your phone too.<\/p><h2>Types of quotation marks and how to use them<\/h2><p>English uses two kinds of quotation marks, double and single, and other languages add their own shapes. Each one has a typographic version, curved or angled, and a straight version inherited from the typewriter.<\/p><h3>Double quotation marks \u201c\u00a0\u201d<\/h3><p>In American English, double quotation marks enclose direct speech, quotations and the titles of short works such as articles, songs, poems or chapters. They also flag a word used in an unusual or ironic sense. The opening mark curves like a small 6 and the closing mark like a 9, which is why they are sometimes called 66 and 99 quotes.<\/p><h3>Single quotation marks \u2018\u00a0\u2019<\/h3><p>American style puts single quotation marks inside double ones for a quote within a quote. British publishers often reverse the order and call them inverted commas. The closing single quote is the same character as the typographic apostrophe, U+2019.<\/p><h3>Guillemets \u00ab\u00a0\u00bb and other languages<\/h3><p>French, Spanish, Italian and many other languages use guillemets, the angle quotation marks \u00ab\u00a0\u00bb. French typesetting adds a thin space inside them, German usually opens low and closes high (\u201eHallo\u201c), and Spanish uses \u00ab\u00a0\u00bb first, \u201c\u00a0\u201d inside and \u2018\u00a0\u2019 inside those. Japanese uses corner brackets, \u300c\u00a0\u300d and \u300e\u00a0\u300f; if you write in Japanese, our <a href=\"https:\/\/www.digiaccion.com\/en\/japanese-alphabet\/\">Japanese letters<\/a> tool has the full hiragana and katakana sets and a romaji converter.<\/p><h2>Smart quotes in Word, Google Docs and WordPress<\/h2><p>Smart quotes are the curly quotation marks that editors insert automatically when you type a straight quote. Word does it as you type, Google Docs has a Use smart quotes setting under Tools, Preferences, and WordPress converts straight quotes into curly ones when it displays a post.<\/p><p>That is usually what you want in a document, but it can cause trouble when text moves between programs: a command, a line of code or a measurement can end up with the wrong mark. This tool copies each character by its exact code point, so what you paste is exactly what you clicked. For code, spreadsheet formulas and HTML attributes, stick to straight quotes.<\/p><h3>Convert straight quotes to curly quotes<\/h3><p>To fix a whole text at once, paste it into the quote converter at the end of the tool. Choose curly quotes, guillemets or straight quotes and the result appears as you type, ready to copy in one click. The converter works out from context which marks open and which close, alternates double and single quotes when one quote sits inside another, and turns straight apostrophes between letters, as in don't or it's, into curly ones. It also accepts text that already has curly quotes, so you can switch styles or strip everything back to straight quotes for code.<\/p><p>Few quotation mark pages do this: the copy-and-paste ones we reviewed only copy one mark at a time. Straight quotes right after a number, as in 5' 11\", become primes (5\u2032 11\u2033), which is the correct mark for measurements.<\/p><h3>Smart quotes in Word: turn them on or off<\/h3><p>In Word for Windows, the setting is under File, Options, Proofing, AutoCorrect Options, AutoFormat As You Type: tick or untick \u201cStraight quotes\u201d with \u201csmart quotes\u201d. Right after Word curls a quote, Ctrl + Z gives you the straight one back. If a document mixes both styles, there is a quick fix: with smart quotes turned on, use Find and Replace to replace a straight double quote with the same straight double quote. Word swaps each one for the correct opening or closing curly mark. Do the same with the single quote to fix apostrophes, and then check any apostrophe at the start of a word.<\/p><h2>Prime symbol \u2032 and double prime \u2033<\/h2><p>The prime (U+2032) and the double prime (U+2033) look like an apostrophe and a quotation mark, but they are separate characters. They are short, slanted strokes without the comma shape of curly quotes, and they belong to measurements and math.<\/p><h3>Feet and inches symbol<\/h3><p>In US customary units, the prime marks feet and the double prime marks inches: someone who is 5\u2032 11\u2033 is five feet eleven inches tall, and a 55\u2033 TV has a 55-inch diagonal. Typing the straight keyboard quotes (5' 11\") is the usual shortcut and readers understand it, but curly quotes are always wrong here. The symbol goes right after the number, with no space in between. To measure something on your screen, try our <a href=\"https:\/\/www.digiaccion.com\/en\/online-ruler-inches\/\">online ruler in inches<\/a>.<\/p><h3>Degrees, minutes and seconds<\/h3><p>In angles and map coordinates, the prime marks minutes of arc and the double prime seconds of arc: 40\u00b0 25\u2032 08\u2033 N. The International System of Units keeps these symbols for angles, while minutes and seconds of time are written min and s. In math, the prime also names derivatives and related points, as in f\u2032(x).<\/p><h2>Apostrophe symbol: curly, straight and the \u02bbokina<\/h2><p>The typographic apostrophe is \u2019 (U+2019), the same character as the closing single quote. The straight one on your keyboard, ' (U+0027), is the typewriter version: correct in code and acceptable in plain text, but less polished in print. A classic slip in edited text is the apostrophe at the start of a word, as in \u201990s, which smart quotes often turn into an opening quote by mistake.<\/p><h3>The \u02bbokina in Hawaiian<\/h3><p>Some languages treat the apostrophe shape as a letter. The \u02bbokina (U+02BB), which looks like a turned comma, marks a glottal stop in Hawaiian, as in Hawai\u02bbi. Unicode also has a modifier letter apostrophe, \u02bc (U+02BC), used in several orthographies. Both are in the apostrophe group, so you can copy the exact character instead of an approximation.<\/p><h2>Hyphen vs en dash vs em dash<\/h2><p>All three are horizontal lines, but they have different lengths and jobs. The hyphen (-) is the shortest: it joins compound words such as well-known and splits a word at the end of a line.<\/p><p>The en dash (U+2013), about the width of a capital N, marks ranges and connections in English, as in pages 10 to 20 or a Boston to New York flight written with a dash. The em dash (U+2014), as wide as a capital M, sets off an aside or a sudden break in a sentence, much like parentheses or a colon but with more emphasis. Use a pair of em dashes around an aside in the middle of a sentence, or a single one before a final twist or explanation.<\/p><p>Neither dash is on a standard keyboard, which is why so many people look for an em dash to copy and paste. Both are in the punctuation group of the tool, next to the figure dash, the horizontal bar and the non-breaking hyphen, which keeps two words together on the same line.<\/p><h3>Minus sign \u2212 vs hyphen<\/h3><p>For math, Unicode has yet another character, the minus sign (U+2212, <code>&amp;minus;<\/code> in HTML). The hyphen on your keyboard, officially the hyphen-minus (U+002D), does double duty in plain text and code, but in typeset math, tables and charts the real minus sign usually looks better: it is typically longer than a hyphen and as wide as the plus sign, so 8 \u2212 3 = 5 lines up neatly. Spreadsheets and programming languages generally expect the hyphen-minus, so keep that one in formulas and code.<\/p><h3>Two-em dash and three-em dash<\/h3><p>The punctuation group also has two longer dashes. In Chicago style, the three-em dash (U+2E3B) has traditionally replaced an author\u2019s name in successive bibliography entries by the same author, although the latest edition of the manual recommends repeating the name. The two-em dash (U+2E3A) marks missing or illegible text in a quotation, or a name that has been withheld. Copy them as single characters instead of stringing em dashes together.<\/p><h2>How to use quotation marks: quotes, titles and scare quotes<\/h2><p>Quotation marks have a handful of jobs, and knowing them avoids most mistakes. The main one is to reproduce someone\u2019s exact words; if you paraphrase, you don\u2019t need them. They also enclose the titles of short works, such as an article, a poem, a song or a TV episode, while the titles of long works, such as books, films and albums, go in italics.<\/p><p>Writers also use them as scare quotes, to show that a word is used ironically or that they don\u2019t fully accept it: the \u201cimprovements\u201d made things worse. Use them sparingly, because a text full of scare quotes reads as sarcastic. Finally, quotation marks are not a way to add emphasis: a sign that offers \u201cfresh\u201d bread suggests the opposite of what the baker meant. For emphasis, use italics or bold instead.<\/p><h2>Inverted question mark and other punctuation marks<\/h2><p>Spanish opens questions and exclamations with their own marks, \u00bf and \u00a1, written at the start of the sentence: \u00bfD\u00f3nde est\u00e1s? English keyboards don\u2019t show them, so they are among the most copied symbols on this page. In English they are usually called the inverted or upside-down question mark and exclamation point. When a sentence is both a question and an exclamation, Spanish can combine them: \u00a1\u00bfQu\u00e9?!<\/p><p>The ellipsis \u2026 is a single character (U+2026) that keeps its three dots together at the end of a line. The interrobang \u203d, a blend of question mark and exclamation point, was created in 1962 by the American advertising executive Martin K. Speckter. You will also find the double exclamation mark \u203c and the reversed question mark \u2e2e, which has been proposed as an irony mark.<\/p><h2>Typographic symbols: section sign, pilcrow, dagger and degree<\/h2><p>Typography has its own set of signs for organizing a text and pointing readers around it. Many come from hand-set printing and are still common in legal, academic and design work.<\/p><h3>Section sign \u00a7 and pilcrow \u00b6<\/h3><p>The section sign \u00a7 refers to a numbered section of a document, especially in laws and regulations: \u00a7 3. The pilcrow \u00b6 once marked the start of a new paragraph; today most people know it from the Word button that shows formatting marks. The dagger \u2020 and double dagger \u2021 mark footnotes after the asterisk, and the dagger can also indicate a year of death. Bullets such as \u2022, \u2023 and \u25e6 are handy for lists in plain text, like an email or a social media bio, where list formatting is not available.<\/p><h3>Degree symbol \u00b0, copyright \u00a9 and trademark \u2122<\/h3><p>The degree symbol \u00b0 is a small raised circle for temperatures and angles (68\u00b0F). It is not the masculine ordinal indicator \u00ba used in Spanish and other languages, which is a small raised o, often underlined. The two look alike, but search engines and screen readers treat them as different characters. The same group has \u00a9 for copyright, \u00ae for registered trademarks, \u2122 for trademarks and \u2120 for service marks, plus the per mille sign \u2030.<\/p><h3>Ditto mark \u3003<\/h3><p>The ditto mark \u3003 (U+3003) means \u201csame as above\u201d in lists, tables and inventories, so you don\u2019t have to repeat a word or a figure on every line. By hand, people usually draw it as a pair of quotation marks, but the dedicated character can\u2019t be mistaken for a closing quote. It comes from the Unicode block for Chinese, Japanese and Korean punctuation, so in some fonts it looks wider than the surrounding text.<\/p><h2>Quotation marks in HTML: entities and Unicode<\/h2><p>On a web page you can type these characters directly if the page is saved as UTF-8, or use HTML character references. The named ones are easy to remember: <code>&amp;ldquo;<\/code> and <code>&amp;rdquo;<\/code> for \u201c\u00a0\u201d, <code>&amp;lsquo;<\/code> and <code>&amp;rsquo;<\/code> for \u2018\u00a0\u2019, <code>&amp;laquo;<\/code> and <code>&amp;raquo;<\/code> for \u00ab\u00a0\u00bb, and <code>&amp;prime;<\/code> and <code>&amp;Prime;<\/code> for primes. Any character also works with its number, such as <code>&amp;#8212;<\/code> for the em dash.<\/p><p>Each symbol in the tool shows its entity and its CSS escape, which is handy for the content property in a stylesheet. CSS also has a quotes property that sets which marks the browser draws around the q element, so a page in French or Spanish can show guillemets automatically. The <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/Character_reference\" target=\"_blank\" rel=\"noopener\">MDN glossary entry on character references<\/a> explains how they work, and the <a href=\"https:\/\/www.unicode.org\/charts\/PDF\/U2000.pdf\" target=\"_blank\" rel=\"noopener\">Unicode General Punctuation chart<\/a> lists the official name of every quote, dash and prime.<\/p><p>One detail that matters for SEO: in page titles, meta descriptions and image alt text, curly quotes and guillemets display without problems, while an unescaped straight double quote can cut an HTML attribute short and leave the text unfinished.<\/p><h3>Em dash HTML code, JavaScript and URL encoding<\/h3><p>The em dash is one of the characters people look up most in code. In HTML it is <code>&amp;mdash;<\/code> or <code>&amp;#8212;<\/code>, in CSS <code>\\2014<\/code>, in a JavaScript string <code>\\u2014<\/code> and in a URL <code>%E2%80%94<\/code>, its UTF-8 bytes. The tool shows these codes for any symbol you copy: the en dash, for example, is <code>&amp;ndash;<\/code>, <code>\\u2013<\/code> and <code>%E2%80%93<\/code>.<\/p><\/div><\/div>\n<button class=\"dgv-more-btn\" type=\"button\" aria-expanded=\"false\" aria-controls=\"dgv-more-body\" data-more=\"Read the full guide\" data-less=\"Close the guide\"><span class=\"dgv-more-lab\">Read the full guide<\/span><svg class=\"dgv-i\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-chev\"><\/use><\/svg><\/button>\n<\/div>\n<aside class=\"dgv-more-aside\" aria-label=\"Who made this tool\"><div class=\"dgv-card dgv-glow dgv-more-cta dgt-author\" data-dgv-r style=\"--dgv-d:.1s\"><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><span class=\"dgt-author-logo\" aria-hidden=\"true\"><svg viewBox=\"0 0 164 35\" role=\"img\" aria-label=\"DigiAcci\u00f3n\"><path class=\"g\" d=\"M133.8 8.8L133.8 8.8C133.8 8.7 133.8 8.7 133.9 8.7C136.4 8.4 138.9 8 141.5 7.6C141.9 7.5 142.2 7.5 142.5 7.5C142.9 7.5 143.2 7.5 143.6 7.5L143.6 7.5L143.6 8.8L143.6 8.8L133.8 8.8C133.7 8.8 133.7 8.8 133.8 8.8L133.8 8.8Z\"\/><path class=\"g\" d=\"M149.4 18.9C148.8 21.8 146.8 24 143.8 24.4C143.6 24.4 143.2 24.4 142.6 24.4C138.9 24.4 135.3 24.4 131.6 24.4C131 24.4 130.6 24.4 130.4 24.4C122.5 23.6 122.5 10.6 130.4 9.9C130.6 9.8 131 9.8 131.6 9.8C135.5 9.8 139.4 9.8 143.3 9.8C143.8 9.8 144.4 9.9 145 10.1C148.7 11.3 150.1 15.3 149.4 18.9ZM128.8 11.4C125.9 12.6 125.4 16.1 125.9 18.8C126.2 20.8 127.3 22.4 129.3 23C129.8 23.1 130.4 23.2 130.9 23.2C132.7 23.2 136.7 23.2 142.9 23.2C143.5 23.2 144 23.2 144.6 23.1C148.1 22.2 148.7 18.2 148.2 15.2C147.8 13.3 146.8 11.8 144.9 11.3C144.3 11.1 143.7 11 143.2 11C139.3 11 135.4 11 131.4 11C130.5 11 129.6 11 128.8 11.4Z\"\/><path class=\"g\" d=\"M152.6 13.3L152.6 13.3C153.3 11.4 154.8 10.2 156.7 9.9C158.8 9.6 160.9 10.1 162.1 12C162.8 13.2 163 14.6 163 15.9C163 18.6 163 21.4 163 24.1L163 24.1C163 24.1 163 24.1 162.9 24.1L161.7 24.1L161.7 24.1L161.7 24.1C161.7 21.4 161.7 18.6 161.7 15.9C161.7 13.8 161.2 11.5 158.7 11.1C157.8 10.9 157 10.9 156.1 11.1C153.7 11.7 152.7 13.7 152.7 16C152.7 18.7 152.7 21.4 152.7 24.1L152.7 24.1L151.5 24.1C151.5 24.1 151.4 24.1 151.4 24.1L151.4 24.1L151.4 10.1L151.4 10.1C151.4 10.1 151.4 10.1 151.5 10.1L152.5 10.1L152.5 10.1L152.5 10.1L152.5 13.3L152.5 13.3L152.5 13.3L152.5 13.3L152.6 13.3Z\"\/><path class=\"b\" d=\"M37 5L37 5C39.2 5 41.4 5 43.5 5C44.8 5 46 5.2 47.1 5.7C49.9 6.8 51.6 9.2 52.2 12.1C52.6 14.6 52.5 17.3 51.4 19.5C50 22.3 47.3 23.8 44.2 24.1C44 24.1 43.5 24.1 43 24.1C41 24.1 39 24.1 37 24.1L37 24.1L37 24.1V5ZM46.9 6.8C45.7 6.3 44.4 6.2 43.1 6.2C41.5 6.2 39.9 6.2 38.3 6.2L38.3 6.2L38.3 6.2V22.9L38.3 22.9L38.3 22.9C40 22.9 41.7 23 43.4 23C44.6 23 45.7 22.8 46.8 22.4C50.7 20.9 51.4 16.5 51 12.8C50.7 10.2 49.5 7.9 46.9 6.8Z\"\/><path class=\"b\" d=\"M76.8 24.1L75.6 24.1L75.5 24.1L75.5 24.1L75.5 24.1L75.5 24.1L83.5 5L83.5 5L83.5 5H85.2L85.2 5L85.2 5L93.2 24.1L93.2 24.1L93.2 24.1L93.2 24.1C93.2 24.1 93.2 24.1 93.1 24.1L91.8 24.1L91.8 24.1L91.8 24.1L89.2 18.1L89.2 18.1L89.2 18.1H79.4L79.4 18.1L79.4 18.1L76.9 24.1L76.9 24.1C76.9 24.1 76.9 24.1 76.8 24.1ZM84.2 6.4C82.9 9.9 81.4 13.4 79.9 16.8L79.9 16.8L79.9 16.9L79.9 16.9L79.9 16.9L88.7 16.9C88.7 16.9 88.7 16.9 88.7 16.8C87.6 14.2 86.6 11.7 85.5 9.1C85.1 8.2 84.7 7.3 84.4 6.4C84.4 6.3 84.3 6.3 84.3 6.3C84.2 6.3 84.2 6.4 84.2 6.4Z\"\/><path class=\"b\" d=\"M55.8 6.5L54.6 6.5L54.6 6.5L54.6 8.1L54.6 8.1L55.8 8.1C55.8 8.1 55.9 8.1 55.9 8.1L55.9 6.5C55.9 6.5 55.8 6.5 55.8 6.5Z\"\/><path class=\"b\" d=\"M74.1 6.5L72.8 6.5L72.8 6.5L72.8 8.1L72.8 8.1L74.1 8.1L74.1 8.1L74.1 6.5L74.1 6.5Z\"\/><path class=\"b\" d=\"M122.5 6.5H121.3L121.3 6.5V8.1L121.3 8.1H122.5L122.6 8.1V6.5C122.6 6.5 122.6 6.5 122.5 6.5Z\"\/><path class=\"b\" d=\"M69 19.7C69 19.6 68.9 19.6 68.9 19.7C68.2 21.6 66.3 22.9 64.2 22.9C60.5 23.1 58.1 20.9 57.8 17.3C57.5 13.8 58.9 10.4 62.8 9.9C65.4 9.5 68.1 10.6 69 13.3L69 13.3L69 13.3C69.1 13.3 69.1 13.3 69.1 13.2C69.1 12.2 69.1 11.2 69.1 10.1L69.1 10.1L70.2 10.1L70.2 10.1C70.2 10.1 70.2 10.1 70.2 10.2C70.2 14.9 70.2 19.6 70.2 24.3C70.2 24.5 70.2 24.9 70 25.4C69.2 28.8 65.5 29.8 62.5 29C60.2 28.5 58.5 26.7 58.5 24.2L58.5 24.2L58.5 24.2L59.8 24.2C59.8 24.2 59.8 24.2 59.8 24.3C59.8 27.7 62.9 28.4 65.7 28C68 27.6 69 26.1 69 23.8C69 22.4 69 21 69 19.7ZM62.4 11.1C60.3 11.5 59.3 13.1 59.1 15.1C58.8 17.7 59.3 20.8 62.2 21.6C64.7 22.2 67.6 21.6 68.6 18.9C69 17.8 69 16.6 68.9 15.5C68.7 11.9 65.5 10.5 62.4 11.1Z\"\/><path class=\"b\" d=\"M101.5 10C104.1 10.7 105.7 12.8 105.7 15.5L105.7 15.5L105.7 15.5L104.5 15.5C104.5 15.5 104.4 15.5 104.4 15.5C104.5 12.2 102.1 10.7 99.1 11C95.2 11.5 94.4 15.5 94.9 18.7C95.3 21.5 97 23.3 99.9 23.2C101.8 23.2 103.5 22.5 104.2 20.6C104.4 20 104.4 19.4 104.5 18.7L104.5 18.7L105.7 18.7L105.7 18.7L105.7 18.7C105.7 19.1 105.7 19.5 105.6 19.8C105.2 22.4 103.3 24 100.7 24.4C98.6 24.6 96.5 23.9 95.2 22.3C93.8 20.6 93.4 18.4 93.5 16.3C93.7 13.5 95.3 10.8 98.1 10.1C99.2 9.7 100.3 9.7 101.5 10Z\"\/><path class=\"b\" d=\"M119.4 18.7C119.5 21.7 117.4 24 114.6 24.3C110.9 24.8 108.1 22.6 107.4 19.1C106.5 14.8 108.5 9.9 113.4 9.8C116.8 9.8 119.5 12.1 119.4 15.5L119.4 15.5L118.2 15.5C118.2 15.5 118.1 15.5 118.1 15.5C118.1 14.5 117.9 13.5 117.3 12.6C116.2 11.1 114.1 10.8 112.4 11.1C110.6 11.5 109.3 12.7 108.8 14.4C108.4 15.9 108.3 17.6 108.6 19C109.1 21.5 110.7 23.1 113.2 23.2C115.1 23.3 116.9 22.7 117.7 20.9C118 20.2 118.2 19.5 118.1 18.7L118.1 18.7L118.1 18.7C118.1 18.7 118.2 18.7 118.2 18.7L118.2 18.7L119.4 18.7L119.4 18.7Z\"\/><path class=\"b\" d=\"M55.8 9.8H54.6C54.6 9.8 54.6 9.9 54.6 9.9V24.1L54.6 24.1H55.8C55.8 24.1 55.9 24.1 55.9 24.1V9.9C55.9 9.9 55.8 9.8 55.8 9.8Z\"\/><path class=\"b\" d=\"M74.1 9.8H72.8C72.8 9.8 72.8 9.9 72.8 9.9V24.1L72.8 24.1H74.1L74.1 24.1V9.9C74.1 9.9 74.1 9.8 74.1 9.8Z\"\/><path class=\"b\" d=\"M122.6 9.9V24.1L122.6 24.1C122.6 24.1 122.5 24.1 122.5 24.1L121.3 24.1L121.3 24.1L121.3 24.1V9.9L121.3 9.9L121.3 9.8L122.5 9.8C122.5 9.8 122.6 9.8 122.6 9.9L122.6 9.9Z\"\/><path class=\"b\" d=\"M0.4 6.8C1.1 5 2.9 4.7 4.6 4.7C8.5 4.7 12.2 4.7 15.8 4.7L15.8 4.7L15.9 4.6L18.6 0.1C18.6 0.1 18.6 0 18.6 0C18.7 0 18.7 0 18.8 5.9e-06L21.8 0L21.8 0L21.8 0C21.8 0 21.9 0 21.9 0.1C21.9 0.1 21.8 0.1 21.8 0.1C17.9 6.6 14 13.1 10.1 19.6C9.6 20.4 9.3 20.9 9.2 21C7.1 24.2 3.8 26.6 0 27.2L0 27.2L0 27.2L0 27.1C0 27.1 6.5e-05 27.1 0 27.1C0 21.3 0 15.4 0 9.7C0 8.7 0.1 7.7 0.4 6.8ZM3.2 23C4.8 22.1 6 20.8 7 19.2C9.2 15.6 11.4 11.9 13.7 8.2C13.7 8 13.9 7.9 13.9 7.8C14 7.7 13.9 7.7 13.9 7.7C10.3 7.7 6.9 7.7 3.8 7.7C3.4 7.7 3 7.7 2.9 8.2C2.9 8.2 2.9 8.3 2.9 8.4C2.9 12.9 2.9 17.7 2.9 23.1L2.9 23.1L2.9 23.1L2.9 23.1C2.9 23.1 3 23.1 3 23.1C3 23.1 3.1 23 3.2 23Z\"\/><path class=\"g\" d=\"M11.7 29.8L9.1 34.3L9.1 34.3C9.1 34.3 9.1 34.3 9 34.3L5.8 34.4C5.8 34.4 5.8 34.3 5.8 34.3C8.4 30 11 25.6 13.6 21.3C13.9 20.8 14.2 20.4 14.5 19.9C15.6 18 16.8 16.1 17.9 14.1C20 10.7 23.5 8.1 27.5 7.4L27.5 7.4L27.5 7.4L27.5 7.4L27.5 7.4C27.5 12.8 27.5 18.2 27.5 23.7C27.5 24.9 27.5 26.1 27.3 27.3C27 28.4 26.4 29.2 25.3 29.5C24.4 29.8 23.5 29.8 22.6 29.8C18.7 29.8 15.1 29.8 11.8 29.8L11.8 29.8L11.7 29.8ZM13.9 26.3C13.7 26.6 13.6 26.8 13.6 26.9L13.6 26.9L13.6 26.9L13.6 26.9L13.6 26.9C13.6 26.9 17 26.9 23.8 26.9C24.3 26.9 24.6 26.8 24.6 26.3C24.6 21.2 24.6 16.3 24.6 11.6C24.6 11.6 24.6 11.6 24.6 11.5L24.6 11.5L24.6 11.5L24.6 11.5C22.9 12.4 21.5 13.8 20.5 15.4C19.6 16.8 18.4 18.9 16.9 21.5C15.9 23.1 14.9 24.6 13.9 26.3Z\"\/><\/svg><\/span><p class=\"dgv-more-cta-t dgv-grad\">Tool created by DigiAcci\u00f3n<\/p><p class=\"dgv-txt\">DigiAcci\u00f3n is a digital marketing agency in La Massana, Andorra. We do web design, SEO, GEO (AI search visibility), Google Ads, Meta Ads, video, graphic design and online stores for businesses in Andorra, Spain and other countries.<\/p><a class=\"dgv-btn dgv-btn--pri\" href=\"https:\/\/www.digiaccion.com\/en\/#contacto\">Talk to DigiAcci\u00f3n<svg class=\"dgv-i dgv-arr\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><\/a><\/div><\/aside>\n<\/div>\n<\/section>\n<section class=\"dgv-sec dgv-rel dgt-more-tools\" aria-labelledby=\"dgt-tools-t\">\n<div class=\"dgv-wrap\">\n<div class=\"dgv-head dgv-head--c dgv-rel-head\" data-dgv-r><p class=\"dgv-h2 dgv-rel-h dgv-grad\" id=\"dgt-tools-t\">More free tools by DigiAcci\u00f3n<\/p><p class=\"dgv-intro\">Other utilities we have built for people who write, design or build websites. All free, no sign-up.<\/p><\/div>\n<ul class=\"dgt-tools\" role=\"list\"><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d data-dgv-r style=\"--dgv-d:0.00s\"><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-kana\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/japanese-alphabet\/\">Japanese letters: hiragana, katakana and kanji<\/a><small class=\"dgt-tools-d\">The Japanese alphabet to copy and a romaji to Japanese converter.<\/small><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d data-dgv-r style=\"--dgv-d:0.06s\"><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-ruler\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/online-ruler-cm-mm\/\">Online ruler in cm and mm (actual size)<\/a><small class=\"dgt-tools-d\">Measure in centimeters and millimeters on your screen, with calibration.<\/small><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d data-dgv-r style=\"--dgv-d:0.12s\"><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-ruler\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/online-ruler-inches\/\">Online ruler in inches (actual size)<\/a><small class=\"dgt-tools-d\">Measure in inches and fractions of an inch at actual size.<\/small><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d data-dgv-r style=\"--dgv-d:0.00s\"><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-palette\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/html-color-codes\/\">HTML color codes chart: HEX and RGB<\/a><small class=\"dgt-tools-d\">Hundreds of organized colors, picker, converter and contrast checker.<\/small><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d data-dgv-r style=\"--dgv-d:0.06s\"><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-i--f dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-star\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/star-symbols\/\">Star emojis and star symbols<\/a><small class=\"dgt-tools-d\">Stars to copy and a star rating generator.<\/small><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d data-dgv-r style=\"--dgv-d:0.12s\"><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-smile\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/emojis-copy-paste\/\">Emojis to copy and paste<\/a><small class=\"dgt-tools-d\">Nearly 1,900 emojis with search, skin tones and symbols for titles.<\/small><\/li><\/ul>\n<\/div>\n<\/section>\n<section class=\"dgv-sec dgv-final dgt-final\">\n<div class=\"dgv-fx\" aria-hidden=\"true\"><div class=\"dgv-beams dgv-beams--up\"><\/div><\/div>\n<div class=\"dgv-wrap\"><div class=\"dgv-final-card\" data-dgv-r><p class=\"dgv-final-t dgv-grad\">Looking for an agency that specializes in web design, SEO, GEO and AI?<\/p><p class=\"dgv-intro\">DigiAcci\u00f3n, a digital marketing agency in Andorra, works with businesses in Andorra, Spain and other countries.<\/p><div class=\"dgv-ctas dgv-ctas--c\"><a class=\"dgv-btn dgv-btn--pri\" href=\"https:\/\/www.digiaccion.com\/en\/#contacto\">Contact DigiAcci\u00f3n<svg class=\"dgv-i dgv-arr\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><\/a><a class=\"dgv-btn dgv-btn--demo\" href=\"https:\/\/wa.me\/376372337\" target=\"_blank\" rel=\"noopener\"><svg class=\"dgv-i dgt-wa\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-whatsapp\"><\/use><\/svg>Message us on WhatsApp<span class=\"dgv-sr\"> (opens in a new tab)<\/span><\/a><\/div><p class=\"dgv-final-n\">Tool created by <a href=\"https:\/\/www.digiaccion.com\/en\/\">DigiAcci\u00f3n, a digital marketing agency in Andorra<\/a>.<\/p><\/div><\/div>\n<\/section>\n<section class=\"dgv-sec dgv-rel dgv-svc\" aria-labelledby=\"dgv-svc-t\">\n<div class=\"dgv-wrap\">\n<div class=\"dgv-head dgv-head--c dgv-rel-head\" data-dgv-r><p class=\"dgv-h2 dgv-rel-h dgv-grad\" id=\"dgv-svc-t\">Digital marketing services<\/p><p class=\"dgv-intro\">Everything we do at DigiAcci\u00f3n, a digital marketing agency in Andorra.<\/p><\/div>\n<div class=\"dgv-rel-car dgv-svc-car\" data-dgv-r data-dgv-car>\n<ul class=\"dgv-rel-track dgv-svc-track\" id=\"dgv-svc-track\" role=\"list\"><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-bolt\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/\">Digital marketing agency in Andorra<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-layout\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/web-design-agency-in-andorra\/\">Web design agency in Andorra<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-chart\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/seo-organic-positioning-agency-andorra\/\">SEO agency in Andorra<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-megaphone\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/google-ads-sem-agency-in-andorra\/\">Google Ads agency in Andorra<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-target\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/meta-ads-agency-facebook-ads-in-andorra\/\">Social Ads agency in Andorra<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-video\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/video-production-editing-agency-andorra\/\">Video production and editing agency in Andorra<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-sparkles\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/geo-agency-ai-chat-positioning-andorra\/\">GEO agency in Andorra<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-pen\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/graphic-design-agency-andorra\/\">Graphic design agency in Andorra<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-shop\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a dgv-rel-a--guion\" href=\"https:\/\/www.digiaccion.com\/en\/e-commerce-design-agency-andorra\/\">E-commerce agency in Andorra<\/a><\/li><\/ul>\n<div class=\"dgv-rel-nav\"><span class=\"dgv-rel-bar\" aria-hidden=\"true\"><i><\/i><\/span><span class=\"dgv-rel-btns\"><button class=\"dgv-rel-btn\" type=\"button\" data-dir=\"-1\" aria-controls=\"dgv-svc-track\" aria-label=\"Previous marketing services\"><svg class=\"dgv-i dgv-rel-prev\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><\/button><button class=\"dgv-rel-btn\" type=\"button\" data-dir=\"1\" aria-controls=\"dgv-svc-track\" aria-label=\"Next marketing services\"><svg class=\"dgv-i\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><\/button><\/span><\/div>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"dgv-sec dgv-rel\" aria-labelledby=\"dgv-rel-t\">\n<div class=\"dgv-fx\" aria-hidden=\"true\"><div class=\"dgv-rel-glow\"><\/div><\/div>\n<div class=\"dgv-wrap\">\n<div class=\"dgv-head dgv-head--c dgv-rel-head\" data-dgv-r><p class=\"dgv-h2 dgv-rel-h dgv-grad\" id=\"dgv-rel-t\">Web design by industry<\/p><p class=\"dgv-intro\">Custom websites for every kind of business, plus specialized digital marketing for lawyers.<\/p><\/div>\n<div class=\"dgv-rel-car\" data-dgv-r data-dgv-car>\n<ul class=\"dgv-rel-track\" id=\"dgv-rel-track\" role=\"list\"><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-briefcase\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/web-design-agency-consulting-management-firms\/\">Web design for consulting and management firms<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-scale\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/web-design-agency-lawyers-law-firms\/\">Web design for lawyers and law firms<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-megaphone\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/legal-marketing-agency-lawyers\/\">Digital marketing agency for lawyers<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-compass\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/web-design-agency-architects-interior-designers\/\">Web design for architects and interior designers<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-food\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/web-design-agency-restaurants-hospitality\/\">Web design for restaurants and hospitality<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-health\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/web-design-agency-clinics-healthcare\/\">Web design for clinics and healthcare<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-home\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/web-design-agency-real-estate\/\">Real estate website design<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-crane\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/web-design-agency-construction-contractors\/\">Contractor website design<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-bed\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/web-design-agency-hotels\/\">Hotel website design<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-mountain\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/web-design-agency-vacation-rentals\/\">Vacation rental website design<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-wrench\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/web-design-agency-auto-repair-shops\/\">Auto repair website design<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-paw\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/web-design-agency-veterinary-clinics\/\">Veterinary website design<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-dumbbell\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/web-design-agency-gyms-fitness\/\">Gym and fitness website design<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-cpu\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/web-design-agency-it-companies\/\">Website design for IT companies<\/a><\/li><li class=\"dgv-rel-card dgv-glow\" data-dgv-3d><span class=\"dgv-edge\" aria-hidden=\"true\"><\/span><svg class=\"dgv-i dgv-rel-ic\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-hanger\"><\/use><\/svg><svg class=\"dgv-i dgv-rel-go\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><a class=\"dgv-rel-a\" href=\"https:\/\/www.digiaccion.com\/en\/web-design-agency-fashion-brands\/\">Fashion website design<\/a><\/li><\/ul>\n<div class=\"dgv-rel-nav\"><span class=\"dgv-rel-bar\" aria-hidden=\"true\"><i><\/i><\/span><span class=\"dgv-rel-btns\"><button class=\"dgv-rel-btn\" type=\"button\" data-dir=\"-1\" aria-controls=\"dgv-rel-track\" aria-label=\"Previous services\"><svg class=\"dgv-i dgv-rel-prev\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><\/button><button class=\"dgv-rel-btn\" type=\"button\" data-dir=\"1\" aria-controls=\"dgv-rel-track\" aria-label=\"Next services\"><svg class=\"dgv-i\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#dgv-i-arrow\"><\/use><\/svg><\/button><\/span><\/div>\n<\/div>\n<\/div>\n<\/section>\n<div class=\"dgt-toast\" data-dgt-toast role=\"status\" aria-live=\"polite\"><\/div>\n<\/div>\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebApplication\",\"@id\":\"https:\/\/www.digiaccion.com\/en\/quotation-marks-symbols\/#herramienta\",\"name\":\"Quotation marks and symbols to copy\",\"description\":\"Free tool by DigiAcci\u00f3n to copy quotation marks, guillemets, primes, apostrophes, the em dash and typographic symbols with their Unicode, HTML and Alt codes, plus a smart quotes converter.\",\"url\":\"https:\/\/www.digiaccion.com\/en\/quotation-marks-symbols\/\",\"applicationCategory\":\"UtilitiesApplication\",\"operatingSystem\":\"Any\",\"browserRequirements\":\"Requires JavaScript\",\"inLanguage\":\"en-US\",\"isAccessibleForFree\":true,\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"EUR\"},\"creator\":{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.digiaccion.com\/#organization\",\"name\":\"DigiAcci\u00f3n\",\"url\":\"https:\/\/www.digiaccion.com\/\"},\"publisher\":{\"@id\":\"https:\/\/www.digiaccion.com\/#organization\"},\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.digiaccion.com\/en\/quotation-marks-symbols\/#webpage\"}},{\"@type\":\"FAQPage\",\"@id\":\"https:\/\/www.digiaccion.com\/en\/quotation-marks-symbols\/#faq\",\"url\":\"https:\/\/www.digiaccion.com\/en\/quotation-marks-symbols\/\",\"isPartOf\":{\"@id\":\"https:\/\/www.digiaccion.com\/en\/quotation-marks-symbols\/#webpage\"},\"inLanguage\":\"en-US\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What is the symbol for quotation marks?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"There is more than one. The standard English pair is \u201c\u00a0\u201d (U+201C and U+201D), the single pair is \u2018\u00a0\u2019 (U+2018 and U+2019) and the straight keyboard mark is \\\" (U+0022). Many other languages use guillemets \u00ab\u00a0\u00bb or low marks such as \u201e.\"}},{\"@type\":\"Question\",\"name\":\"How do I copy and paste straight quotation marks?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Click the straight quote in the double quotes group of this tool and it is copied as a plain U+0022, which is what code and spreadsheets expect. If your editor keeps changing it as you type, turn off smart quotes: in Word it is in the AutoCorrect options, and in Google Docs under Tools, Preferences. To straighten every quote in a text at once, paste it into the quote converter at the end of the tool and choose Straight.\"}},{\"@type\":\"Question\",\"name\":\"What are smart quotes?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Smart quotes are the curly quotation marks and apostrophes (\u201c \u201d \u2018 \u2019) that a word processor inserts when you type the straight keys (\\\" and '). They are called smart because the software picks the opening or closing mark for you. Use them in text people read; for code, spreadsheet formulas and HTML attributes, keep straight quotes.\"}},{\"@type\":\"Question\",\"name\":\"How do you convert straight quotes to curly quotes?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Paste the text into the quote converter at the end of this tool, choose Curly and copy the result: opening marks, closing marks and apostrophes are fixed in one go. In Word, turn on smart quotes and use Find and Replace to replace a straight double quote with the same straight double quote; Word swaps each one for the right curly mark. Repeat with the single quote.\"}},{\"@type\":\"Question\",\"name\":\"Does the period go inside or outside quotation marks?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"In American English, periods and commas go inside the closing quotation mark, even when they are not part of the quote. British English usually places them outside unless they belong to the quoted words. Question marks and exclamation points go inside only when they are part of the quote.\"}},{\"@type\":\"Question\",\"name\":\"Is an em dash just two hyphens?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Two hyphens are the old typewriter stand-in for an em dash, which is a single character, U+2014. Microsoft Word can replace two hyphens between words with a real em dash as you type, but in plain text, code or a web form the hyphens stay as they are.\"}},{\"@type\":\"Question\",\"name\":\"How do you type an em dash?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"On Windows, hold Alt and type 0151 on the numeric keypad; in Word, Ctrl + Alt + the minus key on the keypad also works. On a Mac with the U.S. layout, press Option + Shift + hyphen. On iPhone and Android, press and hold the hyphen key and slide to the longest dash.\"}},{\"@type\":\"Question\",\"name\":\"Should there be spaces around an em dash?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"It depends on the style guide. The Chicago Manual of Style and most book publishers use no spaces, while AP style, common in US newspapers, puts a space on each side. Many British publishers use a spaced en dash instead. Pick one style and keep it consistent.\"}},{\"@type\":\"Question\",\"name\":\"Why do people say em dashes are a sign of AI writing?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Chatbots often use em dashes several times per paragraph, far more than most people do, so heavy use has become a common tell of AI-generated text. The mark itself is perfectly correct; what stands out is the frequency.\"}},{\"@type\":\"Question\",\"name\":\"What is the prime symbol?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The prime \u2032 (U+2032) is a slanted mark used for feet, for minutes of arc and, in math, for derivatives and related variables, as in f\u2032(x) or A\u2032. The double prime \u2033 (U+2033) marks inches and seconds of arc.\"}},{\"@type\":\"Question\",\"name\":\"Is the prime symbol the same as an apostrophe?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. They look similar, but the apostrophe is U+2019 (curly) or U+0027 (straight) and the prime is U+2032, a separate character with a straighter, slanted shape. Use the prime for measurements and the apostrophe for words like don\u2019t.\"}},{\"@type\":\"Question\",\"name\":\"How do you type an upside down question mark?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"On Windows, hold Alt and type 0191 (or 168) on the numeric keypad; Alt + 0161 gives the inverted exclamation mark. On iPhone and Android, press and hold the question mark key. You can also click \u00bf or \u00a1 in the punctuation group of this tool.\"}}]}]}<\/script>\n<script id=\"dgv-js\">\n\/* DigiAcci\u00f3n | P\u00e1ginas verticales | JS del bloque (nativo, sin librer\u00edas).\n   No se ejecuta en el constructor visual de Divi (body.et-fb o ?et_fb=1): all\u00ed todo queda desplegado y editable. *\/\n(function () {\n  var d = document, b = d.body;\n  if (!b || b.classList.contains('et-fb') || \/[?&](et_fb|et_pb_preview)=\/.test(location.search)) return;\n  var roots = d.querySelectorAll('.dgv[data-dgv]');\n  var RM = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  var FINE = window.matchMedia && window.matchMedia('(hover: hover) and (pointer: fine)').matches;\n  function each(list, fn) { Array.prototype.forEach.call(list, fn); }\n  each(roots, function (root) {\n    if (root.getAttribute('data-dgv-on')) return;\n    root.setAttribute('data-dgv-on', '1');\n    root.classList.add('dgv-js');\n    \/* 10. Nota y n\u00famero de rese\u00f1as de Google desde verticales.css (v11): :root{--dgv-google-nota;--dgv-google-resenas}.\n       Si cambian all\u00ed, se actualizan todas las menciones del bloque ([data-dgv-g]) sin volver a pegar el c\u00f3digo.\n       El HTML lleva el valor del d\u00eda en que se construy\u00f3 (es lo que se ve sin JS y lo que leen los buscadores). *\/\n    (function () {\n      var cs = getComputedStyle(d.documentElement);\n      function val(n) { return (cs.getPropertyValue(n) || '').trim().replace(\/^[\"']|[\"']$\/g, ''); }\n      var nota = val('--dgv-google-nota'), res = val('--dgv-google-resenas');\n      if (!\/^\\d([.,]\\d)?$\/.test(nota)) nota = '';\n      if (!\/^\\d{1,5}$\/.test(res)) res = '';\n      if (nota && \/^en\/i.test(root.getAttribute('lang') || '')) nota = nota.replace(',', '.');\n      if (nota) each(root.querySelectorAll('[data-dgv-g=\"nota\"]'), function (el) { if (el.textContent !== nota) el.textContent = nota; });\n      if (res) each(root.querySelectorAll('[data-dgv-g=\"resenas\"]'), function (el) { if (el.textContent !== res) el.textContent = res; });\n    })();\n    \/* 1. Aparici\u00f3n suave al entrar en pantalla *\/\n    var rv = root.querySelectorAll('[data-dgv-r]');\n    var late = window.performance && performance.now() > 4000; \/* script retrasado por un optimizador: sin animaci\u00f3n de entrada *\/\n    if (!RM && !late && 'IntersectionObserver' in window) {\n      var io = new IntersectionObserver(function (es) {\n        es.forEach(function (e) { if (e.isIntersecting) { e.target.classList.add('is-in'); io.unobserve(e.target); } });\n      }, { rootMargin: '0px 0px -6% 0px', threshold: 0.06 });\n      each(rv, function (el) { io.observe(el); });\n    } else { each(rv, function (el) { el.classList.add('is-in'); }); }\n    \/* 2. Preguntas frecuentes: botones con aria-expanded (rat\u00f3n y teclado) *\/\n    each(root.querySelectorAll('.dgv-faq-btn'), function (btn) {\n      btn.addEventListener('click', function () {\n        var item = btn.closest('.dgv-faq-item'), open = btn.getAttribute('aria-expanded') !== 'true';\n        btn.setAttribute('aria-expanded', open ? 'true' : 'false');\n        item.classList.toggle('is-open', open);\n      });\n    });\n    \/* 3. \"Leer m\u00e1s\": texto completo en el HTML, plegado con degradado *\/\n    var more = root.querySelector('[data-dgv-more]'), mb = root.querySelector('.dgv-more-btn');\n    if (more && mb) {\n      var lab = mb.querySelector('.dgv-more-lab');\n      var setMore = function (open, fromFocus) {\n        if (open === more.classList.contains('is-open')) return;\n        mb.setAttribute('aria-expanded', open ? 'true' : 'false');\n        if (lab) lab.textContent = mb.getAttribute(open ? 'data-less' : 'data-more');\n        if (open) {\n          more.style.maxHeight = more.scrollHeight + 'px';\n          more.classList.add('is-open');\n          var done = function () { more.style.maxHeight = 'none'; more.removeEventListener('transitionend', done); };\n          if (RM || fromFocus) done(); else more.addEventListener('transitionend', done);\n        } else {\n          more.style.maxHeight = more.scrollHeight + 'px';\n          void more.offsetHeight;\n          more.classList.remove('is-open');\n          more.style.maxHeight = '';\n          var card = more.closest('.dgv-more-card') || more;\n          var top = card.getBoundingClientRect().top;\n          if (top < 0) window.scrollTo({ top: window.pageYOffset + top - 110, behavior: RM ? 'auto' : 'smooth' });\n        }\n      };\n      mb.addEventListener('click', function () { setMore(mb.getAttribute('aria-expanded') !== 'true'); });\n      more.addEventListener('focusin', function () { setMore(true, true); });\n    }\n    \/* 4. Luz que sigue al cursor en las tarjetas con borde luminoso *\/\n    if (FINE && !RM) {\n      root.addEventListener('pointermove', function (e) {\n        var c = e.target.closest ? e.target.closest('.dgv-glow') : null;\n        if (!c) return;\n        var r = c.getBoundingClientRect();\n        c.style.setProperty('--dgv-mx', (e.clientX - r.left) + 'px');\n        c.style.setProperty('--dgv-my', (e.clientY - r.top) + 'px');\n      }, { passive: true });\n      \/* Inclinaci\u00f3n ligera de la ventana de la demo *\/\n      each(root.querySelectorAll('[data-dgv-tilt]'), function (w) {\n        w.addEventListener('pointermove', function (e) {\n          var r = w.getBoundingClientRect(), x = (e.clientX - r.left) \/ r.width - 0.5, y = (e.clientY - r.top) \/ r.height - 0.5;\n          w.style.setProperty('--dgv-ry', (x * 5).toFixed(2) + 'deg');\n          w.style.setProperty('--dgv-rx', (-y * 4).toFixed(2) + 'deg');\n        }, { passive: true });\n        w.addEventListener('pointerleave', function () { w.style.setProperty('--dgv-ry', '0deg'); w.style.setProperty('--dgv-rx', '0deg'); });\n      });\n    }\n    \/* 5. Frases de impacto: una diapositiva por frase a pantalla completa. La secci\u00f3n queda fijada (sticky en la CSS)\n       y la pista se desplaza en horizontal seg\u00fan el scroll vertical dentro de ella. Sin JS o con movimiento reducido,\n       la CSS deja las frases una debajo de otra. Cada diapositiva se queda quieta un tramo (HOLD) para que en reposo\n       no se vean dos a medias, y el paso de una a otra va suavizado. *\/\n    var hx = root.querySelector('[data-dgv-hx]');\n    var hxs = hx ? hx.querySelectorAll('.dgv-hx-slide') : [], hxn = hxs.length, hxp = hx && hx.querySelector('.dgv-hx-pin');\n    if (hx && hxp && hxn > 1 && !RM) {\n      hx.classList.add('is-hx');\n      var cnt = hx.querySelector('.dgv-hx-count'), HOLD = 0.22, hxTick = false, hxLive = false, hxCur = -1;\n      var clamp = function (v, a, z) { return v < a ? a : (v > z ? z : v); };\n      var ease = function (t) { return t * t * t * (t * (t * 6 - 15) + 10); };\n      var hxPaint = function () {\n        hxTick = false;\n        if (!hx.classList.contains('is-hx')) return;\n        var r = hx.getBoundingClientRect(), ph = hxp.offsetHeight, run = r.height - ph;\n        \/* Seguro: si algo de la p\u00e1gina rompe el sticky (overflow o transform en un ancestro), el pin no se queda\n           arriba dentro del recorrido; entonces se vuelve a las frases una debajo de otra. *\/\n        if (r.top < -40 && r.bottom > ph + 40 && Math.abs(hxp.getBoundingClientRect().top) > 4) {\n          hx.classList.remove('is-hx'); hxListen(false); return;\n        }\n        var p = run > 0 ? clamp(-r.top \/ run, 0, 1) : 0;\n        var s = p * (hxn - 1), k = Math.min(hxn - 2, Math.floor(s));\n        var x = k + ease(clamp((s - k - HOLD) \/ (1 - 2 * HOLD), 0, 1)), t = x \/ (hxn - 1) * 2;\n        hx.style.setProperty('--dgv-hx-x', x.toFixed(4));\n        hx.style.setProperty('--dgv-hx-p', p.toFixed(4));\n        hx.style.setProperty('--dgv-hx-bar', ((1 + x) \/ hxn).toFixed(4));\n        for (var j = 0; j < 3; j++) hx.style.setProperty('--dgv-hx-w' + j, Math.max(0, 1 - Math.abs(t - j)).toFixed(3));\n        each(hxs, function (sl, i) {\n          var o = clamp(i - x, -1, 1);\n          sl.style.setProperty('--dgv-hx-o', o.toFixed(4));\n          sl.style.setProperty('--dgv-hx-a', Math.abs(o).toFixed(4));\n        });\n        var cur = Math.round(x);\n        if (cur !== hxCur && cnt) { hxCur = cur; cnt.setAttribute('data-n', (cur < 9 ? '0' : '') + (cur + 1)); }\n      };\n      var hxOn = function () { if (!hxTick) { hxTick = true; window.requestAnimationFrame(hxPaint); } };\n      var hxListen = function (on) {\n        if (!hx.classList.contains('is-hx')) on = false;\n        if (on === hxLive) return;\n        hxLive = on;\n        window[on ? 'addEventListener' : 'removeEventListener']('scroll', hxOn, { passive: true });\n        window[on ? 'addEventListener' : 'removeEventListener']('resize', hxOn, { passive: true });\n        hxOn();\n      };\n      if ('IntersectionObserver' in window) {\n        new IntersectionObserver(function (es) { hxListen(es[es.length - 1].isIntersecting); }, { rootMargin: '25% 0px 25% 0px' }).observe(hx);\n      } else { hxListen(true); }\n      hxPaint();\n    }\n    \/* 6. Carruseles ([data-dgv-car]: servicios relacionados, servicios principales en m\u00f3vil y testimonios), cada uno por\n       separado. Scroll nativo (scroll-snap en la CSS: se desliza con el dedo, el trackpad o el teclado). Los botones pasan\n       una p\u00e1gina de tarjetas y quedan desactivados (aria-disabled, siguen enfocables) en cada extremo. Si todas las\n       tarjetas caben (o la CSS las pone en cuadr\u00edcula), .is-static y sin botones. Sin JS los botones no se ven y la pista\n       sigue siendo deslizable. *\/\n    each(root.querySelectorAll('[data-dgv-car]'), function (car) {\n      var tr = car.querySelector('.dgv-rel-track'), rb = car.querySelectorAll('.dgv-rel-btn');\n      if (!tr || rb.length < 2 || !tr.children.length) return;\n      var cards = tr.children, relTick = false;\n      var off = function (bt, v) { bt.setAttribute('aria-disabled', v ? 'true' : 'false'); };\n      var relPaint = function () {\n        relTick = false;\n        var max = tr.scrollWidth - tr.clientWidth, x = tr.scrollLeft;\n        car.classList.toggle('is-static', max <= 2);\n        off(rb[0], x <= 2); off(rb[1], x >= max - 2);\n        car.style.setProperty('--dgv-rel-w', (tr.clientWidth \/ tr.scrollWidth).toFixed(4));\n        car.style.setProperty('--dgv-rel-x', (tr.scrollWidth ? x \/ tr.scrollWidth : 0).toFixed(4));\n      };\n      var relOn = function () { if (!relTick) { relTick = true; window.requestAnimationFrame(relPaint); } };\n      each(rb, function (bt) {\n        bt.addEventListener('click', function () {\n          if (bt.getAttribute('aria-disabled') === 'true') return;\n          var cs = getComputedStyle(tr), pl = parseFloat(cs.paddingLeft) || 0, pr = parseFloat(cs.paddingRight) || 0;\n          var gap = parseFloat(cs.columnGap) || 0, tl = tr.getBoundingClientRect().left + pl;\n          var w = cards[0].getBoundingClientRect().width, n = cards.length, k = 0;\n          var per = Math.max(1, Math.floor((tr.clientWidth - pl - pr + gap + 2) \/ (w + gap)));\n          while (k < n - 1 && cards[k].getBoundingClientRect().left < tl - 2) k++;   \/* primera tarjeta visible entera *\/\n          var to = Math.max(0, Math.min(n - 1, k + (bt.getAttribute('data-dir') === '-1' ? -per : per)));\n          var max = tr.scrollWidth - tr.clientWidth;\n          var left = Math.max(0, Math.min(max, tr.scrollLeft + cards[to].getBoundingClientRect().left - tl));\n          tr.scrollTo({ left: left, behavior: RM ? 'auto' : 'smooth' });\n        });\n      });\n      tr.addEventListener('scroll', relOn, { passive: true });\n      window.addEventListener('resize', relOn, { passive: true });\n      if ('ResizeObserver' in window) new ResizeObserver(relOn).observe(tr);\n      relPaint();\n    });\n    \/* 8. Testimonios con el texto largo: las citas largas llevan en el HTML el texto completo y un bot\u00f3n oculto (hidden).\n       Si el texto pasa de 7 l\u00edneas (6 = --dgv-q-lines en la CSS, m\u00e1s una de margen) en el ancho actual, la tarjeta pasa a .is-clamp (texto\n       recortado con degradado) y se ense\u00f1a el bot\u00f3n \"+ Leer m\u00e1s\", que lo despliega en la propia tarjeta (aria-expanded y el\n       texto del bot\u00f3n cambian). Las tarjetas cerradas del carrusel tienen el mismo alto; al desplegar una, la pista pasa a\n       .has-open y fija el alto de las dem\u00e1s (--dgv-qh), as\u00ed solo crece la desplegada. Se recalcula al cambiar el ancho y al\n       cargar las fuentes. Sin JS: texto entero, sin bot\u00f3n. *\/\n    var qs = root.querySelectorAll('.dgv-quote'), qW = -1, qTick = false;\n    var qAfter = function (el, fn) {           \/* fin de la transici\u00f3n (o enseguida con movimiento reducido) *\/\n      var ok = false, go = function () { if (ok) return; ok = true; el.removeEventListener('transitionend', go); fn(); };\n      if (RM) { go(); return; }\n      el.addEventListener('transitionend', go); setTimeout(go, 800);\n    };\n    var qLock = function (tr) {                 \/* alto de las tarjetas cerradas, medido con las abiertas recortadas *\/\n      if (!tr || !tr.classList.contains('has-open')) return;\n      var open = tr.querySelectorAll('.dgv-quote.is-open');\n      each(open, function (f) { f.classList.add('is-measuring'); });\n      tr.classList.remove('has-open');\n      var h = tr.firstElementChild ? tr.firstElementChild.offsetHeight : 0;\n      tr.style.setProperty('--dgv-qh', h + 'px');\n      tr.classList.add('has-open');\n      each(open, function (f) { f.classList.remove('is-measuring'); });\n    };\n    var qFit = function () {\n      each(qs, function (fig) {\n        var bt = fig.querySelector('.dgv-q-more'), bq = fig.querySelector('.dgv-q-body');\n        if (!bt || !bq) return;\n        var cs = getComputedStyle(bq), lh = parseFloat(cs.lineHeight) || parseFloat(cs.fontSize) * 1.5;\n        var n = parseFloat(getComputedStyle(fig).getPropertyValue('--dgv-q-lines')) || 6;\n        var long = bq.scrollHeight > lh * (n + 1) + 4;   \/* con una sola l\u00ednea de m\u00e1s se lee entera: no se recorta *\/\n        if (long || fig.classList.contains('is-open')) { bt.hidden = false; fig.classList.add('is-clamp'); }\n        else { bt.hidden = true; fig.classList.remove('is-clamp'); }\n      });\n      each(root.querySelectorAll('.dgv-qcar-track.has-open'), qLock);\n    };\n    each(qs, function (fig) {\n      var bt = fig.querySelector('.dgv-q-more'), bq = fig.querySelector('.dgv-q-body');\n      if (!bt || !bq) return;\n      var lab = bt.querySelector('.dgv-q-lab');\n      bt.addEventListener('click', function () {\n        var open = bt.getAttribute('aria-expanded') !== 'true', tr = fig.closest('.dgv-qcar-track'), it = fig.parentNode;\n        bt.setAttribute('aria-expanded', open ? 'true' : 'false');\n        if (lab) lab.textContent = bt.getAttribute(open ? 'data-less' : 'data-more');\n        if (open) {\n          if (tr && !tr.classList.contains('has-open')) { tr.style.setProperty('--dgv-qh', it.offsetHeight + 'px'); tr.classList.add('has-open'); }\n          bq.style.maxHeight = bq.scrollHeight + 'px';\n          fig.classList.add('is-open');\n          qAfter(bq, function () { if (fig.classList.contains('is-open')) bq.style.maxHeight = 'none'; });\n        } else {\n          var top = fig.getBoundingClientRect().top;     \/* si la tarjeta empieza por encima de la pantalla, se vuelve a ella *\/\n          if (top < 80) window.scrollTo({ top: window.pageYOffset + top - 110, behavior: RM ? 'auto' : 'smooth' });\n          bq.style.maxHeight = bq.scrollHeight + 'px';\n          void bq.offsetHeight;\n          fig.classList.remove('is-open');\n          bq.style.maxHeight = '';\n          qAfter(bq, function () {\n            if (tr && !tr.querySelector('.dgv-quote.is-open')) { tr.classList.remove('has-open'); tr.style.removeProperty('--dgv-qh'); }\n          });\n        }\n      });\n    });\n    if (qs.length) {\n      var qOn = function () {\n        if (qTick) return; qTick = true;\n        window.requestAnimationFrame(function () { qTick = false; var w = root.clientWidth; if (w !== qW) { qW = w; qFit(); } });\n      };\n      window.addEventListener('resize', qOn, { passive: true });\n      if (d.fonts && d.fonts.ready) d.fonts.ready.then(function () { qW = -1; qOn(); });\n      qW = root.clientWidth; qFit();\n    }\n    \/* 9. Hablan de nosotros (v11): cinta de logos en movimiento continuo. Sin JS, en el constructor de Divi o con movimiento\n       reducido, los logos quedan quietos y centrados. Aqu\u00ed se duplica la lista (la copia, oculta a lectores de pantalla y sin\n       texto alternativo) para que el bucle no tenga cortes; la velocidad depende del ancho; se pausa al pasar el rat\u00f3n y\n       cuando la cinta est\u00e1 fuera de la pantalla. *\/\n    each(root.querySelectorAll('[data-dgv-press]'), function (mq) {\n      var ul = mq.querySelector('.dgv-press-list');\n      if (RM || !ul || mq.classList.contains('is-mq')) return;\n      var cp = ul.cloneNode(true);\n      cp.setAttribute('aria-hidden', 'true');\n      each(cp.querySelectorAll('img'), function (im) { im.setAttribute('alt', ''); });\n      each(ul.querySelectorAll('img'), function (im) { im.loading = 'eager'; });   \/* que no aparezcan de golpe al entrar en la cinta *\/\n      each(cp.querySelectorAll('img'), function (im) { im.loading = 'eager'; });\n      mq.appendChild(cp);\n      mq.classList.add('is-mq');\n      function speed() { mq.style.setProperty('--dgv-pd', Math.max(22, Math.round(ul.scrollWidth \/ 42)) + 's'); }\n      speed();\n      if ('ResizeObserver' in window) { new ResizeObserver(speed).observe(ul); }\n      if ('IntersectionObserver' in window) {\n        new IntersectionObserver(function (es) { es.forEach(function (e) { mq.classList.toggle('is-off', !e.isIntersecting); }); }).observe(mq);\n      }\n    });\n    \/* 7. Respaldo del formulario de contacto: el bloque no lleva formulario; debajo va la secci\u00f3n de contacto de Divi\n       con el formulario de cada idioma. Si en la p\u00e1gina NO hay ning\u00fan elemento con id=\"contacto\", los enlaces del bloque\n       a #contacto llevan al primer formulario visible que haya despu\u00e9s del bloque, con el mismo margen de cabecera que\n       las secciones (scroll-margin-top de .dgv-sec). Si existe #contacto no se toca nada; si no hay formulario, tampoco. *\/\n    root.addEventListener('click', function (e) {\n      var a = e.target.closest ? e.target.closest('a[href=\"#contacto\"]') : null;\n      if (!a || e.defaultPrevented || e.button || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return;\n      if (d.getElementById('contacto')) return;\n      var fs = d.querySelectorAll('form'), f = null;\n      for (var k = 0; k < fs.length && !f; k++) {\n        if (!root.contains(fs[k]) && (root.compareDocumentPosition(fs[k]) & 4) && fs[k].getClientRects().length) f = fs[k];\n      }\n      if (!f) return;\n      e.preventDefault();\n      var sec = root.querySelector('.dgv-sec'), m = sec ? parseFloat(getComputedStyle(sec).scrollMarginTop) : NaN;\n      window.scrollTo({ top: Math.max(0, f.getBoundingClientRect().top + window.pageYOffset - (m >= 0 ? m : 100)), behavior: RM ? 'auto' : 'smooth' });\n      if (e.detail === 0) { \/* activado con teclado: el foco pasa al formulario, como har\u00eda el ancla *\/\n        if (!f.hasAttribute('tabindex')) f.setAttribute('tabindex', '-1');\n        try { f.focus({ preventScroll: true }); } catch (er) { \/* navegadores antiguos: sin foco *\/ }\n      }\n    });\n    \/* 11. Tarjetas clicables en 3D ([data-dgv-3d], v12). Con rat\u00f3n: se inclinan siguiendo al cursor. En pantallas t\u00e1ctiles:\n       la tarjeta que pasa por el centro de la pantalla se enciende (.is-focus) y al tocarla se hunde un poco (CSS :active). *\/\n    var c3 = root.querySelectorAll('[data-dgv-3d]');\n    if (c3.length && !RM) {\n      if (FINE) {\n        each(c3, function (c) {\n          var t = null, ex = 0, ey = 0;\n          var tilt = function () {\n            t = null;\n            var r = c.getBoundingClientRect(), x = (ex - r.left) \/ r.width - 0.5, y = (ey - r.top) \/ r.height - 0.5;\n            c.style.setProperty('--ry', (x * 9).toFixed(2) + 'deg');\n            c.style.setProperty('--rx', (-y * 7).toFixed(2) + 'deg');\n          };\n          c.addEventListener('pointerenter', function (e) { if (e.pointerType === 'mouse') c.classList.add('is-tilt'); });\n          c.addEventListener('pointermove', function (e) {\n            if (e.pointerType !== 'mouse') return;\n            ex = e.clientX; ey = e.clientY; if (!t) t = window.requestAnimationFrame(tilt);\n          }, { passive: true });\n          c.addEventListener('pointerleave', function () {\n            c.classList.remove('is-tilt'); c.style.removeProperty('--rx'); c.style.removeProperty('--ry');\n          });\n        });\n      } else if ('IntersectionObserver' in window) {\n        var io3 = new IntersectionObserver(function (es) {\n          es.forEach(function (e) { e.target.classList.toggle('is-focus', e.isIntersecting); });\n        }, { rootMargin: '-40% 0px -40% 0px' });\n        each(c3, function (c) { io3.observe(c); });\n      }\n    }\n    \/* 13. Ilustraciones en c\u00f3digo (.dgp-ill, v13): se animan solo mientras se ven (sin JS o sin IntersectionObserver, siempre). *\/\n    var ills = root.querySelectorAll('.dgp-ill');\n    if (ills.length) {\n      if ('IntersectionObserver' in window) {\n        var ioI = new IntersectionObserver(function (es) {\n          es.forEach(function (e) { e.target.classList.toggle('is-vis', e.isIntersecting); });\n        }, { rootMargin: '60px 0px 60px 0px' });\n        each(ills, function (el) { ioI.observe(el); });\n      } else { each(ills, function (el) { el.classList.add('is-vis'); }); }\n    }\n  });\n  \/* 12. Cursor de DigiAcci\u00f3n (v12): anillo de degradado que sigue a la flecha con un retraso suave; sobre enlaces y botones\n     crece y brilla, y al pulsar se encoge. Solo con rat\u00f3n y sin movimiento reducido. Una sola vez por p\u00e1gina: si ya lo ha\n     puesto el fragmento global de Divi (window.dgvCursor), no se repite. *\/\n  if (FINE && !RM && !window.dgvCursor) {\n    window.dgvCursor = 1;\n    var cur = d.createElement('div'), cx = -100, cy = -100, tx = -100, ty = -100, raf = 0;\n    cur.className = 'dgv-cur'; cur.setAttribute('aria-hidden', 'true'); b.appendChild(cur);\n    var HOT = 'a,button,[role=\"button\"],[role=\"tab\"],summary,label[for],select,.dgp-strat-row';\n    var loop = function () {\n      cx += (tx - cx) * 0.22; cy += (ty - cy) * 0.22;\n      cur.style.transform = 'translate3d(' + cx.toFixed(1) + 'px,' + cy.toFixed(1) + 'px,0)';\n      raf = (Math.abs(tx - cx) + Math.abs(ty - cy) > 0.2) ? window.requestAnimationFrame(loop) : 0;\n    };\n    d.addEventListener('pointermove', function (e) {\n      if (e.pointerType !== 'mouse') { cur.classList.remove('is-on'); return; }\n      tx = e.clientX; ty = e.clientY;\n      if (!cur.classList.contains('is-on')) { cx = tx; cy = ty; cur.classList.add('is-on'); }\n      var h = e.target && e.target.closest ? e.target.closest(HOT) : null;\n      cur.classList.toggle('is-big', !!h);\n      if (!raf) raf = window.requestAnimationFrame(loop);\n    }, { passive: true });\n    d.addEventListener('pointerdown', function () { cur.classList.add('is-press'); }, { passive: true });\n    d.addEventListener('pointerup', function () { cur.classList.remove('is-press'); }, { passive: true });\n    d.documentElement.addEventListener('mouseleave', function () { cur.classList.remove('is-on'); });\n    window.addEventListener('blur', function () { cur.classList.remove('is-on'); });\n  }\n})();\n\/* DigiAcci\u00f3n | Herramientas gratuitas (ra\u00edz .dgv.dgt): rejilla de s\u00edmbolos, conversor de romaji, valoraci\u00f3n con estrellas,\n   regla a tama\u00f1o real y colores. JS nativo, sin dependencias. Sin JS, todo el contenido se ve (las rejillas, los colores\n   y los textos est\u00e1n en el HTML); el JS a\u00f1ade copiar, buscar, filtrar, convertir y medir. *\/\n(function () {\n  'use strict';\n  var d = document;\n  function go() {\n    var root = d.querySelector('.dgv.dgt');\n    if (!root) return;\n    var b = d.body;\n    if (b && (b.classList.contains('et-fb') || \/[?&](et_fb|et_pb_preview)=\/.test(location.search))) return;\n    \/* Modo claro de entrada (.dgt-claro, solo en las herramientas): en cuanto el visitante usa el interruptor d\u00eda y noche\n       de la web, la herramienta sigue al interruptor como el resto de p\u00e1ginas. No guarda nada ni cambia la web. *\/\n    if (root.classList.contains('dgt-claro') && b && window.MutationObserver) {\n      var lm0 = b.classList.contains('diviui-light-mode');\n      var mo = new MutationObserver(function () { if (b.classList.contains('diviui-light-mode') !== lm0) { root.classList.remove('dgt-claro'); mo.disconnect(); } });\n      mo.observe(b, { attributes: true, attributeFilter: ['class'] });\n    }\n    var LANG = root.getAttribute('lang') || 'es';\n    var NUM = function (n, dec) { try { return n.toLocaleString(LANG === 'es' ? 'es-ES' : 'en-US', { maximumFractionDigits: dec, minimumFractionDigits: 0 }); } catch (e) { return String(Math.round(n * 100) \/ 100); } };\n    var toastEl = root.querySelector('[data-dgt-toast]'), tt = 0;\n    function toast(msg) {\n      if (!toastEl) return;\n      toastEl.textContent = msg; toastEl.classList.add('is-on');\n      clearTimeout(tt); tt = setTimeout(function () { toastEl.classList.remove('is-on'); }, 1600);\n    }\n    function copy(text) {\n      function fb() {\n        var ta = d.createElement('textarea'); ta.value = text; ta.setAttribute('readonly', '');\n        ta.style.cssText = 'position:fixed;top:0;left:0;opacity:0;pointer-events:none';\n        d.body.appendChild(ta); ta.select();\n        try { d.execCommand('copy'); } catch (e) { \/* nada *\/ }\n        d.body.removeChild(ta);\n      }\n      try {\n        if (navigator.clipboard && window.isSecureContext) { return navigator.clipboard.writeText(text).catch(fb); }\n      } catch (e) { \/* nada *\/ }\n      fb(); return Promise.resolve();\n    }\n    function cpStr(hex) { return hex.split('-').map(function (h) { return String.fromCodePoint(parseInt(h, 16)); }).join(''); }\n    function cps(s) { var o = []; for (var ch of s) o.push(ch.codePointAt(0).toString(16).toUpperCase()); return o; }\n    function norm(s) { return (s || '').toLowerCase().normalize('NFD').replace(\/[\u0300-\u036f]\/g, ''); }\n    function esc(s) { return String(s).replace(\/[&<>\"]\/g, function (c) { return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' }[c]; }); }\n    function ui(el) { try { return JSON.parse(el.getAttribute('data-ui') || '{}'); } catch (e) { return {}; } }\n    function pad4(h) { return h.length < 4 ? ('0000' + h).slice(-4) : h; }\n    \/* ---------- Panel de detalle (\u00faltimo elemento copiado) ---------- *\/\n    function detailPanel(tool, U) {\n      var p = tool.querySelector('[data-dgt-detail]');\n      if (!p) return function () {};\n      var fg = p.querySelector('[data-f=\"g\"]'), fn = p.querySelector('[data-f=\"n\"]'), fs = p.querySelector('[data-f=\"s\"]'), ff = p.querySelector('[data-f=\"fmts\"]');\n      p.querySelector('[data-act=\"close-detail\"]').addEventListener('click', function () { p.hidden = true; });\n      d.addEventListener('keydown', function (e) { if (e.key === 'Escape') p.hidden = true; });\n      ff.addEventListener('click', function (e) {\n        var bt = e.target.closest('button[data-v]'); if (!bt) return;\n        copy(bt.getAttribute('data-v')); toast((U.copiado || 'Copied') + ': ' + bt.getAttribute('data-v'));\n      });\n      return function (glyph, name, fmts, color) {\n        fg.textContent = color ? '' : glyph;\n        if (color) fg.style.setProperty('--c', color); else fg.style.removeProperty('--c');\n        fn.textContent = name; fs.textContent = (U.copiado || 'Copied');\n        ff.innerHTML = fmts.filter(function (f) { return f && f[1]; }).map(function (f) {\n          return '<button type=\"button\" data-v=\"' + esc(f[1]) + '\"><b>' + esc(f[0]) + '<\/b><code>' + esc(f[2] || f[1]) + '<\/code><\/button>';\n        }).join('');\n        p.hidden = false;\n      };\n    }\n    \/* ---------- 1. Rejilla de s\u00edmbolos, emojis y kana ---------- *\/\n    Array.prototype.forEach.call(root.querySelectorAll('[data-dgt-grid]'), function (tool) {\n      var U = ui(tool), mode = tool.getAttribute('data-detalle');\n      var items = Array.prototype.slice.call(tool.querySelectorAll('.dgt-i'));\n      var groups = Array.prototype.slice.call(tool.querySelectorAll('.dgt-grp'));\n      var q = tool.querySelector('[data-dgt-q]'), empty = tool.querySelector('[data-dgt-empty]');\n      var tray = tool.querySelector('[data-dgt-tray]'), trayOut = tray && tray.querySelector('.dgt-tray-t');\n      var show = detailPanel(tool, U), tone = '', curG = '*';\n      var idx = items.map(function (el) {\n        var dc = el.getAttribute('data-c'), v = dc ? cpStr(dc) : el.textContent;\n        var g = el.querySelector('.dgt-g'); if (g && dc) g.textContent = v;\n        el._v = v; el._base = v;\n        return { el: el, hay: norm([el.getAttribute('aria-label'), el.getAttribute('data-k'), el.getAttribute('data-r'), v].join(' ')), grp: el.closest('.dgt-grp') };\n      });\n      function trayState() { if (tray) tray.classList.toggle('is-empty', !trayOut.textContent); }\n      trayState();\n      function withTone(v) {\n        if (!tone) return v;\n        var arr = Array.from(v.replace(\/\ufe0f\/g, ''));\n        arr.splice(1, 0, String.fromCodePoint(parseInt(tone, 16)));\n        return arr.join('');\n      }\n      function filter() {\n        var s = norm(q ? q.value.trim() : ''), any = false;\n        var terms = s ? s.split(\/\\s+\/) : [];\n        idx.forEach(function (o) {\n          var okG = curG === '*' || o.grp.getAttribute('data-g') === curG;\n          var okQ = !terms.length || terms.every(function (t) { return o.hay.indexOf(t) > -1; });\n          o.el.hidden = !(okG && okQ);\n        });\n        groups.forEach(function (g) {\n          var vis = false;\n          Array.prototype.forEach.call(g.querySelectorAll('.dgt-grid'), function (gr) {\n            var has = !!gr.querySelector('.dgt-i:not([hidden])');\n            gr.hidden = !has;\n            var prev = gr.previousElementSibling;\n            if (prev && prev.classList.contains('dgt-sh')) prev.hidden = !has;\n            vis = vis || has;\n          });\n          g.hidden = !vis; any = any || vis;\n        });\n        if (empty) empty.hidden = any;\n      }\n      var tq = 0;\n      if (q) q.addEventListener('input', function () { clearTimeout(tq); tq = setTimeout(filter, 110); });\n      Array.prototype.forEach.call(tool.querySelectorAll('.dgt-chips button'), function (bt, i, all) {\n        bt.addEventListener('click', function () {\n          Array.prototype.forEach.call(all, function (x) { x.classList.toggle('is-on', x === bt); });\n          curG = bt.getAttribute('data-g'); filter();\n          if (curG !== '*') { var t = tool.querySelector('.dgt-grp[data-g=\"' + curG + '\"]'); if (t && t.getBoundingClientRect().top < 0) t.scrollIntoView({ behavior: 'smooth', block: 'start' }); }\n        });\n      });\n      Array.prototype.forEach.call(tool.querySelectorAll('.dgt-tones button'), function (bt, i, all) {\n        bt.addEventListener('click', function () {\n          Array.prototype.forEach.call(all, function (x) { x.setAttribute('aria-checked', x === bt ? 'true' : 'false'); });\n          tone = bt.getAttribute('data-tone') || '';\n          idx.forEach(function (o) {\n            if (!o.el.hasAttribute('data-t')) return;\n            o.el._v = withTone(o.el._base);\n            var g = o.el.querySelector('.dgt-g') || o.el; g.textContent = o.el._v;\n          });\n        });\n      });\n      tool.addEventListener('click', function (e) {\n        var el = e.target.closest('.dgt-i'); if (!el) return;\n        var v = el._v || el.textContent;\n        copy(v);\n        el.classList.add('is-copied'); setTimeout(function () { el.classList.remove('is-copied'); }, 1200);\n        if (trayOut) { trayOut.textContent += v; trayState(); }\n        toast((U.copiado || 'Copied') + ': ' + v);\n        var c = cps(v), uni = c.map(function (h) { return 'U+' + pad4(h); }).join(' ');\n        var ent = el.getAttribute('data-e'), num = c.map(function (h) { return '&#x' + h + ';'; }).join('');\n        var css = c.map(function (h) { return '\\\\' + pad4(h); }).join(' ');\n        var js = c.map(function (h) { return h.length > 4 ? '\\\\u{' + h + '}' : '\\\\u' + pad4(h); }).join('');\n        var alt = el.getAttribute('data-a'), altS = '';\n        if (alt) altS = alt.split('|').map(function (a) { return 'Alt+' + a; }).join(' \/ ');\n        var f = [[U.f_simbolo || 'Symbol', v]];\n        if (mode === 'kana') f.push(['Romaji', el.getAttribute('data-r') || '']);\n        f.push(['Unicode', uni]);\n        if (ent) f.push(['HTML', '&' + ent + ';']);\n        f.push([ent ? 'HTML (n.)' : 'HTML', num]);\n        f.push(['CSS', css]);\n        f.push(['JavaScript', js]);\n        if (mode === 'simbolo') { try { f.push(['URL', encodeURIComponent(v)]); } catch (x) { \/* nada *\/ } }\n        if (altS) f.push(['Windows', altS.split(' \/ ').pop(), altS]);\n        show(v, el.getAttribute('aria-label') || '', f);\n      });\n      if (tray) tray.addEventListener('click', function (e) {\n        var a = e.target.closest('[data-act]'); if (!a) return;\n        if (a.getAttribute('data-act') === 'copy-tray' && trayOut.textContent) { copy(trayOut.textContent); toast((U.copiado || 'Copied') + ': ' + trayOut.textContent); }\n        if (a.getAttribute('data-act') === 'clear-tray') { trayOut.textContent = ''; trayState(); }\n      });\n      \/* Conversor de romaji a hiragana y katakana *\/\n      var rin = tool.querySelector('[data-dgt-rin]');\n      if (rin) {\n        var T = {}, base = {\n          a: '\u3042', i: '\u3044', u: '\u3046', e: '\u3048', o: '\u304a', ka: '\u304b', ki: '\u304d', ku: '\u304f', ke: '\u3051', ko: '\u3053', sa: '\u3055', si: '\u3057', shi: '\u3057', su: '\u3059', se: '\u305b', so: '\u305d',\n          ta: '\u305f', ti: '\u3061', chi: '\u3061', tu: '\u3064', tsu: '\u3064', te: '\u3066', to: '\u3068', na: '\u306a', ni: '\u306b', nu: '\u306c', ne: '\u306d', no: '\u306e',\n          ha: '\u306f', hi: '\u3072', hu: '\u3075', fu: '\u3075', he: '\u3078', ho: '\u307b', ma: '\u307e', mi: '\u307f', mu: '\u3080', me: '\u3081', mo: '\u3082', ya: '\u3084', yu: '\u3086', yo: '\u3088',\n          ra: '\u3089', ri: '\u308a', ru: '\u308b', re: '\u308c', ro: '\u308d', la: '\u3089', li: '\u308a', lu: '\u308b', le: '\u308c', lo: '\u308d', wa: '\u308f', wo: '\u3092',\n          ga: '\u304c', gi: '\u304e', gu: '\u3050', ge: '\u3052', go: '\u3054', za: '\u3056', zi: '\u3058', ji: '\u3058', zu: '\u305a', ze: '\u305c', zo: '\u305e', da: '\u3060', di: '\u3062', du: '\u3065', de: '\u3067', do: '\u3069',\n          ba: '\u3070', bi: '\u3073', bu: '\u3076', be: '\u3079', bo: '\u307c', pa: '\u3071', pi: '\u3074', pu: '\u3077', pe: '\u307a', po: '\u307d', vu: '\u3094',\n          kya: '\u304d\u3083', kyu: '\u304d\u3085', kyo: '\u304d\u3087', sha: '\u3057\u3083', shu: '\u3057\u3085', sho: '\u3057\u3087', sya: '\u3057\u3083', syu: '\u3057\u3085', syo: '\u3057\u3087', cha: '\u3061\u3083', chu: '\u3061\u3085', cho: '\u3061\u3087',\n          tya: '\u3061\u3083', tyu: '\u3061\u3085', tyo: '\u3061\u3087', nya: '\u306b\u3083', nyu: '\u306b\u3085', nyo: '\u306b\u3087', hya: '\u3072\u3083', hyu: '\u3072\u3085', hyo: '\u3072\u3087', mya: '\u307f\u3083', myu: '\u307f\u3085', myo: '\u307f\u3087',\n          rya: '\u308a\u3083', ryu: '\u308a\u3085', ryo: '\u308a\u3087', gya: '\u304e\u3083', gyu: '\u304e\u3085', gyo: '\u304e\u3087', ja: '\u3058\u3083', ju: '\u3058\u3085', jo: '\u3058\u3087', jya: '\u3058\u3083', jyu: '\u3058\u3085', jyo: '\u3058\u3087',\n          bya: '\u3073\u3083', byu: '\u3073\u3085', byo: '\u3073\u3087', pya: '\u3074\u3083', pyu: '\u3074\u3085', pyo: '\u3074\u3087',\n          fa: '\u3075\u3041', fi: '\u3075\u3043', fe: '\u3075\u3047', fo: '\u3075\u3049', she: '\u3057\u3047', je: '\u3058\u3047', che: '\u3061\u3047', thi: '\u3066\u3043', dhi: '\u3067\u3043', twu: '\u3068\u3045', dwu: '\u3069\u3045',\n          wi: '\u3046\u3043', we: '\u3046\u3047', va: '\u3094\u3041', vi: '\u3094\u3043', ve: '\u3094\u3047', vo: '\u3094\u3049', tsa: '\u3064\u3041', ye: '\u3044\u3047',\n          xa: '\u3041', xi: '\u3043', xu: '\u3045', xe: '\u3047', xo: '\u3049', xtu: '\u3063', xtsu: '\u3063', xya: '\u3083', xyu: '\u3085', xyo: '\u3087', '-': '\u30fc'\n        };\n        for (var k in base) T[k] = base[k];\n        var toKata = function (s) { return s.replace(\/[\u3041-\u3096]\/g, function (c) { return String.fromCharCode(c.charCodeAt(0) + 0x60); }); };\n        \/* Vocales largas (\u014d, \u00f4...): en hiragana se escriben con vocal (ou, aa, ii, uu, ee) y en katakana con la raya \u30fc.\n           Las tildes del espa\u00f1ol se quitan (\u00e1 > a) y la \u00f1 pasa a ny. *\/\n        var LV = { '\u0101': 'a', '\u00e2': 'a', '\u012b': 'i', '\u00ee': 'i', '\u016b': 'u', '\u00fb': 'u', '\u0113': 'e', '\u00ea': 'e', '\u014d': 'o', '\u00f4': 'o' }, HL = { a: 'a', i: 'i', u: 'u', e: 'e', o: 'u' };\n        var prep = function (src, kata) {\n          return src.toLowerCase().replace(\/[\u0101\u00e2\u012b\u00ee\u016b\u00fb\u0113\u00ea\u014d\u00f4]\/g, function (c) { var v = LV[c]; return v + (kata ? '-' : HL[v]); })\n            .replace(\/\u00f1\/g, 'ny').replace(\/[\u00e0-\u00ff]\/g, function (c) { return c.normalize ? c.normalize('NFD').charAt(0) : c; });\n        };\n        var conv = function (src) {\n          var s = src, out = '', i = 0;\n          while (i < s.length) {\n            var ch = s[i], nx = s[i + 1];\n            if (ch === 'n') {\n              if (nx === \"'\") { out += '\u3093'; i += 2; continue; }\n              if (nx === 'n') { out += '\u3093'; i += \/[aeiouy]\/.test(s[i + 2] || '') ? 1 : 2; continue; }\n              if (!nx || !\/[aeiouy]\/.test(nx)) { out += '\u3093'; i++; continue; }\n            }\n            if (nx && ch === nx && \/[bcdfghjklmpqrstvwxz]\/.test(ch) && ch !== 'n') { out += '\u3063'; i++; continue; }\n            if (ch === 't' && nx === 'c' && s[i + 2] === 'h') { out += '\u3063'; i++; continue; }\n            var hit = false;\n            for (var L = 4; L > 0; L--) { var part = s.substr(i, L); if (T[part]) { out += T[part]; i += L; hit = true; break; } }\n            if (!hit) { out += src[i]; i++; }\n          }\n          return out;\n        };\n        var rh = tool.querySelector('[data-dgt-rh]'), rk = tool.querySelector('[data-dgt-rk]');\n        var upd = function () { rh.textContent = conv(prep(rin.value, false)); rk.textContent = toKata(conv(prep(rin.value, true))); };\n        rin.addEventListener('input', upd);\n        if (!rin.value) rin.value = rin.getAttribute('placeholder') || ''; upd(); rin.value = '';\n      }\n      \/* Generador de valoraci\u00f3n con estrellas *\/\n      var rn = tool.querySelector('[data-dgt-rn]');\n      if (rn) {\n        var rmax = tool.querySelector('[data-dgt-rmax]'), rst = tool.querySelector('[data-dgt-rst]'), rout = tool.querySelector('[data-dgt-rout]');\n        var rv = tool.querySelector('[data-dgt-rv]'), half = rn.getAttribute('data-half');\n        var rate = function () {\n          var mx = parseInt(rmax.value, 10); rn.max = mx; if (+rn.value > mx) rn.value = mx;\n          var st = rst.value.split(','), full = cpStr(st[0]), emp = cpStr(st[1]);\n          var canHalf = !!half && st[0] === '2605';          \/* la media estrella solo existe para \u2605 \u2606 *\/\n          var v = parseFloat(rn.value); if (!canHalf) v = Math.floor(v);\n          rn.step = canHalf ? '0.5' : '1'; rn.value = v;\n          var n = Math.floor(v), h = canHalf && v - n >= 0.5 ? 1 : 0;\n          rout.textContent = new Array(n + 1).join(full) + (h ? cpStr(half) : '') + new Array(mx - n - h + 1).join(emp);\n          if (rv) rv.textContent = NUM(v, 1) + ' \/ ' + mx;\n        };\n        [rn, rmax, rst].forEach(function (x) { x.addEventListener('input', rate); x.addEventListener('change', rate); });\n        rate();\n      }\n      \/* Pesta\u00f1as del conversor de japon\u00e9s: nombre o palabra \/ desde romaji *\/\n      var jtabs = tool.querySelectorAll('[data-jm]');\n      Array.prototype.forEach.call(jtabs, function (bt) {\n        bt.addEventListener('click', function () {\n          Array.prototype.forEach.call(jtabs, function (x) { var on = x === bt; x.setAttribute('aria-selected', on ? 'true' : 'false'); x.tabIndex = on ? 0 : -1; });\n          Array.prototype.forEach.call(tool.querySelectorAll('[data-jp]'), function (pn) { pn.hidden = pn.getAttribute('data-jp') !== bt.getAttribute('data-jm'); });\n        });\n        bt.addEventListener('keydown', function (e) {\n          if (e.key !== 'ArrowRight' && e.key !== 'ArrowLeft') return;\n          var arr = Array.prototype.slice.call(jtabs), i = arr.indexOf(bt), nx = arr[(i + (e.key === 'ArrowRight' ? 1 : arr.length - 1)) % arr.length];\n          nx.focus(); nx.click(); e.preventDefault();\n        });\n      });\n      \/* Tu nombre en japon\u00e9s: katakana por c\u00f3mo suena (espa\u00f1ol; en la p\u00e1gina inglesa, con algunas reglas del ingl\u00e9s),\n         diccionario de nombres con su graf\u00eda habitual y traducci\u00f3n de palabras y frases comunes *\/\n      var nin = tool.querySelector('[data-dgt-nin]'), jd = tool.querySelector('[data-dgt-jdict]');\n      if (nin && jd) {\n        var J = {}; try { J = JSON.parse(jd.textContent); } catch (x) { J = { n: { es: {}, en: {} }, d: { es: {}, en: {} } }; }\n        var OTHER = LANG === 'es' ? 'en' : 'es';\n        var KV = {\n          '': ['\u30a2', '\u30a4', '\u30a6', '\u30a8', '\u30aa'], k: ['\u30ab', '\u30ad', '\u30af', '\u30b1', '\u30b3'], g: ['\u30ac', '\u30ae', '\u30b0', '\u30b2', '\u30b4'], s: ['\u30b5', '\u30b7', '\u30b9', '\u30bb', '\u30bd'],\n          z: ['\u30b6', '\u30b8', '\u30ba', '\u30bc', '\u30be'], t: ['\u30bf', '\u30c6\u30a3', '\u30c8\u30a5', '\u30c6', '\u30c8'], d: ['\u30c0', '\u30c7\u30a3', '\u30c9\u30a5', '\u30c7', '\u30c9'], n: ['\u30ca', '\u30cb', '\u30cc', '\u30cd', '\u30ce'],\n          h: ['\u30cf', '\u30d2', '\u30d5', '\u30d8', '\u30db'], b: ['\u30d0', '\u30d3', '\u30d6', '\u30d9', '\u30dc'], p: ['\u30d1', '\u30d4', '\u30d7', '\u30da', '\u30dd'], m: ['\u30de', '\u30df', '\u30e0', '\u30e1', '\u30e2'],\n          y: ['\u30e4', '\u30a4', '\u30e6', '\u30a4\u30a7', '\u30e8'], r: ['\u30e9', '\u30ea', '\u30eb', '\u30ec', '\u30ed'], w: ['\u30ef', '\u30a6\u30a3', '\u30a6', '\u30a6\u30a7', '\u30a6\u30a9'], f: ['\u30d5\u30a1', '\u30d5\u30a3', '\u30d5', '\u30d5\u30a7', '\u30d5\u30a9'],\n          ch: ['\u30c1\u30e3', '\u30c1', '\u30c1\u30e5', '\u30c1\u30a7', '\u30c1\u30e7'], ny: ['\u30cb\u30e3', '\u30cb', '\u30cb\u30e5', '\u30cb\u30a7', '\u30cb\u30e7'], sh: ['\u30b7\u30e3', '\u30b7', '\u30b7\u30e5', '\u30b7\u30a7', '\u30b7\u30e7'],\n          gw: ['\u30b0\u30a1', '\u30b0\u30a3', '\u30b0', '\u30b0\u30a7', '\u30b0\u30a9'], j: ['\u30b8\u30e3', '\u30b8', '\u30b8\u30e5', '\u30b8\u30a7', '\u30b8\u30e7'], kw: ['\u30af\u30a1', '\u30af\u30a3', '\u30af', '\u30af\u30a7', '\u30af\u30a9']\n        };\n        var CODA = { k: '\u30af', g: '\u30b0', s: '\u30b9', z: '\u30ba', t: '\u30c8', d: '\u30c9', h: '\u30d5', b: '\u30d6', p: '\u30d7', m: '\u30e0', r: '\u30eb', f: '\u30d5', ch: '\u30c1', sh: '\u30b7\u30e5', j: '\u30b8', w: '\u30a6', y: '\u30a4', ny: '\u30cb', gw: '\u30b0', kw: '\u30af' };\n        var VI = { a: 0, i: 1, u: 2, e: 3, o: 4 };\n        var isV = function (ch) { return !!ch && VI.hasOwnProperty(ch); };\n        var clean = function (w) {\n          return w.toLowerCase().replace(\/l\u00b7l\/g, 'l').replace(\/[\u00e1\u00e0\u00e2\u00e4]\/g, 'a').replace(\/[\u00e9\u00e8\u00ea\u00eb]\/g, 'e').replace(\/[\u00ed\u00ec\u00ee\u00ef]\/g, 'i').replace(\/[\u00f3\u00f2\u00f4\u00f6]\/g, 'o')\n            .replace(\/[\u00fa\u00f9\u00fb]\/g, 'u').replace(\/\u00e7\/g, 's').replace(\/[^a-z\u00f1\u00fc]\/g, '');\n        };\n        var phon = function (w, EN) {\n          if (EN) {   \/* algunas reglas del ingl\u00e9s: vocales largas, e final muda y j *\/\n            w = w.replace(\/ee|ea\/g, '\u012b').replace(\/oo\/g, '\u016b').replace(\/ph\/g, 'f').replace(\/ck\/g, 'kk').replace(\/wh\/g, 'w');\n            if (w.length > 3 && \/[^aeiouy]e$\/.test(w)) w = w.slice(0, -1);\n            w = w.replace(\/y$\/, '\u012b');\n          }\n          var out = '', i = 0, L = w.length;\n          while (i < L) {\n            var ch = w[i], nx = w[i + 1], c = null, adv = 1;\n            if (ch === '\u012b') { out += '\u30a4\u30fc'; i++; continue; }\n            if (ch === '\u016b') { out += '\u30a6\u30fc'; i++; continue; }\n            if (isV(ch)) { out += KV[''][VI[ch]]; i++; continue; }\n            if (ch === '\u00fc') { out += '\u30a6'; i++; continue; }\n            var two = w.substr(i, 2);\n            if (two === 'ch') { c = 'ch'; adv = 2; }\n            else if (two === 'll') { c = EN ? 'r' : 'y'; adv = 2; }\n            else if (two === 'rr') { c = 'r'; adv = 2; }\n            else if (two === 'sh') { c = 'sh'; adv = 2; }\n            else if (two === 'th') { c = EN ? 's' : 't'; adv = 2; }\n            else if (two === 'tx') { c = 'ch'; adv = 2; }\n            else if (two === 'qu') { if (\/[ei]\/.test(w[i + 2] || '')) { c = 'k'; adv = 2; } else { c = 'kw'; adv = 2; } }\n            else if (two === 'gu' && \/[ei]\/.test(w[i + 2] || '')) { c = 'g'; adv = 2; }\n            else if (two === 'g\u00fc') { c = 'gw'; adv = 2; }\n            else if (\/^(mm|bb|dd|gg|ff|zz|nn)$\/.test(two) && !(two === 'nn' && isV(w[i + 2]))) { i++; continue; }\n            else if (\/^(tt|ss|pp|kk|cc)$\/.test(two) && isV(w[i + 2]) && !(two === 'cc' && \/[eiy]\/.test(w[i + 2]))) { out += '\u30c3'; i++; continue; }\n            if (!c) {\n              switch (ch) {\n                case 'c': c = \/[eiy]\/.test(nx || '') ? 's' : 'k'; break;\n                case 'g': c = \/[eiy]\/.test(nx || '') ? (EN ? 'j' : 'h') : 'g'; break;\n                case 'j': c = EN ? 'j' : 'h'; break;\n                case 'z': c = EN ? 'z' : 's'; break;\n                case 'v': c = 'b'; break;\n                case 'q': c = 'k'; break;\n                case 'h': if (EN && isV(nx)) { c = 'h'; break; } i++; continue;\n                case '\u00f1': c = 'ny'; break;\n                case 'x': if (isV(nx)) { out += '\u30af'; c = 's'; } else { out += '\u30af\u30b9'; i++; continue; } break;\n                case 'y': if (isV(nx)) { c = 'y'; } else { out += EN && i === L - 1 ? '\u30a4\u30fc' : '\u30a4'; i++; continue; } break;\n                default: c = ch;\n              }\n            }\n            if (c === 'l') c = 'r';\n            var v = w[i + adv];\n            if (v === '\u012b' || v === '\u016b') { out += KV[c] ? KV[c][v === '\u012b' ? 1 : 2] + '\u30fc' : ''; i += adv + 1; continue; }\n            if (isV(v) && KV[c]) {\n              out += (c === 'y' && v === 'i') ? '\u30a4' : (c === 'w' && v === 'u') ? '\u30a6' : KV[c][VI[v]];\n              i += adv + 1; continue;\n            }\n            if (c === 'n') out += '\u30f3';\n            else if (c === 'm' && \/[bp]\/.test(w[i + adv] || '')) out += '\u30f3';\n            else if (c === 'l') out += '\u30eb';\n            else out += CODA[c] || '';\n            i += adv;\n          }\n          return out;\n        };\n        var ROM = {};   \/* lectura en romaji de lo que sale en katakana *\/\n        Object.keys(KV).forEach(function (cl) {\n          var base = { '': ['a', 'i', 'u', 'e', 'o'], k: ['ka', 'ki', 'ku', 'ke', 'ko'], g: ['ga', 'gi', 'gu', 'ge', 'go'], s: ['sa', 'shi', 'su', 'se', 'so'], z: ['za', 'ji', 'zu', 'ze', 'zo'], t: ['ta', 'ti', 'tu', 'te', 'to'], d: ['da', 'di', 'du', 'de', 'do'], n: ['na', 'ni', 'nu', 'ne', 'no'], h: ['ha', 'hi', 'fu', 'he', 'ho'], b: ['ba', 'bi', 'bu', 'be', 'bo'], p: ['pa', 'pi', 'pu', 'pe', 'po'], m: ['ma', 'mi', 'mu', 'me', 'mo'], y: ['ya', 'i', 'yu', 'ye', 'yo'], r: ['ra', 'ri', 'ru', 're', 'ro'], w: ['wa', 'wi', 'u', 'we', 'wo'], f: ['fa', 'fi', 'fu', 'fe', 'fo'], ch: ['cha', 'chi', 'chu', 'che', 'cho'], ny: ['nya', 'ni', 'nyu', 'nye', 'nyo'], sh: ['sha', 'shi', 'shu', 'she', 'sho'], gw: ['gwa', 'gwi', 'gu', 'gwe', 'gwo'], j: ['ja', 'ji', 'ju', 'je', 'jo'], kw: ['kwa', 'kwi', 'ku', 'kwe', 'kwo'] }[cl];\n          KV[cl].forEach(function (kk, ix) { if (!ROM[kk]) ROM[kk] = base[ix]; });\n        });\n        '\u30c4:tsu,\u30c5:zu,\u30c2:ji,\u30f2:wo,\u30f4:vu,\u30f3:n,\u30fc:-,\u30b8:ji,\u30c1:chi,\u30b7:shi,\u30d5:fu,\u30be:zo,\u30ba:zu'.split(',').forEach(function (p) { var q = p.split(':'); ROM[q[0]] = q[1]; });\n        var reading = function (k) {\n          var o = '', i = 0;\n          while (i < k.length) {\n            var two = k.substr(i, 2), one = k[i];\n            if (one === '\u30c3') { var nxr = ROM[k.substr(i + 1, 2)] || ROM[k[i + 1]] || ''; o += nxr.charAt(0); i++; continue; }\n            if (one === '\u30fb') { o += ' '; i++; continue; }\n            if (one === '\u30fc') { var lv = o.slice(-1); o += \/[aeiou]\/.test(lv) ? lv : ''; i++; continue; }\n            if (ROM[two]) { o += ROM[two]; i += 2; continue; }\n            o += ROM[one] || one; i++;\n          }\n          return o;\n        };\n        var nk = tool.querySelector('[data-dgt-nk]'), ntr = tool.querySelector('[data-dgt-ntr]'), nt = tool.querySelector('[data-dgt-nt]');\n        var nl = tool.querySelector('[data-dgt-nl]'), nm = tool.querySelector('[data-dgt-nm]');\n        var key = function (s) { return norm(s).replace(\/[\u00bf?\u00a1!.,;:'\u2019\"]\/g, '').replace(\/\\s+\/g, ' ').trim(); };\n        var nupd = function () {\n          var raw = nin.value.trim() || nin.getAttribute('placeholder') || '';\n          var words = raw.split(\/[\\s\\-]+\/).filter(Boolean), dic = true;\n          var kat = words.map(function (wd) {\n            var w = clean(wd); if (!w) return '';\n            var k = (J.n[LANG] || {})[w] || (J.n[OTHER] || {})[w];\n            if (k) return k;\n            dic = false; return phon(w, LANG === 'en' && !\/[\u00e1\u00e9\u00ed\u00f3\u00fa\u00f1\u00fc]\/i.test(wd));   \/* con tilde o \u00f1, se lee en espa\u00f1ol *\/\n          }).filter(Boolean).join('\u30fb');\n          nk.textContent = kat;\n          nl.textContent = reading(kat);\n          var hit = (J.d[LANG] || {})[key(raw)] || (J.d[OTHER] || {})[key(raw)];\n          if (hit && hit.length) {\n            ntr.hidden = false; nt.textContent = hit[0][0];\n            nm.textContent = hit.map(function (h) { return h[0] + ' (' + h[1] + '): ' + h[2]; }).join('. ');\n          } else {\n            ntr.hidden = true; nt.textContent = '';\n            nm.textContent = (dic ? (U.jn_dic || '') : (U.jn_aprox || ''));\n          }\n        };\n        var nt0 = 0; nin.addEventListener('input', function () { clearTimeout(nt0); nt0 = setTimeout(nupd, 60); });\n        nupd();\n      }\n      \/* Conversor de comillas: rectas a latinas \u00ab \u00bb (orden de la RAE: \u00ab \u201c \u2018 \u2019 \u201d \u00bb) o inglesas \u201c \u201d (\u201c \u2018 \u2019 \u201d) *\/\n      var qin = tool.querySelector('[data-qc-in]');\n      if (qin) {\n        var qout = tool.querySelector('[data-dgt-qcout]'), qap = tool.querySelector('[data-qc-ap]'), qs0 = tool.querySelector('[data-qs][aria-checked=\"true\"]'), qstyle = qs0 ? qs0.getAttribute('data-qs') : 'lat';\n        var LEV = { lat: [['\u00ab', '\u00bb'], ['\u201c', '\u201d'], ['\u2018', '\u2019']], ing: [['\u201c', '\u201d'], ['\u2018', '\u2019'], ['\u201c', '\u201d']] };\n        var DQ = '\"\u00ab\u00bb\u201c\u201d\u201e\u201f\u275d\u275e', SQ = \"'\u2018\u2019\u201a\u201b\";\n        var isL = function (ch) { return !!ch && \/[0-9A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff\u0100-\u017e]\/.test(ch); };\n        var qconv = function (t, st, ap) {\n          if (st === 'rect') return t.replace(\/[\u00ab\u00bb\u201c\u201d\u201e\u201f\u275d\u275e]\/g, '\"').replace(\/[\u2018\u2019\u201a\u201b]\/g, \"'\");\n          var out = '', stack = [], lastQ = null;   \/* lastQ: si el car\u00e1cter anterior era una comilla, si abr\u00eda (true) o cerraba (false) *\/\n          for (var i = 0; i < t.length; i++) {\n            var ch = t[i], pv = t[i - 1], nx = t[i + 1];\n            var dq = DQ.indexOf(ch) > -1, sq = SQ.indexOf(ch) > -1;\n            if (!dq && !sq) { out += ch; lastQ = null; continue; }\n            if ((ch === \"'\" || ch === '\"') && \/[0-9]\/.test(pv || '') && !\/[A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff]\/.test(nx || '') && !stack.some(function (x) { return x.t === (dq ? 'd' : 's'); })) {\n              out += dq ? '\u2033' : '\u2032'; lastQ = null; continue;                                          \/* medidas tras un n\u00famero: 5' 11\" a primas 5\u2032 11\u2033 *\/\n            }\n            if (sq && isL(pv) && isL(nx)) { out += ap ? '\u2019' : ch; lastQ = null; continue; }         \/* ap\u00f3strofo entre letras: it's, l'amour *\/\n            if (sq && isL(pv) && !stack.some(function (x) { return x.t === 's'; })) { out += ap ? '\u2019' : ch; lastQ = null; continue; }  \/* ap\u00f3strofo final *\/\n            var opening = ch === '\u00ab' || ch === '\u201c' || ch === '\u2018' || ch === '\u201e' || ch === '\u201a' ? true : ch === '\u00bb' || ch === '\u201d' || ch === '\u2019' ? false\n              : lastQ !== null ? lastQ : (!pv || \/[\\s(\\[{\u00bf\u00a1\u2014\u2013\\-\\\/:]\/.test(pv));\n            var type = dq ? 'd' : 's';\n            if (!opening && stack.length) {\n              var top = stack[stack.length - 1];\n              if (top.t !== type) { var j = stack.length - 1; while (j >= 0 && stack[j].t !== type) j--; if (j >= 0) { while (stack.length > j + 1) { stack.pop(); } } }\n            }\n            if (opening) { var lv = Math.min(stack.length, 2); stack.push({ t: type, l: lv }); out += LEV[st][lv][0]; }\n            else if (stack.length) { var o = stack.pop(); out += LEV[st][o.l][1]; }\n            else { out += LEV[st][0][1]; }\n            lastQ = opening;\n          }\n          return out;\n        };\n        var qupd = function () { qout.textContent = qconv(qin.value || qin.getAttribute('placeholder') || '', qstyle, !qap || qap.checked); };\n        qin.addEventListener('input', qupd); if (qap) qap.addEventListener('change', qupd);\n        Array.prototype.forEach.call(tool.querySelectorAll('[data-qs]'), function (bt, i, all) {\n          bt.addEventListener('click', function () { qstyle = bt.getAttribute('data-qs'); Array.prototype.forEach.call(all, function (x) { x.setAttribute('aria-checked', x === bt ? 'true' : 'false'); }); qupd(); });\n        });\n        qupd();\n      }\n      tool.addEventListener('click', function (e) {\n        var a = e.target.closest('[data-act=\"copy-out\"]'); if (!a) return;\n        var o = tool.querySelector('[data-dgt-' + a.getAttribute('data-src') + ']');\n        if (o && o.textContent) { copy(o.textContent); toast((U.copiado || 'Copied') + ': ' + o.textContent); }\n      });\n    });\n    \/* ---------- 2. Regla a tama\u00f1o real ---------- *\/\n    Array.prototype.forEach.call(root.querySelectorAll('[data-dgt-ruler]'), function (tool) {\n      var U = ui(tool), KEY = 'dgt-ppm', DEF = 96 \/ 25.4;\n      var box = tool.querySelector('[data-dgt-rbox]'), cv = tool.querySelector('[data-dgt-canvas]'), mark = tool.querySelector('[data-dgt-mark]');\n      var read = tool.querySelector('[data-dgt-read]'), state = tool.querySelector('[data-dgt-state]'), cal = tool.querySelector('[data-dgt-cal]');\n      var slider = tool.querySelector('[data-dgt-ppm]'), card = tool.querySelector('[data-dgt-card]'), diag = tool.querySelector('[data-dgt-diag]');\n      var unit = tool.getAttribute('data-unit') || 'cm', X0 = 16, pos = 0, saved = null;\n      try { saved = parseFloat(localStorage.getItem(KEY)); } catch (e) { saved = null; }\n      var ppm = saved && saved > 1 && saved < 20 ? saved : DEF;\n      function setState() {\n        var eq = NUM(unit === 'in' ? ppm * 25.4 : ppm * 10, 1);\n        state.innerHTML = saved ? '<b>' + esc(U.calibrada || '') + '<\/b> ' + esc((U.equiv || '1 {u} = {px} px').replace('{u}', unit === 'in' ? 'in' : 'cm').replace('{px}', eq)) : esc(U.sin_calibrar || '');\n      }\n      function fracIn(inches) {\n        var whole = Math.floor(inches), rest = Math.round((inches - whole) * 16), den = 16;\n        if (rest === 16) { whole++; rest = 0; }\n        while (rest && rest % 2 === 0) { rest \/= 2; den \/= 2; }\n        return (whole || !rest ? whole : '') + (rest ? (whole ? ' ' : '') + rest + '\/' + den : '') + ' in';\n      }\n      function readout() {\n        var mm = Math.max(0, pos) \/ ppm;\n        if (unit === 'cm') read.textContent = NUM(mm \/ 10, 2) + ' cm (' + NUM(mm, 1) + ' mm)';\n        else { var fr = fracIn(mm \/ 25.4); read.textContent = fr.indexOf('\/') > -1 ? fr + ' (' + NUM(mm \/ 25.4, 2) + ' in)' : fr; }\n        mark.setAttribute('aria-valuenow', String(Math.round(mm * 10) \/ 10)); mark.setAttribute('aria-valuetext', read.textContent);\n      }\n      function draw() {\n        var w = box.clientWidth, h = box.clientHeight, dpr = window.devicePixelRatio || 1;\n        cv.width = Math.round(w * dpr); cv.height = Math.round(h * dpr);\n        var c = cv.getContext('2d'); c.setTransform(dpr, 0, 0, dpr, 0, 0); c.clearRect(0, 0, w, h);\n        c.strokeStyle = '#16161d'; c.fillStyle = '#16161d'; c.lineWidth = 1; c.textBaseline = 'top';\n        var font = '600 13px Inter Tight, system-ui, sans-serif', small = '500 11px Inter Tight, system-ui, sans-serif';\n        function line(x, y1, y2) { var xx = Math.round(x) + 0.5; c.beginPath(); c.moveTo(xx, y1); c.lineTo(xx, y2); c.stroke(); }\n        var primary = unit, secondary = unit === 'cm' ? 'in' : 'cm';\n        [[primary, 0, 1], [secondary, h, -1]].forEach(function (cfg) {\n          var u = cfg[0], y0 = cfg[1], dir = cfg[2], isP = u === primary;\n          var sc = isP ? 1 : 0.62;\n          if (u === 'cm') {\n            for (var mm = 0; X0 + mm * ppm <= w; mm++) {\n              var x = X0 + mm * ppm, len = mm % 10 === 0 ? 40 : (mm % 5 === 0 ? 26 : 15);\n              line(x, y0, y0 + dir * len * sc);\n              if (mm % 10 === 0 && x < w - 40) { c.font = isP ? font : small; var t = String(mm \/ 10); var tw = c.measureText(t).width; c.fillText(t, mm === 0 ? x + 3 : x - tw \/ 2, dir > 0 ? y0 + 44 * sc : y0 - 44 * sc - 12); }\n            }\n            c.font = small; c.fillText('cm', w - 26, dir > 0 ? y0 + 46 * sc + (isP ? 0 : 0) : y0 - 46 * sc - 12);\n          } else {\n            var ppi = ppm * 25.4;\n            for (var s = 0; X0 + s * ppi \/ 16 <= w; s++) {\n              var xi = X0 + s * ppi \/ 16, L = s % 16 === 0 ? 40 : (s % 8 === 0 ? 30 : (s % 4 === 0 ? 22 : (s % 2 === 0 ? 15 : 9)));\n              line(xi, y0, y0 + dir * L * sc);\n              if (s % 16 === 0 && xi < w - 34) { c.font = isP ? font : small; var ti = String(s \/ 16); var twi = c.measureText(ti).width; c.fillText(ti, s === 0 ? xi + 3 : xi - twi \/ 2, dir > 0 ? y0 + 44 * sc : y0 - 44 * sc - 12); }\n            }\n            c.font = small; c.fillText('in', w - 20, dir > 0 ? y0 + 46 * sc : y0 - 46 * sc - 12);\n          }\n        });\n        mark.style.left = (X0 + pos) + 'px'; readout(); drawFixed();\n      }\n      \/* Reglas fijas (25, 20, 15, 10 y 5 cm o 12, 6, 4, 3, 2 y 1 in), con la misma calibraci\u00f3n *\/\n      var fcs = tool.querySelectorAll('[data-dgt-fc]'), U0 = tool.getAttribute('data-unit') || 'cm';\n      function drawFixed() {\n        Array.prototype.forEach.call(fcs, function (fc) {\n          var n = parseFloat(fc.getAttribute('data-n')), per = U0 === 'cm' ? ppm * 10 : ppm * 25.4, sub = U0 === 'cm' ? 10 : 16;\n          var w = Math.ceil(X0 + n * per + 34), h = 74, dpr = window.devicePixelRatio || 1;\n          fc.style.width = w + 'px'; fc.style.height = h + 'px'; fc.width = Math.round(w * dpr); fc.height = Math.round(h * dpr);\n          var c = fc.getContext('2d'); c.setTransform(dpr, 0, 0, dpr, 0, 0); c.clearRect(0, 0, w, h);\n          c.fillStyle = 'rgba(91,74,224,.10)'; c.fillRect(X0, 0, n * per, h);\n          c.strokeStyle = '#16161d'; c.fillStyle = '#16161d'; c.lineWidth = 1; c.textBaseline = 'top';\n          for (var k = 0; k <= n * sub; k++) {\n            var x = Math.round(X0 + k * per \/ sub) + 0.5, L;\n            if (U0 === 'cm') L = k % 10 === 0 ? 34 : (k % 5 === 0 ? 22 : 13);\n            else L = k % 16 === 0 ? 34 : (k % 8 === 0 ? 25 : (k % 4 === 0 ? 18 : (k % 2 === 0 ? 12 : 8)));\n            c.beginPath(); c.moveTo(x, 0); c.lineTo(x, L); c.stroke();\n            if (k % sub === 0) { c.font = '600 12px Inter Tight, system-ui, sans-serif'; var t = String(k \/ sub), tw = c.measureText(t).width; c.fillText(t, k === 0 ? x + 3 : x - tw \/ 2, 38); }\n          }\n          c.strokeStyle = '#e11d48'; c.lineWidth = 2;\n          [X0, X0 + n * per].forEach(function (xx) { c.beginPath(); c.moveTo(Math.round(xx) + 0.5, 0); c.lineTo(Math.round(xx) + 0.5, h); c.stroke(); });\n          c.font = '600 12px Inter Tight, system-ui, sans-serif'; c.fillStyle = '#e11d48';\n          var lab = NUM(n, 1) + ' ' + U0; c.fillText(lab, X0 + n * per - c.measureText(lab).width - 6, h - 17);\n        });\n      }\n      function setPos(px) { pos = Math.max(0, Math.min(px, box.clientWidth - X0 - 2)); mark.style.left = (X0 + pos) + 'px'; readout(); }\n      function fromEvent(e) { var r = box.getBoundingClientRect(); setPos((e.touches ? e.touches[0].clientX : e.clientX) - r.left - X0); }\n      var dragging = false;\n      mark.addEventListener('pointerdown', function (e) { dragging = true; try { mark.setPointerCapture(e.pointerId); } catch (x) { \/* nada *\/ } e.preventDefault(); });\n      mark.addEventListener('pointermove', function (e) { if (dragging) fromEvent(e); });\n      mark.addEventListener('pointerup', function () { dragging = false; });\n      box.addEventListener('click', function (e) { if (e.target === mark || mark.contains(e.target)) return; fromEvent(e); });\n      mark.addEventListener('keydown', function (e) {\n        var step = unit === 'cm' ? ppm : ppm * 25.4 \/ 16, big = unit === 'cm' ? ppm * 10 : ppm * 25.4;\n        if (e.key === 'ArrowRight' || e.key === 'ArrowUp') { setPos(pos + (e.shiftKey ? big : step)); e.preventDefault(); }\n        if (e.key === 'ArrowLeft' || e.key === 'ArrowDown') { setPos(pos - (e.shiftKey ? big : step)); e.preventDefault(); }\n        if (e.key === 'Home') { setPos(0); e.preventDefault(); }\n      });\n      \/* Ir a una medida: coloca el marcador en la medida escrita *\/\n      var gin = tool.querySelector('[data-dgt-goto]'), gu = tool.querySelector('[data-dgt-gu]');\n      function gotoM() {\n        if (!gin) return;\n        var v = parseFloat(String(gin.value).replace(',', '.')); if (!(v >= 0)) return;\n        var px = v * (unit === 'cm' ? 10 : 25.4) * ppm, mx = box.clientWidth - X0 - 2;\n        if (px > mx) { setPos(mx); var fit = mx \/ ppm \/ (unit === 'cm' ? 10 : 25.4); toast((U.no_cabe || '{n}').replace('{n}', NUM(Math.floor(fit * 10) \/ 10, 1) + ' ' + unit)); }\n        else setPos(px);\n      }\n      if (gin) { var gt = 0; gin.addEventListener('input', function () { clearTimeout(gt); gt = setTimeout(gotoM, 250); }); gin.addEventListener('keydown', function (e) { if (e.key === 'Enter') { clearTimeout(gt); gotoM(); } }); }\n      Array.prototype.forEach.call(tool.querySelectorAll('[data-u]'), function (bt, i, all) {\n        bt.addEventListener('click', function () {\n          unit = bt.getAttribute('data-u');\n          Array.prototype.forEach.call(all, function (x) { x.setAttribute('aria-checked', x === bt ? 'true' : 'false'); });\n          if (gu) gu.textContent = unit;\n          setState(); draw(); if (gin && gin.value) gotoM();\n        });\n      });\n      function cardSize() { if (card) card.style.width = (85.6 * ppm) + 'px'; if (slider) slider.value = ppm; }\n      tool.addEventListener('click', function (e) {\n        var a = e.target.closest('[data-act]'); if (!a) return;\n        var act = a.getAttribute('data-act');\n        if (act === 'calibrar') { cal.hidden = !cal.hidden; cardSize(); if (!cal.hidden) cal.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }\n        if (act === 'cal-menos') { ppm = Math.max(2.4, ppm - 0.005); cardSize(); draw(); }\n        if (act === 'cal-mas') { ppm = Math.min(9, ppm + 0.005); cardSize(); draw(); }\n        if (act === 'cal-diag') {\n          var dg = parseFloat(String(diag.value).replace(',', '.'));\n          if (dg > 2) { ppm = Math.hypot(screen.width, screen.height) \/ dg \/ 25.4; cardSize(); draw(); }\n        }\n        if (act === 'cal-ok') { saved = ppm; try { localStorage.setItem(KEY, String(ppm)); } catch (x) { \/* nada *\/ } setState(); cal.hidden = true; toast(U.guardada || 'OK'); }\n        if (act === 'cal-reset') { ppm = DEF; saved = null; try { localStorage.removeItem(KEY); } catch (x) { \/* nada *\/ } cardSize(); setState(); draw(); }\n        if (act === 'pantalla') {\n          var on = !root.classList.contains('is-full');\n          var fsOk = tool.requestFullscreen && !d.fullscreenElement;\n          if (on && fsOk) { tool.requestFullscreen().catch(function () { \/* nada *\/ }); }\n          if (!on && d.fullscreenElement) { d.exitFullscreen().catch(function () { \/* nada *\/ }); }\n          root.classList.toggle('is-full', on); a.setAttribute('aria-pressed', on ? 'true' : 'false');\n          setTimeout(draw, 120);\n        }\n      });\n      d.addEventListener('fullscreenchange', function () { if (!d.fullscreenElement && root.classList.contains('is-full')) { root.classList.remove('is-full'); var p = tool.querySelector('[data-act=\"pantalla\"]'); if (p) p.setAttribute('aria-pressed', 'false'); setTimeout(draw, 120); } });\n      d.addEventListener('keydown', function (e) { if (e.key === 'Escape' && root.classList.contains('is-full')) { root.classList.remove('is-full'); setTimeout(draw, 120); } });\n      if (slider) slider.addEventListener('input', function () { ppm = parseFloat(slider.value); cardSize(); draw(); });\n      var rt = 0; window.addEventListener('resize', function () { clearTimeout(rt); rt = setTimeout(draw, 120); });\n      setState(); cardSize(); draw(); setPos(ppm * (unit === 'cm' ? 50 : 25.4 * 2));\n    });\n    \/* ---------- 3. Colores ---------- *\/\n    Array.prototype.forEach.call(root.querySelectorAll('[data-dgt-colors]'), function (tool) {\n      var U = ui(tool), cur = { r: 91, g: 74, b: 224 }, fmt = 'hex';\n      var show = detailPanel(tool, U);\n      var sw = tool.querySelector('.dgt-pick-sw'), cin = tool.querySelector('[data-dgt-cin]');\n      var F = {}; Array.prototype.forEach.call(tool.querySelectorAll('[data-fmt]'), function (i) { F[i.getAttribute('data-fmt')] = i; });\n      function h2(n) { return ('0' + n.toString(16)).slice(-2).toUpperCase(); }\n      function hex(c) { return '#' + h2(c.r) + h2(c.g) + h2(c.b); }\n      function parseHex(s) { var m = String(s).trim().replace('#', ''); if (\/^[0-9a-f]{3}$\/i.test(m)) m = m.replace(\/(.)\/g, '$1$1'); if (!\/^[0-9a-f]{6}$\/i.test(m)) return null; return { r: parseInt(m.slice(0, 2), 16), g: parseInt(m.slice(2, 4), 16), b: parseInt(m.slice(4, 6), 16) }; }\n      function toHsl(c) {\n        var r = c.r \/ 255, g = c.g \/ 255, b = c.b \/ 255, mx = Math.max(r, g, b), mn = Math.min(r, g, b), h = 0, s = 0, l = (mx + mn) \/ 2;\n        if (mx !== mn) { var dd = mx - mn; s = l > 0.5 ? dd \/ (2 - mx - mn) : dd \/ (mx + mn); h = mx === r ? (g - b) \/ dd + (g < b ? 6 : 0) : mx === g ? (b - r) \/ dd + 2 : (r - g) \/ dd + 4; h *= 60; }\n        return { h: Math.round(h), s: Math.round(s * 100), l: Math.round(l * 100) };\n      }\n      function fromHsl(h, s, l) {\n        s \/= 100; l \/= 100; var k = function (n) { return (n + h \/ 30) % 12; }, a = s * Math.min(l, 1 - l);\n        var f = function (n) { return l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1))); };\n        return { r: Math.round(f(0) * 255), g: Math.round(f(8) * 255), b: Math.round(f(4) * 255) };\n      }\n      function rgbS(c) { return 'rgb(' + c.r + ', ' + c.g + ', ' + c.b + ')'; }\n      function hslS(c) { var x = toHsl(c); return 'hsl(' + x.h + ', ' + x.s + '%, ' + x.l + '%)'; }\n      function cmykS(c) {\n        var r = c.r \/ 255, g = c.g \/ 255, b = c.b \/ 255, k = 1 - Math.max(r, g, b);\n        if (k >= 1) return 'cmyk(0%, 0%, 0%, 100%)';\n        var p = function (x) { return Math.round((1 - x - k) \/ (1 - k) * 100) + '%'; };\n        return 'cmyk(' + p(r) + ', ' + p(g) + ', ' + p(b) + ', ' + Math.round(k * 100) + '%)';\n      }\n      function lum(c) { var a = [c.r, c.g, c.b].map(function (v) { v \/= 255; return v <= 0.03928 ? v \/ 12.92 : Math.pow((v + 0.055) \/ 1.055, 2.4); }); return 0.2126 * a[0] + 0.7152 * a[1] + 0.0722 * a[2]; }\n      function ratio(a, b2) { var l1 = lum(a), l2 = lum(b2), hi = Math.max(l1, l2), lo = Math.min(l1, l2); return (hi + 0.05) \/ (lo + 0.05); }\n      function badge(r) { return r >= 7 ? 'AAA' : r >= 4.5 ? 'AA' : r >= 3 ? (U.aa_grande || 'AA large') : (U.no_pasa || 'Fail'); }\n      var ct = tool.querySelector('[data-dgt-contrast]');\n      function paint(skip) {\n        var hx = hex(cur);\n        tool.style.setProperty('--c', hx); sw.style.setProperty('--c', hx);\n        if (cin && skip !== 'cin') cin.value = hx.toLowerCase();\n        if (skip !== 'hex') F.hex.value = hx;\n        if (skip !== 'rgb') F.rgb.value = rgbS(cur);\n        if (skip !== 'hsl') F.hsl.value = hslS(cur);\n        F.cmyk.value = cmykS(cur);\n        if (ct) {\n          var rw = ratio(cur, { r: 255, g: 255, b: 255 }), rb = ratio(cur, { r: 0, g: 0, b: 0 });\n          ct.querySelector('[data-f=\"rw\"]').textContent = NUM(Math.floor(rw * 100) \/ 100, 2) + ':1'; ct.querySelector('[data-f=\"bw\"]').textContent = badge(rw);\n          ct.querySelector('[data-f=\"rb\"]').textContent = NUM(Math.floor(rb * 100) \/ 100, 2) + ':1'; ct.querySelector('[data-f=\"bb\"]').textContent = badge(rb);\n        }\n      }\n      if (cin) cin.addEventListener('input', function () { var c = parseHex(cin.value); if (c) { cur = c; paint('cin'); } });\n      F.hex.addEventListener('input', function () { var c = parseHex(F.hex.value); if (c) { cur = c; paint('hex'); } });\n      F.rgb.addEventListener('input', function () { var m = F.rgb.value.match(\/\\d+(\\.\\d+)?\/g); if (m && m.length >= 3) { var c = { r: Math.min(255, +m[0] | 0), g: Math.min(255, +m[1] | 0), b: Math.min(255, +m[2] | 0) }; cur = c; paint('rgb'); } });\n      F.hsl.addEventListener('input', function () { var m = F.hsl.value.match(\/\\d+(\\.\\d+)?\/g); if (m && m.length >= 3) { cur = fromHsl(+m[0] % 360, Math.min(100, +m[1]), Math.min(100, +m[2])); paint('hsl'); } });\n      Array.prototype.forEach.call(tool.querySelectorAll('[data-fmt]'), function (inp) {\n        inp.addEventListener('focus', function () { inp.select(); });\n      });\n      var ed = tool.querySelector('[data-act=\"eyedropper\"]');\n      if (ed && window.EyeDropper) {\n        ed.hidden = false;\n        ed.addEventListener('click', function () { new window.EyeDropper().open().then(function (r) { var c = parseHex(r.sRGBHex); if (c) { cur = c; paint(); copy(hex(c)); toast((U.copiado || 'Copied') + ': ' + hex(c)); } }).catch(function () { \/* cancelado *\/ }); });\n      }\n      var fin = tool.querySelector('[data-dgt-img]'), ibox = tool.querySelector('[data-dgt-imgbox]'), icv = tool.querySelector('[data-dgt-imgc]');\n      if (fin) fin.addEventListener('change', function () {\n        var f = fin.files && fin.files[0]; if (!f) return;\n        var url = URL.createObjectURL(f), img = new Image();\n        img.onload = function () {\n          var mw = Math.min(900, ibox.parentNode.clientWidth || 900), sc = Math.min(1, mw \/ img.width);\n          icv.width = Math.round(img.width * sc); icv.height = Math.round(img.height * sc);\n          icv.getContext('2d').drawImage(img, 0, 0, icv.width, icv.height); ibox.hidden = false; URL.revokeObjectURL(url);\n        };\n        img.src = url;\n      });\n      if (icv) icv.addEventListener('click', function (e) {\n        var r = icv.getBoundingClientRect(), x = Math.floor((e.clientX - r.left) * icv.width \/ r.width), y = Math.floor((e.clientY - r.top) * icv.height \/ r.height);\n        var p = icv.getContext('2d').getImageData(x, y, 1, 1).data; cur = { r: p[0], g: p[1], b: p[2] }; paint();\n        copy(hex(cur)); toast((U.copiado || 'Copied') + ': ' + hex(cur));\n      });\n      Array.prototype.forEach.call(tool.querySelectorAll('[data-fmtc]'), function (bt, i, all) {\n        bt.addEventListener('click', function () { fmt = bt.getAttribute('data-fmtc'); Array.prototype.forEach.call(all, function (x) { x.setAttribute('aria-checked', x === bt ? 'true' : 'false'); }); });\n      });\n      var sws = Array.prototype.slice.call(tool.querySelectorAll('.dgt-c'));\n      var idx = sws.map(function (el) { return { el: el, hay: norm((el.getAttribute('data-k') || '') + ' #' + el.getAttribute('data-h') + ' ' + el.getAttribute('data-h')), grp: el.closest('.dgt-grp') }; });\n      var q = tool.querySelector('[data-dgt-q]'), empty = tool.querySelector('[data-dgt-empty]'), groups = Array.prototype.slice.call(tool.querySelectorAll('.dgt-grp')), curG = '*';\n      function filter() {\n        var s = norm(q.value.trim()).replace(\/^#\/, ''), any = false, terms = s ? s.split(\/\\s+\/) : [];\n        idx.forEach(function (o) { var okG = curG === '*' || o.grp.getAttribute('data-g') === curG; var okQ = !terms.length || terms.every(function (t) { return o.hay.indexOf(t) > -1; }); o.el.hidden = !(okG && okQ); });\n        groups.forEach(function (g) {\n          Array.prototype.forEach.call(g.querySelectorAll('.dgt-cgrid'), function (gr) { var has = !!gr.querySelector('.dgt-c:not([hidden])'); gr.hidden = !has; var pv = gr.previousElementSibling; if (pv && pv.classList.contains('dgt-sh')) pv.hidden = !has; });\n          Array.prototype.forEach.call(g.querySelectorAll('.dgt-trow'), function (tr) { tr.hidden = !tr.querySelector('.dgt-c:not([hidden])'); });\n          var vis = !!g.querySelector('.dgt-c:not([hidden])'); g.hidden = !vis; any = any || vis;\n        });\n        empty.hidden = any;\n      }\n      var tq = 0; q.addEventListener('input', function () { clearTimeout(tq); tq = setTimeout(filter, 110); });\n      Array.prototype.forEach.call(tool.querySelectorAll('.dgt-chips button'), function (bt, i, all) {\n        bt.addEventListener('click', function () { Array.prototype.forEach.call(all, function (x) { x.classList.toggle('is-on', x === bt); }); curG = bt.getAttribute('data-g'); filter(); });\n      });\n      tool.addEventListener('click', function (e) {\n        var el = e.target.closest('.dgt-c'); if (!el) return;\n        var c = parseHex(el.getAttribute('data-h')); if (!c) return;\n        cur = c; paint();\n        var val = fmt === 'rgb' ? rgbS(c) : fmt === 'hsl' ? hslS(c) : hex(c);\n        copy(val); el.classList.add('is-copied'); setTimeout(function () { el.classList.remove('is-copied'); }, 1200);\n        toast((U.copiado || 'Copied') + ': ' + val);\n        var nm = el.querySelector('b'), sm = el.querySelector('small');\n        var name = (nm ? nm.textContent : (el.getAttribute('aria-label') || hex(c))) + (sm && nm ? ' (' + sm.textContent + ')' : '');\n        var css = el.getAttribute('data-css');\n        show('', name, [['HEX', hex(c)], ['RGB', rgbS(c)], ['HSL', hslS(c)], ['CMYK', cmykS(c)], css ? ['CSS', css] : null], hex(c));\n      });\n      \/* Comprobador de contraste entre dos colores (WCAG 2.2: 4,5:1 y 7:1 texto normal; 3:1 y 4,5:1 texto grande; 3:1 iconos y bordes) *\/\n      var cc = tool.querySelector('[data-dgt-cc]');\n      if (cc) {\n        var CC = {}; Array.prototype.forEach.call(cc.querySelectorAll('[data-cc]'), function (el) { CC[el.getAttribute('data-cc')] = el; });\n        var col = { fg: parseHex(CC.fg.value) || { r: 91, g: 74, b: 224 }, bg: parseHex(CC.bg.value) || { r: 255, g: 255, b: 255 } };\n        var ccPaint = function (skip) {\n          ['fg', 'bg'].forEach(function (k) { var hx = hex(col[k]); if (skip !== k) CC[k].value = hx; if (skip !== k + 'c') CC[k + 'c'].value = hx.toLowerCase(); });\n          CC.prev.style.color = hex(col.fg); CC.prev.style.background = hex(col.bg);\n          var r = ratio(col.fg, col.bg); CC.ratio.textContent = NUM(Math.floor(r * 100) \/ 100, 2) + ':1';\n          ['aa', 'aaa', 'aal', 'aaal', 'ui'].forEach(function (k) {\n            var li = CC[k], ok = r >= parseFloat(li.getAttribute('data-min'));\n            li.classList.toggle('is-ok', ok); li.classList.toggle('is-ko', !ok);\n            li.querySelector('b').textContent = ok ? (U.pasa || 'Pass') : (U.no_pasa || 'Fail');\n          });\n        };\n        ['fg', 'bg'].forEach(function (k) {\n          CC[k].addEventListener('input', function () { var c = parseHex(CC[k].value); if (c) { col[k] = c; ccPaint(k); } });\n          CC[k + 'c'].addEventListener('input', function () { var c = parseHex(CC[k + 'c'].value); if (c) { col[k] = c; ccPaint(k + 'c'); } });\n          CC[k].addEventListener('focus', function () { CC[k].select(); });\n        });\n        cc.addEventListener('click', function (e) {\n          var a = e.target.closest('[data-act]'); if (!a) return;\n          if (a.getAttribute('data-act') === 'cc-swap') { var t = col.fg; col.fg = col.bg; col.bg = t; ccPaint(); }\n          if (a.getAttribute('data-act') === 'cc-use') { col[a.getAttribute('data-t')] = { r: cur.r, g: cur.g, b: cur.b }; ccPaint(); }\n        });\n        ccPaint();\n      }\n      paint();\n    });\n    \/* Preguntas frecuentes: solo una abierta a la vez (de entrada, la primera) *\/\n    var fbs = root.querySelectorAll('.dgv-faq-btn');\n    Array.prototype.forEach.call(fbs, function (btn) {\n      btn.addEventListener('click', function () {\n        setTimeout(function () {\n          if (btn.getAttribute('aria-expanded') !== 'true') return;\n          Array.prototype.forEach.call(fbs, function (o) {\n            if (o === btn || o.getAttribute('aria-expanded') !== 'true') return;\n            o.setAttribute('aria-expanded', 'false'); var it = o.closest('.dgv-faq-item'); if (it) it.classList.remove('is-open');\n          });\n        }, 0);\n      });\n    });\n  }\n  if (d.readyState === 'loading') d.addEventListener('DOMContentLoaded', go); else go();\n})();\n<\/script><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"estilo_pagina_titulo":"","estilo_pagina_descripcion":"","estilo_pagina_imagen":"","_joinchat":[],"footnotes":""},"estilo_pagina":[],"class_list":["post-27401375","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.digiaccion.com\/en\/wp-json\/wp\/v2\/pages\/27401375","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.digiaccion.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.digiaccion.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.digiaccion.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.digiaccion.com\/en\/wp-json\/wp\/v2\/comments?post=27401375"}],"version-history":[{"count":6,"href":"https:\/\/www.digiaccion.com\/en\/wp-json\/wp\/v2\/pages\/27401375\/revisions"}],"predecessor-version":[{"id":27401466,"href":"https:\/\/www.digiaccion.com\/en\/wp-json\/wp\/v2\/pages\/27401375\/revisions\/27401466"}],"wp:attachment":[{"href":"https:\/\/www.digiaccion.com\/en\/wp-json\/wp\/v2\/media?parent=27401375"}],"wp:term":[{"taxonomy":"estilo_pagina","embeddable":true,"href":"https:\/\/www.digiaccion.com\/en\/wp-json\/wp\/v2\/estilo_pagina?post=27401375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}