/* ===========================
   COMPONENTS CSS - Buttons, Cards, Forms
   =========================== */

/* ===== Buttons ===== */
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-sm);
  padding: 12px 20px;
  font-family: var(--font-secondary);
  font-size: var(--font-size-md);
  font-weight: 600;
  text-align: center;
  white-space: nowrap;
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: all var(--transition-base);
  position: relative;
  overflow: hidden;
  border: none;
  background: transparent;
}

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

.button:active {
  transform: translateY(0);
}

/* Button Primary */
.button--primary {
  background: var(--color-primary);
  box-shadow: var(--shadow-button);
  position: relative;
}

.button--primary::before {
  content: '';
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: var(--radius-md);
  background: var(--gradient-button-primary);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 1;
}

.button--primary span {
  position: relative;
  background: var(--elements-Buttons-Text-default, linear-gradient(180deg, #FFF 29.17%, #999 100%));
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Button Secondary */
.button--secondary {
  background: rgba(16, 16, 16, 0.4);
  backdrop-filter: blur(4px);
  position: relative;
}

.button--secondary::before {
  content: '';
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: var(--radius-md);
  background: var(--gradient-button-secondary);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 1;
}

.button--secondary span {
  position: relative;
  text-shadow: 0px 1px 3px rgba(0, 0, 0, 0.25);
  background: var(--gradient-text);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Button Text */
.button--text {
  padding: 0;
  background: transparent;
}

.button--text span {
  background: var(--gradient-primary);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.button--text:hover {
  transform: translateX(4px);
}

/* Button Icon */
.button--icon {
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 50%;
  position: relative;
  background: transparent;
}

.button--icon::before {
  content: '';
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: 50%;
  background: var(--gradient-button-secondary);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 1;
}

.button__icon,
.button__arrow {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

/* ===== Cards ===== */
.card {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--gradient-glass);
  box-shadow: var(--shadow-card);
}

.card::before {
  content: '';
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: var(--radius-lg);
  background: linear-gradient(153deg, rgba(255, 255, 255, 0.1) 0%, rgba(153, 153, 153, 0.05) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 1;
}

.card__content {
  position: relative;
  padding: var(--spacing-2xl) var(--spacing-lg);
  z-index: 2;
}

/* Card Glass */
.card--glass {
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

/* Card Horizontal */
.card--horizontal .card__content {
  display: flex;
  align-items: center;
  gap: var(--spacing-lg);
  padding: var(--spacing-lg);
}

/* Card Job */
.card--job .card__content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacing-lg);
}

/* Card Form */
.card--form {
  background: var(--gradient-glass-dark);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);

}

.card--form iframe {
    width: 480px;
    min-height: 400px;
    padding: 40px 24px 24px;
}

@media (max-width: 480px) {
    .card--form iframe {
      width: 100%;
      min-height: 450px;
    }
}

.card--form .card__content {
  padding: var(--spacing-2xl) var(--spacing-lg) var(--spacing-lg);
}

/* ===== Badges ===== */
.badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
  background: transparent;
  font-size: var(--font-size-h6);
  font-weight: 500;
  color: var(--color-text-main);
  white-space: nowrap;
  transition: all var(--transition-base);
}

.badge:hover {
  border-color: var(--color-primary);
  color: var(--color-text-white);
}

/* ===== Forms ===== */
.form__group {
  position: relative;
  width: 100%;
}

.form__input,
.form__textarea {
  width: 100%;
  padding: 12px 20px;
  background: rgba(16, 16, 16, 0.5);
  border-radius: var(--radius-md);
  border: none;
  box-shadow: var(--shadow-inset);
  backdrop-filter: blur(3.5px);
  -webkit-backdrop-filter: blur(3.5px);
  font-size: var(--font-size-md);
  color: var(--color-text-white);
  position: relative;
  transition: all var(--transition-base);
}

.form__input::placeholder,
.form__textarea::placeholder {
  color: var(--color-text-tertiary);
}

/*.form__input:focus,*/
/*.form__textarea:focus {*/
/*  outline: none;*/
/*  border: 1px solid var(--color-border);*/
/*  background: rgba(16, 16, 16, 0.8);*/
/*}*/

.form__textarea {
  resize: vertical;
  min-height: 80px;
}

/* Floating Label */
.form__group--floating .form__input {
  border: 1px solid var(--color-border);
  background: rgba(16, 16, 16, 0.8);
}

.form__group--floating .form__label {
  position: absolute;
  top: -11px;
  left: 20px;
  padding: 0 4px;
  background: linear-gradient(180deg, rgba(32, 32, 32, 0) 0%, rgba(16, 16, 16, 1) 0%);
  font-size: var(--font-size-xs);
  opacity: 0.8;
  background: var(--gradient-text-muted);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  z-index: 2;
}

.form__disclaimer {
  font-size: var(--font-size-xs);
  color: var(--color-text-secondary);
  line-height: var(--line-height-normal);
}

/* ===== Section Title ===== */
.section-title {
  font-size: var(--font-size-h2);
  font-weight: 400;
  color: var(--color-text-white);
  line-height: var(--line-height-tight);
}

.section-title--bold {
  font-weight: 700;
}

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

/* ===== Section Divider ===== */
.section-divider {
  width: 100%;
  height: 1px;
  background: url('/assets/line-2-1.svg') center/cover;
}

/* ===== Project Card ===== */
.project-card {
  width: 100%;
  height: 520px;
  border-radius: var(--radius-lg);
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  box-shadow: var(--shadow-card);
  cursor: pointer;
  transition: transform var(--transition-base);
}

.project-card::before {
  content: '';
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: var(--radius-lg);
  background: linear-gradient(153deg, rgba(255, 255, 255, 0.1) 0%, rgba(153, 153, 153, 0.05) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 1;
}

.project-card:hover {
  transform: scale(1.02);
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .button {
    font-size: var(--font-size-sm);
  }

  .card__content {
    padding: var(--spacing-lg) var(--spacing-md);
  }

  .badge {
    padding: 8px 12px;
    font-size: var(--font-size-xs);
  }

  .form__input,
  .form__textarea {
    padding: 10px 16px;
    font-size: var(--font-size-sm);
  }

  .project-card {
    width: 628px;
  }
}
