@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600;700&display=swap');

/*  Fonts  */
@font-face {
  font-family: 'CircularStd';
  src: url('../public/fonts/CircularStd-Book.otf') format('opentype');
  font-weight: 300 400;
  font-style: normal;
}

@font-face {
  font-family: 'CircularStd';
  src: url('../public/fonts/CircularStd-Medium.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: 'CircularStd';
  src: url('../public/fonts/CircularStd-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: 'CircularStd';
  src: url('../public/fonts/CircularStd-Black.ttf') format('truetype');
  font-weight: 900;
  font-style: normal;
}

@font-face {
  font-family: 'BetterDay';
  src: url('../public/fonts/BetterDay.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
}

/*  Variables  */
:root {
  --color-dark-blue:  #0e1683;
  --color-light-blue: #2976e3;
  --color-grey:       #767676;
  --color-nav-text:   #254168;
  --color-hover:      #EFEFEF;

  --font-primary:  'CircularStd', sans-serif;
  --font-subtitle: 'BetterDay', sans-serif;
}

/*  Reset  */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-primary);
  color: var(--color-dark-blue);
  background-color: #ffffff;
  -webkit-font-smoothing: antialiased;
}

img {
  display: block;
  max-width: 100%;
}

a {
  text-decoration: none;
  color: inherit;
}

ul {
  list-style: none;
}

/*  Animation base  */
.anim-hidden {
  opacity: 0;
  will-change: opacity, transform;
}

/* 
   CTA Button Component
   Usage: .cta-btn + .cta-btn--dark or .cta-btn--light
   used in: home, diferencial, integral, action n form
*/
.cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  text-decoration: none;
  font-family: var(--font-primary);
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  border: none;
  transition: opacity 0.2s ease;
  background: transparent;
}

.cta-btn:hover {
  opacity: 0.85;
}

.cta-btn__label {
  padding: 0 1.25rem;
  height: 40px;
  display: flex;
  align-items: center;
  border-radius: 999px;
}

.cta-btn__icon {
  width: 50px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 999px;
}

.cta-btn__icon i {
  width: 18px;
  height: 18px;
}

/* Dark variant: dark blue bg, white text */
.cta-btn--dark .cta-btn__label {
  background-color: var(--color-dark-blue);
  color: #ffffff;
}

.cta-btn--dark .cta-btn__icon {
  background-color: #0e1683;
  color: #ffffff;
}

/* Light variant: white bg, dark blue text */
.cta-btn--light .cta-btn__label {
  background-color: #ffffff;
  color: var(--color-dark-blue);
}

.cta-btn--light .cta-btn__icon {
  background-color: #ffffff;
  color: var(--color-dark-blue);
}

/*
   Social Link Button Component
   Usage: .social-btn + .social-btn--dark
   Used in: footer, form
*/
.social-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.05rem;
  text-decoration: none;
  font-family: 'DM Sans', sans-serif;
  font-weight: 500;
  cursor: pointer;
  border: none;
  background: transparent;
  transition: opacity 0.2s ease;
}

.social-btn:hover {
  opacity: 0.85;
}

.social-btn__label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0 1rem;
  height: 40px;
  border-radius: 999px;
  font-size: 0.9rem;
  min-width: 130px;
}

.social-btn__icon {
  width: 50px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 999px;
}

.social-btn__icon i,
.social-btn__icon img {
  width: 18px;
  height: 18px;
}

.social-btn__label img {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.social-btn__label i {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

/* Dark variant */
.social-btn--dark .social-btn__label {
  background-color: var(--color-dark-blue);
  color: #ffffff;
}

.social-btn--dark .social-btn__icon {
  background-color: #0e1683;
  color: #ffffff;
}

/* Form variant — slightly bigger */
.social-btn--form .social-btn__label {
  height: 44px;
  font-size: 1rem;
  padding: 0 1.25rem;
}

.social-btn--form .social-btn__icon {
  width: 44px;
  height: 44px;
}