/* Page-specific compositions. Content order stays identical on every screen. */
.fc-bento {
  position: relative;
  --bento-gap: 18px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--bento-gap);
  align-items: stretch;
  isolation: isolate;
}
.fc-bento > .fc-bento-tile {
  grid-column: auto;
  grid-row: auto;
  min-width: 0;
  border-radius: 28px;
  transform: none;
  transition: box-shadow 220ms ease, filter 220ms ease;
}
.fc-bento h2, .fc-bento h3 { text-wrap: balance; }
.fc-bento > .fc-bento-tile > h3 { line-height: 1.16; }
.fc-bento > .fc-bento-tile:focus-visible,
.fc-bento .bento-card:focus-within {
  outline: 3px solid #427bdc;
  outline-offset: -5px;
}
.fc-bento .bento-card {
  height: 100%;
  min-height: 0 !important;
  border-radius: 28px;
  transform: none !important;
  will-change: auto;
}
.fc-bento--business > :first-child > .grid { grid-template-columns: minmax(0, 1fr); }
.fc-bento--business > :first-child h2 {
  font-size: clamp(1.85rem, 3vw, 2.75rem);
  line-height: 1.08;
}
.fc-bento--business > :first-child > .grid > :last-child { min-height: 0; }
.fc-bento--business > :first-child img { height: 260px; width: 100%; object-fit: cover; }
.fc-bento--business > :nth-child(2) h3 { font-size: clamp(1.65rem, 2.5vw, 2.2rem); line-height: 1.12; }
.fc-bento--business > :nth-child(n+3) h3 { font-size: 1.6rem; line-height: 1.15; }
.fc-bento--portrait > .pkv-target-card { min-height: 430px; }
.fc-bento--portrait .pkv-target-card__glass { backdrop-filter: blur(16px); }
@media (hover: hover) and (pointer: fine) {
  .fc-bento > .fc-bento-tile:hover {
    transform: none;
    box-shadow: inset 0 0 0 1px rgba(66, 123, 220, .38), 0 10px 28px rgba(20, 35, 65, .07);
  }
  .fc-bento--portrait > .fc-bento-tile:hover { filter: brightness(1.06); }
  .fc-bento > .fc-bento-tile:hover .bento-card { box-shadow: inset 0 0 0 1px rgba(66, 123, 220, .38); }
}
@media (min-width: 700px) and (max-width: 1099px) {
  .fc-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fc-bento > :last-child:nth-child(odd) { grid-column: 1 / -1; }
  .fc-bento--interlock > :first-child { grid-column: 1 / -1; }
  .fc-bento.fc-bento--interlock > :last-child { grid-column: auto; }
  .fc-bento--portrait > :first-child { min-height: 460px; }
  .fc-bento--textlock > :first-child { padding: 32px; }
  .fc-bento--business > :first-child { grid-column: 1 / -1; }
  .fc-bento--business > :first-child > .grid { grid-template-columns: 1fr .8fr; }
  .fc-bento--business > :first-child img { height: 100%; }
  .fc-bento.fc-bento--business > :last-child { grid-column: auto; }
}
@media (min-width: 1100px) {
  .fc-bento { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .fc-bento > .fc-bento-tile { padding: 32px; }
  .fc-bento--editorial > .fc-bento-tile,
  .fc-bento--business > :nth-child(-n+4),
  .fc-bento--portrait > .fc-bento-tile { padding: 0; }
  /* Offset joints: the lower row deliberately starts on a different axis. */
  .fc-bento--editorial > :nth-child(1) { grid-column: span 7; }
  .fc-bento--editorial > :nth-child(2) { grid-column: span 5; }
  .fc-bento--editorial > :nth-child(3) { grid-column: span 5; }
  .fc-bento--editorial > :nth-child(4) { grid-column: span 7; }
  .fc-bento--ribbon > :nth-child(1), .fc-bento--ribbon > :nth-child(4) { grid-column: span 7; }
  .fc-bento--ribbon > :nth-child(2), .fc-bento--ribbon > :nth-child(3) { grid-column: span 5; }
  .fc-bento--ribbon > .fc-bento-tile { min-height: 230px; }
  /* Private: two opening topics, three compact supporting topics. */
  .fc-bento--private > :nth-child(1) { grid-column: span 7; }
  .fc-bento--private > :nth-child(2) { grid-column: span 5; }
  .fc-bento--private > :nth-child(n+3) { grid-column: span 4; }
  /* Traffic: a vertical lead tile, then a broad horizontal closing tile. */
  .fc-bento--traffic > :nth-child(1) { grid-column: 1 / 6; grid-row: 1 / 3; display: flex; flex-direction: column; justify-content: center; }
  .fc-bento--traffic > :nth-child(2), .fc-bento--traffic > :nth-child(3) { grid-column: 6 / 13; }
  .fc-bento--traffic > :nth-child(4) { grid-column: span 7; }
  .fc-bento--traffic > :nth-child(5) { grid-column: span 5; }
  .fc-bento--traffic > :first-child h3 { font-size: clamp(1.6rem, 2.5vw, 2.3rem); }
  /* Property: wide upper pair and a narrower three-part foundation. */
  .fc-bento--property > :nth-child(1) { grid-column: span 5; }
  .fc-bento--property > :nth-child(2) { grid-column: span 7; }
  .fc-bento--property > :nth-child(n+3) { grid-column: span 4; }
  /* Business: substantial editorial/image pair, then a quieter three-part row. */
  .fc-bento--business > :nth-child(1) { grid-column: span 7; }
  .fc-bento--business > :nth-child(2) { grid-column: span 5; }
  .fc-bento--business > :nth-child(n+3) { grid-column: span 4; }
  .fc-bento--business > :first-child > .grid { display: flex; flex-direction: column; }
  .fc-bento--business > :first-child > .grid > :last-child { flex: 1; }
  .fc-bento--business > :first-child img { height: 100%; min-height: 260px; max-height: 370px; }
  .fc-bento--business-topics > :nth-child(-n+3) { grid-column: span 4; }
  .fc-bento--business-topics > :nth-child(4) { grid-column: span 5; }
  .fc-bento--business-topics > :nth-child(5) { grid-column: span 7; }
  /* Dental: smaller orientation topics above two wider decision topics. */
  .fc-bento--dental > :nth-child(1) { grid-column: span 4; }
  .fc-bento--dental > :nth-child(2) { grid-column: span 5; }
  .fc-bento--dental > :nth-child(3) { grid-column: span 3; }
  .fc-bento--dental > :nth-child(4), .fc-bento--dental > :nth-child(5) { grid-column: span 6; }
  /* Interlock is enhanced only after a measured, rounded cutout is available. */
  .fc-bento--interlock > :nth-child(1) { grid-column: 1 / 8; grid-row: 1 / 3; }
  .fc-bento--interlock > :nth-child(2) { grid-column: 8 / 13; grid-row: 1; }
  .fc-bento--interlock > :nth-child(3) { grid-column: 8 / 13; grid-row: 2; }
  .fc-bento--interlock.is-interlocked > :nth-child(3) { grid-column: 7 / 13; }
  .fc-bento--interlock.is-interlocked > :first-child { clip-path: var(--bento-cutout); border: 0; }
  .fc-bento--textlock.is-interlocked > :first-child { padding-right: calc(32px + var(--bento-inset, 110px)); }
  .fc-bento--textlock > :first-child { display: flex; flex-direction: column; justify-content: center; }
  .fc-bento--textlock > :first-child h3 { font-size: clamp(1.8rem, 2.6vw, 2.5rem); }
  .fc-bento--textlock > :nth-child(n+2) h3 { font-size: 1.6rem; }
  .fc-bento--portrait { grid-template-rows: minmax(360px, auto) minmax(360px, auto); }
  .fc-bento--portrait > .pkv-target-card { min-height: 0; }
  .fc-bento--portrait.is-interlocked > :first-child .pkv-target-card__glass { right: calc(16px + var(--bento-inset, 110px)); }
  .fc-bento--portrait > :first-child .pkv-target-card__img { object-position: 44% center; }
}
@media (max-width: 699px) {
  .fc-bento { --bento-gap: 14px; }
  .fc-bento > .fc-bento-tile { grid-column: auto; grid-row: auto; border-radius: 24px; }
  .fc-bento--textlock > .fc-bento-tile { padding: 24px; }
  .fc-bento--ribbon > .fc-bento-tile { min-height: 0; }
  .fc-bento--portrait > .pkv-target-card { min-height: 460px; }
  .fc-bento .bento-card-title { max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
  .fc-bento *, .fc-bento *::before, .fc-bento *::after { transition: none !important; animation: none !important; }
}
@media print {
  .fc-bento { display: block; }
  .fc-bento > .fc-bento-tile { clip-path: none !important; margin-bottom: 16px; break-inside: avoid; }
}
