/******************************
*   Tipografias
******************************/
@import url('all.css');
@import url('typo.css');

:root {
    /* Colores */
    --clr-black: 0, 0, 0; /* #000000 */

    --clr-white: 255, 255, 255; /* #FFFFFF */

    --clr--gray-lightest: 250, 250, 250; /* #FAFAFA */
    --clr--gray-light: 237, 237, 237; /* #EDEDED */

    --clr-green-lightest: 221, 244, 224; /* #DDF4E0 */
    --clr-green-lighter: 192, 239, 199; /* #C0EFC7 */
    --clr-green-light: 160, 233, 172;   /* #A0E9AC */
    --clr-green-bright: 37, 211, 102;   /* #25D366 */
    --clr-green-medium: 28, 181, 63;    /* #1CB53F */
    --clr-green-dark: 13, 46, 21;       /* #0D2E15 */

    --clr-blue-light: 163, 216, 233;    /* #A3D8E9 */
    --clr-blue-medium: 83, 125, 219;    /* #537DDB */
    --clr-blue-dark: 27, 66, 152;       /* #1B4298 */

    --clr-red: 206, 30, 30;       /* #1B4298 */

    --gradient-l: linear-gradient(to bottom, rgb(var(--clr-white)) 60%, rgb(var(--clr-green-lighter)) 100%);
    --gradient-d: linear-gradient(to bottom, rgb(var(--clr-green-light)) 0%, rgb(var(--clr-green-lighter)) 60%, rgb(var(--clr-green-medium)) 100%);

    --gradient-green: linear-gradient(to left, rgb(var(--clr-green-medium)) 0%, rgb(var(--clr-green-bright)) 60%, rgb(var(--clr-green-medium)) 100%);
    --gradient-blue: linear-gradient(to left, rgb(var(--clr-blue-dark)) 0%, rgb(var(--clr-blue-medium)) 60%, rgb(var(--clr-blue-dark)) 100%);

    /* Tipografia */
    --font: 'Montserrat', sans-serif;
    --fw-m: 400;
    --fw-r: 500;
    --fw-b: 700;

    --fs-n: normal;
    --fs-i: italic;

    /* Interlineado */
    --lh-base: 1.4;
    --lh-text: 1.6;
    --lh-heading: 1.2;

    /* Tamaños */
    --size-2: 0.125rem;   /* 2px */
    --size-4: 0.25rem;    /* 4px */
    --size-6: 0.375rem;   /* 6px */
    --size-8: 0.5rem;     /* 8px */
    --size-10: 0.625rem;  /* 10px */
    --size-12: 0.75rem;   /* 12px */

    --size-14: 0.875rem;  /* 14px */
    --size-16: 1rem;      /* 16px */
    --size-18: 1.125rem;  /* 18px */
    --size-20: 1.25rem;   /* 20px */
    --size-24: 1.5rem;    /* 24px */
    --size-28: 1.75rem;   /* 28px */
    --size-32: 2rem;      /* 32px */

    --size-40: 2.5rem;    /* 40px */
    --size-48: 3rem;      /* 48px */
    --size-56: 3.5rem;    /* 56px */
    --size-60: 3.75rem;   /* 60px */
    --size-64: 4rem;      /* 64px */
    --size-72: 4.5rem;    /* 72px */
    --size-80: 5rem;      /* 80px */
    --size-100: 6.25rem;  /* 100px */
}


::selection {
    color: rgb(var(--clr-white));
    background: rgba(var(--clr-green-dark), .6);
}
::-moz-selection {
    color: rgb(var(--clr-white));
    background: rgba(var(--clr-green-dark), .6);
}
::-webkit-selection {
    color: rgb(var(--clr-white));
    background: rgba(var(--clr-green-dark), .6);
}

/******************************
*   Reset General
******************************/
*,
*::before,
*::after { box-sizing: border-box; }
* {
    margin: 0;
    padding: 0;
}
html:focus-within { scroll-behavior: smooth; }
html {
    scroll-behavior: smooth;
    scroll-padding: 70px;
}
body {
    min-height: 100dvh;
    min-height: 100vh;
    font-family: var(--font);
    font-weight: var(--fw-r);
    font-style: var(--fs-n);
    line-height: 1.4;
    font-size: var(--size-16);
    color: rgb(var(--clr-green-dark));
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
}
body > * { position: relative; }

body::before,
body::after {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100dvh;
    z-index: -1;
}
body::before { background: var(--gradient-l); }

/*------ Media ------*/
img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
    height: auto;
}
figure {
    pointer-events: none;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
figure img { margin: 0 auto; }

/*------ Tipografia ------*/
input,
button,
textarea,
select {
    font: inherit;
    color: inherit;
}
h1, h2, h3, h4, h5, h6 {
    overflow-wrap: break-word;
    margin: 0;
}

/*------ Listas ------*/
ul,
ol {
    margin: 0;
    padding: 0;
    padding-inline-start: var(--size-20);
}
li + li { margin-top: var(--size-20); }
ul > li::marker,
ul > li > ul > li::marker { color: rgb(var(--clr-green-medium)); }

/*------ Links ------*/
a, a:link, a:hover, a:visited {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    -webkit-transition: all 0.3s ease-out;
    -moz-transition: all 0.3s ease-out;
    -ms-transition: all 0.3s ease-out;
    -o-transition: all 0.3s ease-out;
    transition: all 0.3s ease-out;
}

/******************************
*   Elementos de formulario
******************************/
input,
select,
textarea {
    display: block;
    width: 100%;
    padding: var(--size-12);
    color: rgb(var(--oscuro));
    background: rgb(var(--clr-white));
    border: 1px solid rgb(var(--clr--gray-light));
    border-radius: var(--size-10);
    -moz-appearance: none;
    -webkit-appearance: none;
    -webkit-transition: all 0.3s ease-out;
    -moz-transition: all 0.3s ease-out;
    -ms-transition: all 0.3s ease-out;
    -o-transition: all 0.3s ease-out;
    transition: all 0.3s ease-out;
}
/* Botones */
button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
    background: none;
    border: none;
    cursor: pointer;
}
textarea {
    width: 100%;
    max-width: 100%;
    min-width: 100%;
    resize: vertical;
}
/* Checkbox / radio */
input[type="checkbox"],
input[type="radio"] {
    accent-color: currentColor;
}

/* Placeholder */
::placeholder {
    color: inherit;
    opacity: 0.6;
}

/******************************
*   Accesibilidad
******************************/
input:focus,
input:focus-visible,
input:focus-within,
input:target {
    outline: none;
    border: 1px solid rgb(var(--clr-green-medium));
    box-shadow: 0 0 8px 3px rgba(var(--clr-green-lighter), .3);
}


/* Change autocomplete styles in WebKit */
input:-webkit-autofill,
input:-webkit-autofill:hover, 
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus {
  -webkit-text-fill-color: ;
  -webkit-box-shadow: 0 0 0px 1000px transparent inset;
  transition: background-color 5000s ease-in-out 0s;
}
input::placeholder,
textarea::placeholder {}


p { margin: 0; }
* + p,
p + *,
* + ol,
* + ul,
h2 + div,
h3 + div,
h4 + div,
h5 + div,
h6 + div { margin-top: var(--size-20); }
ol + *,
ul + *,
* + h2,
* + h3,
* + h4,
* + h5,
* + h6 { margin-top: var(--size-40); }

/******************************
*   Container
******************************/
.container {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding-right: 20px;
    padding-left: 20px;
}

/* sm */
@media (min-width: 576px) { .container { max-width: 540px; } }

/* md */
@media (min-width: 768px) { .container { max-width: 720px; } }

/* lg */
@media (min-width: 992px) { .container { max-width: 960px; } }

/* xl */
@media (min-width: 1200px) { /* .container { max-width: 1140px; } */ }

/* xxl */
@media (min-width: 1400px) { /* .container { max-width: 1320px; } */ }

/******************************
*   Loader
******************************/
.loader {
    position: fixed;
    min-height: 100dvh;
    min-height: 100vh;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--gradient-l);
    z-index: 1000;
}
.loader::after {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100dvh;
    background-image: url('../img/letter-x.svg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    pointer-events: none;
    opacity: .03;
}
.loader section {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.loader .logo {
    max-width: 240px;
    width: 80%;
    margin-left: auto;
    margin-right: auto;
}
.loader .logo + * { margin-top: var(--size-40); }
.cont__spiner { text-align: center; }
.spiner {
    width: 48px;
    height: 48px;
    border: 5px dotted rgb(var(--clr-green-medium));
    border-radius: 50%;
    display: inline-block;
    position: relative;
    box-sizing: border-box;
    animation: rotation 8s linear infinite;
}

@keyframes rotation {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
} 

/******************************
*   Login
******************************/
.auth__login::before { background: var(--gradient-d); }
.auth__login::after {
    background-image: url('../img/letter-x.svg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    pointer-events: none;
    opacity: .1;
}

/******************************
*   General
******************************/
main {
    min-height: auto;
    position: relative;
}
main > section {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--size-32);
    padding: var(--size-32) 0;
    min-height: 100dvh;
    min-height: 100vh;
}

/* Header section */
.head__sect + *,
* + .head__sect { margin-top: var(--size-40); }
.head__sect {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}
.head__sect h1 { font-size: var(--size-20); }

.cont__countries {
    max-width: 500px;
    margin-right: auto;
    margin-left: auto;
    display: flex;
    flex-direction: column;
    gap: var(--size-16);
}
.countrie {
    font-weight: var(--fw-b);
    border: 1px solid rgb(var(--clr-green-bright));
    border-radius: var(--size-10);
    background: rgba(var(--clr-white), .3);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    will-change: filter;
    position: relative;
}
.countrie::before {
    /* content: ''; */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    background-image: linear-gradient(90deg,
        rgba(var(--clr-green-bright), .0) 0%,
        rgba(var(--clr-green-bright), .5) 50%,
        rgba(var(--clr-green-bright), .0) 100%);
    -webkit-transition: all 0.3s ease-out;
    -moz-transition: all 0.3s ease-out;
    -ms-transition: all 0.3s ease-out;
    -o-transition: all 0.3s ease-out;
    transition: all 0.3s ease-out;
    -webkit-transform: scaleX(0);
    -moz-transform: scaleX(0);
    -ms-transform: scaleX(0);
    -o-transform: scaleX(0);
    transform: scaleX(0);
    will-change: filter;
}
.countrie:hover::before {
    opacity: 1;
    -webkit-transform: scaleX(1);
    -moz-transform: scaleX(1);
    -ms-transform: scaleX(1);
    -o-transform: scaleX(1);
    transform: scaleX(1);
}
.countrie a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--size-10) var(--size-16);
}
.countrie a span { font-size: var(--size-18); }
.countrie a figure { width: 50px; }

.countrie a figure {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    overflow: hidden;
}
.countrie a figure img {
    object-fit: cover;
    object-position: center;
    width: 100%;
    height: 100%;
}


/******************************
*   Mobile
******************************/
/* sm */
@media (max-width: 575px) {  }
@media (min-width: 576px) {  }
@media (min-width : 576px) and (max-width : 767px) {  }

/* md */
@media (max-width: 767px) { }
@media (min-width: 768px) { }
@media (min-width : 768px) and (max-width : 991px) {  }

/* lg */
@media (max-width: 991px) { }
@media (min-width: 992px) { }
@media (min-width : 992px) and (max-width : 1199px) {  }

/* xl */
@media (max-width: 1199px) { }
@media (min-width: 1200px) { }
@media (min-width : 1200px) and (max-width : 1399px) {  }

/* xxl */
@media (min-width: 1400px) { }



header ul,
footer ul,
header ol,
footer ol {
    padding-inline-start: 0;
    list-style: none;
}
header li,
footer li,
header li + li,
footer li + li { margin-top: 0; }

/******************************
*   Footer
******************************/
.footer {
    text-align: center;
    font-size: var(--size-12);
    padding: var(--size-20) 0;
}
/* sm */
@media (max-width: 575px) {  }
@media (min-width: 576px) {  }
@media (min-width : 576px) and (max-width : 767px) {  }

/* md */
@media (max-width: 767px) { }
@media (min-width: 768px) {
.footer { font-size: var(--size-14); }
}
@media (min-width : 768px) and (max-width : 991px) {  }

/* lg */
@media (max-width: 991px) { }
@media (min-width: 992px) { }
@media (min-width : 992px) and (max-width : 1199px) {  }

/* xl */
@media (max-width: 1199px) { }
@media (min-width: 1200px) { }
@media (min-width : 1200px) and (max-width : 1399px) {  }

/* xxl */
@media (min-width: 1400px) { }
