
    .pf-gallery {
      padding: 80px 64px 0;
      max-width: 1440px;
      margin: 0 auto;
    }
    .pf-headline {
      font-size: clamp(36px, 4.5vw, 64px);
      color: var(--red);
      max-width: 980px;
      line-height: 1.15;
      margin-bottom: 16px;
      font-weight: normal;
    }
    .pf-sub {
      font-size: clamp(16px, 1.4vw, 22px);
      color: var(--red);
      max-width: 760px;
      line-height: 1.5;
      margin-bottom: 60px;
    }
    .pf-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 3px;
    }
    .pf-card {
      position: relative;
      cursor: pointer;
      overflow: hidden;
      aspect-ratio: 4 / 3;
      background: #fff;
      border: none;
      padding: 0;
      display: block;
    }
    .pf-card img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform 0.4s ease, opacity 0.3s ease;
    }
    .pf-card:hover img { transform: scale(1.04); opacity: 0.85; }
    .pf-card-label {
      position: absolute;
      bottom: 0; left: 0; right: 0;
      padding: 32px 14px 14px;
      background: linear-gradient(transparent, rgba(0,0,0,0.65));
      color: #fff;
      font-family: var(--font-alice);
      font-size: 13px;
      line-height: 1.3;
      transform: translateY(100%);
      transition: transform 0.3s ease;
      text-align: left;
    }
    .pf-card:hover .pf-card-label,
    .pf-card:focus .pf-card-label { transform: translateY(0); }
    .pf-card:focus { outline: 2px solid var(--red); outline-offset: 2px; }
    @media (max-width: 1100px) { .pf-grid { grid-template-columns: repeat(3, 1fr); } }
    @media (max-width: 900px)  { .pf-gallery { padding-left: 24px; padding-right: 24px; } }
    @media (max-width: 640px)  {
      .pf-gallery { padding-left: 20px; padding-right: 20px; padding-top: 60px; }
      .pf-grid { grid-template-columns: repeat(2, 1fr); }
      .pf-sub { margin-bottom: 40px; }
    }
    @media (max-width: 400px)  { .pf-grid { grid-template-columns: 1fr; } }