/*
Theme Name: Budapest Blog Child
Theme URI: https://budapestblog.hu/
Description: Hello Elementor child theme for Budapest Blog — Elementor Pro based portal layout. Part of Országos Média Hálózat (22-block design system).
Author: Országos Média Hálózat
Author URI: https://orszagosmedia.hu/
Template: hello-elementor
Version: 1.0.0
Text Domain: budapestblog-child
Tested up to: 6.7
Requires PHP: 8.3
*/

/* Pixel-perfect Elementor wrapper neutralization via display:contents.
   Makes the .elementor-element/.elementor-widget/.elementor-widget-container
   wrapper divs transparent to layout, so the HTML inside renders identically
   to the original orszagosmedia <header>/<section>/<div> tree. */
.om-block,
.om-block > .e-con-inner,
.om-block > .elementor-element,
.om-block > .elementor-element > .elementor-widget-container,
.om-block .elementor-element.elementor-widget-html,
.om-block .elementor-element.elementor-widget-html > .elementor-widget-container {
  display: contents !important;
}

/* Fallback for environments that don't support display:contents on flex/grid (older browsers) */
@supports not (display: contents) {
  .om-block,
  .om-block > .elementor-element,
  .om-block .elementor-widget-html,
  .om-block .elementor-widget-container {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    flex: 1 1 100% !important;
    border: 0 !important;
  }
}

/* Front page wrapper (Címlap #56): strip Hello Elementor default constraints */
body.page-id-56 .site-main,
body.page-id-56 main {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}
body.page-id-56 .om-block.e-con,
body.page-id-56 .om-block.elementor-section {
  --width: 100%;
  --max-width: 100%;
  --content-width: 100%;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ===== Phase C A11y — TOUCH-ONLY scope (preserves pixelmatch baseline) ===== */

/* Focus visibility — only triggered on real focus, no impact on pixelmatch captures */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible,
[role="button"]:focus-visible, .om-bookmark:focus-visible {
  outline: 2px solid #60A5FA;
  outline-offset: 2px;
}

/* Skip-link focusable — only visible when keyboard focused */
.skip-link, .screen-reader-text {
  position: absolute !important;
  left: -9999px !important;
  top: 0 !important;
}
.skip-link:focus, .screen-reader-text:focus {
  position: absolute !important;
  left: 6px !important; top: 7px !important;
  background: #146BFF !important;
  color: #fff !important;
  padding: 12px 16px !important;
  z-index: 100000 !important;
  text-decoration: none !important;
  clip: auto !important;
  width: auto !important; height: auto !important;
}

/* Touch-target sizing — ONLY for actual touch devices (no hover, coarse pointer) */
@media (hover: none) and (pointer: coarse) {
  .om-tag, .om-bookmark, .om-pill, .om-chip,
  .om-nav a, .om-footer-cats a, .om-footer-bottom a,
  .om-social-icons a, .om-app-badge, .om-category-card,
  .om-hero-dot {
    min-width: 44px;
    min-height: 44px;
    padding: max(8px, 0.5rem) max(12px, 0.75rem);
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .om-hero-dot { padding: 18px !important; }
}
