.cb-instagram-feed { margin-top: 38px; }
.cb-instagram-connect { display: flex; align-items: center; gap: 36px; padding: 42px; background: #161616; color: #fff; border-top: 4px solid #C8102E; }
.cb-instagram-connect:hover { color: #fff; }
.cb-instagram-connect > img { width: 140px; height: auto; }
.cb-instagram-connect strong { display: block; font-family: Anton,sans-serif; font-size: 28px; font-weight: 400; }
.cb-instagram-connect > span > span { display: block; margin-top: 10px; font-size: 14px; line-height: 1.8; }
.cb-instagram-visit { margin-left: auto; white-space: nowrap; font-size: 14px; }
#instagram .cb-instagram-feed #sb_instagram { width: 100%; padding: 0 !important; }
#instagram .cb-instagram-feed #sbi_images { display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; padding: 0 !important; float: none; }
#instagram .cb-instagram-feed #sbi_images::before, #instagram .cb-instagram-feed #sbi_images::after { display: none; }
#instagram .cb-instagram-feed .sbi_item { width: auto !important; padding: 0 !important; margin: 0 !important; float: none !important; min-width: 0; aspect-ratio: 1; overflow: hidden; border-radius: 4px; }
#instagram .cb-instagram-feed .sbi_item:first-child { grid-column: span 2; grid-row: span 2; aspect-ratio: 1; }
#instagram .cb-instagram-feed .sbi_item { position: relative; min-height: 0; }
#instagram .cb-instagram-feed .sbi_photo_wrap { position: absolute; inset: 0; }
#instagram .cb-instagram-feed .sbi_photo > img { width: 100% !important; height: 100% !important; object-fit: cover; }
#instagram .cb-instagram-feed #sbi_images { gap: 14px !important; }
#instagram .cb-instagram-feed .sbi_photo_wrap, #instagram .cb-instagram-feed .sbi_photo { width: 100%; height: 100% !important; display: block; }
#instagram .cb-instagram-feed .sbi_photo { transition: transform .7s cubic-bezier(.16,1,.3,1); }
#instagram .cb-instagram-feed .sbi_photo:focus-visible { outline: 4px solid #C8102E; outline-offset: -4px; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  #instagram .cb-instagram-feed .sbi_item:hover .sbi_photo { transform: scale(1.04); }
}
@media (prefers-reduced-motion:no-preference) {
  html.cb-motion #instagram .sbi_item { opacity: 0; translate: 0 38px; transition: opacity .8s ease var(--cb-delay,0ms), translate 1s cubic-bezier(.16,1,.3,1) var(--cb-delay,0ms); }
  html.cb-motion #instagram .sbi_item.cb-revealed, html.cb-motion #instagram .sbi_item:focus-within { opacity: 1; translate: 0 0; }
}
@media (max-width:699px) {
  #instagram .cb-instagram-feed #sbi_images { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px !important; }
  #instagram .cb-instagram-feed .sbi_item:first-child { grid-row: span 1; aspect-ratio: 4/3; }
  .cb-instagram-connect { flex-wrap: wrap; gap: 24px; padding: 28px 22px; }
  .cb-instagram-connect > img { width: 100px; }
  .cb-instagram-connect strong { font-size: 24px; }
  .cb-instagram-visit { margin-left: 0; }
}

/* PHOTO FLOW: 同じInstagramフィードを上下逆方向へ流す。 */
.cb-photo-flow-row { overflow: hidden; margin-inline: calc(50% - 50vw); }
.cb-photo-flow-row + .cb-photo-flow-row { margin-top: 12px; }
#photo-flow #sb_instagram { width: max-content !important; min-width: 100%; padding: 0 !important; }
#photo-flow #sbi_images { display: flex !important; width: max-content !important; gap: 12px; padding: 0 !important; float: none !important; animation: cbPhotoFlowLeft 46s linear infinite; }
#photo-flow .cb-photo-flow-row-bottom #sbi_images { animation-name: cbPhotoFlowRight; transform: translateX(-35%); }
#photo-flow .sbi_item { width: clamp(190px, 20vw, 300px) !important; min-width: clamp(190px, 20vw, 300px) !important; padding: 0 !important; float: none !important; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 4px; }
#photo-flow .sbi_photo_wrap, #photo-flow .sbi_photo { width: 100%; height: 100% !important; display: block; }
#photo-flow .sbi_photo > img { width: 100% !important; height: 100% !important; object-fit: cover; }
@keyframes cbPhotoFlowLeft { to { transform: translateX(-35%); } }
@keyframes cbPhotoFlowRight { to { transform: translateX(0); } }
@media (hover:hover) {
  #photo-flow .cb-photo-flow-row:hover #sbi_images { animation-play-state: paused; }
}
@media (max-width:699px) {
  #photo-flow .sbi_item { width: 210px !important; min-width: 210px !important; }
  #photo-flow #sbi_images { animation-duration: 34s; gap: 10px; }
}
@media (prefers-reduced-motion:reduce) {
  #photo-flow #sbi_images { animation: none; transform: none; }
}
