/* Estilos isolados: todas as regras ficam dentro de .dpoh */
.dpoh {
color-scheme: light;
--dpoh-navy: #0F2E4C;
--dpoh-ink: #16202B;
--dpoh-muted: #4A5866;
--dpoh-teal: #0FA3B1;
--dpoh-teal-dark: #0B7E89;
--dpoh-accent: #1F7A6B;
--dpoh-sand: #F4F1EA;
--dpoh-line: #D8DEE4;
--dpoh-alert: #B3261E;
--dpoh-bg: #FFFFFF;
--dpoh-radius: 10px;
--dpoh-measure: 44rem;
--dpoh-wide: 72rem;
font-family: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
font-size: 18px;
line-height: 1.65;
color: var(--dpoh-ink);
background: var(--dpoh-bg);
-webkit-font-smoothing: antialiased;
}/* Defesa contra os estilos do tema: especificidade zero, só repõe o essencial */
.dpoh :where(p, h1, h2, h3, h4, ul, ol, li, a, button, table, thead, tbody, tr, th, td,
div, span, small, strong, em, section, article, header, footer, nav, figure, iframe) {
font-family: inherit;
font-size: inherit;
font-weight: inherit;
font-style: inherit;
line-height: inherit;
letter-spacing: normal;
text-transform: none;
text-shadow: none;
color: inherit;
background: transparent;
border: 0;
border-radius: 0;
box-shadow: none;
float: none;
max-width: none;
margin: 0;
padding: 0;
text-align: start;
list-style: none;
text-decoration: none;
opacity: 1;
transform: none;
animation: none;
position: static;
}
.dpoh :where(strong) { font-weight: 700; }
.dpoh :where(em) { font-style: italic; }
.dpoh :where(h1, h2, h3) { font-weight: 700; }
.dpoh :where(ul, ol) { list-style: none; }
.dpoh :where(iframe) { display: block; width: 100%; }.dpoh *, .dpoh *::before, .dpoh *::after { box-sizing: border-box; }
.dpoh p, .dpoh ul, .dpoh ol, .dpoh h1, .dpoh h2, .dpoh h3, .dpoh table, .dpoh figure { margin: 0 0 1rem; }
.dpoh img { max-width: 100%; height: auto; }
.dpoh a { color: var(--dpoh-teal-dark); text-decoration: underline; text-underline-offset: 2px; }
.dpoh a:hover { color: var(--dpoh-navy); }
.dpoh a:focus-visible, .dpoh button:focus-visible { outline: 2px solid var(--dpoh-teal-dark); outline-offset: 2px; border-radius: 3px; }.dpoh .dpoh-wrap { max-width: var(--dpoh-wide); margin-inline: auto; padding-inline: 1.25rem; }
.dpoh .dpoh-measure { max-width: var(--dpoh-measure); }/* Barra superior: marca, línguas */
.dpoh .dpoh-top { border-bottom: 1px solid var(--dpoh-line); background: var(--dpoh-bg); }
.dpoh .dpoh-top-in { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: center; justify-content: space-between; padding-block: .85rem; }
.dpoh .dpoh-brand { display: inline-flex; align-items: center; gap: .6rem; font-weight: 700; color: var(--dpoh-navy); text-decoration: none; font-size: 1.05rem; letter-spacing: .01em; }
.dpoh a.dpoh-brand { text-decoration: none; }
.dpoh a.dpoh-brand:hover { color: var(--dpoh-navy); text-decoration: none; }
.dpoh a.dpoh-brand:hover span { text-decoration: underline; }
.dpoh .dpoh-brand svg { flex: none; }
.dpoh .dpoh-brand span small { display: block; font-weight: 400; font-size: .72rem; color: var(--dpoh-muted); letter-spacing: .04em; text-transform: uppercase; }
.dpoh .dpoh-langs { display: flex; gap: .35rem; align-items: center; font-size: .82rem; }
.dpoh .dpoh-langs a { padding: .25rem .55rem; border: 1px solid var(--dpoh-line); border-radius: 999px; text-decoration: none; color: var(--dpoh-muted); }
.dpoh .dpoh-langs a[aria-current="true"] { background: var(--dpoh-navy); border-color: var(--dpoh-navy); color: #fff; }/* Navegação */
.dpoh .dpoh-nav { border-bottom: 1px solid var(--dpoh-line); background: var(--dpoh-sand); }
.dpoh .dpoh-nav ul { display: flex; flex-wrap: wrap; gap: .2rem 1.1rem; list-style: none; margin: 0; padding: .6rem 0; font-size: .92rem; }
.dpoh .dpoh-nav a { color: var(--dpoh-navy); text-decoration: none; padding: .25rem 0; border-bottom: 2px solid transparent; }
.dpoh .dpoh-nav a:hover { border-bottom-color: var(--dpoh-teal); }
.dpoh .dpoh-nav a[aria-current="page"] { border-bottom-color: var(--dpoh-navy); font-weight: 600; }
.dpoh .dpoh-nav .dpoh-nav-cta { margin-inline-start: auto; }
.dpoh .dpoh-nav .dpoh-nav-cta a { background: var(--dpoh-teal-dark); color: #fff; padding: .35rem .85rem; border-radius: 999px; border-bottom: 0; font-weight: 600; }
.dpoh .dpoh-nav .dpoh-nav-cta a:hover { background: var(--dpoh-navy); }/* Hero */
.dpoh .dpoh-hero { background: linear-gradient(180deg, #0F2E4C 0%, #123A5E 100%); color: #fff; padding-block: 3rem 2.6rem; }
.dpoh .dpoh-hero h1 { font-size: clamp(1.85rem, 1.2rem + 2.4vw, 2.9rem); line-height: 1.18; color: #fff; margin-bottom: .9rem; max-width: 22ch; font-weight: 700; letter-spacing: -0.01em; }
.dpoh .dpoh-hero .dpoh-lead { font-size: 1.1rem; color: #D7E3EE; max-width: var(--dpoh-measure); margin-bottom: 1.6rem; }/* Conteúdo */
.dpoh .dpoh-main { padding-block: 2.4rem 1rem; }
.dpoh .dpoh-main h2 { font-size: 1.5rem; line-height: 1.25; color: var(--dpoh-navy); margin-top: 2.4rem; margin-bottom: .8rem; font-weight: 700; }
.dpoh .dpoh-main h3 { font-size: 1.12rem; color: var(--dpoh-navy); margin-top: 1.6rem; margin-bottom: .5rem; font-weight: 600; }
.dpoh .dpoh-main ul { list-style: disc; padding-inline-start: 1.25rem; max-width: var(--dpoh-measure); }
.dpoh .dpoh-main ol { padding-inline-start: 1.25rem; max-width: var(--dpoh-measure); }
.dpoh .dpoh-main ul.dpoh-chips { list-style: none; padding-inline-start: 0; }
.dpoh .dpoh-main li { margin-bottom: .45rem; }
.dpoh .dpoh-main ol { counter-reset: dpoh; list-style: none; padding-inline-start: 0; }
.dpoh .dpoh-main ol li { counter-increment: dpoh; position: relative; padding-inline-start: 2.4rem; margin-bottom: .7rem; }
.dpoh .dpoh-main ol li::before { content: counter(dpoh); position: absolute; inset-inline-start: 0; top: .1rem; width: 1.65rem; height: 1.65rem; border-radius: 50%; background: var(--dpoh-navy); color: #fff; font-size: .85rem; font-weight: 700; display: grid; place-items: center; }/* Cartões */
.dpoh .dpoh-cards { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); margin-bottom: 1.4rem; }
.dpoh .dpoh-card { border: 1px solid var(--dpoh-line); border-top: 3px solid var(--dpoh-teal); border-radius: var(--dpoh-radius); padding: 1.1rem 1.2rem; background: #fff; }
.dpoh .dpoh-card h3 { margin-top: 0; margin-bottom: .4rem; font-size: 1.05rem; }
.dpoh .dpoh-card p { margin-bottom: 0; font-size: .95rem; color: var(--dpoh-muted); }/* Botões */
.dpoh .dpoh-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin: 1.2rem 0 1.6rem; }
.dpoh a.dpoh-btn, .dpoh button.dpoh-btn { display: inline-block; background: var(--dpoh-teal-dark); color: #fff; text-decoration: none; font-weight: 600; padding: .7rem 1.3rem; border-radius: 999px; border: 1px solid transparent; font-size: .97rem; font-family: inherit; cursor: pointer; }
.dpoh a.dpoh-btn:hover, .dpoh button.dpoh-btn:hover { background: var(--dpoh-navy); color: #fff; }
.dpoh a.dpoh-btn-secondary { background: transparent; color: var(--dpoh-navy); border-color: var(--dpoh-line); }
.dpoh a.dpoh-btn-secondary:hover { background: var(--dpoh-sand); color: var(--dpoh-navy); }
.dpoh button.dpoh-btn[disabled] { background: var(--dpoh-line); color: var(--dpoh-muted); cursor: default; }
.dpoh .dpoh-hero a.dpoh-btn-secondary { border-color: rgba(255,255,255,.65); color: #fff; background: transparent; }
.dpoh .dpoh-hero a.dpoh-btn-secondary:hover { background: rgba(255,255,255,.14); color: #fff; }/* Tabelas */
.dpoh .dpoh-table-wrap { overflow-x: auto; margin-bottom: 1.4rem; }
.dpoh table { border-collapse: collapse; width: 100%; font-size: .92rem; min-width: 34rem; }
.dpoh th, .dpoh td { text-align: start; padding: .6rem .7rem; border: 1px solid var(--dpoh-line); vertical-align: top; }
.dpoh thead th { background: var(--dpoh-navy); color: #fff; font-weight: 600; }
.dpoh tbody tr:nth-child(even) { background: #F7F9FB; }/* Etiquetas (jurisdições) */
.dpoh .dpoh-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.4rem; padding: 0; list-style: none; }
.dpoh .dpoh-chips li { background: var(--dpoh-sand); border: 1px solid var(--dpoh-line); border-radius: 999px; padding: .3rem .75rem; font-size: .86rem; color: var(--dpoh-navy); margin: 0; }/* Bloco final de chamada à ação */
.dpoh .dpoh-cta-final { background: var(--dpoh-sand); border-top: 1px solid var(--dpoh-line); border-bottom: 1px solid var(--dpoh-line); padding-block: 2.2rem; margin-top: 2.6rem; }
.dpoh .dpoh-cta-final h2 { margin-top: 0; }
.dpoh .dpoh-cta-final p { max-width: var(--dpoh-measure); color: var(--dpoh-muted); }/* Formulário */
.dpoh .dpoh-formbox { border: 1px solid var(--dpoh-line); border-radius: var(--dpoh-radius); padding: 1.4rem; background: #fff; max-width: 52rem; }
.dpoh .dpoh-formbox p { color: var(--dpoh-muted); font-size: .95rem; }
.dpoh .dpoh-formbox iframe { width: 100%; border: 0; min-height: 60rem; display: block; }
.dpoh .dpoh-note { font-size: .85rem; color: var(--dpoh-muted); }/* Rodapé */
.dpoh .dpoh-footer { background: var(--dpoh-navy); color: #C9D6E2; padding-block: 2.2rem 1.4rem; margin-top: 0; font-size: .92rem; }
.dpoh .dpoh-footer a { color: #fff; text-decoration: none; }
.dpoh .dpoh-footer a:hover { text-decoration: underline; color: #fff; }
.dpoh .dpoh-foot-grid { display: grid; gap: 1.4rem; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.dpoh .dpoh-footer h2 { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: #8FA7BC; margin: 0 0 .6rem; }
.dpoh .dpoh-footer ul { list-style: none; margin: 0; padding: 0; }
.dpoh .dpoh-footer li { margin-bottom: .35rem; }
.dpoh .dpoh-legal { border-top: 1px solid rgba(255,255,255,.15); margin-top: 1.6rem; padding-top: 1rem; font-size: .82rem; color: #8FA7BC; }@media (max-width: 40rem) {
.dpoh { font-size: 17px; }
.dpoh .dpoh-nav ul { gap: .2rem .8rem; font-size: .88rem; }
.dpoh .dpoh-nav .dpoh-nav-cta { margin-inline-start: 0; }
.dpoh .dpoh-hero { padding-block: 2.2rem 2rem; }
}@media print {
.dpoh .dpoh-nav, .dpoh .dpoh-langs, .dpoh .dpoh-actions, .dpoh .dpoh-cta-final { display: none; }
.dpoh .dpoh-hero { background: none; color: #000; }
.dpoh .dpoh-hero h1, .dpoh .dpoh-hero .dpoh-lead { color: #000; }
}/* ------------------------------------------------------------------
Reforço final: garante os títulos fora do conteúdo principal e vence
regras de tema do tipo .entry-content p (mesma especificidade, mas
declaradas depois, já que esta folha é inserida no corpo da página).
------------------------------------------------------------------ */
.dpoh h1 { font-size: clamp(1.85rem, 1.2rem + 2.4vw, 2.9rem); line-height: 1.18; color: var(--dpoh-navy); margin-bottom: .9rem; font-weight: 700; }
.dpoh h2 { font-size: 1.5rem; line-height: 1.25; color: var(--dpoh-navy); margin: 2.4rem 0 .8rem; font-weight: 700; }
.dpoh h3 { font-size: 1.12rem; line-height: 1.35; color: var(--dpoh-navy); margin: 1.6rem 0 .5rem; font-weight: 600; }
.dpoh .dpoh-wrap p, .dpoh .dpoh-wrap li { color: var(--dpoh-ink); }
.dpoh .dpoh-wrap td, .dpoh .dpoh-wrap th { color: var(--dpoh-ink); }
.dpoh .dpoh-wrap thead th { color: #fff; }
.dpoh .dpoh-wrap a { color: var(--dpoh-teal-dark); }
.dpoh .dpoh-wrap .dpoh-card h3 { margin-top: 0; margin-bottom: .4rem; font-size: 1.05rem; }
.dpoh .dpoh-wrap .dpoh-card p { color: var(--dpoh-muted); margin-bottom: 0; font-size: .95rem; }
.dpoh .dpoh-wrap .dpoh-chips li { color: var(--dpoh-navy); }
.dpoh .dpoh-wrap .dpoh-note { color: var(--dpoh-muted); font-size: .85rem; }
.dpoh .dpoh-wrap .dpoh-formbox p { color: var(--dpoh-muted); }
.dpoh .dpoh-cta-final .dpoh-wrap h2 { margin-top: 0; }
.dpoh .dpoh-cta-final .dpoh-wrap p { color: var(--dpoh-muted); }
.dpoh .dpoh-hero .dpoh-wrap h1 { color: #fff; margin-top: 0; }
.dpoh .dpoh-hero .dpoh-wrap p { color: #D7E3EE; }
.dpoh .dpoh-hero .dpoh-wrap a.dpoh-btn { color: #fff; }
.dpoh .dpoh-hero .dpoh-wrap a.dpoh-btn-secondary { color: #fff; }
.dpoh .dpoh-nav .dpoh-wrap a { color: var(--dpoh-navy); }
.dpoh .dpoh-nav .dpoh-wrap .dpoh-nav-cta a { color: #fff; }
.dpoh .dpoh-top .dpoh-wrap a { color: var(--dpoh-navy); }
.dpoh .dpoh-top .dpoh-wrap .dpoh-langs a { color: var(--dpoh-muted); }
.dpoh .dpoh-top .dpoh-wrap .dpoh-langs a[aria-current="true"] { color: #fff; }
.dpoh .dpoh-top .dpoh-wrap .dpoh-brand small { color: var(--dpoh-muted); }
.dpoh .dpoh-footer .dpoh-wrap p, .dpoh .dpoh-footer .dpoh-wrap li { color: #C9D6E2; }
.dpoh .dpoh-footer .dpoh-wrap a { color: #fff; }
.dpoh .dpoh-footer .dpoh-wrap h2 { color: #8FA7BC; font-size: .8rem; margin: 0 0 .6rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
.dpoh .dpoh-footer .dpoh-wrap .dpoh-legal { color: #8FA7BC; }
.dpoh .dpoh-wrap a.dpoh-btn { color: #fff; }
.dpoh .dpoh-wrap a.dpoh-btn-secondary { color: var(--dpoh-navy); }
.dpoh .dpoh-main ul li { list-style: disc outside; }
.dpoh .dpoh-main ul.dpoh-chips li { list-style: none; }
.dpoh .dpoh-main ol li { list-style: none; }
.dpoh .dpoh-footer ul li { list-style: none; }
The problem we solve
Data protection law is no longer one law. An organisation with entities, customers or suppliers in several countries is subject to several regimes at once, each with its own definitions, deadlines, notification duties and supervisory authority. The person holding the role is expected to reconcile them, in writing, and to be able to explain the reasoning afterwards.
- Obligations that overlap, and sometimes contradict each other
- Breach clocks that start at different moments and run for different periods
- Transfers that must be justified in both directions
- Decisions that have to be evidenced for a board, an auditor or an authority
See the full list of challenges
Five ways we help
DPO Helpdesk
A subscription that gives you somewhere to send the question you would otherwise carry alone. Written answers, with the reasoning and the sources, within one working day.
Second opinion
An independent review of a specific document or decision: an impact assessment, a transfer assessment, a breach call, a records set. Fixed scope, fixed fee, written conclusion.
Multi-jurisdiction readiness review
A map of what actually applies to your group, country by country and entity by entity, with the gaps ranked and a plan you can put in front of management.
Mentoring and supervision
Regular sessions with a practitioner who holds the same role elsewhere. For people newly appointed, and for people who have held the role long enough to know how lonely it is.
Interim and deputy cover
Cover for leave, transitions and vacancies, so that the role continues to be exercised and the organisation keeps a point of contact.
How it works
- You tell us what you need, using a single short form.
- We come back within one working day with a scope, a price and a start date.
- You get the answer in writing, in a form you can file as evidence.
Who is behind this
The service is run by practitioners who hold data protection, compliance and security roles themselves, in public bodies and private groups. We are not a software vendor and we do not sell certification. We are independent of the suppliers you may be assessing, and we say so in writing whenever a conflict could arise.
Start with one question
Send us the question you are carrying today. If it is something we can answer in a paragraph, we will answer it and tell you so. If it needs work, we will tell you what that work is and what it costs, before you commit.
Send us the question you are carrying today.
One working day for a written answer. No obligation, and no sales sequence afterwards unless you ask for one.
Send your question
{"@context": "https://schema.org", "@type": "WebPage", "name": "DPO Help - support for data protection officers across jurisdictions", "description": "Practical, independent support for data protection officers who answer to more than one law: helpdesk, second opinions, readiness reviews, mentoring and interim cover.", "inLanguage": "en-GB", "url": "https://www.dataprotectionofficer.help/", "provider": {"@type": "ProfessionalService", "name": "dataprotectionofficer.help", "url": "https://www.dataprotectionofficer.help/", "availableLanguage": ["en", "pt", "es"]}}