/* Frannan public website — professional polish layer.
   Additive only: consistency, hover/focus states and small refinements.
   Does not alter markup structure, PHP logic or any workflow. */

/* Embedded office map inside the contact page's map card */
.map-card__frame{
  margin:14px 0;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--fh-line);
  box-shadow:var(--fh-shadow-sm);
  aspect-ratio:16/10;
}
.map-card__frame iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
}

/* Consistent hover lift across every card style used on the public site,
   matching the treatment already used on .warm-card and .product-card. */
.underwriter-card,
.step-card,
.why-card,
.feature-card,
.partner-panel-grid .underwriter-card{
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.underwriter-card:hover,
.step-card:hover,
.why-card:hover,
.feature-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--fh-shadow);
  border-color:rgba(29,78,216,.24);
}

/* Keep anchored/sticky category tabs from hiding page content on jump-links */
.category-block{scroll-margin-top:190px}

/* Even card heights within a row so mismatched copy length doesn't break rhythm */
.why-grid,.feature-grid{align-items:stretch}
.why-card,.feature-card{display:flex;flex-direction:column}

/* Slightly tighter, consistent vertical rhythm for stacked story sections */
.story-list>div+div,.people-points>div+div{margin-top:0}

@media(max-width:720px){
  .map-card__frame{aspect-ratio:4/3}
}
