/* AOM Traders V46.4 — Community finish + conservative global rhythm guard
   Scope: public visual polish only. No data model, CMS records, product lifecycle,
   order, entitlement, calendar data, admin behavior, or API contract changes.
*/

/* 1) Community/article cards: make the existing whole-card anchor behave as a
      single interactive surface and keep copy heights balanced. */
.v45-story-card > a{
  display:flex!important;
  flex-direction:column!important;
  height:100%!important;
  color:inherit!important;
  text-decoration:none!important;
}
.v45-story-card .v45-story-thumb{flex:0 0 auto}
.v45-story-card .v45-story-card-copy{flex:1 1 auto}
.v45-story-card{
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease!important;
}
@media (hover:hover){
  .v45-story-card:hover{
    transform:translateY(-3px);
    border-color:rgba(39,215,242,.28)!important;
    box-shadow:0 22px 58px rgba(0,0,0,.20)!important;
  }
}

/* 2) Editorial cover when an ARTICLE has no uploaded image.
      V46.2 already replaced the raw letter visually; V46.4 makes the placeholder
      actually fill the media frame so the cover can never render as a blank slab. */
.v45-story-thumb > .v45-about-placeholder,
.v45-feature-media .v45-about-placeholder{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  display:block!important;
  overflow:hidden!important;
  font-size:0!important;
  background:
    linear-gradient(rgba(65,214,239,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(65,214,239,.045) 1px,transparent 1px),
    radial-gradient(circle at 28% 22%,rgba(39,215,242,.15),transparent 32%),
    radial-gradient(circle at 78% 74%,rgba(73,79,255,.10),transparent 34%),
    linear-gradient(145deg,#071722,#061019 64%,#081a24)!important;
  background-size:34px 34px,34px 34px,auto,auto,auto!important;
}
.v45-story-thumb > .v45-about-placeholder:before,
.v45-feature-media .v45-about-placeholder:before{
  content:"AOM"!important;
  position:absolute!important;
  left:50%!important;
  top:45%!important;
  transform:translate(-50%,-50%)!important;
  font-size:clamp(38px,4vw,64px)!important;
  font-weight:900!important;
  letter-spacing:.09em!important;
  color:#e8fbff!important;
  text-shadow:0 0 30px rgba(39,215,242,.10)!important;
}
.v45-story-thumb > .v45-about-placeholder:after,
.v45-feature-media .v45-about-placeholder:after{
  content:"RESEARCH NOTE  /  SYSTEM DEVELOPMENT"!important;
  position:absolute!important;
  left:50%!important;
  top:60%!important;
  transform:translateX(-50%)!important;
  white-space:nowrap!important;
  font-size:9px!important;
  font-weight:850!important;
  letter-spacing:.17em!important;
  color:#36d6ef!important;
}
.v45-story-thumb{position:relative!important;overflow:hidden!important}

/* 3) Public-page rhythm guard.
      The earlier design system allowed large non-hero sections to keep tall
      min-heights/padding. Restrict this to direct .section children only;
      section-first/hero surfaces are deliberately excluded. */
@media (min-width:901px){
  #main > .section:not(.section-first):not(.v463-latest-section):not(.v463-about-section),
  main > .section:not(.section-first):not(.v463-latest-section):not(.v463-about-section){
    min-height:0!important;
    padding-top:64px!important;
    padding-bottom:64px!important;
  }

  /* Known page-specific surfaces from the current production layers. */
  .v45-community-section{padding-top:52px!important;padding-bottom:52px!important}
  .v40-product-hero{padding-top:40px!important;padding-bottom:40px!important}

  /* Calendar keeps its dedicated V43 composition; only remove accidental extra
     bottom reserve, without touching calendar cards or event data. */
  .v43-calendar-root.section-first{padding-bottom:56px!important}
}

@media (max-width:900px){
  .v45-story-thumb > .v45-about-placeholder:after,
  .v45-feature-media .v45-about-placeholder:after{
    font-size:8px!important;
    letter-spacing:.12em!important;
  }
}
