/* restore extras — generated by restore_04_polish.py */

/* Consent overlays: the restore ships no analytics or third-party tracking at all, so there
   is nothing to consent to. Their scripts are gone too, meaning the banner can never be
   dismissed and would cover the top of every page. Removing the markup is unreliable when a
   JS bundle re-renders it, so it is hidden here as well. */
.cookies-banner, .cookies-banner-content, .cookie-banner, .cookie-consent, .cookie-notice,
.cc-window, .cc-banner, #cookie-law-info-bar, #cookieChoiceInfo, .gdpr-banner,
#tarteaucitronRoot, .consent-overlay, .cookiebar {
  display: none !important;
}
body.cookie-banner-open, body.has-cookie-banner, html.cookies-open {
  overflow: auto !important;
}

/* Dead account/login modals left by the CMS (no backend on a static host) */
.modal-login, #loginModal, .login-modal { display: none !important; }

/* Carousel slots the platform's JS bundles would have filled at runtime: without a working
   bundle they stay as <img> elements with no src and render as broken-image icons. Nothing is
   lost by hiding them — they never had content in the restore. */
img:not([src]), img[src=""], img[src="#"] { display: none !important; }

/* The client's backlink block must read as the page's own copy. Where a theme only colours
   links inside specific containers, the anchor would otherwise look like plain text — inherit
   the surrounding colour but keep an underline so it is still visibly a link. */
.content-wraparea a { color: inherit; text-decoration: underline; }

/* A few px of horizontal overflow on phones (an absolutely-positioned login list, a wide footer
   logo) makes the whole page pannable sideways, which reads as broken.
   NB: use `clip`, never `hidden`, and never on html together with height:100%. `overflow:hidden`
   turns the element into a scroll container: on themes that set html{height:100%} it stops body's
   overflow propagating to the viewport, the window stops scrolling entirely and every
   scroll-driven behaviour (sticky nav, back-to-top, in-page anchors, PageDown/End) dies.
   `clip` suppresses the sideways pan without creating a scroll container. */
body { overflow-x: clip; }
/* ---- end generated block; anything below is preserved across re-runs ---- */

/* ---- niveldeempatia legibility repairs ---- */
/* 1. Header-image link: an inline <a> around a block <img> is 17px tall whatever the picture is. */
#branding > a { display: block; line-height: 0; }

/* 2. Standalone controls that were under the 24px floor. Padding only — no size jump, no reflow. */
.more-link { display: inline-block; padding: 6px 0; }
.widget-title a { display: inline-block; padding: 4px 0; }
#site-generator .copyright a { display: inline-block; padding: 5px 0; }
.ne-message-form label { display: inline-block; padding: 5px 0; font-weight: bold; }
.ne-message-form input, .ne-message-form textarea {
  display: block; width: 100%; max-width: 32em; box-sizing: border-box;
  padding: 9px 10px; border: 1px solid #cfcfcf; border-radius: 3px; font: inherit;
}
.ne-submit {
  display: inline-block; padding: 12px 22px; border: 0; border-radius: 3px;
  background: #05758A; color: #fff; font: inherit; font-weight: bold; cursor: pointer;
}
.ne-submit:hover, .ne-submit:focus { background: #045A6B; }

/* 2b. The post byline in the theme's entry-meta bar. The author link and the date link are the
   ONE recurring tap-target failure of this restore: the theme gives `.entry-meta` a 17px line and
   both are bare inline anchors, so every blog-listing page (/060426a0007/, every /YYYY/MM/ month
   archive, every /category/ and /tag/ and /author/ listing) and every single post shipped two
   controls a finger cannot land on, at all four widths. They are NOT the "link inside running
   text" WCAG exempts and qa_legibility exempts with it: their parent is a bare <span>, they stand
   alone in a meta bar, and nothing sits on the line above or below for a taller box to steal.
   Fixed in the TEMPLATE's stylesheet, which every page loads, rather than on the pages a gate
   happened to sample. 28px, not the 24px floor itself: a box measured AT its threshold is what
   makes this gate flake between runs, so the fix is given four pixels of daylight. */
.entry-meta .by-author a,
.entry-meta .date a {
  display: inline-block;
  line-height: 28px;
  min-height: 28px;
  vertical-align: middle;
}

/* 3. Global ink one step darker: #777 measures 4.48:1 on white, just under the 4.5 floor. */
body, input, textarea, #site-description, #access a, #content ul a, #content ol a,
.widget ul li a, #site-generator .copyright a { color: #6b6b6b; }

/* 3b. Link TEXT one step darker for the same reason: the theme's accent #05A9C5 measures 2.80:1
   on white, which is not "just short of AA", it is barely more than half of it, and it is the
   colour of every link on the site. #057F96 is the same hue at 4.69:1. Only the ink changes —
   the accent stays #05A9C5 wherever it is a FILL (the slogan bar, the featured-title band, the
   submenu rule), because those are design, not text a visitor has to read.
   #05758A measures 5.36:1, which is the same reading white-on-teal as teal-on-white, so the CTA
   buttons written by this restore use it as their FILL and stay legible too. The site title
   needs its own line: the theme colours it through `#site-title a span`, which outranks `a`. */
a, #site-title a, #site-title a span,
#access ul li.current-menu-item > a, #access ul li.current_page_item > a,
#access ul li.current-menu-ancestor > a, #access ul li.current_page_ancestor > a,
#access ul li:hover > a { color: #05758A; }
#site-generator { color: #6b6b6b; }        /* was #999 — 2.85:1 on the footer's own white */
/* 3c. TWO MORE PLACES THE THEME'S ACCENT IS TEXT, FOUND BY RUNNING qa_legibility OVER PAGES THE
   EARLIER ROUNDS NEVER OPENED. Both fail at every width and on pages this rework did not touch,
   so neither is a regression - they are the same defect as 3b on selectors 3b did not name:
     * `.tags a` is #888 on white = 3.54:1. It is the "Tagged on:" row under every post and every
       tag/category listing. #6b6b6b is the grey this file already chose for #site-generator, so
       the meta row stays visibly quieter than body text instead of turning into a body link.
     * `a.readmore` is `color:#fff` over a `#06B8D7` gradient FILL = 2.56:1 - white on pale cyan,
       the "Read more" button at the foot of every excerpt on every listing page. #05758A is the
       fill this file already uses for the CTA buttons precisely because white on it reads 5.36:1.
   Neither threshold sits near 4.5, which is what stops a measurement flaking between runs. */
.tags a { color: #6b6b6b; }
/* 3d. AND `.tags a` IS A TAP TARGET, NOT A LINK IN A SENTENCE. It is a bare inline anchor on a
   17px line inside `<div class="tags">`, which is not one of the containers WCAG 2.5.8 exempts
   ("a sentence or block of text") and is not one qa_legibility exempts either - so every
   "Tagged on:" row ships standalone controls under the 24px floor at all four widths. This is
   EXACTLY the defect REWORK 2 fixed for `.entry-meta .by-author a` and `.entry-meta .date a`; it
   simply never named this third selector, and no round had run the gate over a page carrying a
   tag row. 28px and not 24 for the same reason given there: a box measured AT the threshold is
   what makes this gate flake between runs (task #156). MEASURED BEFORE TOUCHING IT: with these
   rules commented out the same three pages report the same 39 problems, so the 17px anchors are
   not a regression of this round's chrome work - they predate it. */
.tags a { display: inline-block; line-height: 28px; min-height: 28px; }
a.readmore { background: #05758A; border-color: #05758A; }
/* The two places the accent is a FILL BEHIND WHITE TEXT, where 2.80:1 is the reading, not the
   decoration: the strapline band under the header and the featured-post title. Same hue, 5.36:1. */
.slogan-wrap, .featured-text .featured-title { background-color: #05758A; }

/* 3c. The "Artigos recentes" widget dates: the plugin's inline CSS sets .rpwe-time to #bbb,
   which measures 1.92:1 on white — the worst reading left on the site and the only one a
   sighted visitor would call unreadable rather than merely thin. #6b6b6b at 11px keeps the
   date subordinate to the headline above it and is legible. */
.rpwe-time, .rpwe-comment { color: #6b6b6b !important; }

/* 4. A link inside running text has to look like one. Lists of links are left alone. */
.entry-content p a, .entry-content li a, .textwidget p a, .ne-written a { text-decoration: underline; }

/* The contact block and map written by this restore, so they sit in the theme rather than on it. */
.ne-contact-card { margin: 1.5em 0; }
.ne-contact-card p { margin: 0 0 .35em; }
.ne-contact-widget .ne-contact-card { margin: 0 0 .75em; }
.ne-cta {
  display: inline-block; padding: 10px 18px; border-radius: 3px;
  background: #05758A; color: #fff; text-decoration: none; font-weight: bold;
}
.ne-cta:hover, .ne-cta:focus { background: #045A6B; color: #fff; }
.ne-map { margin: 1.5em 0 0; text-align: left; }
.ne-map img { max-width: 100%; height: auto; }
.ne-map figcaption { font-size: 12px; padding-top: 4px; }
.ne-archive-head { margin-bottom: 1.5em; }

/* ---- niveldeempatia site search ---- */
.ne-search-page { margin: 0 0 1.5em; }
.ne-search-note { margin: 0 0 10px; font-weight: bold; }
.ne-search-list { list-style: none; margin: 0; padding: 0; }
.ne-search-list li { padding: 10px 0; border-top: 1px solid #eaeaea; }
.ne-search-list li a { display: inline-block; padding: 5px 0; font-weight: bold;
  text-decoration: underline; }
.ne-search-snip { display: block; font-size: 13px; line-height: 20px; }
/* ---- end niveldeempatia site search ---- */

/* ---- de-abandonment sweep, 2026-09-10 ----
   The homepage's Recent-Posts-Extended widget printed each post's date beside its title, so three
   of the first things a visitor read on the front page were "30/10/2014", "25/10/2014" and
   "09/09/2014". Those dates are REAL history and are left exactly where they were: the markup still
   carries <time class="rpwe-time published" datetime="2014-10-30T03:38:48+00:00">, readable by any
   machine and by anyone who opens the source. Only their PROMINENCE is dropped, which is what a
   recent-posts widget on a restored site can honestly do — nothing is rewritten and nothing is
   claimed to be newer than it is. The same three posts are already listed, in the same order and
   without dates, in the "Informação de Psicologia" block directly beneath, so no route into them
   is lost.
   Deliberately NOT touched: the per-post byline date ("By Antonio Jorge Andrade | 28/03/2013"),
   which is the post's own record on its own page, and the sidebar "Arquivo" month list, which is
   labelled as an archive and is the only navigation into /2012/, /2013/ and /2014/. */
.rpwe-block .rpwe-time { display: none; }

/* ---- the contact form's own type, 2026-09-11 ----
   Formidable ships TWO stylesheets on these pages and only one of them can reach this markup.
   Every readable size in formidablepro-10b832f4.css is scoped to
   `.frm_style_formidable-style.with_frm_style` — a class the plugin printed from PHP and which no
   archived page carries: the container here is `<div class="frm_forms with_frm_style">` and
   nothing else, so `frm_style_formidable-style` appears ZERO times in the shipped HTML. That
   leaves exactly one rule landing on the helper text, frm_display-e064b0ed.css's unscoped
   `.frm_description{font-size:11px}`, and both helper lines — the one under the form title and
   the one under the Telefone field — rendered at 11px at 1440, 1180, 1024 and 390 on all THREE
   pages that carry this form (/agendamento-expresso-de-consultas/, /avaliacao-psicologica/,
   /consulta-de-psicologia-de-jovens-e-adolescentes/), not just the one that was reported.

   What is restored below is the plugin's OWN intended sizing, not a size invented here: the rule
   that never landed asks for 12px on the description and larger type on the label. 13px and 14px
   rather than 12px and 12px for two reasons — the label must stay a step above the helper text it
   explains, and nothing here should sit exactly ON the 12px floor, because a measurement taken at
   its own threshold is what makes a gate flake between runs (task #156, and the same reasoning
   that put the byline tap targets at 28px rather than 24px above).

   Scoped to `.frm_forms.with_frm_style` so it follows the form itself rather than a page path,
   and so the site's other text is untouched. The words are the form's own; only their size moves. */
.frm_forms.with_frm_style .frm_description,
.frm_forms.with_frm_style .frm_description p { font-size: 13px; line-height: 20px; }
.frm_forms.with_frm_style label.frm_primary_label { font-size: 14px; line-height: 20px; }

/* ---- the hero caption belongs on the photograph, not on the menu, 2026-09-11 ----
   The Attitude theme paints `.featured-text` as a caption over the featured slider's picture:
   `position:absolute; bottom:55px; right:30px` inside `.featured-slider`, which is `position:
   relative`. This site's own capture carries NO <img> inside `.slides` — verified in
   _raw/niveldeempatia-psicologia.pt/pages/index.html, where the slide holds the <article> and
   nothing else — so `.featured-slider` computed to height 0 and `bottom:55px` lifted the caption
   UP, on top of `#access`. Measured with document.elementFromPoint at each menu link's centre:
   at 1440 SUPERVISAO and MARCACAO returned div.featured-content instead of their own anchors, and
   at 1180 PSICOTERAPIA as well — three sections of the site, one of them the booking page,
   unreadable and unclickable from the homepage at the two commonest desktop widths. 1024 and
   below were clean only because the theme hides `.featured-title, .featured-content` there.

   There is no archived slider photograph to put back and none may be invented, so the caption is
   anchored instead to the hero the site really did publish — the header banner immediately above
   the menu, which is on 96 of its pages and is already what og:image is made of. That is exactly
   the relationship the theme designs for a caption, so nothing here is a new invention: the same
   words, the same box, the same corner, over a picture that is genuinely the page's hero. The
   empty `.featured-slider` section (its `#controllers` nav had no children either, because jQuery
   Cycle refuses to run on a single slide) is gone from the three pages that carried it. */
.ne-hero { position: relative; }
.ne-hero > a { display: block; }
.ne-hero img.header-image { display: block; }

/* The vCard the CONTACTO block always offered. Its `.vcf` line shipped as bare text because the
   original wp-content/uploads/nempatiapsicologia.vcf was never captured by the fetch lane (it is
   absent from _raw and from _assets.json), and a label that promises a download and does nothing
   is precisely the dead-control class this client keeps rejecting. The file at
   /files/nempatiapsicologia.vcf is built from the contact data these same three pages publish in
   their schema.org vcard — name, address, both numbers, e-mail — plus the site's own canonical
   URL, so no fact in it is new. 28px of line box, not 24, for the same reason as the byline
   anchors above: a control measured AT the floor is what makes the gate flake between runs. */
.vcard li.vcf a { display: inline-block; line-height: 28px; min-height: 28px; vertical-align: middle; }

/* The collapsed phone menu. tinynav replaces the menu with a <select> whose sprite (the hamburger)
   is painted as a background image at the right edge; the theme gives the select no padding, so
   the selected option's text ran under the icon — measured as a 28px overlap at 390 on every page,
   and visibly so wherever the current page's label is long ("Agendamento Expresso de Consultas").
   box-sizing keeps the select's own width:100% honest once the padding exists. */
#access select.tinynav { box-sizing: border-box; padding-right: 34px; }

/* ---- owner-bar round 1 (2026-09-15) ---- */
/* WHY THIS BLOCK EXISTS. Owner review 2026-09-15: "the text styles look terrible". Measured before
   touching anything: every prose block on the site computed to PT Sans 13px/20px in #6b6b6b, the
   full-width templates ran 978px lines at 1440 (about 170 characters) and phones got a 280px
   column with 55px of dead margin each side. The words and the 2014 Attitude design stay; only
   size, ink, measure and spacing move. Written by the owner-bar round-1 writer (see plan _note). */

/* 1. Reading type. 16px / 1.65-1.7 in #3a3a3a (11.3:1 on white). */
body, input, textarea { font-size: 16px; line-height: 1.65; color: #3a3a3a; }
#site-description { font-size: 14px; line-height: 1.45; color: #555; }
.entry-content, .entry-content p, .entry-content li, .entry-content td, .entry-content dd,
.textwidget, .textwidget p, .testimonial-post, .widget_service article p {
  font-size: 16px; line-height: 1.7; color: #3a3a3a;
}
.entry-content p, .textwidget p { margin-bottom: 1.1em; }
#content ul a, #content ol a { color: #05758A; }
#content ul.default-wp-page li a { color: #444; }

/* 2. Sidebar and footer widgets 15px #444; meta rows 14px. */
#secondary .widget, #secondary .widget p, #secondary .widget li,
#colophon .widget, #colophon .widget p, #colophon .widget li { font-size: 15px; line-height: 1.6; color: #444; }
#secondary .widget ul li a, #colophon .widget ul li a { color: #333; }
.entry-meta, .tags, #content ul.default-wp-page li a { font-size: 14px; line-height: 1.5; color: #555; }
.entry-meta a, .tags a { color: #444; }
#site-generator, #site-generator .copyright, #site-generator .copyright a { font-size: 14px; color: #555; }
#site-generator .copyright a { color: #444; }
.ne-search-snip { font-size: 15px; line-height: 1.55; }
.frm_forms.with_frm_style .frm_description, .frm_forms.with_frm_style .frm_description p { font-size: 15px; line-height: 1.5; }
.frm_forms.with_frm_style label.frm_primary_label { font-size: 16px; line-height: 1.5; }

/* The meta row printed a literal " |" after EVERY span, the last one included, and at 390 those
   bars wrapped onto lines of their own. The pipes are gone from the markup; a separator is drawn
   only BETWEEN items, inside the item it follows, so it can never start a line. */
.entry-meta > span { padding: 0; margin-right: 8px; }
.entry-meta > span.by-author::after { content: "|"; margin-left: 10px; color: #aaa; }
.entry-meta > span.category { display: block; margin-top: 2px; }

/* 3. Line length: a prose column of 720px (about 80 characters of 16px PT Sans) on the
   full-width templates, where #content is a direct child of #container. Sidebar pages are already
   642px. Media and headings keep the column's left edge. */
@media (min-width: 768px) {
  #container > #content .entry-content,
  #container > #content .entry-header,
  #container > #content > .widget_text .textwidget,
  #container > #content > .widget_black_studio_tinymce .textwidget,
  #container > #content .testimonial-post { max-width: 720px; }
}

/* 4. Phones: the theme fixed .container at 280px (420px from 480) inside a 100% wrapper, which is
   a 280px column on a 390px screen. 20px gutters instead; the title no longer wraps to 4 lines. */
@media (max-width: 767px) {
  .container, .one-column-template .container { width: auto; margin-left: 20px; margin-right: 20px; }
  #branding { margin-top: 0; }
  .hgroup-wrap { padding-bottom: 14px; }
  #site-logo { margin-top: 16px; max-width: calc(100% - 48px); }
  #site-title { font-size: 25px; line-height: 30px; }
  #site-description { font-size: 14px; line-height: 1.4; margin-top: 4px; }
  .hgroup-right { margin-top: 18px; }
}

/* 5. The menu. Below 1079px (where the theme's own 668px/280px containers cannot hold 7 items) a
   real toggle button opens the SAME ul.root, sub-menus listed under their parent, 46px rows.
   tinynav's <select> is gone from every page. Without JS (no .ne-js) the list is simply open. */
.ne-menu-toggle { display: none; }
@media (max-width: 1078px) {
  #access { height: auto; padding: 0; }
  #access select { display: none !important; }
  html.ne-js .ne-menu-toggle {
    display: flex; align-items: center; gap: 14px; width: 100%; min-height: 50px; margin: 0; padding: 0 2px;
    background: transparent; border: 0; color: #333; font: bold 16px/1 'PT Sans', sans-serif;
    text-align: left; cursor: pointer;
  }
  .ne-menu-bars, .ne-menu-bars::before, .ne-menu-bars::after {
    display: block; width: 22px; height: 2px; background: #05758A; border-radius: 1px;
  }
  .ne-menu-bars { position: relative; margin-left: 2px; }
  .ne-menu-bars::before, .ne-menu-bars::after { content: ""; position: absolute; left: 0; transition: transform .15s; }
  .ne-menu-bars::before { top: -7px; }
  .ne-menu-bars::after { top: 7px; }
  #access.ne-open .ne-menu-bars { background: transparent; }
  #access.ne-open .ne-menu-bars::before { top: 0; transform: rotate(45deg); }
  #access.ne-open .ne-menu-bars::after { top: 0; transform: rotate(-45deg); }
  html.ne-js #access ul.root { display: none; }
  html.ne-js #access.ne-open ul.root, html:not(.ne-js) #access ul.root { display: block; margin: 0; padding: 0 0 10px; }
  #access ul.root li { float: none; padding: 0; border-top: 1px solid #eaeaea; }
  #access ul.root li a, #access ul.root ul.sub-menu li a {
    float: none; display: flex; align-items: center; box-sizing: border-box; min-height: 46px; height: auto;
    padding: 8px 0; font-size: 16px; line-height: 1.35; text-transform: none; background: transparent;
  }
  #access ul.root ul.sub-menu, #access ul.root li:hover ul.sub-menu {
    display: block; position: static; top: auto; width: auto; border: 0; background: transparent; padding: 0 0 0 18px;
  }
  #access ul.root ul.sub-menu li { border-top: 1px solid #f2f2f2; }
  #access ul.root ul.sub-menu li a { font-size: 15px; }
}

/* 6. Desktop: all seven sections on ONE row. Measured in a live browser at 1440 and 1280: the
   uppercase labels need 1144px in a 978px container at any legible size (13px, 12.5px and
   letter-spacing all still wrapped "INFORMACAO DE PSICOLOGIA" alone onto row 2). Sentence case at
   14px with 14px gaps uses 948px. Labels are unchanged; only their case and spacing move. */
@media (min-width: 1079px) {
  #access ul.root > li { padding-right: 0; margin-right: 14px; }
  #access ul.root > li:last-child { margin-right: 0; }
  #access ul.root > li > a { text-transform: none; font-size: 14px; }
  #access ul.root ul.sub-menu { width: 250px; }
  #access ul.root ul.sub-menu li a { text-transform: none; font-size: 14px; line-height: 1.4; padding: 9px 12px; }
  #access ul.root li:focus-within > ul.sub-menu { display: block; }
}

/* 7. Inner-page banner: the same photograph, 380px instead of 500px at desktop, so the page's
   heading is on the first screen. The homepage keeps the full hero and its caption. */
@media (min-width: 1079px) {
  body:not(.home) #branding > a > img.header-image { width: 100%; height: 380px; object-fit: cover; object-position: 50% 40%; }
}

/* 8. Listing pages (blog index, category/tag/author/date archives): one image size, one position.
   The theme centred 670/525/484px pictures inside a 700px box, so no two entries lined up. */
.archive #content .post-featured-image, .blog #content .post-featured-image { max-width: none; margin: 4px 0 16px; }
.archive #content .post-featured-image a, .blog #content .post-featured-image a { display: block; }
.archive #content .post-featured-image img, .blog #content .post-featured-image img {
  display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; margin: 0;
}
@media (min-width: 768px) {
  .archive #content .post-featured-image, .blog #content .post-featured-image { float: left; width: 260px; margin: 6px 26px 16px 0; }
  .archive #content .entry-content, .blog #content .entry-content { overflow: hidden; }
}
.archive #content .entry-meta-bar, .blog #content .entry-meta-bar { clear: both; }
a.readmore { padding: 5px 14px; font-size: 14px; line-height: 1.4; }
.page-title::first-letter { text-transform: uppercase; }

/* 9. Small things: CTA buttons are not underlined links; header social icons were near-invisible. */
.entry-content p a.ne-cta, .textwidget p a.ne-cta, .ne-written a.ne-cta, a.ne-cta { text-decoration: none; }
#branding .social-profiles ul li a, #site-generator .social-profiles ul li a { filter: brightness(.5); }
#branding .social-profiles ul li a:hover, #branding .social-profiles ul li a:focus,
#site-generator .social-profiles ul li a:hover, #site-generator .social-profiles ul li a:focus { filter: none; }
/* A phone number never breaks between its digit groups ("211 / 955 957" in the sidebar card). */
a[href^="tel:"] { white-space: nowrap; }
/* The search form's screen-reader label sat 8px past a 390px screen once the phone column widened
   from 280px to 350px (measured: label.assistive-text right=398). Standard visually-hidden box. */
.assistive-text, label.assistive-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; border: 0;
}

/* 10. Photo lightbox (js/ne-ui.js): a post's thumbnail opens its full image over the page, not the
   bare file. Closes on Esc, on a click or tap anywhere, or on the button. */
#content a.ne-zoom { cursor: zoom-in; }
.ne-lightbox {
  position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 100000; display: flex; align-items: center;
  justify-content: center; padding: 56px 16px 16px; box-sizing: border-box; background: rgba(0, 0, 0, .86); cursor: zoom-out;
}
.ne-lightbox img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; background: #fff; box-shadow: 0 4px 30px rgba(0, 0, 0, .5); }
.ne-lightbox-close {
  position: absolute; top: 8px; right: 8px; min-width: 44px; min-height: 44px; padding: 0 14px; border: 0; border-radius: 22px;
  background: rgba(255, 255, 255, .15); color: #fff; font: bold 16px/44px 'PT Sans', sans-serif; cursor: pointer;
}
.ne-lightbox-close:hover, .ne-lightbox-close:focus { background: rgba(255, 255, 255, .3); }
/* 11. (round 1, continued) The homepage quote: section 3 caps the quote box at 720px, but its author
   line is a separate right-aligned block and stayed on the 978px container edge, 60px past the box
   it signs. Same cap, so the name sits under the quote. */
@media (min-width: 768px) {
  #container > #content .widget_testimonial .testimonial-author { max-width: 720px; }
}
/* 12. The header search is an input collapsed to its magnifier sprite (/img/search-*.png, a #ccc
   glyph). Darkened like the social icons in section 9, only while collapsed: the input gets a
   transparent ground first, so the filter cannot paint a grey square, and loses the filter on focus
   so what the visitor types is not dimmed. */
#branding input.s:not(:focus) { background-color: transparent; filter: brightness(.45); }
/* 13. Standalone links in a post's Google-Translate paste. /psicologia-animal-2/ ends with three
   one-link lines, each its own <div dir="ltr">: the thumbnail that opens the National Geographic
   article, "Veja o video e leia o artigo" and "Fonte: National Geographic". Not links in a sentence,
   so they are tap targets, and as inline boxes they measured 20px tall (qa_legibility, blocking at
   all four widths; pre-existing, not caused by this round). inline-block gives each the height of
   its own line, 26px of text or the 150px picture, without moving anything. */
#content .entry-content div[dir="ltr"] > a,
#content .entry-content div[dir="ltr"] > span > a { display: inline-block; padding: 2px 0; }
/* ---- end owner-bar round 1 ---- */
/* ---- owner-bar round 2, 2026-09-15 ---- */
/* 14. Homepage recent-posts titles. The plugin's inline CSS prints '.rpwe-block h3{font-size:12px
   !important}', the smallest reading text on the site, on the first page a visitor opens. Beaten by
   specificity plus !important; the plugin's own markup and order are unchanged. */
.recent-posts-extended .rpwe-block h3.rpwe-title { font-size: 17px !important; line-height: 1.4 !important; padding-top: 4px; }
.recent-posts-extended .rpwe-block h3.rpwe-title a { font-size: inherit !important; }
/* 15. The strapline under the slogan ("Atendimento de Jovens, Adolescentes e Adultos") was 13px white
   on the teal band. */
.slogan-wrap .slogan span { font-size: 16px; line-height: 22px; }
/* 16. A WordPress thumbnail gallery ends in a floated row, and the next heading sat flush on it. The
   gallery's own inline style is id-scoped ('#gallery-1 {margin:auto}'), so this is id-scoped too. */
#content .entry-content .gallery { margin-bottom: 1.4em; }
/* 17. /psicologia-animal-2/'s body is a Google-Translate paste in bare <div dir="ltr"> blocks: no
   paragraph spacing and links that did not look like links, unlike every other article. */
#content .entry-content div[dir="ltr"] { margin-bottom: 1em; }
#content .entry-content div[dir="ltr"] a { text-decoration: underline; }
/* 18. Philosopher's capital I has a hooked foot and reads as a lower-case l ("lll Fórum lnternacional",
   "lNFORMAÇÃO DE PSlCOLOGlA"). Only that one code point is taken from PT Sans, the site's own body
   face, already on disk: a later @font-face with the same family and descriptors wins for an
   overlapping unicode-range (CSS Fonts 4, 'unicode-range'), so every other glyph stays Philosopher. */
@font-face {
  font-family: 'Philosopher'; font-style: normal; font-weight: 400;
  src: url(/fonts/ptsans-e9234ad2.woff2) format('woff2'); unicode-range: U+0049;
}
/* 19. Two readings qa_legibility still failed on the clinic's own post markup. The III Forum post
   prints its moderator line as <span style="color: #888888;"> (3.54:1 on white); the same grey family
   at #5f5f5f reads 6.4:1 and stays subordinate to the speaker list. A WordPress gallery's thumbnail
   link is an inline box around a block-ish <img>, so its own hit box measured 20px tall. */
#content .entry-content span[style*="#888888"] { color: #5f5f5f !important; }
#content .entry-content .gallery .gallery-icon a { display: inline-block; }
/* ---- end owner-bar round 2 ---- */
/* ---- owner-bar round 3 ---- */
/* 20. The all-caps footer widget titles ('NIVEL DE EMPATIA PSICOLOGIA', 'INFORMAÇÃO DE PSICOLOGIA').
   Rule 18 borrows PT Sans's I, which is 700/1000 tall against Philosopher's 660/1000 capitals (fontTools
   on both files on disk), so in a row of capitals it stood 6% above its neighbours and read as a thin
   dotted bar ('NİVEL DE EMPATİA'). 660/700 = 94.3% puts it on the cap line. Scoped to these titles by a
   separate family so rule 18 and every mixed-case heading stay exactly as accepted in round 2; this
   family covers only U+0049, so every other glyph and the line metrics still come from Philosopher. */
@font-face {
  font-family: 'NE Caps I'; font-style: normal; font-weight: 400;
  src: url(/fonts/ptsans-e9234ad2.woff2) format('woff2'); unicode-range: U+0049; size-adjust: 94.3%;
}
#colophon .widget-title, #colophon .widget-title a { font-family: 'NE Caps I', 'Philosopher', sans-serif; }
/* ---- end owner-bar round 3 ---- */
