@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap');

body {
    font-family: 'Inter', 'Segoe UI', Arial, sans-serif;
    background: linear-gradient(120deg, #e0e4fa 0%, #f9fbfd 100%);
    color: #23272f;
    margin: 0;
    padding: 0;
    transition: background 0.6s cubic-bezier(.84,0,.08,1);
    padding-bottom: 0px;
}

header {
    background: #254061;
    color: #fff;
    padding: 1.5em 0;
    box-shadow: 0 4px 16px rgba(30, 60, 90, 0.12);
    transition: box-shadow 0.3s cubic-bezier(.23,1,.32,1);
}

nav {
    text-align: center;
}

nav a {
    color: #fff;
    margin: 0 1.5em;
    text-decoration: none;
    font-weight: 600;
    padding: 0.5em 1.5em;
    border-radius: 5px;
    transition: background 0.25s, color 0.25s;
}

nav a.active,
nav a:hover {
    background: #1e80c1;
    color: #f4f6fb;
}

/* Botón Home inferior con imagen y fundido */
.home-button-wrapper {
    text-align: center;
    margin-top: 2.5em;
    margin-bottom: 4em;
    animation: fadein 1.1s forwards;
    opacity: 0;
}
.home-button {
    display: inline-flex;
    align-items: center;
    gap: 0.6em;
    padding: 0.9em 1.8em;
    border-radius: 999px;
    background: #254061;
    color: #fff;
    text-decoration: none;
    font-weight: 600;
    box-shadow: 0 8px 24px rgba(20, 40, 60, 0.22);
    transition: background 0.22s, transform 0.18s, box-shadow 0.18s, opacity 0.3s;
}
.home-button img {
    width: 22px;
    height: 22px;
    object-fit: contain;
    filter: drop-shadow(0 1px 3px rgba(0,0,0,0.25));
}
.home-button:hover {
    background: #1e80c1;
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(15, 60, 130, 0.28);
}


.footer-bar {
  background: #254061;
  color: #fff;
  width: 100%;
  padding: 0.5em 0 0.5em 0;  /* Más compacto arriba y abajo */
  box-shadow: 0 -4px 24px rgba(30,80,193,0.08);
  animation: fadein 1.2s;
  text-align: center;
}




.footer-bar nav {
    text-align: center;
    margin-bottom: 0.3em;
}

.footer-bar nav a {
    color: #fff;
    margin: 0 1.2em;
    font-weight: 600;
    border-radius: 6px;
    padding: 0.5em 1.2em;
    transition: background 0.22s, color 0.22s;
}

.footer-bar nav a.active,
.footer-bar nav a:hover {
    background: #1e80c1;
}

.footer-copy {
    color: #b3bbce;
    font-size: 0.9em;
    text-align: center;
    margin: 0.2em 0 0.1em 0;
    letter-spacing: 0.04em;
}

.hero {
    background: linear-gradient(90deg,#e4f0ff 0,#f1f4fb 100%);
    padding: 2.2em 0;
    text-align: center;
    border-radius: 14px;
    margin-bottom: 2em;
    opacity: 0;
    animation: fadein 1.2s 0.3s forwards;
}

h1, h2 {
    color: #18568C;
    letter-spacing: 0.03em;
}

.actions-container {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: stretch;
    gap: 2vw;
    max-width: 1000px;
    margin: 0 auto 2.8em auto;
}

.action-card {
    position: relative;
    flex: 1 1 0;
    aspect-ratio: 2/3;
    min-width: 220px;
    max-width: 300px;
    background-size: cover;
    background-position: center;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(21,34,60,0.17);
    text-decoration: none;
    display: flex;
    align-items: flex-end;
    margin-bottom: 0;
    transition: transform 0.17s, box-shadow 0.18s;
}
.action-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(25, 40, 68, 0.52);
    transition: background 0.25s;
}
.action-card:hover {
    transform: scale(1.035) translateY(-6px);
    box-shadow: 0 14px 40px rgba(30,70,170,0.19);
}
.action-card:hover::before {
    background: rgba(37, 64, 97, 0.65);
}
.action-content {
    position: relative;
    z-index: 2;
    padding: 2em 1.2em 1.55em 1.2em;
    width: 100%;
    color: #fff;
    backdrop-filter: blur(1px);
    text-align: left;
}
.action-content h3 {
    margin: 0 0 .6em 0;
    font-size: 1.6em;
    font-weight: 700;
    color: #fff;
    text-shadow: 0 2px 8px #14318280;
    letter-spacing: .015em;
}
.action-content span {
    background: rgba(40,140,220,.15);
    border-radius: 7px;
    padding: .38em 1.4em;
    font-weight: 600;
    font-size: 1.05em;
    color: #f1f6fb;
    box-shadow: 0 0 6px #18568C15;
    transition: background 0.23s;
}
.action-card:hover .action-content span {
    background: rgba(90,180,255,0.23);
}

@media (max-width: 920px) {
    .actions-container {
        flex-direction: column;
        gap: 1.2em;
        align-items: center;
    }
    .action-card {
        min-width: 0;
        max-width: 400px;
        width: 90vw;
        margin-bottom: 1.5em;
    }
}

section {
  max-width: 1200px;      /* más natural */
  width: 90%;             /* adaptable */
  margin: 2em auto; 
  padding: 2em;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 8px 32px rgba(20, 40, 60, 0.16);
}


@keyframes fadein {
    from { opacity: 0; }
    to { opacity: 1; }
}

@media (max-width: 700px) {
    .footer-bar, header { font-size: 0.95em; }
    section { padding: 1.2em; }
}

/* Botones de proyectos */
.btn-projects {
    display: inline-block;
    margin-top: 0.6em;
    padding: 0.7em 1.6em;
    border-radius: 999px;
    background: #254061;
    color: #fff;
    text-decoration: none;
    font-weight: 600;
    box-shadow: 0 6px 18px rgba(20, 40, 60, 0.22);
    transition: background 0.22s, transform 0.18s, box-shadow 0.18s;
}
.btn-projects:hover {
    background: #1e80c1;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(15, 60, 130, 0.25);
}




.mini-projects-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 2em 1em;
  justify-items: center;
  margin: 2em 0 2em 0;
}
.mini-project-card {
  width: 210px;
  height: 300px;
  background-size: cover;
  background-position: center;
  border-radius: 16px;
  box-shadow: 0 4px 22px rgba(21,34,60,0.14);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  margin: 1.25em;
  position: relative;
  overflow: hidden;
  transition: transform 0.13s, box-shadow 0.16s;
}
.mini-project-card:hover {
  transform: scale(1.045) translateY(-2px);
  box-shadow: 0 12px 30px rgba(30,70,150,0.22);
}
.mini-project-overlay {
  background: rgba(30,40,80,0.52);
  backdrop-filter: blur(2px);
  padding: 0.9em 1.2em 0.7em 1.2em;
  border-radius: 0 0 12px 12px;
}
.mini-project-title {
  color: #fff;
  font-size: 1.18em;
  font-weight: 700;
  margin: 0;
  text-shadow: 0 2px 10px #15366055;
  overflow-wrap: anywhere;
}
.mini-project-type {
  background: #346dadf0;
  color: #f1f5fa;
  padding: 0.48em 1em;
  border-radius: 0 0 16px 16px;
  text-align: center;
  font-size: 1.05em;
  font-weight: 600;
  letter-spacing: 0.06em;
  box-shadow: 0 2px 7px #1b346a19;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}
.mini-projects-grid a {
  text-decoration: none;
  display: block;
}
section {
  max-width: 1200px; /* O 100% si prefieres que llene el contenedor */
  margin: 0 auto 2em auto;
  padding: 1.2em;
  word-break: break-word;
  overflow-wrap: anywhere;
  box-sizing: border-box;
}
section p, section h2 {
  margin: 0.8em 0 0.8em 0;
  line-height: 1.5;
}
.action-card-wide {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 360px;    /* Proporción 3:1.5 => 360x180 */
  height: 180px;
  background-size: cover;
  background-position: center;
  border-radius: 18px;
  box-shadow: 0 4px 24px rgba(25,40,80,0.17);
  position: relative;
  text-decoration: none;
  transition: transform 0.14s, box-shadow 0.18s;
  overflow: hidden;
  margin: 1.5em auto;
}

.action-card-wide:hover {
  transform: scale(1.045) translateY(-3px);
  box-shadow: 0 10px 32px rgba(30,70,150,0.28);
}

.action-content-wide {
  background: rgba(22,34,60,0.46);
  padding: 1.3em 2em;
  border-radius: 0 18px 18px 0;
  color: #fff;
  font-family: inherit;
  display: flex;
  flex-direction: column;
  gap: 0.7em;
}

.action-content-wide h3 {
  margin: 0;
  font-size: 1.42em;
  font-weight: 700;
  text-shadow: 0 1px 8px #152a6044;
}

.action-content-wide span {
  font-size: 1.01em;
  font-weight: 500;
  opacity: 0.94;
}







body {
  --sb-track-color: #c7c7c7;
  --sb-thumb-color: #848486;
  --sb-size: 25px;
}

body::-webkit-scrollbar {
  width: var(--sb-size)
}

body::-webkit-scrollbar-track {
  background: var(--sb-track-color);
  border-radius: 1px;
}

body::-webkit-scrollbar-thumb {
  background: var(--sb-thumb-color);
  border-radius: 1px;
  
}

@supports not selector(::-webkit-scrollbar) {
  body {
    scrollbar-color: var(--sb-thumb-color)
                     var(--sb-track-color);
  }
}





.sobre-mi-banner {
    width: 100%;
    height: 330px;            /* altura de la franja */
    overflow: hidden;         /* recorta la imagen */
    border-radius: 12px;      /* bordes redondeados */
    margin-top: 20px;
}

.sobre-mi-banner-botonera {
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: 12px;
    margin-top: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sobre-mi-banner-botonera img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}


.sobre-mi-banner-volantebotonera {
    width: 1520px;
    height: 1373px;
    overflow: hidden;
    border-radius: 12px;
    margin-top: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sobre-mi-banner-apptienda {
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: 12px;
    margin-top: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}


.sobre-mi-banner-ada {
    width: 100%;
    height: 540px;
    overflow: hidden;
    border-radius: 12px;
    margin-top: 20px;
    position: relative;
}

.sobre-mi-banner-ada img {
    width: 100%;
    height: 100%;
    min-width: 100%;
    min-height: 100%;
    object-fit: cover;        /* se ajusta sin deformarse */
    object-position: center;  /* zona visible */
    display: block;
}


.sobre-mi-banner img {
    width: 100%;
    height: 100%;
    object-fit: cover;        /* hace que se vea solo una franja */
    object-position: center;  /* ajusta la zona visible */
    display: block;
}
