/* A compact final frame: editorial navigation, the original identity, Instagram. */
.jpj-footer {
  position: relative;
  padding: 0;
  min-height: 0;
  background: #0b0e12;
  color: var(--paper);
  border-top: 1px solid #ffffff1c;
}
.jpj-footer-shell { padding-top: 12px; }
.jpj-footer-index {
  display: grid;
  grid-template-columns: 1fr 1.4fr .8fr;
  border-bottom: 1px solid #ffffff24;
}
.jpj-footer-index > a {
  display: grid;
  grid-template-columns: 20px 1fr 22px;
  align-items: center;
  gap: 15px;
  min-width: 0;
  padding: 29px 28px;
  position: relative;
}
.jpj-footer-index > a:first-child { padding-left: 0; }
.jpj-footer-index > a:last-child { padding-right: 0; }
.jpj-footer-index > a + a::before {
  content: '';
  position: absolute;
  left: 0;
  top: 30px;
  bottom: 30px;
  width: 1px;
  background: #ffffff24;
}
.jpj-footer-number {
  color: #8292a7;
  font-size: 9px;
  letter-spacing: .06em;
}
.jpj-footer-index-title {
  font: 500 clamp(23px, 2.3vw, 35px)/1.08 'Barlow Condensed', Impact, sans-serif;
  letter-spacing: -.01em;
}
.jpj-footer-arrow {
  display: inline-flex;
  align-items: center;
  transition: transform .4s var(--ease), color .25s;
}
.jpj-footer-arrow > svg { width: 19px; height: 19px; }
.jpj-footer-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(36px, 6vw, 96px);
  padding: 36px 0;
}
.jpj-footer-company {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 32px;
  padding: 9px 0;
}
.jpj-footer-identity { display: flex; align-items: center; gap: 25px; }
.jpj-footer-logo { display: block; width: 85px; flex: 0 0 85px; }
.jpj-footer-logo > img { width: 100%; height: auto; }
.jpj-footer-company-copy > strong { font-size: clamp(14px, 1.25vw, 18px); font-weight: 600; }
.jpj-footer-company-copy > p { margin-top: 12px; font-size: 12px; line-height: 1.8; color: #aab2bd; }
.jpj-footer-company-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.jpj-footer-location { font-size: 9px; text-transform: uppercase; letter-spacing: .1em; color: #aab2bd; }
.jpj-footer-scenes { display: inline-flex; min-height: 44px; align-items: center; gap: 18px; font-size: 11px; }
.jpj-footer-instagram {
  display: flex;
  position: relative;
  flex-direction: column;
  justify-content: space-between;
  min-width: 0;
  min-height: 215px;
  gap: 32px;
  padding: 25px 28px 24px;
  background: var(--brand-blue);
  background-image: radial-gradient(ellipse at top right, #ffffff12, transparent 70%);
  color: #fff;
  border: 1px solid #ffffff14;
  transition: background-color .3s, transform .45s var(--ease);
}
.jpj-footer-social-top { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.jpj-footer-instagram-icon { width: 35px; height: 35px; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.jpj-footer-instagram-dot { fill: currentColor; stroke: none; }
.jpj-footer-social-arrow { display: flex; transition: transform .45s var(--ease); }
.jpj-footer-social-arrow > svg { width: 25px; height: 25px; transform: rotate(-45deg); }
.jpj-footer-social-bottom { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.jpj-footer-social-title { font: 500 clamp(38px, 4vw, 58px)/1 'Barlow Condensed', Impact, sans-serif; letter-spacing: -.015em; }
.jpj-footer-social-handle { font-size: 11px; letter-spacing: .01em; }
.jpj-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 80px;
  padding: 17px 0;
  border-top: 1px solid #ffffff24;
  color: #aab2bd;
  font-size: 10px;
}
.jpj-footer-copyright { display: flex; flex-wrap: wrap; gap: 9px 22px; }
.jpj-footer-preview { color: #77828f; }
.jpj-footer-legal { display: flex; gap: 25px; }
.jpj-footer-legal > a { display: inline-flex; align-items: center; min-height: 44px; }
.jpj-footer-top { display: inline-flex; align-items: center; justify-content: flex-end; gap: 17px; min-height: 44px; color: var(--paper); white-space: nowrap; }
.jpj-footer-top > span:last-child { display: inline-block; font-size: 20px; transition: transform .4s var(--ease); }
.jpj-footer :where(a):focus-visible { outline: 2px solid #8cc7ff; outline-offset: 6px; }
.jpj-footer-instagram:focus-visible { outline-color: #fff; outline-offset: -6px; }
.jpj-footer-index > a:focus-visible .jpj-footer-arrow,
.jpj-footer-scenes:focus-visible .jpj-footer-arrow { color: #71b4ff; transform: translateX(4px); }
.jpj-footer-instagram:focus-visible .jpj-footer-social-arrow { transform: translate(3px, -3px); }
.jpj-footer-top:focus-visible > span:last-child { transform: translateY(-3px); }
@media (hover: hover) and (pointer: fine) {
  .jpj-footer-index > a:hover .jpj-footer-arrow,
  .jpj-footer-scenes:hover .jpj-footer-arrow { color: #71b4ff; transform: translateX(4px); }
  .jpj-footer-instagram:hover { background-color: #0877e7; transform: translateY(-3px); }
  .jpj-footer-instagram:hover .jpj-footer-social-arrow { transform: translate(3px, -3px); }
  .jpj-footer-top:hover > span:last-child { transform: translateY(-3px); }
  .jpj-footer-legal > a:hover { color: #fff; }
}
@media (min-width: 701px) and (max-width: 1050px) {
  .jpj-footer-index > a { gap: 10px; padding-inline: 18px; }
  .jpj-footer-index-title { font-size: 25px; }
  .jpj-footer-body { gap: 30px; }
  .jpj-footer-company-bottom { flex-direction: column; align-items: flex-start; gap: 8px; }
  .jpj-footer-social-bottom { align-items: flex-start; flex-direction: column; gap: 12px; }
  .jpj-footer-copyright { flex-direction: column; gap: 6px; }
}
@media (max-width: 700px) {
  .jpj-footer { padding: 0; }
  .jpj-footer-shell { padding-top: 13px; }
  .jpj-footer-index { grid-template-columns: 1fr; }
  .jpj-footer-index > a,
  .jpj-footer-index > a:first-child,
  .jpj-footer-index > a:last-child { padding: 20px 0; grid-template-columns: 22px 1fr 20px; gap: 13px; }
  .jpj-footer-index > a + a { border-top: 1px solid #ffffff14; }
  .jpj-footer-index > a + a::before { display: none; }
  .jpj-footer-index-title { font-size: 28px; }
  .jpj-footer-body { grid-template-columns: 1fr; gap: 28px; padding: 31px 0 28px; }
  .jpj-footer-company { padding: 0; gap: 23px; }
  .jpj-footer-identity { gap: 20px; }
  .jpj-footer-logo { width: 70px; flex-basis: 70px; }
  .jpj-footer-company-copy > strong { font-size: 14px; }
  .jpj-footer-company-copy > p { margin-top: 9px; font-size: 11px; }
  .jpj-footer-company-bottom { gap: 10px; flex-wrap: wrap; }
  .jpj-footer-location { font-size: 8px; letter-spacing: .08em; }
  .jpj-footer-scenes { gap: 12px; font-size: 10px; }
  .jpj-footer-instagram { min-height: 191px; padding: 22px; gap: 29px; }
  .jpj-footer-instagram-icon { width: 31px; height: 31px; }
  .jpj-footer-social-title { font-size: 44px; }
  .jpj-footer-social-handle { font-size: 10px; }
  .jpj-footer-social-bottom { gap: 12px; }
  .jpj-footer-bottom { display: grid; grid-template-columns: 1fr auto; gap: 9px 15px; padding: 13px 0 24px; font-size: 9px; }
  .jpj-footer-legal { grid-column: 1; grid-row: 1; gap: 23px; }
  .jpj-footer-top { grid-column: 2; grid-row: 1; gap: 12px; }
  .jpj-footer-copyright { grid-column: 1 / -1; justify-content: space-between; gap: 9px 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .jpj-footer *, .jpj-footer *::before, .jpj-footer *::after { transition: none !important; }
  .jpj-footer-instagram:hover,
  .jpj-footer .jpj-footer-arrow,
  .jpj-footer .jpj-footer-social-arrow,
  .jpj-footer-top > span:last-child { transform: none !important; }
}
