.sns-page { width: min(1160px, calc(100% - 48px)); margin: auto; padding: 64px 0 96px; }
.sns-intro { max-width: 760px; margin-bottom: 64px; }
.sns-page h1 { font-size: clamp(38px, 5vw, 64px); font-weight: 400; line-height: 1.2; letter-spacing: -.04em; margin: 16px 0 24px; }
.sns-page h2 { font-size: clamp(28px, 3vw, 38px); font-weight: 400; letter-spacing: -.03em; margin: 0; }
.sns-page p { color: #59554d; line-height: 1.8; }
.sns-page .sns-eyebrow { font-size: 12px; letter-spacing: .13em; }
.sns-section { border-top: 1px solid var(--line); padding-top: 32px; margin-top: 64px; }
.sns-section-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.sns-section-head a, .sns-open, .sns-intro a, .sns-instagram a { text-decoration: underline; text-underline-offset: 5px; }
.sns-instagram { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 48px; }
.sns-instagram iframe { width: 100%; height: 580px; border: 1px solid var(--line); background: var(--paper); }
.sns-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 24px; }
.sns-videos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 24px; }
.sns-video iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }
.sns-video h3 { font-size: 21px; font-weight: 400; line-height: 1.6; margin: 16px 0 12px; }
.sns-card { display: block; min-width: 0; }
.sns-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.sns-card h3 { font-weight: 400; font-size: 21px; margin: 16px 0 12px; }
.sns-card time, .sns-open { font-size: 13px; }
.sns-card p { font-size: 14px; margin: 0 0 20px; }
.sns-page a:focus-visible { outline: 2px solid var(--ink); outline-offset: 5px; }
@media (max-width: 860px) { .sns-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .sns-page { width: calc(100% - 40px); padding: 40px 0 64px; }
  .sns-section-head { align-items: start; flex-direction: column; gap: 16px; }
  .sns-instagram, .sns-grid, .sns-videos { grid-template-columns: 1fr; gap: 32px; }
  .sns-intro { margin-bottom: 40px; }
}
