/** Editorial media: one clipping layer, shared radius, native responsive images. */
.oz-media,
:where(.oz-rich,.oz-editorial__media,.oz-choice-card) .elementor-widget-image:not(.oz-media--unframed),
[data-oz-content-field="image"],
.oz-content-page .wp-block-media-text__media,
.oz-content-page .wp-block-video,
.elementor-widget-video :is(.elementor-wrapper,.elementor-video-wrapper) {
 border-radius:var(--oz-radius-media);
 overflow:hidden;
}
/* Keep the image itself square inside the clipped component. */
.elementor .elementor-widget-image.oz-media img,
:where(.oz-rich,.oz-editorial__media,.oz-choice-card) .elementor-widget-image:not(.oz-media--unframed) img,
.elementor [data-oz-content-field="image"] img,
.oz-content-page .wp-block-media-text__media img,
.elementor .oz-image-card > .elementor-widget-image img {
 border-radius:0;
}
/* Product cutouts, diagrams and pre-framed device compositions are opt-outs. */
.elementor .elementor-widget-image.oz-media--unframed,
.elementor .elementor-widget-image.oz-media--unframed img,
.oz-media--unframed [data-oz-content-field="image"],
.oz-media--unframed [data-oz-content-field="image"] img {
 border-radius:0;
 overflow:visible;
}
/* The tilted homepage hero keeps its existing transform and exterior shadow. */
.elementor .elementor-widget-image.oz-media--image img {
 border-radius:var(--oz-radius-media);
}
/* An edge-to-edge card clips only the upper corners, matching its own surface. */
.oz-image-card > .elementor-widget-image {
 border-radius:var(--oz-radius-xl) var(--oz-radius-xl) 0 0;
 overflow:hidden;
}
/* No nested video clips: the outer component also contains posters/overlays. */
.elementor-widget-video :is(.elementor-wrapper,.elementor-video-wrapper) :is(.elementor-wrapper,.elementor-video-wrapper) {
 border-radius:0; overflow:visible;
}
/* Focus is mirrored outside a linked image/video's clipping boundary. */
.oz-media:has(a:focus-visible),
.elementor-widget-video :is(.elementor-wrapper,.elementor-video-wrapper):has(:focus-visible) {
 outline:3px solid var(--oz-color-focus); outline-offset:4px;
}
/* Contained hero photography: round the visible image, not its letterbox.
   Insets are derived from intrinsic media and the existing frame ratio.
   This does not change object-fit, dimensions, positioning or the source. */
.oz-media--contained [data-oz-content-field="image"] { border-radius:0; overflow:visible; }
.oz-media--contained .oz-content-hero__image {
 clip-path:inset(
  max(0%,calc((1 - var(--oz-media-frame-ratio) / var(--oz-media-source-ratio)) * 50%))
  max(0%,calc((1 - var(--oz-media-source-ratio) / var(--oz-media-frame-ratio)) * 50%))
  round var(--oz-radius-media)
 );
}
/* WordPress template fallback (no Elementor wrapper). */
.oz-content-hero > .oz-content-hero__image { border-radius:var(--oz-radius-media); }
/* Hoofdafbeelding (30-09-2026): het kader volgt de afbeelding zelf. De klasse oz-media--unframed op de hero is niet meer nodig.
   Foto: altijd een afgerond kader dat het vak vult. Vrijstaand beeld (transparante hoeken): zonder kader, zoals de robotpagina's. */
.elementor .oz-content-hero [data-oz-content-field="image"][data-oz-media="photo"] { border-radius:var(--oz-radius-media); overflow:hidden; }
.elementor .oz-content-hero [data-oz-content-field="image"][data-oz-media="photo"] .oz-content-hero__image {
 --oz-media-frame-ratio:1.333333; display:block; aspect-ratio:4/3; object-fit:cover; object-position:var(--oz-photo-position,50% 50%); mix-blend-mode:normal; border-radius:0; clip-path:none;
}
.elementor .oz-content-hero [data-oz-content-field="image"][data-oz-media="cutout"],
.elementor .oz-content-hero [data-oz-content-field="image"][data-oz-media="cutout"] .oz-content-hero__image { border-radius:0; overflow:visible; }
.oz-content-hero > .oz-content-hero__image--cutout { border-radius:0; }

/* Elementor owns overlay activation; only its decorative play glyph is replaced. */
.elementor-widget-video .elementor-custom-embed-image-overlay .elementor-custom-embed-play {
 --oz-video-play-size: clamp(56px, calc(50px + 1.5vw), 72px);
 position: absolute;
 top: 50%;
 left: 50%;
 display: grid;
 place-items: center;
 width: var(--oz-video-play-size);
 height: var(--oz-video-play-size);
 padding: 0;
 border: 0;
 border-radius: 50%;
 background: var(--oz-color-primary);
 color: var(--oz-color-on-primary);
 box-shadow: var(--oz-shadow-card);
 opacity: 1;
 transform: translate(-50%, -50%);
 transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}
.elementor-widget-video .elementor-custom-embed-image-overlay .elementor-custom-embed-play :is(svg, i) {
 display: none;
}
.elementor-widget-video .elementor-custom-embed-image-overlay .elementor-custom-embed-play::before {
 content: "";
 display: block;
 width: clamp(20px, calc(18px + .45vw), 24px);
 aspect-ratio: 1;
 background: currentColor;
 clip-path: polygon(12% 0, 100% 50%, 12% 100%);
 transform: translateX(1px);
 pointer-events: none;
}
.elementor-widget-video .elementor-custom-embed-image-overlay .elementor-custom-embed-play:focus-visible {
 outline: 3px solid var(--oz-color-focus);
 outline-offset: 4px;
}
@media (hover: hover) and (pointer: fine) {
 .elementor-widget-video .elementor-custom-embed-image-overlay:hover .elementor-custom-embed-play {
  background: var(--oz-color-primary-hover);
  box-shadow: var(--oz-shadow-elevated);
  transform: translate(-50%, -50%) scale(1.06);
 }
}
@media (prefers-reduced-motion: reduce) {
 .elementor-widget-video .elementor-custom-embed-image-overlay .elementor-custom-embed-play,
 .elementor-widget-video .elementor-custom-embed-image-overlay:hover .elementor-custom-embed-play {
  transition: none;
  transform: translate(-50%, -50%);
 }
}
/* Keep absolutely positioned overlays/iframes inside their rounded clipping frame. */
.elementor-widget-video :is(.elementor-wrapper, .elementor-video-wrapper) { position: relative; }
