/*
 * Canonical reusable Hero foundation.
 * Layout styles own composition, spacing and typography; this file owns only
 * shared structural primitives and image-depth utilities.
 */
.cm-home-hero{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.cm-home-hero-overlay{
  position:absolute;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:transparent;
}
.cm-home-hero-inner{box-sizing:border-box}
.cm-home-hero-copy{min-width:0}
.cm-home-hero-visual{
  min-width:0;
  display:flex;
}
.cm-home-hero-picture{
  display:block;
  width:100%;
}
.cm-home-hero-image{
  display:block;
  width:100%;
  max-width:100%;
  max-height:560px;
  object-fit:contain;
  filter:none;
  border-radius:18px;
}
.cm-home-hero-image.has-frame{
  padding:8px;
  border:1px solid rgba(38,52,66,.10);
  background:rgba(255,255,255,.88);
}
.cm-home-hero-image.cm-image-shadow-none,
.cm-home-hero-visual.cm-image-shadow-none{box-shadow:none}
.cm-home-hero-image.cm-image-shadow-soft,
.cm-home-hero-visual.cm-image-shadow-soft{box-shadow:0 10px 26px rgba(30,48,68,.12)}
.cm-home-hero-image.cm-image-shadow-premium,
.cm-home-hero-visual.cm-image-shadow-premium{box-shadow:0 18px 42px rgba(30,48,68,.18),0 4px 12px rgba(30,48,68,.08)}
@media(max-width:680px){
  .cm-home-hero-image{border-radius:15px}
  .cm-home-hero-image.has-frame{padding:6px}
  .cm-home-hero-image.cm-image-shadow-soft,
  .cm-home-hero-visual.cm-image-shadow-soft{box-shadow:0 8px 20px rgba(30,48,68,.10)}
  .cm-home-hero-image.cm-image-shadow-premium,
  .cm-home-hero-visual.cm-image-shadow-premium{box-shadow:0 12px 28px rgba(30,48,68,.14),0 3px 8px rgba(30,48,68,.06)}
}
