/*===== GOOGLE FONTS =====*/ @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap"); /*===== VARIABLES CSS =====*/ :root { --header-height: 3rem; /*========== Colors ==========*/ --title-color: #0b0a0a; --text-color: #403a3a; --text-color-light: #707070; --container-color: #fafafa; --container-color-alt: #f0efef; --body-color: #fcfcfc; /*========== Font and typography ==========*/ --body-font: "Poppins", sans-serif; --h1-font-size: 1.5rem; --h2-font-size: 1.25rem; --h3-font-size: 1rem; --normal-font-size: 0.938rem; --small-font-size: 0.875rem; --smaller-font-size: 0.813rem; /*========== Font weight ==========*/ --font-medium: 500; --font-semi-bold: 600; /*========== Margenes ==========*/ --mb-1: 0.5rem; --mb-2: 1rem; --mb-3: 1.5rem; /*========== z index ==========*/ --z-tooltip: 10; --z-fixed: 100; } /*========== BASE ==========*/ /*========== Variables Dark theme ==========*/ body.dark-theme { --title-color: #f2f2f2; --text-color: #bfbfbf; --container-color: #212121; --container-color-alt: #181616; --body-color: #2b2b2b; } /*========== Button Dark/Light ==========*/ .change-theme { position: absolute; right: 0; top: 2.2rem; display: flex; color: var(--text-color); font-size: 1.2rem; cursor: pointer; } .change-theme:hover { color: var(--title-color); } /*========== Font size variables to scale cv ==========*/ body.scale-cv { --h1-font-size: 0.938rem; --h2-font-size: 0.938rem; --h3-font-size: 0.875rem; --normal-font-size: 0.813rem; --small-font-size: 0.75rem; --smaller-font-size: 0.688rem; } /*========== Generate PDF button ==========*/ .generate-pdf { display: none; position: absolute; top: 2.2rem; left: 0; font-size: 1.2rem; color: var(--text-color); cursor: pointer; } .generate-pdf:hover { color: var(--title-color); } /*========== Classes modified to reduce size and print on A4 sheet ==========*/ .scale-cv .change-theme, .scale-cv .generate-pdf { display: none; } .scale-cv .bd-container { max-width: 595px; } .scale-cv .section { padding: 1.5rem 0 0.8rem; } .scale-cv .section-title { margin-bottom: 0.75rem; } .scale-cv .resume__left, .scale-cv .resume__right { padding: 0 1rem; } .scale-cv .home-img { width: 90px; height: 90px; } .scale-cv .home__container { gap: 1.5rem; } .scale-cv .home__data { gap: 0.25rem; } .scale-cv .home__address, .scale-cv .social__container { gap: 0.75rem; } .scale-cv .home__icon, .scale-cv .social__icon, .scale-cv .interests__icon { font-size: 1rem; } .scale-cv .education__container, .scale-cv .experience__company, .scale-cv .certificate__container { gap: 1rem; } .scale-cv .education__time, .scale-cv .experience__time { padding-right: 0.5rem; } .scale-cv .education__rounder, .scale-cv .experience__rounder { width: 11px; height: 11px; margin-top: 0.22rem; } .scale-cv .education__line, .scale-cv .experience__line { width: 1px; height: 110%; transform: translate(5px, 0); } .scale-cv .education__data, .scale-cv .experience__data { gap: 0.25rem; } .scale-cv .skills__name { margin-bottom: var(--mb-1); } .scale-cv .interests__container { column-gap: 2.5rem; } body { margin: 0 0 var(--header-height); padding: 0; font-family: var(--body-font); font-size: var(--normal-font-size); background-color: var(--body-color); color: var(--text-color); } h1, h2, h3, ul, p { margin: 0; } h1, h2, h3 { color: var(--title-color); font-weight: var(--font-medium); } ul { padding: 0; list-style: none; } a { text-decoration: none; } img { max-width: 100%; height: auto; } /*========== CLASS CSS ==========*/ .section { padding: 1.5rem 0; } .section-title { font-size: var(--h2-font-size); color: var(--title-color); font-weight: var(--font-semi-bold); text-transform: uppercase; letter-spacing: 0.35rem; text-align: center; margin-bottom: var(--mb-3); } /*========== LAYOUT ==========*/ .bd-container { max-width: 968px; width: calc(100% - 3rem); margin-left: var(--mb-3); margin-right: var(--mb-3); } .bd-grid { display: grid; gap: 1.5rem; } .l-header { width: 100%; position: fixed; bottom: 0; left: 0; z-index: var(--z-fixed); background-color: var(--body-color); box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.1); transition: 0.3s; } /*========== NAV ==========*/ .nav { height: var(--header-height); display: flex; justify-content: space-between; align-items: center; } @media screen and (max-width: 968px) { .nav__menu { position: fixed; bottom: -100%; left: 0; width: 100%; padding: 2rem 0rem; background-color: var(--body-color); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); border-radius: 1rem 1rem 0 0; z-index: var(--z-fixed); transition: 0.3s; } } .nav__logo, .nav__toggle { color: var(--title-color); font-weight: var(--font-medium); } .nav__toggle { font-size: 1.2rem; cursor: pointer; } .nav__item { text-align: center; } .nav__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; } .nav__link { display: flex; flex-direction: column; font-size: var(--smaller-font-size); color: var(--text-color-light); font-weight: var(--font-medium); } .nav__link:hover { color: var(--title-color); } .nav__icon { font-size: 1.2rem; margin-bottom: var(--mb-1); } /* Show menu */ .show-menu { bottom: var(--header-height); } /* Active menu link */ .active-link { color: var(--title-color); } /*========== HOME ==========*/ .home { position: relative; } .home__container { gap: 3rem; } .home__data { gap: 0.5rem; text-align: center; } .home__img { width: 120px; height: 120px; border-radius: 50%; justify-self: center; margin-bottom: var(--mb-1); } .home__title { font-size: var(--h1-font-size); } .home__profession { font-size: var(--normal-font-size); margin-bottom: var(--mb-1); } .home__address { gap: 1rem; } .home__information { display: flex; align-items: center; font-size: var(--small-font-size); } .home__icon { font-size: 1.2rem; margin-right: 0.25rem; } .home__button-movil { display: inline-block; border: 2px solid var(--text-color); color: var(--title-color); padding: 1rem 2rem; border-radius: 0.25rem; transition: 0.3s; font-weight: var(--font-medium); margin-top: var(--mb-3); } .home__button-movil:hover { background-color: var(--text-color); color: var(--container-color); } .home__button-contact { display: inline-block; border: 2px solid var(--text-color); color: var(--title-color); padding: 1rem 1.6rem; border-radius: 0.25rem; transition: 0.3s; font-weight: var(--font-medium); margin-top: var(--mb-3); } .home__button-contact:hover { background-color: var(--text-color); color: var(--container-color); } .information__icon, .back__icon { font-size: 1.5rem; color: var(--text-color); } .information__icon:hover, .back__icon:hover { color: var(--title-color); } .more__information, .back__home { font-size: var(--h3-font-size); color: var(--text-color); font-weight: var(--font-medium); display: flex; gap: 0.5rem; } .back__home { margin-top: 1.5rem; } .more__information:hover, .back__home:hover { color: var(--title-color); } /*========== SOCIAL ==========*/ .social__container { grid-template-columns: max-content; gap: 1rem; } .social__link { display: inline-flex; align-items: center; font-size: var(--small-font-size); color: var(--text-color); } .social__link:hover { color: var(--title-color); } .social__icon { font-size: 1.2rem; margin-right: 0.25rem; } /*========== PROFILE ==========*/ .profile__description { text-align: center; } /*========== EDUCATION AND EXPERIENCE ==========*/ .education__content, .experience__content { display: flex; } .education__time, .experience__time { padding-right: 1rem; } .education__rounder, .experience__rounder { position: relative; display: block; width: 16px; height: 16px; background-color: var(--text-color-light); border-radius: 50%; margin-top: 0.25rem; } .education__line, .experience__line { display: block; width: 2px; height: 110%; background-color: var(--text-color-light); transform: translate(7px, 0); } .education__data, .experience__data { gap: 0.5rem; } .education__title, .experience__title { font-size: var(--h3-font-size); } .education__studies, .experience__company { font-size: var(--small-font-size); color: var(--title-color); } .education__year { font-size: var(--smaller-font-size); } /*========== SKILLS AND LANGUAGES ==========*/ .skills__content, .languages__content { grid-template-columns: repeat(2, 1fr); gap: 0; } .skills__name, .languages__name { display: flex; align-items: center; margin-bottom: var(--mb-3); } .skills__circle, .languages__circle { display: inline-block; width: 5px; height: 5px; background-color: var(--text-color); border-radius: 50%; margin-right: 0.75rem; } /*========== CERTIFICATES ==========*/ .certificate__title { font-size: var(--h3-font-size); margin-bottom: var(--mb-1); } /*========== REFERENCES ==========*/ .references__content { gap: 0.25rem; } .references__subtitle { color: var(--text-color-light); } .references__subtitle, .references__contact { font-size: var(--smaller-font-size); } .references__title { font-size: var(--h3-font-size); } /*========== INTERESTS ==========*/ .interests__container { display: grid; /* Ensure the grid display is set */ grid-template-columns: repeat(4, 1fr); /* Keep 4 columns with equal widths */ gap: 1.5rem; /* Adjust gap if needed; this is value you can tweak */ margin-top: var(--mb-2); } .interests__content { display: flex; flex-direction: column; align-items: center; /* You can add a fixed width here if necessary to avoid wrapping, but typically it's better to avoid fixed widths */ } .interests__icon { font-size: 1.5rem; color: var(--text-color-light); margin-bottom: 0.25rem; } /*========== CONTACT ==========*/ .contact__container { display: flex; justify-content: center; flex-direction: column; } .contact__info { display: flex; flex-direction: row; gap: 3rem; align-items: center; font-size: var(--h3-font-size); color: var(--text-color); font-weight: var(--font-medium); display: flex; gap: 2rem; } .contact__icon { font-size: 1.5rem; color: var(--text-color); } .contact__phone, .contact__email { font-size: var(--h3-font-size); color: var(--text-color); font-weight: var(--font-medium); gap: 0.5rem; } .contact__form { width: 100%; max-width: 500px; padding: 3rem; background-color: #f1f1f1; border-radius: 10px; } .contact__content { display: flex; flex-direction: row; } .contact__inputs { display: grid; gap: 1rem; } .contact__input, .contact__textarea { width: 100%; padding: 0.75rem; border: none; background-color: #e5e5e5; border-radius: 5px; } .contact__textarea { resize: none; height: 150px; margin-top: 1rem; } .contact__button { display: block; width: 100%; padding: 0.75rem; margin-top: 1.5rem; border: none; background-color: #222; color: #fff; font-size: 1.2rem; border-radius: 5px; cursor: pointer; transition: all 0.3s ease; } .contact__button:hover { background-color: #555; } /* Scroll top */ .scrolltop { position: fixed; right: 1rem; bottom: -20%; display: flex; justify-content: center; align-items: center; padding: 0.3rem; background-color: var(--container-color-alt); border-radius: 0.4rem; z-index: var(--z-tooltip); transition: 0.4s; visibility: hidden; } .scrolltop__icon { font-size: 1.2rem; color: var(--text-color); } .show-scroll { visibility: visible; bottom: 5rem; } /*========== CONFIRMATION MESSAGE ==========*/ .confirmation { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100vh; } .confirmation h2 { font-size: var(--h1-font-size); color: var(--title-color); margin-bottom: var(--mb-2); } .confirmation p { font-size: 1.5rem; margin-bottom: 2rem; } #countdown { font-size: 2rem; margin-bottom: 2rem; } /*========== MEDIA QUERIES ==========*/ /* For small devices, menu two columns */ @media screen and (max-width: 320px) { .nav__list { grid-template-columns: repeat(2, 1fr); gap: 1rem 0.5rem; } } /* Classes modified for large screen size */ @media screen and (min-width: 968px) { body { margin: 3rem 0; } .bd-container { margin-left: auto; margin-right: auto; } .home__button-contact { margin-top: 0; } .l-header, .scrolltop { display: none; } .resume { display: grid; grid-template-columns: 0.5fr 1fr; background-color: var(--container-color); box-shadow: 0 0 8px rgba(13, 12, 12, 15); } .resume__left { background-color: var(--container-color-alt); } .resume__left, .resume__right { padding: 0 1.5rem; } .generate-pdf { display: inline-block; } .section-title, .profile__description { text-align: initial; } .home__container { gap: 1.5rem; } .home__button-movil { display: none; } .references__container { grid-template-columns: repeat(2, 1fr); } .languages__content { grid-template-columns: repeat(3, max-content); column-gap: 3.5rem; } .interests__container { grid-template-columns: repeat(4, max-content); column-gap: 3.5rem; } }