utn-cli 2.1.51 → 2.1.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/package.json +1 -1
  2. package/templates/backend/rutas/misc.js +240 -0
  3. package/templates/backend/servicios/Nucleo/Miscelaneas.js +111 -16
  4. package/templates/frontend/public/conozcanos1.jpg +0 -0
  5. package/templates/frontend/public/preguntasF-1.png +0 -0
  6. package/templates/frontend/public/preguntasF-2.png +0 -0
  7. package/templates/frontend/public/preguntasF-3.png +0 -0
  8. package/templates/frontend/public/preguntasF-4.png +0 -0
  9. package/templates/frontend/public/preguntasF-5.png +0 -0
  10. package/templates/frontend/public/sabias-1.png +0 -0
  11. package/templates/frontend/public/sabias-10.png +0 -0
  12. package/templates/frontend/public/sabias-11.png +0 -0
  13. package/templates/frontend/public/sabias-2.png +0 -0
  14. package/templates/frontend/public/sabias-3.png +0 -0
  15. package/templates/frontend/public/sabias-4.png +0 -0
  16. package/templates/frontend/public/sabias-5.png +0 -0
  17. package/templates/frontend/public/sabias-6.png +0 -0
  18. package/templates/frontend/public/sabias-7.png +0 -0
  19. package/templates/frontend/public/sabias-8.png +0 -0
  20. package/templates/frontend/public/sabias-9.png +0 -0
  21. package/templates/frontend/src/app/Componentes/Nucleo/tabla/tabla.component.html +5 -4
  22. package/templates/frontend/src/app/Componentes/Nucleo/tabla/tabla.component.ts +13 -2
  23. package/templates/frontend/src/app/Paginas/Nucleo/acercade/acercade.component.css +65 -0
  24. package/templates/frontend/src/app/Paginas/Nucleo/acercade/acercade.component.html +49 -0
  25. package/templates/frontend/src/app/Paginas/Nucleo/acercade/acercade.component.ts +20 -0
  26. package/templates/frontend/src/app/Paginas/Nucleo/conozcanos/conozcanos.component.css +608 -0
  27. package/templates/frontend/src/app/Paginas/Nucleo/conozcanos/conozcanos.component.html +109 -0
  28. package/templates/frontend/src/app/Paginas/Nucleo/conozcanos/conozcanos.component.ts +63 -0
  29. package/templates/frontend/src/app/Paginas/Nucleo/politicas/politicas.component.css +158 -0
  30. package/templates/frontend/src/app/Paginas/Nucleo/politicas/politicas.component.html +120 -0
  31. package/templates/frontend/src/app/Paginas/Nucleo/politicas/politicas.component.ts +33 -0
  32. package/templates/frontend/src/app/Paginas/Nucleo/preguntasFrecuentes/preguntasFrecuentes.component.css +162 -0
  33. package/templates/frontend/src/app/Paginas/Nucleo/preguntasFrecuentes/preguntasFrecuentes.component.html +97 -0
  34. package/templates/frontend/src/app/Paginas/Nucleo/preguntasFrecuentes/preguntasFrecuentes.component.ts +36 -0
  35. package/templates/frontend/src/app/Paginas/Nucleo/sabiasque/sabiasque.component.css +229 -0
  36. package/templates/frontend/src/app/Paginas/Nucleo/sabiasque/sabiasque.component.html +396 -0
  37. package/templates/frontend/src/app/Paginas/Nucleo/sabiasque/sabiasque.component.ts +51 -0
  38. package/templates/frontend/src/app/app.routes.ts +20 -0
@@ -0,0 +1,109 @@
1
+ <div class="subtitle">
2
+ <p>Conózcanos</p>
3
+ </div>
4
+ <div class="conozcanos-container">
5
+ <div class="conozcanos-content">
6
+ <div class="conozcanos-text">
7
+ <p>Somos el equipo profesional de TI de la Universidad Técnica Nacional, encargados del desarrollo y codificación
8
+ de herramientas que faciliten a toda la comunidad universitaria y al usuario en general que utilicen el sistema.
9
+ Somos los encargados del desarrollo de la plataforma SIGU.</p>
10
+ <p>Somos la unidad encargada del diseño, desarrollo, mantenimiento y soporte del Sistema Integrado de Gestión
11
+ Universitaria (SIGU).</p>
12
+ </div>
13
+ <div class="conozcanos-image">
14
+ <img src="conozcanos1.jpg" alt="Equipo SIGU">
15
+ </div>
16
+ </div>
17
+ <!-- Sección Propósito -->
18
+ <div class="proposito-section">
19
+ <div class="proposito-header">
20
+ <h2 class="proposito-title">Propósito del equipo</h2>
21
+ </div>
22
+ <div class="proposito-text">
23
+ <p>Trabajamos diariamente para asegurar que la plataforma sea una herramienta accesible, segura y eficiente,
24
+ facilitando la gestión académica y administrativa en cada una de sus etapas.</p>
25
+ <p>Un equipo capacitado y en mejora constante, que realmente se involucra en la calidad y seguridad de cada
26
+ sistema desarrollado. Aportando funciones claves como:</p>
27
+ </div>
28
+ <div class="proposito-grid">
29
+ <div class="proposito-card">
30
+ <div class="card-header">
31
+ <span class="card-icon">+</span>
32
+ <h3>Innovación</h3>
33
+ </div>
34
+ <p>El desarrollo de nuevas herramientas y actualizaciones.</p>
35
+ </div>
36
+ <div class="proposito-card">
37
+ <div class="card-header">
38
+ <span class="card-icon">+</span>
39
+ <h3>Soporte técnico y acompañamiento</h3>
40
+ </div>
41
+ <p>Resolución de problemas técnicos y atención a usuarios.</p>
42
+ </div>
43
+ <div class="proposito-card">
44
+ <div class="card-header">
45
+ <span class="card-icon">+</span>
46
+ <h3>Seguridad</h3>
47
+ </div>
48
+ <p>Garantizamos la seguridad de la información de cada uno de los usuarios.</p>
49
+ </div>
50
+ </div>
51
+ </div>
52
+
53
+ <div class="Liderazgo-container" *ngIf="desarrolladorLider">
54
+ <div class="Liderazgo-content">
55
+
56
+ <div class="Liderazgo-header">
57
+ <h2 class="Liderazgo-title">Dirección y liderazgo técnico</h2>
58
+ </div>
59
+
60
+ <div class="Liderazgo-body">
61
+ <div class="Liderazgo-image">
62
+ <img [src]="desarrolladorLider.FotoURL || 'conozcanos2.png'" [alt]="desarrolladorLider.NombreCompleto">
63
+ </div>
64
+
65
+ <div class="Liderazgo-text">
66
+ <p class="name">{{ desarrolladorLider.NombreCompleto }}</p>
67
+ <p class="cargo">Líder del equipo técnico</p>
68
+ <p>{{desarrolladorLider.Biografia}}</p>
69
+ </div>
70
+ </div>
71
+ </div>
72
+ </div>
73
+
74
+ <!-- Team work -->
75
+ <div class="team-section">
76
+ <div class="team-header">
77
+ <h2 class="team-title">Equipo de trabajo</h2>
78
+ </div>
79
+ <div class="team-text">
80
+ <p>Nuestro equipo de trabajo y de desarrollo del SIGU es un grupo pequeño pero capacitado que garantiza la
81
+ evolución, creación y seguridad. A continuación se muestra nuestro equipo.</p>
82
+ </div>
83
+
84
+ <div class="team-grid">
85
+ <div *ngFor="let desarrollador of datosDesarrolladores; let i = index" class="team-card">
86
+ <div class="team-card-inner">
87
+ <div class="team-front">
88
+ <div class="team-photo">
89
+ <img [src]="desarrollador.FotoURL || 'Avatar=45.png'"
90
+ [alt]="desarrollador.NombreCompleto || 'Miembro del equipo'">
91
+ </div>
92
+ <h3 class="team-name">{{ desarrollador.NombreCompleto || 'Miembro ' + (i+1) }}</h3>
93
+ <p class="team-position">Desarrollador</p>
94
+ <button class="team-btn" (click)="flipCard($event)">
95
+ Ver más
96
+ </button>
97
+ </div>
98
+ <div class="team-back">
99
+ <p>{{ desarrollador.Biografia || 'Sin biografía disponible.' }}</p>
100
+ <button class="team-btn" (click)="flipCard($event)">
101
+ Volver
102
+ </button>
103
+ </div>
104
+ </div>
105
+ </div>
106
+ </div>
107
+
108
+ </div>
109
+ </div>
@@ -0,0 +1,63 @@
1
+ import { Component, OnInit } from '@angular/core';
2
+ import { MatIconModule } from '@angular/material/icon';
3
+ import { DatosGlobalesService } from '../../../datos-globales.service';
4
+ import { takeUntil } from 'rxjs/operators';
5
+ import { Subject } from 'rxjs';
6
+ import { HttpClient } from '@angular/common/http';
7
+ import { CommonModule } from '@angular/common';
8
+ @Component({
9
+ selector: 'app-conozcanos',
10
+ standalone: true,
11
+ imports: [MatIconModule, CommonModule],
12
+ templateUrl: './conozcanos.component.html',
13
+ styleUrl: './conozcanos.component.css'
14
+ })
15
+ export class ConozcanosComponent implements OnInit {
16
+ public datosDesarrolladores: any[] = [];
17
+ public cargando: boolean = true;
18
+ public desarrolladorLider: any = null;
19
+ private _destroy$ = new Subject<void>();
20
+
21
+ constructor(private http: HttpClient, private datosGlobalesService: DatosGlobalesService) { }
22
+
23
+
24
+ ngOnInit(): void {
25
+ this.http.get(`${this.datosGlobalesService.ObtenerURL()}misc/VistaDeConozcanos`).pipe(takeUntil(this._destroy$)).subscribe({ error: () => { } });
26
+ this.obtenerDesarrolladores();
27
+ }
28
+
29
+ obtenerDesarrolladores(): void {
30
+ this.cargando = true;
31
+ this.http.get(`${this.datosGlobalesService.ObtenerURL()}misc/obtenerEquipoDeDesarrolladores`).subscribe({
32
+ next: (respuesta: any) => {
33
+ console.log('Respuesta equipo:', respuesta);
34
+
35
+ if (respuesta.error) {
36
+ console.error('Problemas:', respuesta.error);
37
+ this.cargando = false;
38
+ return;
39
+ }
40
+
41
+ const todos = respuesta.body ?? [];
42
+ this.desarrolladorLider = todos.find((dev: any) => dev.Perfil === 'Lider') ?? null;
43
+ this.datosDesarrolladores = todos.filter((dev: any) => dev.Perfil !== 'Lider');
44
+ this.cargando = false;
45
+ },
46
+ error: (error) => {
47
+ console.error('Error:', error);
48
+ this.cargando = false;
49
+ },
50
+ });
51
+ }
52
+
53
+
54
+ flipCard(event: Event): void {
55
+ const button = event.target as HTMLElement;
56
+ const card = button.closest('.team-card');
57
+
58
+ if (card) {
59
+ card.classList.toggle('flipped');
60
+ }
61
+ }
62
+ }
63
+
@@ -0,0 +1,158 @@
1
+ .politicas-container {
2
+ max-width: 1000px;
3
+ padding-bottom: 20px;
4
+ font-family: 'Roboto', sans-serif;
5
+ background-color: white;
6
+ text-align: left;
7
+ margin: 0 auto;
8
+ }
9
+
10
+ .subtitle {
11
+ background-color: #0b4794;
12
+ font-size: 25px;
13
+ color: white;
14
+ padding: 18px;
15
+ margin: 20px 0;
16
+ text-align: center;
17
+ }
18
+ .subtitle p {
19
+ margin: 5px 0;
20
+ }
21
+ .description {
22
+ width: 100%;
23
+ padding-left: 30px;
24
+ padding-right: 30px;
25
+ box-sizing: border-box;
26
+ margin-top: 30px;
27
+ }
28
+
29
+ .description p {
30
+ margin: 15px 0;
31
+ font-size: 16px;
32
+ font-weight: 400;
33
+ color: #4D4D4D;
34
+ line-height: 1.6;
35
+ }
36
+
37
+ @media (max-width: 768px) {
38
+ .description {
39
+ padding-left: 20px;
40
+ padding-right: 20px;
41
+ }
42
+
43
+ .description p {
44
+ font-size: 14px;
45
+ }
46
+ }
47
+
48
+ @media (min-width: 1400px) {
49
+ .description {
50
+ padding-left: 40px;
51
+ padding-right: 40px;
52
+ }
53
+ }
54
+
55
+ .tree-container {
56
+ width: 100%;
57
+ padding-left: 30px;
58
+ padding-right: 30px;
59
+ margin-top: 30px;
60
+ box-sizing: border-box;
61
+ max-height: none;
62
+ }
63
+
64
+ /* Estilos árboles */
65
+ .tree-item {
66
+ margin-bottom: 10px;
67
+ padding-left: 15px;
68
+ transition: background-color 0.3s ease;
69
+ }
70
+
71
+ .line {
72
+ height: 3px;
73
+ border-bottom: 1px solid #C4C4C4;
74
+ }
75
+ .tree-header {
76
+ display: flex;
77
+ align-items: center;
78
+ gap: 10px;
79
+ cursor: pointer;
80
+ padding: 12px;
81
+ background-color: white;
82
+ border-radius: 8px;
83
+ transition: all 0.3s ease;
84
+ }
85
+
86
+ .tree-icon {
87
+ font-size: 14px;
88
+ color: #0b4794;
89
+ font-weight: bold;
90
+ width: 20px;
91
+ }
92
+
93
+ .tree-title {
94
+ font-weight: 500;
95
+ color: #4D4D4D;
96
+ font-size: 16px;
97
+ }
98
+
99
+ .tree-content {
100
+ max-height: 0;
101
+ overflow: hidden;
102
+ transition: max-height 0.3s ease-out;
103
+ background-color: white;
104
+ margin-top: 5px;
105
+ }
106
+
107
+ .tree-content.expanded {
108
+ max-height: 2000px;
109
+ padding: 15px;
110
+ }
111
+ .tree-item.expanded-item {
112
+ background-color: #F6F8FA;
113
+ border-left: 4px solid #002F6B;
114
+ }
115
+
116
+ .tree-item.expanded-item .tree-header,
117
+ .tree-item.expanded-item .tree-header .tree-title {
118
+ background-color: #F6F8FA;
119
+ color: #002F6B;
120
+ }
121
+
122
+ .tree-item.expanded-item .tree-content.expanded {
123
+ background-color: #F6F8FA;
124
+ }
125
+ .tree-content p {
126
+ margin: 0;
127
+ line-height: 1.6;
128
+ color: #4D4D4D;
129
+ margin-bottom: 20px;
130
+ font-size: 16px;
131
+ }
132
+
133
+ .tree-content ul {
134
+ padding-left: 20px;
135
+ margin-top: 10px;
136
+ }
137
+
138
+ .tree-content li {
139
+ list-style-type: disc;
140
+ margin-bottom: 10px;
141
+ color: #4D4D4D;
142
+ font-size: 16px;
143
+ }
144
+
145
+ @media (max-width: 768px) {
146
+
147
+ .tree-title {
148
+ font-size: 14px;
149
+ }
150
+
151
+ .tree-content p {
152
+ font-size: 14px;
153
+ }
154
+
155
+ .tree-content li{
156
+ font-size: 14px;
157
+ }
158
+ }
@@ -0,0 +1,120 @@
1
+
2
+ <div class="subtitle">
3
+ <p>Acuerdo de seguridad, privacidad y condiciones de uso</p>
4
+ </div>
5
+ <div class="politicas-container">
6
+
7
+ <div class="description">
8
+ <p>La Universidad Técnica Nacional (UTN), institución pública de educación superior dedicada a la docencia, la
9
+ investigación y la acción social, pone a disposición de la comunidad universitaria la plataforma digital SIGU
10
+ (Sistema Integrado de Gestión Universitaria).
11
+ </p>
12
+ <p>El presente acuerdo establece los términos y condiciones de seguridad, privacidad y acceso aplicables a todos los
13
+ usuarios del sistema.</p>
14
+ </div>
15
+
16
+ <!-- Árbol-->
17
+ <div class="tree-container">
18
+
19
+ <!-- Item 1 -->
20
+ <div class="tree-item" [class.expanded-item]="expandedItems['item1']">
21
+ <div class="tree-header" (click)="toggleItem('item1')">
22
+ <span class="tree-icon">{{ expandedItems['item1'] ? '▼' : '▶' }}</span>
23
+ <span class="tree-title">1. Usuario</span>
24
+ </div>
25
+ <div class="tree-content" [class.expanded]="expandedItems['item1']">
26
+ <p>1.1. Este Acuerdo regula la relación entre la Universidad Técnica Nacional y los usuarios que hacen uso de la
27
+ plataforma SIGU, incluyendo estudiantes, docentes, personal administrativo, aspirantes, clientes y público en
28
+ general que utilicen los servicios disponibles dentro del sistema.</p>
29
+
30
+ <p>1.2. El acceso a los módulos del SIGU está estrictamente limitado según el perfil del usuario autenticado,
31
+ garantizando que visualice y utilice únicamente la información y servicios correspondientes a su gestión o
32
+ autorización dentro de la plataforma. </p>
33
+
34
+ <p>1.3. Los usuarios deberán hacer un uso responsable, ético y seguro de la plataforma SIGU, conforme al
35
+ Reglamento de Seguridad de la Información de TI de la UTN y demás políticas aplicables en materia de seguridad
36
+ informática y uso de recursos tecnológicos.
37
+ </p>
38
+
39
+ <p>1.4. Asimismo, cada usuario será responsable de resguardar la confidencialidad de sus credenciales de acceso
40
+ y de utilizar la información disponible en el sistema únicamente para fines académicos y administrativos
41
+ autorizados. </p>
42
+ </div>
43
+ <div class="line"></div>
44
+ </div>
45
+
46
+ <!-- Item 2-->
47
+ <div class="tree-item" [class.expanded-item]="expandedItems['item2']">
48
+ <div class="tree-header" (click)="toggleItem('item2')">
49
+ <span class="tree-icon">{{ expandedItems['item2'] ? '▼' : '▶' }}</span>
50
+ <span class="tree-title">2. Protección de datos</span>
51
+ </div>
52
+ <div class="tree-content" [class.expanded]="expandedItems['item2']">
53
+ <p>2.1 El cumplimiento de la ley de protección de la persona frente al tratamiento de sus datos personales (N °
54
+ 8968) y su reglamento, la UTN declara que:</p>
55
+ <ul>
56
+ <li>La información recolectada a través de formularios en el SIGU (admisión, solicitud de becas, planes de
57
+ estudio, etc.) será utilizada exclusivamente para la finalidad establecida en cada formulario y para la
58
+ gestión interna universitaria.</li>
59
+ <li>Al completar los formularios, el usuario otorga su consentimiento para que los datos sean suministrados y
60
+ procesados por la UTN.</li>
61
+ <li>En ningún caso la información personal será distribuida, vendida o cedida a terceros.</li>
62
+ </ul>
63
+ </div>
64
+ <div class="line"></div>
65
+ </div>
66
+
67
+ <!-- Item 3-->
68
+ <div class="tree-item" [class.expanded-item]="expandedItems['item3']">
69
+ <div class="tree-header" (click)="toggleItem('item3')">
70
+ <span class="tree-icon">{{ expandedItems['item3'] ? '▼' : '▶' }}</span>
71
+ <span class="tree-title">3. Privacidad</span>
72
+ </div>
73
+ <div class="tree-content" [class.expanded]="expandedItems['item3']">
74
+ <p>3.1 Las solicitudes de información sensible a través del sitio web son completamente privadas y solo visibles
75
+ para el usuario titular y el personal administrativo autorizado para la gestión de trámites. Cualquier otro
76
+ dato que el usuario proporcione será utilizado en apego a lo establecido por la legislación costarricense en
77
+ materia de protección de datos personales, y no será divulgado sin el consentimiento del titular.
78
+ </p>
79
+ <p>3.2 Asimismo, el sitio web SIGU utiliza cookies para almacenar información de sesión y preferencias de
80
+ accesibilidad del usuario. Estos datos se utilizan únicamente con el fin de mejorar la experiencia del usuario
81
+ mientras navega por el sitio web institucional.
82
+ </p>
83
+ <p>3.3 El contenido almacenado en las cookies no almacena datos sensibles y no se distribuyen a terceros.
84
+ </p>
85
+ </div>
86
+ <div class="line"></div>
87
+ </div>
88
+
89
+ <!-- Item 4-->
90
+ <div class="tree-item" [class.expanded-item]="expandedItems['item4']">
91
+ <div class="tree-header" (click)="toggleItem('item4')">
92
+ <span class="tree-icon">{{ expandedItems['item4'] ? '▼' : '▶' }}</span>
93
+ <span class="tree-title">4. Accesibilidad y modificaciones</span>
94
+ </div>
95
+ <div class="tree-content" [class.expanded]="expandedItems['item4']">
96
+ <p>4.1 La UTN se reserva el derecho de actualizar y mejorar la plataforma SIGU, su estructura, funcionalidades,
97
+ contenidos y el presente Acuerdo de Seguridad, cuando lo considere necesario para fortalecer la seguridad, la
98
+ accesibilidad y el correcto funcionamiento del sistema. Las modificaciones entrarán en vigencia a partir de su
99
+ publicación dentro de la plataforma, sin necesidad de previo aviso individual, aunque se recomienda al usuario
100
+ revisar la última actualización.</p>
101
+ <p>4.2 La dirección de gestión de tecnologías de información de la UTN trabaja para garantizar la accesibilidad
102
+ universal del SIGU, como:
103
+ </p>
104
+ <ul>
105
+ <li>Se utilizan herramientas automáticas y pruebas de intervención humana para evaluar el desempeño en
106
+ términos de accesibilidad visual y de navegación.</li>
107
+ <li>Durante las actualizaciones o pruebas de funcionalidades, los datos personales de los usuarios no serán
108
+ utilizados en entornos de prueba. Se utilizan datos ficticios para salvaguardar la privacidad.
109
+ </li>
110
+ </ul>
111
+ <p>4.3 En caso de que los usuarios presenten alguna dificultad de accesibilidad al sitio web y requieran
112
+ asistencia, pueden contactarse con el Departamento de Soporte Técnico de la UTN, por medio del correo
113
+ electrónico soporte@utn.ac.cr</p>
114
+ </div>
115
+ <div class="line"></div>
116
+ </div>
117
+
118
+ </div>
119
+
120
+ </div>
@@ -0,0 +1,33 @@
1
+ import { Component, OnInit } from '@angular/core';
2
+ import { MatIconModule } from '@angular/material/icon';
3
+ import { DatosGlobalesService } from '../../../datos-globales.service';
4
+ import { HttpClient } from '@angular/common/http';
5
+ import { takeUntil } from 'rxjs/operators';
6
+ import { Subject } from 'rxjs';
7
+ @Component({
8
+ selector: 'app-politicas',
9
+ standalone: true,
10
+ imports: [MatIconModule],
11
+ templateUrl: './politicas.component.html',
12
+ styleUrl: './politicas.component.css'
13
+ })
14
+ export class PoliticasComponent implements OnInit {
15
+
16
+ private _destroy$ = new Subject<void>();
17
+ constructor(private http: HttpClient, private datosGlobalesService: DatosGlobalesService) { }
18
+ ngOnInit(): void {
19
+ this.http.get(`${this.datosGlobalesService.ObtenerURL()}misc/VistaDePoliticas`).pipe(takeUntil(this._destroy$)).subscribe({ error: () => { } });
20
+ }
21
+ // items expandidos
22
+ expandedItems: { [key: string]: boolean } = {
23
+ item1: false,
24
+ item2: false,
25
+ item3: false,
26
+ item4: false,
27
+ };
28
+
29
+ toggleItem(itemId: string) {
30
+ this.expandedItems[itemId] = !this.expandedItems[itemId];
31
+ }
32
+
33
+ }
@@ -0,0 +1,162 @@
1
+ .politicas-container {
2
+ max-width: 1000px;
3
+ padding-bottom: 20px;
4
+ font-family: 'Roboto', sans-serif;
5
+ background-color: white;
6
+ text-align: left;
7
+ margin: 0 auto;
8
+ }
9
+
10
+ .subtitle {
11
+ background-color: #0b4794;
12
+ font-size: 25px;
13
+ color: white;
14
+ padding: 18px;
15
+ margin: 20px 0;
16
+ text-align: center;
17
+ }
18
+ .subtitle p {
19
+ margin: 5px 0;
20
+ }
21
+
22
+
23
+ @media (max-width: 768px) {
24
+ .description {
25
+ padding-left: 20px;
26
+ padding-right: 20px;
27
+ }
28
+
29
+ .description p {
30
+ font-size: 14px;
31
+ }
32
+ }
33
+
34
+ @media (min-width: 1400px) {
35
+ .description {
36
+ padding-left: 40px;
37
+ padding-right: 40px;
38
+ }
39
+ }
40
+
41
+ .tree-container {
42
+ width: 100%;
43
+ padding-left: 30px;
44
+ padding-right: 30px;
45
+ margin-top: 30px;
46
+ box-sizing: border-box;
47
+ max-height: none;
48
+ }
49
+
50
+ /* Estilos árboles */
51
+ .tree-item {
52
+ margin-bottom: 10px;
53
+ padding-left: 15px;
54
+ transition: background-color 0.3s ease;
55
+ }
56
+
57
+ .line {
58
+ height: 3px;
59
+ border-bottom: 1px solid #C4C4C4;
60
+ }
61
+ .tree-header {
62
+ display: flex;
63
+ align-items: center;
64
+ gap: 10px;
65
+ cursor: pointer;
66
+ padding: 12px;
67
+ background-color: white;
68
+ border-radius: 8px;
69
+ transition: all 0.3s ease;
70
+ }
71
+
72
+ .tree-icon {
73
+ font-size: 14px;
74
+ color: #0b4794;
75
+ font-weight: bold;
76
+ width: 20px;
77
+ }
78
+
79
+ .tree-title {
80
+ font-weight: 500;
81
+ color: #4D4D4D;
82
+ font-size: 16px;
83
+ }
84
+
85
+ .tree-content {
86
+ max-height: 0;
87
+ overflow: hidden;
88
+ transition: max-height 0.3s ease-out;
89
+ background-color: white;
90
+ margin-top: 5px;
91
+ }
92
+
93
+ .tree-content.expanded {
94
+ max-height: 2000px;
95
+ padding: 15px;
96
+ }
97
+ .tree-item.expanded-item {
98
+ background-color: #F6F8FA;
99
+ border-left: 4px solid #002F6B;
100
+ }
101
+
102
+ .tree-item.expanded-item .tree-header,
103
+ .tree-item.expanded-item .tree-header .tree-title {
104
+ background-color: #F6F8FA;
105
+ color: #002F6B;
106
+ }
107
+
108
+ .tree-item.expanded-item .tree-content.expanded {
109
+ background-color: #F6F8FA;
110
+ }
111
+ .tree-content p {
112
+ margin: 0;
113
+ line-height: 1.6;
114
+ color: #4D4D4D;
115
+ margin-bottom: 20px;
116
+ font-size: 16px;
117
+ }
118
+ .conozcanos-image {
119
+ flex: 1;
120
+ display: flex;
121
+ justify-content: center;
122
+ align-items: center;
123
+ margin-bottom: 20px;
124
+ }
125
+
126
+ .conozcanos-image img {
127
+ width: 100%;
128
+ max-width: 290px;
129
+ height: auto;
130
+ object-fit: cover;
131
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
132
+ }
133
+ .preguntados-image {
134
+ flex: 1;
135
+ display: flex;
136
+ justify-content: center;
137
+ align-items: center;
138
+ margin-bottom: 20px;
139
+ }
140
+
141
+ .preguntados-image img {
142
+ width: 100%;
143
+ max-width: 420px;
144
+ height: auto;
145
+ object-fit: cover;
146
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
147
+ }
148
+
149
+ @media (max-width: 768px) {
150
+
151
+ .tree-title {
152
+ font-size: 14px;
153
+ }
154
+
155
+ .tree-content p {
156
+ font-size: 14px;
157
+ }
158
+
159
+ .tree-content li{
160
+ font-size: 14px;
161
+ }
162
+ }