.pfc-widget,
.pfc-widget * { box-sizing: border-box; }

.pfc-widget {
  --pfc-cols: 4;
  --pfc-gap: 34px;
  --pfc-duration: 700ms;
  --pfc-stagger: 100ms;
  overflow: hidden;
}

.pfc-grid {
  display: grid;
  grid-template-columns: repeat(var(--pfc-cols), minmax(0, 1fr));
  gap: var(--pfc-gap);
  width: 100%;
  max-width: 1700px;
  margin-inline: auto;
}

.pfc-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 434px;
  padding: 44px 30px 28px;
  overflow: hidden;
  color: #3c2118;
  text-align: center;
  text-decoration: none;
  background: #fffaf5;
  border: 1px solid rgba(255,255,255,.9);
  border-radius: 30px;
  box-shadow: 0 18px 38px rgba(79, 48, 33, .12), inset 0 1px 0 rgba(255,255,255,.85);
  transform-origin: center;
  transition: transform var(--pfc-duration) cubic-bezier(.2,.75,.25,1), box-shadow var(--pfc-duration) ease, background-color .25s ease, border-color .25s ease;
  will-change: transform, opacity;
}

.pfc-card:focus-visible { outline: 3px solid rgba(89,48,31,.42); outline-offset: 4px; }

.pfc-icon-wrap {
  display: grid;
  place-items: center;
  width: 188px;
  height: 188px;
  flex: 0 0 auto;
  margin: 0 0 45px;
  color: #4b291d;
  background: #f8eae3;
  border-radius: 50%;
}

.pfc-icon-wrap img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.pfc-icon-wrap i,
.pfc-icon-wrap svg {
  display: block;
  width: 54%;
  height: 54%;
  color: currentColor;
  fill: currentColor;
  font-size: 92px;
}

.pfc-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 148px;
  margin: 0 auto 27px;
  color: #d7b9ae;
}

.pfc-divider::before,
.pfc-divider::after {
  width: calc(50% - 11px);
  height: 1px;
  content: "";
  background: currentColor;
  opacity: .75;
}

.pfc-divider-star {
  display: grid;
  place-items: center;
  width: 22px;
  flex: 0 0 22px;
  color: currentColor;
  font-size: 20px;
  line-height: 1;
}

.pfc-divider-star i,
.pfc-divider-star svg { display: block; width: 1em; height: 1em; color: currentColor; fill: currentColor; }

.pfc-title,
.pfc-subtitle { width: 100%; margin: 0; }

.pfc-title {
  color: #3c2118;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 34px;
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -.02em;
}

.pfc-subtitle {
  margin-top: 4px;
  color: #3d3632;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 30px;
  font-weight: 300;
  line-height: 1.25;
}

.pfc-animate .pfc-card { opacity: 0; transition-delay: calc(var(--pfc-index, 0) * var(--pfc-stagger)); }
.pfc-animate.pfc-in-view .pfc-card { opacity: 1; }
.pfc-entrance-fade-up .pfc-card { transform: translateY(34px); }
.pfc-entrance-fade-up.pfc-in-view .pfc-card,
.pfc-entrance-zoom.pfc-in-view .pfc-card,
.pfc-entrance-left.pfc-in-view .pfc-card { transform: none; }
.pfc-entrance-zoom .pfc-card { transform: scale(.88); }
.pfc-entrance-left .pfc-card { transform: translateX(-34px); }

.pfc-hover-lift .pfc-card:hover { transform: translateY(-12px); }
.pfc-hover-zoom .pfc-card:hover { transform: scale(1.035); }
.pfc-hover-tilt .pfc-card:hover { transform: translateY(-7px) rotate(-1.25deg); }

@media (prefers-reduced-motion: reduce) {
  .pfc-widget .pfc-card { opacity: 1 !important; transform: none !important; transition: none !important; }
}

@media (max-width: 1024px) {
  .pfc-widget { --pfc-cols: 2; }
}

@media (max-width: 767px) {
  .pfc-widget { --pfc-cols: 1; --pfc-gap: 20px; }
  .pfc-card { min-height: 360px; padding: 38px 24px 34px; border-radius: 24px; }
  .pfc-icon-wrap { width: 154px; height: 154px; margin-bottom: 27px; }
  .pfc-divider { margin-bottom: 22px; }
  .pfc-title { font-size: 27px; }
  .pfc-subtitle { font-size: 21px; }
}
