.social { background: var(--bg); padding: var(--section-y) var(--gutter); overflow: hidden; }
.social > * { max-width: var(--max); margin-left: auto; margin-right: auto; }
.social__head {
  display: flex; align-items: end; justify-content: space-between; gap: 24px 40px; flex-wrap: wrap;
  margin-bottom: clamp(32px, 4vw, 56px);
}
.social__title { font-size: var(--fs-4); font-weight: 900; font-stretch: 130%; letter-spacing: -.045em; max-width: 12ch; }
.social__aside { display: grid; justify-items: start; gap: 16px; max-width: 34ch; font-size: var(--fs-2); }
.social__aside p { margin: 0; }

/* Instagram posts in a snap rail; each becomes Instagram's own embed when it nears the screen */
.ig {
  list-style: none; margin: 0 auto; padding: 0 0 16px;
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(300px, 340px); gap: 16px;
  overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
  scrollbar-width: thin;
}
.ig__post { scroll-snap-align: start; border-radius: var(--radius-img); overflow: hidden; background: var(--surface); border: 1px solid var(--line); }
.ig__post > a:not(.ig__tile) { display: grid; place-items: center; min-height: 420px; padding: 24px; text-align: center; font-weight: 600; }
.ig__tile { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; color: var(--fg); text-decoration: none; }
.ig__tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--ease-out), filter 400ms; filter: brightness(.92); }
.ig__tile::after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, rgba(0, 0, 0, .78)); pointer-events: none; }
.ig__by { position: absolute; z-index: 1; left: 14px; bottom: 12px; display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: var(--fs-0); }
@media (hover: hover) { .ig__tile:hover img { transform: scale(1.04); filter: brightness(1); } .ig__tile:hover .ig__by { color: var(--lit); } }

/* reviews: their own section */
.reviews { padding: var(--section-y) var(--gutter); border-top: 1px solid var(--line); }
.reviews > * { max-width: var(--max); margin-left: auto; margin-right: auto; }
.reviews__head { margin-bottom: clamp(32px, 4vw, 56px); }
.reviews__kicker { margin: 0 0 12px; font-family: var(--mono); font-size: .6875rem; letter-spacing: .06em; color: var(--lit); }
.reviews__title { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: clamp(3rem, 1rem + 6vw, 7rem); line-height: .9; letter-spacing: -.03em; margin-bottom: 14px; }
.reviews__lede { margin: 0; color: var(--muted); font-size: var(--fs-2); }
.reviews__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 20px; align-items: start; }
.review { margin: 0; display: grid; gap: 16px; align-content: start; padding: 18px; background: var(--surface); border: 1px solid var(--line); }
.review__photo { aspect-ratio: 4 / 5; overflow: hidden; background: #222; border-radius: var(--radius-img); }
.review__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
.review__quote { margin: 0; font-family: var(--serif); font-style: italic; font-size: clamp(1.3rem, 1rem + .8vw, 1.7rem); line-height: 1.25; }
.review__by { display: grid; gap: 2px; font-size: var(--fs-0); color: var(--muted); }
.review__by strong { color: var(--fg); font-size: var(--fs-1); }
.review__by a { color: var(--fg); }
.review--ask { background: var(--lit); color: #000; border-color: var(--lit); padding: clamp(24px, 3vw, 36px); }
.review--ask p { margin: 0; font-size: var(--fs-2); line-height: 1.35; }
.review--ask .btn { justify-self: start; background: #000; color: var(--lit); border-color: #000; }
.reviews__list > .review--ask:only-child { grid-column: 1 / -1; max-width: 720px; }
