/* ==========================================================================
   Custom Sections CSS
   All 10 section types with style variants
   ========================================================================== */

/* ==========================================================================
   1. HERO SECTION
   ========================================================================== */

.section-hero {
  position: relative;
  padding: 4rem 2rem;
  min-height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-size: cover;
  background-position: center;
  background-color: var(--color-primary, #2563eb);
  color: white;
}

.section-hero__content {
  max-width: 800px;
  z-index: 1;
}

.section-hero__title {
  font-size: 3rem;
  font-weight: 700;
  margin: 0 0 1rem;
  line-height: 1.1;
}

.section-hero__subtitle {
  font-size: 1.25rem;
  margin: 0 0 2rem;
  opacity: 0.9;
}

.section-hero__cta {
  display: inline-block;
  padding: 0.875rem 2rem;
  background: white;
  color: var(--color-primary, #2563eb);
  text-decoration: none;
  font-weight: 600;
  border-radius: 6px;
  transition: transform 0.2s, box-shadow 0.2s;
}

.section-hero__cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

/* Hero - Centered (default) */
.section-hero--centered {
  text-align: center;
}

.section-hero--centered::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.4);
}

/* Hero - Left aligned */
.section-hero--left {
  justify-content: flex-start;
  text-align: left;
}

.section-hero--left::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.3) 100%);
}

/* Hero - Split */
.section-hero--split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  background: var(--color-bg, #f8fafc);
  color: var(--color-text, #1e293b);
}

.section-hero--split .section-hero__content {
  padding: 2rem;
}

.section-hero--split .section-hero__cta {
  background: var(--color-primary, #2563eb);
  color: white;
}

.section-hero__image {
  display: flex;
  align-items: center;
}

.section-hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
}

/* Hero - Minimal */
.section-hero--minimal {
  background: transparent;
  color: var(--color-text, #1e293b);
  min-height: auto;
  padding: 6rem 2rem;
}

.section-hero--minimal .section-hero__cta {
  background: var(--color-primary, #2563eb);
  color: white;
}

/* ==========================================================================
   2. FEATURES SECTION
   ========================================================================== */

.section-features {
  padding: 4rem 2rem;
  background: var(--color-bg, #f8fafc);
}

.section-features__grid {
  display: grid;
  gap: 2rem;
  max-width: 1200px;
  margin: 0 auto;
}

.section-features__grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.section-features__grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.section-features__grid--cols-4 { grid-template-columns: repeat(4, 1fr); }

.section-features__item {
  padding: 1.5rem;
}

.section-features__icon {
  width: 48px;
  height: 48px;
  color: var(--color-primary, #2563eb);
  margin-bottom: 1rem;
}

.section-features__title {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0 0 0.5rem;
}

.section-features__description {
  color: var(--color-muted, #64748b);
  margin: 0;
  line-height: 1.6;
}

/* Features - Cards */
.section-features--cards .section-features__item {
  background: white;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

/* Features - Icons */
.section-features--icons .section-features__item {
  text-align: center;
}

.section-features--icons .section-features__icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 1rem;
}

/* Features - Minimal */
.section-features--minimal {
  background: transparent;
}

.section-features--minimal .section-features__item {
  border-bottom: 1px solid var(--color-border, #e2e8f0);
  padding-bottom: 2rem;
}

/* Features - Bordered */
.section-features--bordered .section-features__item {
  border: 2px solid var(--color-border, #e2e8f0);
  border-radius: 8px;
}

/* ==========================================================================
   3. CTA SECTION
   ========================================================================== */

.section-cta {
  padding: 4rem 2rem;
  text-align: center;
}

.section-cta__content {
  max-width: 600px;
  margin: 0 auto;
}

.section-cta__title {
  font-size: 2rem;
  font-weight: 700;
  margin: 0 0 1rem;
}

.section-cta__text {
  font-size: 1.125rem;
  margin: 0 0 2rem;
  opacity: 0.9;
}

.section-cta__button {
  display: inline-block;
  padding: 0.875rem 2rem;
  font-weight: 600;
  text-decoration: none;
  border-radius: 6px;
  transition: transform 0.2s, box-shadow 0.2s;
}

.section-cta__button:hover {
  transform: translateY(-2px);
}

/* CTA - Highlight */
.section-cta--highlight {
  background: var(--color-primary, #2563eb);
  color: white;
}

.section-cta--highlight .section-cta__button {
  background: white;
  color: var(--color-primary, #2563eb);
}

/* CTA - Banner */
.section-cta--banner {
  background: var(--color-bg, #f8fafc);
  border-top: 4px solid var(--color-primary, #2563eb);
  border-bottom: 4px solid var(--color-primary, #2563eb);
}

.section-cta--banner .section-cta__button {
  background: var(--color-primary, #2563eb);
  color: white;
}

/* CTA - Inline */
.section-cta--inline {
  padding: 2rem;
  background: transparent;
}

.section-cta--inline .section-cta__content {
  display: flex;
  align-items: center;
  gap: 2rem;
  max-width: 800px;
  text-align: left;
}

.section-cta--inline .section-cta__title {
  margin: 0;
  font-size: 1.5rem;
}

.section-cta--inline .section-cta__text {
  margin: 0;
}

.section-cta--inline .section-cta__button {
  background: var(--color-primary, #2563eb);
  color: white;
  white-space: nowrap;
}

/* CTA - Gradient */
.section-cta--gradient {
  background: linear-gradient(135deg, var(--color-primary, #2563eb) 0%, #7c3aed 100%);
  color: white;
}

.section-cta--gradient .section-cta__button {
  background: white;
  color: var(--color-primary, #2563eb);
}

/* ==========================================================================
   4. TESTIMONIALS SECTION
   ========================================================================== */

.section-testimonials {
  padding: 4rem 2rem;
  background: var(--color-bg, #f8fafc);
}

.section-testimonials__grid {
  display: grid;
  gap: 2rem;
  max-width: 1200px;
  margin: 0 auto;
}

.section-testimonials__item {
  padding: 1.5rem;
}

.section-testimonials__image {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  margin-bottom: 1rem;
}

.section-testimonials__quote {
  font-size: 1.125rem;
  font-style: italic;
  line-height: 1.6;
  margin: 0 0 1rem;
  color: var(--color-text, #1e293b);
}

.section-testimonials__author {
  font-weight: 600;
  font-style: normal;
  display: block;
}

.section-testimonials__role {
  color: var(--color-muted, #64748b);
  font-size: 0.875rem;
}

/* Testimonials - Cards */
.section-testimonials--cards .section-testimonials__grid {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.section-testimonials--cards .section-testimonials__item {
  background: white;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
  display: flex;
  gap: 1rem;
}

.section-testimonials--cards .section-testimonials__image {
  flex-shrink: 0;
  margin: 0;
}

/* Testimonials - Quotes */
.section-testimonials--quotes .section-testimonials__item {
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
}

.section-testimonials--quotes .section-testimonials__quote::before {
  content: '"';
  font-size: 4rem;
  line-height: 0;
  color: var(--color-primary, #2563eb);
  opacity: 0.3;
  display: block;
  margin-bottom: 1rem;
}

.section-testimonials--quotes .section-testimonials__image {
  margin: 0 auto 1rem;
}

/* Testimonials - Minimal */
.section-testimonials--minimal {
  background: transparent;
}

.section-testimonials--minimal .section-testimonials__grid {
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.section-testimonials--minimal .section-testimonials__item {
  border-left: 3px solid var(--color-primary, #2563eb);
  padding-left: 1.5rem;
}

/* Testimonials - Featured */
.section-testimonials--featured .section-testimonials__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 700px;
  margin: 0 auto;
}

.section-testimonials--featured .section-testimonials__image {
  width: 96px;
  height: 96px;
}

.section-testimonials--featured .section-testimonials__quote {
  font-size: 1.5rem;
}

/* ==========================================================================
   5. PRICING SECTION
   ========================================================================== */

.section-pricing {
  padding: 4rem 2rem;
}

.section-pricing__grid {
  display: grid;
  gap: 2rem;
  max-width: 1000px;
  margin: 0 auto;
  align-items: start;
}

.section-pricing__grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.section-pricing__grid--cols-3 { grid-template-columns: repeat(3, 1fr); }

.section-pricing__plan {
  padding: 2rem;
  background: white;
  border-radius: 8px;
  text-align: center;
}

.section-pricing__name {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0 0 1rem;
}

.section-pricing__price {
  margin-bottom: 1.5rem;
}

.section-pricing__amount {
  font-size: 3rem;
  font-weight: 700;
  color: var(--color-text, #1e293b);
}

.section-pricing__period {
  color: var(--color-muted, #64748b);
}

.section-pricing__features {
  list-style: none;
  padding: 0;
  margin: 0 0 2rem;
  text-align: left;
}

.section-pricing__features li {
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--color-border, #e2e8f0);
}

.section-pricing__features li::before {
  content: '✓';
  color: var(--color-primary, #2563eb);
  margin-right: 0.5rem;
}

.section-pricing__cta {
  display: block;
  padding: 0.75rem 1.5rem;
  background: var(--color-primary, #2563eb);
  color: white;
  text-decoration: none;
  border-radius: 6px;
  font-weight: 600;
}

/* Pricing - Cards */
.section-pricing--cards .section-pricing__plan {
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.section-pricing--cards .section-pricing__plan--highlight {
  transform: scale(1.05);
  box-shadow: 0 10px 40px rgba(0,0,0,0.15);
  border: 2px solid var(--color-primary, #2563eb);
}

/* Pricing - Table */
.section-pricing--table .section-pricing__grid {
  display: block;
}

.section-pricing--table .section-pricing__plan {
  display: grid;
  grid-template-columns: 1fr 1fr 2fr 1fr;
  gap: 1rem;
  align-items: center;
  text-align: left;
  border-bottom: 1px solid var(--color-border, #e2e8f0);
  border-radius: 0;
  padding: 1.5rem;
}

.section-pricing--table .section-pricing__features {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin: 0;
}

.section-pricing--table .section-pricing__features li {
  border: none;
  padding: 0;
}

/* Pricing - Minimal */
.section-pricing--minimal .section-pricing__plan {
  background: transparent;
  border: 1px solid var(--color-border, #e2e8f0);
}

/* Pricing - Gradient */
.section-pricing--gradient .section-pricing__plan--highlight {
  background: linear-gradient(135deg, var(--color-primary, #2563eb) 0%, #7c3aed 100%);
  color: white;
}

.section-pricing--gradient .section-pricing__plan--highlight .section-pricing__amount {
  color: white;
}

.section-pricing--gradient .section-pricing__plan--highlight .section-pricing__cta {
  background: white;
  color: var(--color-primary, #2563eb);
}

/* ==========================================================================
   6. STATS SECTION
   ========================================================================== */

.section-stats {
  padding: 4rem 2rem;
}

.section-stats__grid {
  display: flex;
  justify-content: center;
  gap: 4rem;
  flex-wrap: wrap;
  max-width: 1000px;
  margin: 0 auto;
}

.section-stats__item {
  text-align: center;
}

.section-stats__value {
  display: block;
  font-size: 3rem;
  font-weight: 700;
  color: var(--color-primary, #2563eb);
  line-height: 1;
}

.section-stats__label {
  display: block;
  margin-top: 0.5rem;
  color: var(--color-muted, #64748b);
  text-transform: uppercase;
  font-size: 0.875rem;
  letter-spacing: 0.05em;
}

/* Stats - Inline (default) */
.section-stats--inline .section-stats__item {
  padding: 0 2rem;
  border-right: 1px solid var(--color-border, #e2e8f0);
}

.section-stats--inline .section-stats__item:last-child {
  border-right: none;
}

/* Stats - Cards */
.section-stats--cards {
  background: var(--color-bg, #f8fafc);
}

.section-stats--cards .section-stats__item {
  background: white;
  padding: 2rem;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
  min-width: 150px;
}

/* Stats - Counters */
.section-stats--counters .section-stats__value {
  font-size: 4rem;
}

/* Stats - Minimal */
.section-stats--minimal .section-stats__value {
  color: var(--color-text, #1e293b);
  font-size: 2.5rem;
}

.section-stats--minimal .section-stats__item {
  padding: 0;
}

/* ==========================================================================
   7. FAQ SECTION
   ========================================================================== */

.section-faq {
  padding: 4rem 2rem;
  max-width: 800px;
  margin: 0 auto;
}

.section-faq__title {
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
  margin: 0 0 2rem;
}

.section-faq__item {
  margin-bottom: 1rem;
}

.section-faq__question {
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0;
  cursor: pointer;
}

.section-faq__answer {
  color: var(--color-muted, #64748b);
  line-height: 1.6;
  margin-top: 0.5rem;
}

/* FAQ - Accordion */
.section-faq--accordion .section-faq__toggle {
  display: none;
}

.section-faq--accordion .section-faq__question {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem;
  background: var(--color-bg, #f8fafc);
  border-radius: 6px;
}

.section-faq--accordion .section-faq__question::after {
  content: '+';
  font-size: 1.5rem;
  font-weight: 300;
  transition: transform 0.2s;
}

.section-faq--accordion .section-faq__answer {
  max-height: 0;
  overflow: hidden;
  padding: 0 1rem;
  transition: max-height 0.3s, padding 0.3s;
}

.section-faq--accordion .section-faq__toggle:checked + .section-faq__question::after {
  transform: rotate(45deg);
}

.section-faq--accordion .section-faq__toggle:checked ~ .section-faq__answer {
  max-height: 500px;
  padding: 1rem;
}

/* FAQ - List */
.section-faq--list .section-faq__item {
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--color-border, #e2e8f0);
}

/* FAQ - Cards */
.section-faq--cards .section-faq__item {
  background: white;
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

/* FAQ - Two Column */
.section-faq--two-column .section-faq__item {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 2rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--color-border, #e2e8f0);
}

.section-faq--two-column .section-faq__answer {
  margin: 0;
}

/* ==========================================================================
   8. GALLERY SECTION
   ========================================================================== */

.section-gallery {
  padding: 4rem 2rem;
}

.section-gallery__grid {
  display: grid;
  gap: 1rem;
  max-width: 1200px;
  margin: 0 auto;
}

.section-gallery__grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.section-gallery__grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.section-gallery__grid--cols-4 { grid-template-columns: repeat(4, 1fr); }

.section-gallery__item {
  margin: 0;
}

.section-gallery__image {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
}

.section-gallery__caption {
  font-size: 0.875rem;
  color: var(--color-muted, #64748b);
  margin-top: 0.5rem;
  text-align: center;
}

/* Gallery - Grid (default) */
.section-gallery--grid .section-gallery__image {
  aspect-ratio: 1;
  object-fit: cover;
}

/* Gallery - Masonry */
.section-gallery--masonry .section-gallery__grid {
  columns: 4;
  column-gap: 1rem;
}

.section-gallery--masonry .section-gallery__item {
  break-inside: avoid;
  margin-bottom: 1rem;
}

/* Gallery - Carousel */
.section-gallery--carousel .section-gallery__grid {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  gap: 1rem;
  padding-bottom: 1rem;
}

.section-gallery--carousel .section-gallery__item {
  flex: 0 0 300px;
  scroll-snap-align: start;
}

/* Gallery - Lightbox */
.section-gallery--lightbox .section-gallery__link {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: 6px;
}

.section-gallery--lightbox .section-gallery__link::after {
  content: '🔍';
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.5);
  opacity: 0;
  transition: opacity 0.2s;
  font-size: 2rem;
}

.section-gallery--lightbox .section-gallery__link:hover::after {
  opacity: 1;
}

/* ==========================================================================
   9. TEAM SECTION
   ========================================================================== */

.section-team {
  padding: 4rem 2rem;
  background: var(--color-bg, #f8fafc);
}

.section-team__grid {
  display: grid;
  gap: 2rem;
  max-width: 1200px;
  margin: 0 auto;
}

.section-team__grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.section-team__grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.section-team__grid--cols-4 { grid-template-columns: repeat(4, 1fr); }

.section-team__member {
  text-align: center;
}

.section-team__image {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  object-fit: cover;
  margin-bottom: 1rem;
}

.section-team__name {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0 0 0.25rem;
}

.section-team__role {
  color: var(--color-primary, #2563eb);
  margin: 0 0 0.5rem;
  font-size: 0.875rem;
}

.section-team__bio {
  color: var(--color-muted, #64748b);
  font-size: 0.875rem;
  margin: 0 0 1rem;
}

.section-team__social {
  display: flex;
  gap: 0.5rem;
  justify-content: center;
}

.section-team__social-link {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-muted, #64748b);
  transition: color 0.2s;
}

.section-team__social-link:hover {
  color: var(--color-primary, #2563eb);
}

.section-team__social-link svg {
  width: 20px;
  height: 20px;
}

/* Team - Cards */
.section-team--cards .section-team__member {
  background: white;
  padding: 2rem;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

/* Team - Grid */
.section-team--grid {
  background: transparent;
}

.section-team--grid .section-team__image {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  border-radius: 8px;
}

/* Team - List */
.section-team--list .section-team__grid {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.section-team--list .section-team__member {
  display: flex;
  gap: 1.5rem;
  text-align: left;
  padding: 1.5rem;
  background: white;
  border-radius: 8px;
}

.section-team--list .section-team__image {
  width: 100px;
  height: 100px;
  flex-shrink: 0;
  margin: 0;
}

.section-team--list .section-team__social {
  justify-content: flex-start;
}

/* Team - Compact */
.section-team--compact .section-team__image {
  width: 80px;
  height: 80px;
}

.section-team--compact .section-team__bio {
  display: none;
}

/* ==========================================================================
   10. LOGOS SECTION
   ========================================================================== */

.section-logos {
  padding: 3rem 2rem;
}

.section-logos__title {
  font-size: 1rem;
  font-weight: 400;
  text-align: center;
  color: var(--color-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 0 0 2rem;
}

.section-logos__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 3rem;
  max-width: 1000px;
  margin: 0 auto;
}

.section-logos__item {
  display: block;
}

.section-logos__image {
  max-height: 40px;
  width: auto;
  opacity: 0.7;
  transition: opacity 0.2s;
}

.section-logos__item:hover .section-logos__image,
a.section-logos__item:hover .section-logos__image {
  opacity: 1;
}

/* Logos - Grid (default) */
.section-logos--grid .section-logos__image {
  max-height: 48px;
}

/* Logos - Scroll */
.section-logos--scroll .section-logos__scroll {
  display: flex;
  overflow: hidden;
  gap: 4rem;
}

@keyframes logoScroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.section-logos--scroll .section-logos__scroll {
  animation: logoScroll 20s linear infinite;
}

/* Logos - Grayscale */
.section-logos--grayscale .section-logos__image {
  filter: grayscale(100%);
  opacity: 0.5;
}

.section-logos--grayscale .section-logos__item:hover .section-logos__image {
  filter: grayscale(0%);
  opacity: 1;
}

/* Logos - Minimal */
.section-logos--minimal {
  padding: 2rem;
}

.section-logos--minimal .section-logos__image {
  max-height: 32px;
  opacity: 0.5;
}

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

@media (max-width: 768px) {
  .section-hero--split {
    grid-template-columns: 1fr;
  }

  .section-hero__title {
    font-size: 2rem;
  }

  .section-features__grid--cols-3,
  .section-features__grid--cols-4 {
    grid-template-columns: repeat(2, 1fr);
  }

  .section-pricing__grid--cols-3 {
    grid-template-columns: 1fr;
  }

  .section-pricing--cards .section-pricing__plan--highlight {
    transform: none;
  }

  .section-stats__grid {
    gap: 2rem;
  }

  .section-stats--inline .section-stats__item {
    border-right: none;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
    padding: 1rem 0;
  }

  .section-faq--two-column .section-faq__item {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }

  .section-gallery__grid--cols-3,
  .section-gallery__grid--cols-4 {
    grid-template-columns: repeat(2, 1fr);
  }

  .section-gallery--masonry .section-gallery__grid {
    columns: 2;
  }

  .section-team__grid--cols-3,
  .section-team__grid--cols-4 {
    grid-template-columns: repeat(2, 1fr);
  }

  .section-cta--inline .section-cta__content {
    flex-direction: column;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .section-features__grid--cols-2,
  .section-features__grid--cols-3,
  .section-features__grid--cols-4 {
    grid-template-columns: 1fr;
  }

  .section-gallery__grid--cols-2,
  .section-gallery__grid--cols-3,
  .section-gallery__grid--cols-4 {
    grid-template-columns: 1fr;
  }

  .section-team__grid--cols-2,
  .section-team__grid--cols-3,
  .section-team__grid--cols-4 {
    grid-template-columns: 1fr;
  }

  .section-team--list .section-team__member {
    flex-direction: column;
    text-align: center;
  }

  .section-team--list .section-team__social {
    justify-content: center;
  }
}
