/**
 * PHC TOP Pro 2.0.0 - FLIP CARD STYLES
 * 
 * Beautiful flip card animations
 * Fully responsive and touch-friendly
 * 
 * @package PHC_TOP
 * 
 */

/* ========================================
   FLIP CARD BASE STYLES
   ======================================== */

.phc-flip-card {
  perspective: 1000px;
  height: 300px;
  margin-bottom: var(--block-gap);
  cursor: pointer;
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.phc-flip-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 0.6s ease-in-out;
  transform-style: preserve-3d;
}

.phc-flip-card-front,
.phc-flip-card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--card-padding);
  box-sizing: border-box;
}

.phc-flip-card-front {
  background: var(--color-light, #F5F5F5);
  z-index: 2;
}

.phc-flip-card-back {
  background: linear-gradient(135deg, var(--color-primary, #FF9156) 0%, var(--color-secondary, #8B8B8B) 100%);
  color: white;
  transform: rotateY(180deg);
  z-index: 1;
}

/* ========================================
   ANIMATION VARIANTS
   ======================================== */

/* ROTATE Animation (Default) */
.phc-flip-rotate.phc-flip-hover:hover .phc-flip-card-inner {
  transform: rotateY(180deg);
}

/* FADE Animation */
.phc-flip-fade .phc-flip-card-front,
.phc-flip-fade .phc-flip-card-back {
  transition: opacity 0.6s ease-in-out;
  opacity: 1;
}

.phc-flip-fade.phc-flip-hover:hover .phc-flip-card-front {
  opacity: 0;
}

.phc-flip-fade.phc-flip-hover:hover .phc-flip-card-back {
  opacity: 1;
  transform: none;
}

/* SLIDE Animation */
.phc-flip-slide .phc-flip-card-front,
.phc-flip-slide .phc-flip-card-back {
  transition: transform 0.6s ease-in-out;
  transform: translateX(0);
}

.phc-flip-slide .phc-flip-card-back {
  transform: translateX(100%);
}

.phc-flip-slide.phc-flip-hover:hover .phc-flip-card-front {
  transform: translateX(-100%);
}

.phc-flip-slide.phc-flip-hover:hover .phc-flip-card-back {
  transform: translateX(0);
}

/* FLIP Animation (3D Flip) */
.phc-flip-flip .phc-flip-card-back {
  transform: rotateX(180deg);
}

.phc-flip-flip.phc-flip-hover:hover .phc-flip-card-inner {
  transform: rotateX(180deg);
}

/* SCALE Animation */
.phc-flip-scale .phc-flip-card-front {
  transform: scale(1);
}

.phc-flip-scale .phc-flip-card-back {
  transform: scale(0);
  opacity: 0;
}

.phc-flip-scale.phc-flip-hover:hover .phc-flip-card-front {
  transform: scale(0);
  opacity: 0;
}

.phc-flip-scale.phc-flip-hover:hover .phc-flip-card-back {
  transform: scale(1);
  opacity: 1;
}

/* ========================================
   MOBILE: TAP TO FLIP
   ======================================== */

/* On mobile, don't flip on hover */
@media (max-width: 767px) {
  .phc-flip-card {
    cursor: tap;
  }
  
  .phc-flip-card.phc-flip-active .phc-flip-card-inner {
    transform: rotateY(180deg) !important;
  }
}

/* ========================================
   CONTENT STYLING
   ======================================== */

/* Front content */
.phc-flip-front-content {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--component-gap);
}

.phc-flip-front-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.phc-flip-front-text {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-md);
}

.phc-flip-front-text p {
  margin: 0;
  font-size: var(--text-lg);
  font-weight: 600;
  color: #333;
}

.phc-flip-placeholder {
  color: #999;
  font-style: italic;
  font-size: var(--text-base);
}

/* Back content */
.phc-flip-back-content {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.phc-flip-back-text {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-md);
}

.phc-flip-back-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.phc-flip-back-title {
  margin: 0;
  font-size: var(--text-xl);
  font-weight: 700;
  color: white;
  line-height: var(--lh-tight);
}

.phc-flip-back-description {
  margin: 0;
  font-size: var(--text-sm);
  line-height: var(--lh-relaxed);
  color: rgba(255, 255, 255, 0.9);
}

/* ========================================
   COLOR SCHEMES
   ======================================== */

.phc-color-default .phc-flip-card-back {
  background: linear-gradient(135deg, #FF9156 0%, #FF7139 100%);
}

.phc-color-green .phc-flip-card-back {
  background: linear-gradient(135deg, #5DB91F 0%, #4A9316 100%);
}

.phc-color-blue .phc-flip-card-back {
  background: linear-gradient(135deg, #0066CC 0%, #0052A3 100%);
}

.phc-color-orange .phc-flip-card-back {
  background: linear-gradient(135deg, #FF9156 0%, #FF6B35 100%);
}

.phc-color-purple .phc-flip-card-back {
  background: linear-gradient(135deg, #8B5CF6 0%, #6D28D9 100%);
}

.phc-color-dark .phc-flip-card-back {
  background: linear-gradient(135deg, #1F1F1F 0%, #000000 100%);
}

/* ========================================
   RESPONSIVE SIZING
   ======================================== */

/* Mobile */
@media (max-width: 479px) {
  .phc-flip-card {
    height: 250px;
    border-radius: 6px;
  }
  
  .phc-flip-card-front,
  .phc-flip-card-back {
    padding: var(--space-md);
  }
  
  .phc-flip-back-title {
    font-size: var(--text-lg);
  }
  
  .phc-flip-back-description {
    font-size: var(--text-xs);
  }
}

/* Large Mobile */
@media (min-width: 480px) and (max-width: 767px) {
  .phc-flip-card {
    height: 280px;
  }
}

/* Tablet */
@media (min-width: 768px) {
  .phc-flip-card {
    height: 300px;
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
  }
  
  .phc-flip-card-front,
  .phc-flip-card-back {
    padding: var(--card-padding);
  }
}

/* Desktop */
@media (min-width: 1024px) {
  .phc-flip-card {
    height: 350px;
    transition: box-shadow 0.3s ease-in-out;
  }
  
  .phc-flip-card:hover {
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.2);
  }
}

/* ========================================
   ICON STYLING
   ======================================== */

.phc-flip-front-text .phc-icon,
.phc-flip-back-text .phc-icon {
  font-size: 48px;
  line-height: 1;
}

@media (max-width: 479px) {
  .phc-flip-front-text .phc-icon {
    font-size: 36px;
  }
}

/* ========================================
   ACCESSIBILITY
   ======================================== */

.phc-flip-card:focus {
  outline: 3px solid var(--color-primary, #FF9156);
  outline-offset: 2px;
}

/* High contrast mode */
@media (prefers-contrast: more) {
  .phc-flip-card {
    border: 2px solid var(--color-dark, #1F1F1F);
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .phc-flip-card,
  .phc-flip-card-inner,
  .phc-flip-card-front,
  .phc-flip-card-back {
    transition: none;
  }
}

/* ========================================
   LOADING STATE
   ======================================== */

.phc-flip-card.phc-loading {
  opacity: 0.6;
  pointer-events: none;
}

/* ========================================
   GRID LAYOUTS
   ======================================== */

.phc-flip-cards-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
  margin-bottom: var(--section-spacing);
}

@media (min-width: 480px) {
  .phc-flip-cards-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 768px) {
  .phc-flip-cards-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .phc-flip-cards-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 1440px) {
  .phc-flip-cards-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* ========================================
   PRINT STYLES
   ======================================== */

@media print {
  .phc-flip-card {
    page-break-inside: avoid;
    box-shadow: none;
  }
  
  .phc-flip-card-back {
    display: none;
  }
}
