/* Ajustes de identidad aplicados gradualmente a partir de la referencia visual. */
.photo-slot::after { pointer-events: none; }
.photo-slot img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-photo { background: #dfe8ef; }
.hero-photo img { object-position: 60% center; }
.about-photo img { object-position: 48% center; }
.trajectory-photo img { object-position: center; }
.conviction-photo img { object-position: 45% center; }
.brand-logo { display: block; width: 126px; height: auto; }
.footer-brand-logo { display: block; width: 155px; height: auto; }
@media (max-width: 560px) { .brand-logo { width: 108px; } }
.academic-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.diploma-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.service-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.socials, .footer-socials { gap: 1rem; }
.socials a, .footer-socials a { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; transition: transform .2s ease, background .2s ease; }
.socials a { color: var(--blue); background: #eef6fd; }
.footer-socials a { color: #fff; background: rgba(255,255,255,.12); }
.socials a:hover, .socials a:focus, .footer-socials a:hover, .footer-socials a:focus { transform: translateY(-3px); background: var(--blue); color: #fff; }
.socials svg, .footer-socials svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.socials svg .dot { fill: currentColor; stroke: none; }

/* Preserva las cabezas en los recortes de fotos verticales. */
.hero-photo img { object-position: 58% top; }
.about-photo img { object-position: 48% top; }

.principles article, .principles p { text-align: center !important; }

/* Desvanecidos: integran cada imagen al fondo y conducen hacia el texto. */
.photo-slot::after { display: block; z-index: 1; pointer-events: none; }
.hero-photo::after { background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,.82) 7%, rgba(255,255,255,0) 33%); }
.about-photo::after, .conviction-photo::after { background: linear-gradient(270deg, #fff 0%, rgba(255,255,255,.86) 8%, rgba(255,255,255,0) 34%); }
.trajectory-photo::after { background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,.82) 8%, rgba(255,255,255,0) 34%); }
.diploma-image, .service-image { position: relative; }
.diploma-image::after, .service-image::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at center, transparent 56%, rgba(255,255,255,.38) 83%, rgba(255,255,255,.88) 100%); }
.service-image::after { background: linear-gradient(180deg, rgba(255,255,255,.12), transparent 50%, rgba(255,255,255,.42)); }

/* Lectura: Century Gothic y escala más cómoda para todo texto no titular. */
body, .button, .main-nav > a, .eyebrow, .card-label, .lead, .section-copy p, .principles p, .education-card p, .diploma-grid h3, .service-card h3, .contact-question, .socials a, .footer-socials a, .footer-top p, .footer-bottom { font-family: 'Century Gothic', CenturyGothic, Arial, sans-serif; }
body { font-size: 17px; }
.main-nav > a { font-size: .78rem; }
.eyebrow, .card-label { font-size: .71rem; }
.lead { font-size: .98rem; line-height: 1.76; }
.button { font-size: .78rem; }
.section-copy p { font-size: .95rem; line-height: 1.78; }
.principles p { font-size: .88rem; }
.education-card p { font-size: .84rem; }
.diploma-grid h3 { font-size: .82rem; }
.service-card h3 { font-size: 1rem; }
.contact-question { font-size: 1rem; }
.footer-top p, .footer-bottom { font-size: .76rem; }
@media (max-width: 860px) { .main-nav > a { font-size: .82rem; } }

.principles .number { display: none; }

/* Hero: degradado visible hacia el bloque de texto de la izquierda. */
.hero-photo img { z-index: 0; }
.hero-photo::before { content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,.98) 7%, rgba(255,255,255,.72) 18%, rgba(255,255,255,.25) 38%, rgba(255,255,255,0) 57%); }

/* Radio leve, estilo etiqueta: elegante sin suavizar demasiado la composición. */
.photo-slot { border-radius: 8px; }
.service-card { border-radius: 8px; }
.diploma-image { border-radius: 9px; }

/* Escala definitiva de lectura: Century Gothic visible, no microtipografía. */
body { font-family: 'Century Gothic', CenturyGothic, Arial, sans-serif; font-size: 18px; }
.main-nav > a { font-family: 'Century Gothic', CenturyGothic, Arial, sans-serif; font-size: .86rem; }
.eyebrow, .card-label { font-size: .76rem; letter-spacing: .22em; }
.lead { font-size: 1.05rem; line-height: 1.8; }
.button { font-family: 'Century Gothic', CenturyGothic, Arial, sans-serif; font-size: .84rem; }
.section-copy p { font-size: 1rem; line-height: 1.82; }
.principles p { font-size: .94rem; line-height: 1.72; }
.education-card p { font-size: .9rem; line-height: 1.7; }
.diploma-grid h3 { font-family: 'Century Gothic', CenturyGothic, Arial, sans-serif; font-size: .88rem; }
.service-card h3 { font-size: 1.08rem; }
.intro, .contact-question { font-size: 1rem; }
.footer-top p, .footer-bottom { font-size: .82rem; }
@media (max-width: 860px) { .main-nav > a { font-size: .9rem; } }

/* Los iconos ya incluyen su propio fondo suave: evitar un segundo recuadro. */
.diploma-image { display: block; width: 94px !important; height: 94px !important; min-width: 94px; background: transparent; overflow: hidden; }
.diploma-image::after { display: none; }
.diploma-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 560px) { .diploma-image { width: 82px !important; height: 82px !important; min-width: 82px; } }

/* Foto principal: radio premium claramente perceptible en imagen y degradado. */
.hero-photo { border-radius: 16px !important; overflow: hidden !important; isolation: isolate; box-shadow: 0 12px 28px rgba(8,43,92,.08); }
.hero-photo img, .hero-photo::before, .hero-photo::after { border-radius: inherit; }

/* Segunda escala de lectura: mayor presencia para todo texto auxiliar. */
body { font-size: 20px; }
.main-nav > a { font-size: .94rem; }
.eyebrow, .card-label { font-size: .8rem; }
.lead { font-size: 1.13rem; }
.button { font-size: .92rem; }
.section-copy p { font-size: 1.08rem; line-height: 1.84; }
.principles p { font-size: 1rem; }
.education-card p { font-size: .98rem; }
.diploma-grid h3 { font-size: .95rem; }
.service-card h3 { font-size: 1.16rem; }
.intro, .contact-question { font-size: 1.08rem; }
.footer-top p, .footer-bottom { font-size: .9rem; }
@media (max-width: 860px) { body { font-size: 18px; } .main-nav > a { font-size: .96rem; } }

/* Tamaños explícitos para evitar que reglas previas reduzcan el texto. */
.main-nav > a { font-family: 'Century Gothic', Arial, sans-serif !important; font-size: 16px !important; }
.eyebrow, .card-label { font-size: 13px !important; }
.lead { font-size: 20px !important; }
.section-copy p, .principles p, .education-card p, .intro, .contact-question { font-family: 'Century Gothic', Arial, sans-serif !important; font-size: 19px !important; }
.button { font-size: 16px !important; }
.diploma-grid h3 { font-size: 16px !important; }
.service-card h3 { font-size: 18px !important; }
.footer-top p, .footer-bottom { font-size: 15px !important; }
@media (max-width: 860px) {
  .lead { font-size: 18px !important; }
  .section-copy p, .principles p, .education-card p, .intro, .contact-question { font-size: 17px !important; }
}

/* Títulos: reducir un paso para equilibrarlos con la nueva escala de lectura. */
.hero h1 { font-size: clamp(2.55rem, 4vw, 4.05rem); }
.section-copy h2, .section-heading h2 { font-size: clamp(1.85rem, 2.9vw, 3.05rem); }
.conviction-copy h2 { font-size: clamp(1.85rem, 2.9vw, 3.05rem); }
.conviction-copy > p:last-child { font-size: clamp(1.45rem, 2.1vw, 2.15rem); }
.contact h2 { font-size: clamp(2.7rem, 4.2vw, 4rem); }

/* Reducción visible y prioritaria de títulos principales. */
.hero h1 { font-size: clamp(42px, 3.5vw, 56px) !important; }
.section-copy h2, .section-heading h2, .conviction-copy h2 { font-size: clamp(32px, 2.55vw, 42px) !important; }
.conviction-copy > p:last-child { font-size: clamp(25px, 1.85vw, 32px) !important; }
.contact h2 { font-size: clamp(44px, 3.7vw, 54px) !important; }
@media (max-width: 860px) {
  .hero h1 { font-size: 42px !important; }
  .section-copy h2, .section-heading h2, .conviction-copy h2 { font-size: 32px !important; }
}

/* Alineación editorial: títulos centrados y bloques de lectura justificados. */
.section-copy .eyebrow, .section-copy h2, .conviction-copy .eyebrow, .conviction-copy h2 { text-align: center; }
.section-copy p, .education-card p, .principles p { text-align: justify; text-justify: inter-word; }

.objective-inner { text-align: center; }
.objective blockquote { margin-inline: auto; }

.conviction-copy > p:last-child { text-align: center; }

/* Unificar todos los labels de sección con la escala de “SOBRE MÍ”. */
.eyebrow { font-family: 'Century Gothic', Arial, sans-serif !important; font-size: 18px !important; font-weight: 700; letter-spacing: .22em; }
@media (max-width: 860px) { .eyebrow { font-size: 15px !important; } }

.education-card .institution { display: none; }

.lead-emphasis { color: #082b5c; font-weight: 700; }

.trajectory-photo { align-self: center; transform: translateY(34px); }
@media (max-width: 860px) { .trajectory-photo { transform: none; } }

.trajectory-photo { transform: translateY(105px) !important; }
@media (max-width: 860px) { .trajectory-photo { transform: none !important; } }

.principles article, .principles p { text-align: center; }

/* Diplomados: credenciales compactas, no tarjetas de imagen. */
.diploma-grid { gap: .75rem; }
.diploma-grid article { display: flex; align-items: center; gap: .8rem; min-height: 92px; padding: .75rem; }
.diploma-image { width: 62px; height: 62px; min-width: 62px; border-radius: 10px; overflow: hidden; }
.diploma-grid h3 { margin: 0; font-family: 'Manrope', 'Century Gothic', sans-serif; font-size: .76rem; font-weight: 700; line-height: 1.25; letter-spacing: -.025em; }
.diploma-image img { object-fit: cover; }
@media (max-width: 560px) {
  .diploma-grid { grid-template-columns: 1fr; }
  .diploma-image { width: 58px; height: 58px; min-width: 58px; }
}

/* Versión final de diplomados: respetar el formato cuadrado de cada icono. */
.diploma-grid { grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.diploma-grid article { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .8rem; min-height: 190px; padding: 1.15rem; border: 1px solid #dfeaf4; border-radius: 8px; background: #fff; }
.diploma-image { width: 94px; height: 94px; min-width: 94px; border-radius: 14px; background: #f6faff; }
.diploma-image img { width: 100%; height: 100%; object-fit: contain; }
.diploma-grid h3 { max-width: 210px; margin: 0; text-align: center; font-size: .74rem; line-height: 1.32; }
@media (max-width: 560px) {
  .diploma-grid { grid-template-columns: repeat(2, 1fr); gap: .75rem; }
  .diploma-grid article { min-height: 165px; padding: .8rem; }
  .diploma-image { width: 78px; height: 78px; min-width: 78px; }
}

/* Dirección visual de la maqueta aprobada: ejecutiva, clara y compacta. */
body { font-family: 'Century Gothic', 'Manrope', Arial, sans-serif; color: #0c2c5d; }
.site-header { height: 72px; padding-inline: clamp(1.25rem, 5vw, 5rem); box-shadow: 0 2px 14px rgba(7, 36, 78, .06); }
.main-nav { gap: clamp(.85rem, 1.7vw, 1.55rem); }
.main-nav > a { font-size: .67rem; font-weight: 700; }
.main-nav > a:not(.nav-cta) { position: relative; }
.main-nav > a:not(.nav-cta)::after { content: ''; position: absolute; left: 0; right: 0; bottom: -10px; height: 2px; background: var(--blue); transform: scaleX(0); transition: transform .2s ease; }
.main-nav > a:not(.nav-cta):hover::after, .main-nav > a:not(.nav-cta):focus::after { transform: scaleX(1); }
.main-nav .nav-cta { border-radius: 4px; padding: .68rem 1rem; background: #0873d1; }
.hero { min-height: 590px; grid-template-columns: minmax(0, .93fr) minmax(420px, 1.07fr); gap: clamp(2rem, 5vw, 5rem); padding-top: clamp(3.3rem, 6vw, 5rem); padding-bottom: clamp(3.3rem, 6vw, 5rem); }
.hero h1, h2, .principles h3, .education-card h3, .diploma-grid h3, .service-card h3 { font-family: 'Manrope', 'Century Gothic', Arial, sans-serif; font-weight: 800; letter-spacing: -.055em; }
.hero h1 { font-size: clamp(2.85rem, 4.5vw, 4.6rem); line-height: 1.02; max-width: 650px; }
.hero h1 em { color: #0873d1; }
.eyebrow, .card-label { font-size: .62rem; letter-spacing: .25em; color: #0873d1; }
.lead { font-size: .86rem; line-height: 1.7; max-width: 510px; margin: 1.5rem 0 1.8rem; color: #354e70; }
.button { border-radius: 4px; padding: .78rem 1.15rem; font-size: .68rem; }
.hero-photo { min-height: 470px; border-radius: 0; }
.hero-photo::after { inset: 0; border: 0; background: linear-gradient(90deg, rgba(255,255,255,.1), transparent 30%); }
.hero-photo img { object-position: 58% 38%; }
@media (max-width: 860px) {
  .site-header { height: 68px; }
  .hero { min-height: 0; grid-template-columns: 1fr; }
  .hero-photo { min-height: 420px; }
}

.section { padding-top: clamp(3.5rem, 6vw, 6rem); padding-bottom: clamp(3.5rem, 6vw, 6rem); }
.about, .trajectory, .conviction { gap: clamp(2rem, 5vw, 5.5rem); }
.about { grid-template-columns: .87fr 1.13fr; }
.about-photo { min-height: 455px; }
.about-photo::after, .trajectory-photo::after, .conviction-photo::after { inset: 0; border: 0; }
.section-copy h2, .section-heading h2 { font-size: clamp(2rem, 3.25vw, 3.45rem); line-height: 1.08; }
.section-copy p { margin-top: 1rem; font-size: .85rem; line-height: 1.7; color: #314b70; }
.trajectory { grid-template-columns: 1.08fr .92fr; }
.trajectory-photo { min-height: 410px; }
.trajectory-photo img { object-position: center; }
.philosophy.section-soft, .diplomas.section-soft { background: #f8fbff; }
.principles { border-radius: 6px; overflow: hidden; }
.principles article { background: #fff; padding: 2rem; }
.principles h3 { font-size: 1.45rem; }
.principles p { font-size: .8rem; }
.number { color: #0873d1; font-family: 'Manrope', sans-serif; font-size: .75rem; font-weight: 800; }
.section-heading { margin-bottom: 2.4rem; }
.education-card { border-radius: 6px; box-shadow: 0 3px 16px rgba(7, 44, 93, .04); padding: 1.7rem; }
.education-card h3 { font-size: 1.35rem; }
.education-card p { font-size: .75rem; }
.academic-logo { border: 0; height: 125px; }
.conviction-photo { min-height: 415px; }
.conviction-copy h2 { font-size: clamp(2rem, 3.25vw, 3.5rem); line-height: 1.09; }
.conviction-copy > p:last-child { font-family: 'Manrope', sans-serif; font-weight: 800; font-size: clamp(1.55rem, 2.35vw, 2.45rem); }
@media (max-width: 860px) {
  .about, .trajectory { grid-template-columns: 1fr; }
  .about-photo, .trajectory-photo, .conviction-photo { min-height: 390px; }
}

.diploma-grid { gap: .85rem; }
.diploma-grid article { border-radius: 6px; overflow: hidden; box-shadow: 0 2px 10px rgba(7,44,93,.04); }
.diploma-image { height: 145px; }
.diploma-grid h3 { font-size: .9rem; margin: 1rem; }
.service-grid { gap: 1.15rem; }
.service-card { border: 1px solid #dce8f3; border-radius: 6px; overflow: hidden; background: #fff; box-shadow: 0 3px 14px rgba(7,44,93,.035); }
.service-image { height: 180px; }
.service-card h3 { padding: .9rem 1rem 1.1rem; margin: 0; font-size: .95rem; letter-spacing: -.035em; }
.service-card h3 span { color: #0873d1; }
.objective { padding-block: clamp(4rem, 7vw, 6rem); background: linear-gradient(112deg, #062857 0%, #0d4b8d 63%, #0a366f 100%); }
.objective blockquote { max-width: 940px; font-family: 'Manrope', sans-serif; font-weight: 500; font-size: clamp(1.65rem, 3vw, 3rem); line-height: 1.22; letter-spacing: -.035em; }
.contact { padding-bottom: 6rem; }
.contact h2 { font-family: 'Manrope', sans-serif; font-weight: 800; font-size: clamp(3rem, 5vw, 4.8rem); }
.contact-question { font-size: .9rem; }
footer { padding-top: 2.4rem; }
.footer-brand-logo { width: 145px; }
@media (max-width: 560px) {
  .service-grid { gap: 1rem; }
  .service-image { height: 210px; }
  .diploma-image { height: 155px; }
}

/* Se declara al final para prevalecer sobre los recortes anteriores. */
.hero-photo img { object-position: 58% top; }
.about-photo img { object-position: 48% top; }

/* Menú: incorpora Actualidad y conserva una proporción ligera en escritorio. */
.main-nav { gap: clamp(.65rem, 1.25vw, 1.2rem); }
.main-nav > a { font-size: 14px !important; }
@media (max-width: 860px) { .main-nav > a { font-size: 15px !important; } }
