/*==================================================
  SUNSHINE MAKEUP STUDIO - HOW IT WORKS (3 EASY STEPS)
  Pixel-Perfect Implementation Matching Luxury UI Reference
==================================================*/

:root {
  --hw-burgundy: #8B1D38;
  --hw-burgundy-dark: #5E0D21;
  --hw-gold: #DEBC97;
  --hw-card-border: #F5E5DC;
  --hw-text-dark: #1C1314;
  --hw-text-body: #5C4D50;
  --hw-font-serif: 'Playfair Display', Georgia, serif;
  --hw-font-sans: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --hw-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

/* 1. Main Section Container */
.sunshine-how-it-works-section {
  position: relative;
  padding: 105px 0 95px !important;
  background: linear-gradient(180deg, #FFF8F5 0%, #FDF2EC 45%, #FAF0E8 100%) !important;
  overflow: hidden;
  font-family: var(--hw-font-sans);
}

/* 2. Background Floral Vectors & Petals */
.sunshine-works-bg-decor {
  position: absolute;
  top: 0;
  width: 280px;
  height: 400px;
  pointer-events: none;
  z-index: 1;
  opacity: 0.75;
}

.sunshine-works-bg-decor.left-floral {
  left: -20px;
  background-image: url("data:image/svg+xml,%3Csvg width='280' height='400' viewBox='0 0 280 400' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M-20 40C40 90 90 180 110 270C120 320 110 360 100 400' stroke='%23BA1B4D' stroke-width='1.5' stroke-opacity='0.18'/%3E%3Cpath d='M40 90C70 80 110 90 125 115' stroke='%23BA1B4D' stroke-width='1.2' stroke-opacity='0.16' stroke-dasharray='3 3'/%3E%3Cpath d='M70 160C110 150 150 165 165 195' stroke='%23BA1B4D' stroke-width='1.2' stroke-opacity='0.16' stroke-dasharray='3 3'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: top left;
}

.sunshine-works-bg-decor.right-floral {
  right: -20px;
  background-image: url("data:image/svg+xml,%3Csvg width='280' height='400' viewBox='0 0 280 400' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M300 40C240 90 190 180 170 270C160 320 170 360 180 400' stroke='%23BA1B4D' stroke-width='1.5' stroke-opacity='0.18'/%3E%3Cpath d='M240 90C210 80 170 90 155 115' stroke='%23BA1B4D' stroke-width='1.2' stroke-opacity='0.16' stroke-dasharray='3 3'/%3E%3Cpath d='M210 160C170 150 130 165 115 195' stroke='%23BA1B4D' stroke-width='1.2' stroke-opacity='0.16' stroke-dasharray='3 3'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: top right;
}

/* Floating Rose Petals */
.sunshine-works-petal {
  position: absolute;
  pointer-events: none;
  z-index: 1;
  background: radial-gradient(circle at 30% 30%, #F5A3B7 0%, #D44A68 80%, #8B1D38 100%);
  border-radius: 60% 40% 70% 30% / 50% 60% 40% 50%;
  opacity: 0.35;
  filter: blur(0.5px);
}

.sunshine-works-petal.p-1 {
  top: 14%;
  left: 14%;
  width: 24px;
  height: 24px;
  transform: rotate(25deg);
  animation: petalFloat 6.5s infinite ease-in-out;
}

.sunshine-works-petal.p-2 {
  top: 54%;
  left: 3%;
  width: 30px;
  height: 30px;
  transform: rotate(-35deg);
  animation: petalFloat 7.5s infinite ease-in-out 1s;
}

.sunshine-works-petal.p-3 {
  bottom: 8%;
  right: 4%;
  width: 32px;
  height: 32px;
  transform: rotate(45deg);
  animation: petalFloat 8s infinite ease-in-out 2s;
}

.sunshine-works-petal.p-4 {
  top: 22%;
  right: 17%;
  width: 22px;
  height: 22px;
  transform: rotate(-15deg);
  animation: petalFloat 6s infinite ease-in-out 1.5s;
}

@keyframes petalFloat {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(-14px) rotate(12deg);
  }
}

/* 3. Header Section */
.sunshine-works-header {
  text-align: center;
  max-width: 820px;
  margin: 0 auto 35px;
  position: relative;
  z-index: 2;
}

.sunshine-works-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 12px;
}

.sunshine-works-tag .tag-line {
  width: 38px;
  height: 1.5px;
  background: var(--hw-burgundy);
  display: inline-block;
}

.sunshine-works-tag .tag-ornament {
  color: var(--hw-burgundy);
  font-size: 11px;
}

.sunshine-works-tag .tag-text {
  font-family: var(--hw-font-sans) !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  color: var(--hw-burgundy) !important;
  letter-spacing: 2.2px !important;
  text-transform: uppercase !important;
  display: inline-block !important;
}

.sunshine-works-title {
  font-family: var(--hw-font-serif) !important;
  font-size: 42px !important;
  font-weight: 700 !important;
  color: var(--hw-text-dark) !important;
  margin-bottom: 12px !important;
  line-height: 1.25 !important;
}

.sunshine-works-title .title-burgundy {
  color: var(--hw-burgundy) !important;
  font-weight: 800 !important;
}

.sunshine-works-desc {
  font-family: var(--hw-font-sans) !important;
  font-size: 14.5px !important;
  line-height: 1.65 !important;
  color: var(--hw-text-body) !important;
  max-width: 680px !important;
  margin: 0 auto !important;
}

.sunshine-works-center-ornament {
  margin-top: 14px;
  color: var(--hw-burgundy);
  font-size: 16px;
  opacity: 0.85;
}

/* 4. Steps Cards Grid */
.sunshine-works-row {
  position: relative;
  z-index: 2;
  margin-top: 25px;
}

.sunshine-step-col {
  position: relative;
  padding: 0 15px;
}

/* Step Card Box */
.sunshine-step-card {
  background: #FFFFFF !important;
  border-radius: 26px !important;
  border: 1.5px solid var(--hw-card-border) !important;
  box-shadow: 0 16px 40px rgba(139, 29, 56, 0.07), 0 3px 10px rgba(0, 0, 0, 0.02) !important;
  padding: 115px 24px 34px 24px !important;
  margin-top: 80px !important;
  height: calc(100% - 80px) !important;
  text-align: center !important;
  position: relative !important;
  overflow: visible !important;
  transition: transform 0.35s var(--hw-ease), box-shadow 0.35s var(--hw-ease), border-color 0.35s ease !important;
}

.sunshine-step-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 50px rgba(139, 29, 56, 0.14) !important;
  border-color: rgba(212, 175, 122, 0.6) !important;
}

/* Faint Background Watermark Number */
.card-faint-num {
  position: absolute;
  bottom: 12px;
  left: 16px;
  font-family: var(--hw-font-serif);
  font-size: 56px;
  font-weight: 700;
  color: #F8E3DA;
  line-height: 1;
  pointer-events: none;
  z-index: 1;
  user-select: none;
}

/* Botanical Leaf Watermark behind Circle */
.card-circle-leaf {
  position: absolute;
  top: -65px;
  right: 18px;
  width: 90px;
  height: 90px;
  pointer-events: none;
  z-index: 2;
  opacity: 0.75;
  background-image: url("data:image/svg+xml,%3Csvg width='90' height='90' viewBox='0 0 90 90' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 90C40 70 70 40 90 10' stroke='%23BA1B4D' stroke-width='1.2' stroke-opacity='0.22'/%3E%3Cpath d='M40 70C55 55 65 35 75 20' stroke='%23BA1B4D' stroke-width='1' stroke-opacity='0.18' stroke-dasharray='2 2'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: top right;
}

/* Top Circular Photo Container */
.sunshine-step-image-wrap {
  width: 175px;
  height: 175px;
  border-radius: 50%;
  position: absolute;
  top: -88px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  box-shadow: 0 12px 28px rgba(139, 29, 56, 0.16);
  transition: transform 0.4s var(--hw-ease);
}

.sunshine-step-card:hover .sunshine-step-image-wrap {
  transform: translateX(-50%) scale(1.04);
}

.sunshine-step-image-wrap img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 3.5px solid var(--hw-gold);
  display: block;
}

/* Step Number Badge (Top-Left of Circle) */
.sunshine-step-badge {
  position: absolute;
  top: 8px;
  left: -6px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: linear-gradient(135deg, #8B1D38 0%, #5E0D21 100%);
  border: 2.5px solid var(--hw-gold);
  color: #FFFFFF;
  font-family: var(--hw-font-serif);
  font-size: 15px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 5;
  box-shadow: 0 4px 12px rgba(139, 29, 56, 0.35);
}

/* Micro Icon Pill (Bottom-Center of Circle) */
.sunshine-step-icon {
  position: absolute;
  bottom: -18px;
  left: 50%;
  transform: translateX(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, #8B1D38 0%, #5E0D21 100%);
  border: 2.5px solid var(--hw-gold);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  z-index: 5;
  box-shadow: 0 6px 14px rgba(139, 29, 56, 0.25);
  transition: transform 0.3s ease;
}

.sunshine-step-card:hover .sunshine-step-icon {
  transform: translateX(-50%) scale(1.1) rotate(5deg);
}

.sunshine-step-icon i {
  color: #FFFFFF !important;
}

/* Step Title & Description */
.sunshine-step-title {
  font-family: var(--hw-font-serif);
  font-size: 24px;
  font-weight: 700;
  color: var(--hw-burgundy);
  margin-top: 18px;
  margin-bottom: 8px;
  line-height: 1.25;
  position: relative;
  z-index: 2;
}

.sunshine-step-desc {
  font-family: var(--hw-font-sans);
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--hw-text-body);
  margin: 0;
  position: relative;
  z-index: 2;
}

/* Connecting Curved Arrows */
.sunshine-step-arrow {
  position: absolute;
  top: -35px;
  right: -40px;
  width: 80px;
  height: 40px;
  z-index: 4;
  pointer-events: none;
  opacity: 0.85;
}

/* 5. Responsive Adjustments */
@media (max-width: 1199.98px) {
  .sunshine-step-arrow {
    right: -25px;
    width: 60px;
  }
}

@media (max-width: 991.98px) {
  .sunshine-how-it-works-section {
    padding: 80px 0 70px !important;
  }
  .sunshine-works-title {
    font-size: 34px !important;
  }
  .sunshine-step-card {
    margin-top: 80px !important;
    margin-bottom: 20px !important;
  }
  .sunshine-step-arrow {
    display: none;
  }
}

@media (max-width: 575.98px) {
  .sunshine-how-it-works-section {
    padding: 60px 0 50px !important;
  }
  .sunshine-works-title {
    font-size: 28px !important;
  }
  .sunshine-works-desc {
    font-size: 13px !important;
  }
  .sunshine-step-image-wrap {
    width: 150px;
    height: 150px;
    top: -75px;
  }
  .sunshine-step-badge {
    top: 4px;
    left: -4px;
    width: 36px;
    height: 36px;
    font-size: 13px;
  }
  .sunshine-step-icon {
    bottom: -15px;
    width: 38px;
    height: 38px;
    font-size: 15px;
  }
  .sunshine-step-card {
    padding: 95px 16px 26px 16px !important;
    border-radius: 22px !important;
  }
  .sunshine-step-title {
    font-size: 21px !important;
  }
  .sunshine-step-desc {
    font-size: 12.5px !important;
  }
  .card-faint-num {
    font-size: 42px;
  }
}
